จะเอาความรู้ที่มีมาแบ่งปันค่ะ

แต่ใส่รูปยัง งง ๆ อยู่

จะงมต่อไปค่ะ

Traffic Light (1)

posted on 07 Mar 2010 02:33 by bekery-a

บทที่ 1

บทนำ

 

1.1       ชื่อโครงงาน  (ไทย)

             ระบบสัญญาณไฟจราจร

 

1.2       ชื่อโครงงาน (อังกฤษ)

             TRAFFIC LIGHT SYSTEM

 

1.3       ความสำคัญและที่มาของปัญหา

             การสร้างสัญญาณไฟจราจรในระบบดิจิตอลต้องใช้งบประมาณที่มาก ดังนั้นผู้จัดทำจึงคิดที่จะทำไฟสัญญาณจราจรขึ้น เพราะจะทำให้มีราคาที่ถูกกว่าที่จะนำเข้ามาจากต่างประเทศซึ่งสัญญาไฟจราจรนี้จะควบคุมด้วย FPGA บอร์ด เขียนโปรแกรมควบคุมการทำงานด้วยภาษา VHDL เพื่อควบคุมสัญญาณไฟจราจรทั้ง 4 แยก และ1 ทางข้ามถนน โดยหลักการทำงานจะใช้โปรแกรม Counter ในการนับเวลาที่จะแสดงผล ไฟเขียว, ไฟส้ม, ไฟแดง และแสดงการนับเวลาถอยหลังของ 7-Segmaent ก่อนที่จะถึงไฟแดงและไฟเขียว

 

1.4       วัตถุประสงค์ของโครงงาน

1.    เพื่อศึกษาการประยุกต์ใช้งาน FPGA บอร์ด

2.    เพื่อศึกษาการเขียนโปรแกรมด้วยภาษา VHDL

 

1.5       ขอบเขตของโครงงาน

1.     สามารถความคุมไฟจราจรสำหรับ 4 แยก

2.     สามารถแสดงตัวเลขเวลาสำหรับทางแยก

 

1.6       หน่วยงานที่จะนำโครงงานไปใช้ประโยชน์

1.    หน่วยงานเกี่ยวกับการควบคุมสัญญาณจราจร

2.    นักศึกษาที่สนใจนำไปศึกษาค้นคว้าเพื่อเป็นประโยชน์ต่อการศึกษา

 


1.7       ประโยชน์ที่คาดว่าจะได้รับ การนำโครงงานไปใช้ประโยชน์

1.    เพื่อความเป็นระเบียบในการเดินทาง

2.    เพื่อให้ลดการเกิดอุบัติเหตุ

 

1.8       วิธีการดำเนินงานโครงงาน

1.    ศึกษาค้นคว้าข้อมูลและออกแบบโครงงาน

2.    ทดลองและแก้ไขข้อผิดพลาดของโครงงาน

3.    ประเมินการทำงานของโครงงาน

4.    สรุปการทำโครงงาน

ระยะเวลาทำการโครงงาน 2 เดือน

แผนการดำเนินงานตลอดโครงงาน วิจัย

ลำดับ

แผนงานโครงงาน

2 เดือน

สัปดาห์ที่

1-2

3-4

5-6

7-8

1

ค้นคว้า และศึกษารายละเอียดการทำโครงงาน

 

 

 

 

2

ทดลองและแก้ไขข้อผิดพลาดของโครงงาน

 

 

 

 

3

ประเมินการทำงานของโครงงาน

 

 

 

 

4

สรุปการทำโครงงาน

 

 

 

 

 

1.9       งบประมาณของโครงงานวิจัย

             รายละเอียดงบประมาณการวิจัย จำแนกตามงบประเภทต่างๆ

รายการ

จำนวนเงิน

1. ค่าตอบแทนนักวิจัย

    หัวหน้าโครงงาน

    คณะผู้วิจัย

 

2. ค่าวัสดุ

2.1 วัสดุสำนักงาน

2.2 วัสดุเชื้อเพลิงและหล่อลื่น

2.3วัสดุโฆษณาและเผยแพร่

2.4 วัสดุหนังสือ วารสารและตำรา

2.5 วัสดุสำหรับการผลิตทดลอง บรรจุภัณฑ์ และวัสดุอื่นๆ

 

3. ค่าซ่อมแซม/บำรุงรักษาครุภัณฑ์

ค่าซ่อมแซม/และบำรุงรักษา

 

4. ค่าเดินทางระหว่างปฏิบัติการในโครงงาน

