วันพฤหัสบดีที่ 29 กันยายน พ.ศ. 2559

Learning journal week6

Counter & Shift register

counter

counter หรือ วงจรนับ เกิดจากการนำเอาฟลิปฟล็อปที่ต่อกันเป็นวงจรมานับจำนวนคล๊อก (Clock) หรือพัลซ์ (Pulse) ที่ป้อนเข้าทางอินพุต หรือบางที่อาจเรียกว่าวงจรหารความถี่ หลักการทำงาน ของวงจรส่วนใหญ่จะเป็นวงจรการนับแบบเลขฐานสอง วงจรนับสามารถแบ่งออกเป็น 2 แบบใหญ่ๆ คือ
  1. วงจรการนับแบบไม่เข้าจังหวะ (Asynchronous Counter หรือ Ripple Counter)
  2. วงจรการนับแบบเข้าจังหวะ (Synchronous Counter หรือ Parallel Counter)

วงจรการนับแบบไม่เข้าจังหวะ (Asynchronous Counter)


ในการต่อแบบAsynchronousนั้นส่วนใหญ่จะใช้ J-K Flip Flop มาต่อเรียงกัน สถานะเอาต์พุตของ ฟลิปฟลอปแต่ละตัว ขึ้นอยู่กับสถานะเอาต์พุตของฟลิปฟลอปตัวก่อนหน้า คือ ฟลิปฟลอปตัวแรกจะส่งสัญญาณ (Pulse ) จาก Q ไปกระตุ้น (Trigger) ที่ Clk ของฟลิปฟลอปตัวที่สอง และฟลิปฟลอปตัวที่สองจะส่งสัญญาณไปกระตุ้น (Trigger) ที่ Clk ของฟลิปฟลอปตัวที่สาม ไปเรื่อย ๆ ตามขั้นตอนการทำงานของวงจรแบบนี้มีลักษณะไหลเป็นระลอก จึงทำให้มีชื่ออีกอย่างหนึ่งว่า วงจรนับแบบริบเปิล (Ripple Counter)

*วงจรนับแบบไม่เข้าจังหวะ (Asynchronous Counter) ที่ได้ศึกษามาแล้วนั้นใช้ได้ดีกับความถี่ต่ำๆ เนื่องจากปัญหาความล่าช้าของสัญญาณเอาต์พุตหรือเกิดเวลาหน่วงในการส่งข้อมูลจากอินพุตไปยังเอาต์พุต ของฟลิปฟลอปแต่ละตัว


ข้อดีข้อเสียของ วงจรการนับแบบไม่เข้าจังหวะ (Asynchronous Counter)



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

วงจรการนับแบบเข้าจังหวะ (Synchronous Counter)




การทำงานของวงจรนับที่ความถี่สูงๆ จำเป็นที่จะต้องให้ฟลิปฟลอปหลายๆตัวต่อกัน ได้รับสัญญาณกระตุ้นไปพร้อมๆ กัน เพื่อหลีกเลี่ยงปัญหาที่เกิดจากการหน่วงเวลาของฟลิปฟลอป เป็นวงจรนับที่เอาต์พุตของฟลิบฟลอป ที่เปลี่ยนแปลงพร้อมๆกันตามสัญญาณคล๊อก(Clock) วงจรนับชนิดนี้เรียกว่า วงจรนับแบบเข้าจังหวะ (Synchronous Counter)

Synchronous up Counter

 การทำงาน ของ Synchronous up Counter คือ

A1 จะเปลี่ยนเมื่อ A0 = "1"
A2 จะเปลี่ยนเมื่อ A1,A0 = "1"
A3 จะเปลี่ยนเมื่อ A2,A1,A0 = "1"


Synchronous up Counter

การทำงาน จะคล้ายกับ Synchronous up Counter แต่การต่อวงจรจะต่างกันเล็กน้อยดังรูปด้านล่าง
A1 จะเปลี่ยนเมื่อ A0 = "1"
A2 จะเปลี่ยนเมื่อ A1,A0 = "1"
A3 จะเปลี่ยนเมื่อ A2,A1,A0 = "1"




shift register