4.1 ค่าเดินทางจัดซื้อวัตถุดิบสำหรับการผลิต การทดลอง

 

5 ค่าจัดหาข้อมูล และค่าทำรายงาน

5.1 ค่าทำรายงาน

100

6. ค่าจ้างวิเคราะห์หรือทดสอบตัวอย่าง

 

7. ค่าบริหารโครงงาน

 

รวมทั้งสิ้น

100

 

 

 

 

 

 


บทที่ 2

ทฤษฎีที่เกี่ยวข้อง

 

2.1       ภาษา VHDL

             2.1.1   ความเป็นมาของภาษา  VHDL

                         เมื่อประมาณปี  ค.ศ. 1981 กระทรวงกลาโหมของสหรัฐอเมริกาต้องการจะพัฒนาอุปกรณ์อิเล็กทรอนิกส์และระบบคอมพิวเตอร์ของกองทัพ  แต่พบว่าการออกแบบวงจรค่อนข้างล่าช้าจึงมีโครงงานชื่อ  Very  High  Integrated  Circuits  หรือ  VHSIC  เพื่อศึกษาวิธีการที่จะช่วยให้ผลิตวงจรดิจิตอลได้สะดวกรวดเร็วยิ่งขึ้น  โดยวางมาตรฐานของภาษาไว้ดังนี้

1)   ต้องเป็นภาษาที่นำไปเขียนรูปแบบระบบดิจิตอล และมีคุณสมบัติที่เข้าใจได้ทั้งคนและเครื่องโดยไม่ต้องแปลอีก

2)   สามารถนำไปใช้เป็นเอกสารประกอบโครงงานได้

3)   ต้องเป็นภาษาที่เขียนขึ้นเพื่อจำลองการทำงานของวงจร

             จากมาตรฐานที่วางไว้  ภาษานี้จึงเป็นภาษาชั้นสูงที่บรรยายพฤติกรรมของฮาร์ดแวร์  โดยได้ชื่อว่า  VHSIC  Hardware  Description  Language  หรือ VHDL ต่อมาได้รับการยอมรับให้เป็นมาตรฐาน  IEEE-1076

 

             2.1.2   ลักษณะรูปแบบ (Model Style)

1)  Behavior  Model (หรือ Behavioral  Level  หรือ  Algorithmic )  มีลักษณะเป็นการบรรยายพฤติกรรมของระบบดิจิตอลตามเงื่อนไขต่างๆ

2)  Data  Flow  Model (หรือ Register  Transfer  Level : RTL) มีลักษณะเป็นการกำหนดค่าของลอจิกที่ได้จากการกระทำภายในระบบดิจิตอล

3)  Structural  Model  (หรือ Logic Level หรือ Netlist  Representation)  มีลักษณะเป็นการบอกถึงการเชื่อมต่อระหว่างองค์ประกอบต่างๆ ของระบบดิจิตอล

4)   Mixed-level  Model  เป็นการผสมผสานหลายรูปแบบเข้าด้วยกันเพื่อสร้างระบบดิจิตอล

             2.1.3   องค์ประกอบในการเก็บค่า (Object) 

                         ใช้สำหรับเก็บค่าข้อมูล มี  3  Class  คือ

1)   ค่าคงที่  (Constant)

2)   สัญญาณ (Signal)

3)   ตัวแปร (Variabal)

             2.1.4   ประเภทของข้อมูล (Data Type)

1)   Boolean                                  มีค่าเป็น False หรือ True

2)   Bit                                           มีค่าเป็น ‘0’ หรือ ‘1’

3)   Integer                                   จำนวนเต็มมีค่าตั้งแต่  -2147483648  ถึง  2147483647

4)   Character                               มีค่าเป็นตัวอักขระ

5)   Std_logic                               มีค่าเป็น

‘U’  --  Uninitialized

‘X’  --  Unknown

‘0’   --  Logic 0

‘1’   --  Logic 1

‘Z’   --  High  Impedance

‘W’  -- Weak  Unknown

‘L’   --  Weak 0

‘H’   --  Weak 1

‘_’    --  Don’t care

6)    Std_logic_vector                   มีค่าเป็นกลุ่มของบิต  เช่น  Std_logic_vector(3 downto 0)มี  4 บิตMSB…LSB

             2.1.5   ตัวกระทำ (Operator)

                         ยกตัวอย่างเฉพาะตัวกระทำทางบิต  ได้แก่  AND, OR, NOT , NAND, NOR , XOR

             2.1.6   ส่วนประกอบของการออกแบบระบบ (Design  Unit)