ลักษณะของการต่อวงจร shift register โดยใช้ IC 74HC166

รีจิสเตอร์เป็นวงจรที่ใช้ในการเก็บค่าทางไบนารี่ใช้ในการเก็บค่าในระหว่างการประมวลผลโดยใช้flip-flop1ตัวสำหรับการจำข้อมูล1บิต โดยค่าที่ถูกใส่เข้ามา1 บิต ก็ตะถูกเก็บไว้ที่ขา เอาท์พุต

การนำข้อมูลเข้าไปเก็บ และ การนำข้อมูลออก ของ register ทำได้โดย
แบบอนุกรม (serial)   เป็นการนำข้อมูลที่รีจิสเตอร์สามารถรองรับได้ เข้า หรือออก ครั้งละ 1 บิต
แบบขนาน (Parallel) เป็นการนำข้อมูลทั้งหมด (ทุกบิต) ที่รีจิสเตอร์สามารถรองรับได้ เข้า หรือออก พร้อมกันครั้งเดียวทุกบิต

ชนิดของ register



เราแบ่งชนิดของรีจิสเตอร์ตามการนำข้อมูลเข้า/ออกได้เป็น 2 ชนิด
ชิพรีจิสเตอร์ (Shift Register) หรือ รีจิสเตอร์แบบอนุกรม (Serial Register)
ทรานสเฟอร์รีจิสเตอร์ (Transfer Register) หรือ รีจิสเตอร์แบบขนาน (Parallel Register)

โหมดการทำงานของ shift register



Serial in to Parallel - out (SIPO)

เป็นรีจิสเตอร์ที่มีการนำเข้าแบบอนุกรม (บิตขวาสุดก่อน) และการนำข้อมูลออกไปใช้แบบขนาน (นำออกจากเอาท์พุตของ flip-flop ทุกตัว)ในการทำงานนั้น เมื่อมีการนำอินพุตทุกบิตเข้าไป ค่าบิตที่นำเข้าไปจะปรากฎที่เอาท์พุตในทันทีทุกบิตพร้อมกัน

Serial in to Serial - out (SISO)

เป็นรีจิสเตอร์ที่มีการนำเข้าแบบอนุกรม (บิตขวาสุดก่อน) และการนำข้อมูลออกไปใช้อนุกรมเช่นกัน(นำออกจากเอาท์พุตของ flip-flop ตัวสุดท้าย)

Parallel in to Serial - out(PISO)

รีจิสเตอร์นี้  ข้อมูลที่ป้อนที่อินพุตจะทำการใส่ทุกบิตในเวลาเดียวกันแทนการใส่ตามกันไปทีละบิต
ส่วนเอาท์พุตจะออกมาทีละบิตแบบใน serial out อื่น ๆ
ถ้าขา SHIFT/LOAD  = 0   G1  ถึง G3 จะทำงาน  ค่าอินพุตจะถูกนำเข้าไปในรีจิสเตอร์แบบขนาน
ถ้าขา SHIFT/LOAD  = 1 G4  ถึง G6 จะทำงาน ค่าเอาต์พุตจะ Shift ไปทางขวาทีละบิต
ภาพตัวอย่างแสดง output
ภาพตัวอย่างแสดง output

Parallel in to Parallrl - out(PIPO)

เป็นรีจิสเตอร์ที่มีการนำเข้าแบบ Parallel และการนำข้อมูลออกไปใช้ Paralel เช่นกัน(นำออกจาก
เอาท์พุตของ flip-flop พร้อมกันทุกตัว)

*แถม* Ring counter

เป็น counter ที่ใช้ flip-flop 1 ตัวสำหรับการแสดงค่าสถานะในลำดับของวงจร  วงจรจะไม่ต้องมีเกตช่วยในการถอดรหัสเลย
ถ้าเป็น ring counter ขนาด 10 bit วงจรก็จะมีเอาท์พุตที่แทนค่าในเลขฐานสิบได้เลย


10 bit ring counter ที่มีค่า 1010000000


ตารางแสดงสถานะการทำงานเมื่อจ่าย clock














ไม่มีความคิดเห็น:

แสดงความคิดเห็น