1)    Entity

2)    Architecture

3)    Package

4)    Configuration

2.2       วงจรซีเควนเชียล ( Sequential ) 

             วงจรซีเควนเชียล (Sequential) มีความสำคัญกับการออกแบบวงจรดิจิตอล ซีเควนเชียล หมายถึง ลำดับการปฏิบัติงานต่าง ๆ ยกตัวอย่างง่าย ๆ เช่น การทำงานของลิฟต์

             ลิฟต์ประกอบด้วย กลไก ซีเควนเชียล เพราะการปฏิบัติงานลำดับต่อไปของมันจะต้องกำหนดเอาจากสัญญาณเข้า (คือแป้นควบคุมที่มีปุ่มกดให้ไปชั้นต่าง ๆ) และสภาวะปัจจุบันของลิฟต์ในขณะนั้น ( นั่นคือขณะนั้นลิฟต์อยู่ที่ชั้นอะไร ) เช่นการกดปุ่มให้ลิฟต์ขึ้นไปชั้น 3 ไม่ใช่ว่าจะมีสัญญาณไปควบคุมให้มอเตอร์หมุนดึงลิฟต์ขึ้นไปเป็นระยะอีก 2 ชั้นเสมอไป แต่การกำหนดสัญญาณควบคุมเพื่อให้การเปลี่ยนสภาวะไปสู่สภาวะต่อไปนั้น จะต้องกำหนดจากสภาวะปัจจุบันว่าขณะนี้ลิฟต์อยู่ที่ชั้นอะไรด้วย เช่น ลิฟต์หยุดอยู่ที่ชั้น 2 การเปลี่ยนสภาวะก็คือ ดึงลิฟต์ขึ้นไปอีกเพียงชั้นเดียวเท่านั้น ลิฟต์ก็จะอยู่ในสภาวะต่อไปตามที่ต้องการ คือไปอยู่ชั้นที่ 3 ดังนั้นลิฟต์จึงต้องมีกลไกที่จะทราบสภาวะปัจจุบันโดยบันทึกหรือจดจำเอาไว้ตลอดเวลาที่ยังไม่มีสัญญาณควบคุมเข้ามา

             สภาวะปัจจุบัน (present state), สภาวะต่อไป (next state), สัญญาณเข้า (input) ซึ่งต่อไปจะเรียกทับศัพท์ว่า input และการเปลี่ยนสภาวะ (state transition) เป็นหลักพื้นฐานของวงจรซีเควนเชียล

             ตัวอย่างง่าย ๆ อีกอันหนึ่งก็คือ เครื่องนับ (counter) เช่น ใช้นับจำนวนรถที่เข้าจอดที่ลานจอดรถ เครื่องนับจะมีสภาวะปัจจุบันคือ ตัวเลขซึ่งเป็นจำนวนรถที่เข้าจอดอยู่ในลานจอดรถขณะนั้น และเมื่อมี input คือ รถยนต์ที่เข้ามาใหม่ สภาวะต่อไปของเครื่องนับก็จะแสดงตัวเลขที่เป็นจำนวนของรถที่เพิ่มขึ้น

             เมื่อลองกลับไปเปรียบเทียบกับวงจรคอมบิเนชั่นนัล (Combinational circuit) ซึ่งประกอบด้วยCombitional ของเกทต่าง ๆ นั้น เอาพุต (output) จะขึ้นอยู่กับ input ปัจจุบันเท่านั้น แต่เอาพุต     ของวงจรซีเควนเชียลไม่ได้ขึ้นอยู่กับ input ปัจจุบันเท่านั้น แต่ขึ้นอยู่กับ input ในอดีตด้วย เช่น ลิฟต์ หรือ เครื่องนับ ดังที่ได้กล่าวมาแล้ว ดังนั้นจึงต้องมีส่วนที่เป็นหน่วยความจำ (memory) เพิ่มเข้าไปเพื่อจดจำสภาวะที่เกิดจาก inputในอดีต การเพิ่มหน่วยความจำให้กับวงจร Combinational นี้ทำให้วงจรสามารถทำงานต่าง ๆ เพิ่มขึ้นได้อีกมาก โดยที่วงจร Combinational เดิมไม่สามารถจะทำได้

 

             2.2.1 โครงสร้างวงจร Sequential (Block diagram)

 


รูปที่  2.1  โครงสร้าง Block diagram วงจร Sequential

 

โดยที่   x1 - - - xn เป็น Input variable

             Z1 - - - Zm เป็น Output

             y1 - - - yr เป็น Present state (สภาวะปัจจุบัน : PS)

และ     Y1 - - - Yp เป็น Excitation variable หรือ Next state

(สภาวะต่อไป: NS)

หรือเขียนเป็นสมการได้ดังนี้

             Zi = fi (x1, - - - xn, y1, - - - yr) โดยที่ I = 1, - - - m

และ     Yj = fj (x1, - - - xn, y1, - - - yr) โดยที่ j = 1, - - - p

เราสามารถเขียน Block diagram ใหม่เพื่อง่ายแก่การเข้าใจได้ดังรูปที่ 4.2

 

รูปที่  2.2  แบบ (Model) ของวงจร Sequential ทั่วๆไป

 

             2.2.2  ตารางสภาวะ(State table) ผังสภาวะ(State diagram) และAlgorithmic state Machine (ASM) Chart

             ตารางสภาวะ จะบอกข้อมูลต่าง ๆ ดังนี้ คือ Input X. สภาวะปัจจุบัน (PS) สภาวะต่อไป (NS) และ Output Z โดยลักษณะดังในรูปที่ 4.3(a)

 


รูปที่  2.3  ตารางสภาวะ, ผังสภาวะ

            

             ซึ่งภายในตารางสภาวะนี้จะมีข้อมูลต่างๆที่จะนำมาวิเคราะห์หาคุณลักษณะของวงจรSequential ได้ในรูป จะเป็นผังสภาวะ(State diagram)ซึ่งมีข้อมูลเหมือนกับรูป แต่เป็นวิธีทางกราฟ โดยมีวงกลมแทนค่าแต่ละสภาวะ (สภาวะต่าง ๆ ที่เกิดขึ้น) และมีเส้นชี้ไปยังสภาวะต่อไป (NS) โดยมีสัญญาณ Input X ต่อสัญญาณ Z กำกับบนเส้นชี้นั้นโดยทั่ว ๆ ถ้าเราจะวิเคราะห์วงจร Sequential เราจะใช้ state table และถ้าต้องการ synthesis จะใช้ state diagram

             2.2.3   Algorithmic State Machine Chart

             ASM Chart เป็นรูปแบบของ chart ที่สามารถแทนคุณลักษณะการทำงานของวงจร sequential ได้อีกแบบหนึ่ง จะอาศัยการเขียนเป็น Flow Chart ซึ่ง ASM Chart จะมีสัญลักษณ์พื้นฐานอยู่ 3 รูปแบบดังรูป

 

 

รูปที่  2.4  สัญลักษณ์พื้นฐานของ ASM Chart

 

state box บางครั้ง เพื่อให้การเขียนง่ายขึ้น เราจะใช้วงกลมแทน ดังนี้

 


 

รูปที่  2.5  สัญลักษณ์พื้นฐานของ ASM Chart
ตัวอย่าง
การเขียน State diagram เทียบกับ ASM Chart ดังรูปที่ 4.5

 

 

รูปที่  2.6  การเขียน State diagram เทียบกับ ASM Chart

 

             2.2.4   ขั้นตอนการออกแบบวงจรซีเควนเชียล

             การออกแบบวงจร Synchronous Sequential เป็นขั้นตอนที่กลับกันกับการวิเคราะห์วงจร คือเป็นการใช้ฟังก์ชันการทำงานตามที่ต้องการ ( Design Specification ) มาทำสร้างLogic Diagram ของวงจร

Design Procedure

Step 1 : Problem Statement / Specification : กำหนดความต้องการของวงจร

Step 2 : Conceptualization :

a) กำหนด State ต่าง ๆ ขึ้นมา

b) เขียน State Diagram

c) เขียน State Table

Step 3 : Solution / Simplification :

a) กำหนดรหัสสถานะ ( State Code ) ให้กับแต่ละ State และกำหนด State Variable

b) เขียน Transition Table โดยแทนรหัสสถานะใน State Table

c) พิจารณา Excitation Table ของ Flip-Flop ตัวที่ใช้ เพื่อเขียน Excitation Table

ของวงจร

d) พิจารณา Excitation Table เพื่อเขียน K-map และหา Next State Function และ

O/P Function

Step 4 : Realization : นำฟังก์ชันที่ได้ มาเขียน Logic Diagram

 

2.3 สัญญาณไฟจราจร

             สัญญาณไฟจราจร (Traffic Signalization) เป็นเครื่องมือสำคัญอย่างหนึ่งในการบังคับกระแสจราจร สัญญาณไฟจราจรสามารถใช้ควบคุมการจราจรที่ให้ประสิทธิภาพมากที่สุด โดยเฉพาะอย่างยิ่งการควบคุมการจราจร ณ บริเวณทางแยก ระบบไฟสัญญาณทำให้การเคลื่อนที่เป็นไปอย่างมีระเบียบ ป้องกันปัญหาความขัดแย้งและความสับสนของยวดยานในทิศทางต่าง ๆ ลำดับสิทธิแก่ผู้ที่สมควรได้ไป ก่อน/หลัง และช่วยลดอุบัติเหตุ ซึ่งระบบควบคุมชนิดอื่นอาจจะไม่สามารถทำหน้าที่อย่างสมบูรณ์เทียบเท่าระบบสัญญาณไฟ

             ชนิดของสัญญาณไฟจราจรสัญญาณไฟจราจร ไม่ได้ใช้เฉพาะแต่การควบคุมการจราจรตามบริเวณทางแยกต่าง ๆ เท่านั้น แต่ยังนำไปใช้ในงานต่าง ๆ ที่เกี่ยวข้องกับการจราจร เพื่อใช้เตือน หรือ บังคับ ผู้ใช้ยวดยาน ให้ปฏิบัติตามกฎหมายจราจร ซึ่งจะทำให้การเคลื่อนที่เป็นไปอย่างมีระเบียบ และปลอดภัยมากยิ่งขึ้น สำหรับสัญญาณไฟที่ใช้โดยทั่วไปมี 3 สีคือ

             -    สีแดง หมายถึง การบังคับให้ยวดยานทุกคันหยุด

             -    สีเหลือง หมายถึง การเตือนให้ผู้ขับขี่ชะลอความเร็ว เพิ่มความระมัดระวังให้มากยิ่งขึ้น และบางครั้งให้หยุดเมื่อเห็นว่าจะไม่ปลอดภัย

             -    สีเขียว หมายถึง การอนุญาติให้ยวดยานแล่นผ่านได้

             ผลดีและผลเสียของการติดตั้งสัญญาณไฟจราจร

             สัญญาณไฟจราจรที่ติดตั้งตามบริเวณต่าง ๆ นั้น มีทั้งผลดีและผลเสีย ซึ่งพอจะสรุปกล่าวได้ดังนี้คือ

             ผลดี

             -    การจราจรเป็นไปอย่างมีระเบียบ

             -    ลดอุบัติเหตุบางชนิด เช่น อุบัติเหตุของคนเดินถนน               

             -    ให้ความปลอดภัยแก่รถทางโท

             -    เสริมความมั่นใจให้กับผู้ใช้ยวดยาน

ผลเสีย

             -    เกิดความล่าช้าบริเวณทางแยกโดยเฉพาะนอกเวลาเร่งด่วน

             -    การประสบอุบัติเหตุบางประเภท เช่น ชนท้าย

             -    การติดตั้งสัญญาณไฟที่ระยะเวลาไม่เหมาะสมอาจสร้างความล่าช้าและความเบื่อหน่าย

             ปริมาณการจราจร (Traffic Volume) หมายถึง จำนวนยานพาหนะที่ผ่านจุดที่กำหนดบนทางในหนึ่งหน่วยเวลา ซึ่งอาจวัดในค่าของปริมาณในแต่ละทิศทางการเคลื่อนที่หรือรวมในสองทิศทาง หรือทุกทิศทางที่ผ่านจุดนั้น ๆ ปริมาณการจราจรเป็นตัวแปรพื้นฐานที่สำคัญตัวหนึ่งสำหรับบอกสภาพการจราจร และยังใช้เป็นข้อมูลพื้นฐานในงานวิศวกรรมจราจรต่าง ๆ เช่น งานวางแผน ,งานออกแบบทางหลวง,งานควบคุมการจราจร,งานจัดระบบจราจร

วิธีการสำรวจปริมาณจราจร สามารถกระทำได้หลายวิธี คือ

1)    ใช้คนนับ (Manual Counting)

2)    ใช้เครื่องมือ (Mechanical Count)

3)    ใช้ภาพถ่าย (Photographic Techniques)

4)    ใช้การเคลื่อนที่ของรถ(Moving Vehicles Method)

 


edit @ 7 Mar 2010 02:50:03 by bekery_a

edit @ 7 Mar 2010 02:51:45 by bekery_a