วงจรนับ (counter)
วงจรนับ
วงจรนับ (Counter)
เป็นวงจรที่ทำหน้าที่นับสัญญาณพัลส์ โดยให้ผลเป็นจำนวนนับ ซึ่งอาจ
เป็นรหัสเลขฐานสอง
รหัสเลขฐานสิบ หรือรหัสอื่นๆ วงจรนับมีการประยุกต์ใช้งานได้หลากหลาย
เช่นใช้ในวงจรนับจำนวนทั่วไป
วงจรนับความถี่ (Frequency Counter) วงจรฐานเวลา (Timebase)
เป็นต้น
วงจรนับประกอบด้วยฟลิปฟลอปหลายตัวมาต่อกัน
ลักษณะการต่อวงจรมี 2 แบบ จึงทำให้
ลักษณะของวงจรนับมี2
แบบ คือ
1. วงจรนับแบบไม่เข้าจังหวะหรือแบบอะซิงโครนัส
(Asynchronous Counter) วงจรนับ
แบบนี้มีการต่อฟลิปฟลอปเรียงกัน
ทำให้ฟลิปฟลอปทำงานไม่พร้อมกัน และมีการหน่วงเวลา
(Delay) เกิดขึ้น
ทำให้การนับสัญญาณที่มีความถี่สูง มีความผิดพลาดคลาดเคลื่อนจึงไม่เหมาะกบัการ
ใช้งานที่ความถี่สูง
แต่จดัเป็นวงจรที่ออกแบบได้ง่ายที่สุด
2.วงจรนับแบบเข้าจังหวะหรือแบบซิงโครนัส
(Synchronous Counter) วงจรนบัแบบนี้มี
การต่อฟลิปฟลอปทุกตัวให้ทา
งานพร้อมกนั จึงสามารถใช้กับสัญญาณที่มีความถี่สูงกว่าได้แต่มี
ความยุ่ง
ยากในการออกแบบมากกว่า
ลักษณะการนับของวงจรนับ
มี2 ลักษณะ คือ
1)การนับขึ้นหรือนับเดินหน้า
(Count Up) ให้จำนวนนับจากน้อยไปมากเช่น 0 - 1 - 2
2) การนับลงหรือนับถอยหลัง
(Count Down) ให้จำนวนนับจากมากมาน้อย เช่น 9 - 8 - 7
วงจรนับไบนารี่ แบบ Asynchronous
ตัวนับแบบ asynchronous
2 บิต ถูกแสดงดังในรูปข้างล่าง
สัญญาณนาฬิกาภายนอกถูกต่อกับขาอินพุตสัญญาณนาฬิกาของฟลิบฟล๊อบตัวแรก (FF0) เพียงตัวเดียวเท่านั้น ดังนั้น FF0 เปลี่ยนสถานะเมื่อที่ขอบขาลงของแต่ละพัลซ์
แต่ FF1 เปลี่ยนเพียงเมื่อทริกซ์โดยขอบขาลงของเอาท์พุต Q
ของ FF0 เนื่องจากการหน่วงเวลาที่เกิดข้างในผ่านฟลิบฟล๊อบ
การเปลี่ยนของพัลซ์สัญญาณนาฬิกาอินพุตและการเปลี่ยนแปลงของเอาท์พุต Q ของ FF0 ไม่สามารถที่จะเกิดขึ้นในเวลาเดียวกัน
ดังนั้นฟลิบฟล๊อบไม่สามารถถูกทริกซ์ทันทีทันใด
ซึ่งจะทำให้เกิดการทำงานแบบไม่ซิงโครนัส
รูปข้างล่างคือตัวนับไบนารี่แบบ
asynchronous แบบ 3 บิต
และไดอะแกรมทางเวลาสำหรับ 1 คาบ (one cycle) ตัวนับแบบ 3 บิตนี้ จะทำงานคล้ายกับแบบ 2 บิต ที่กล่าวถึงก่อนหน้านี้ ยกเว้นมันมี 8 สถานะ
ซึ่งทำโดยเพิ่มฟลิบฟล๊อบตัวที่ 3 เข้าไป
วงจรนับสิบ แบบ Asynchronous
วงจรนับแบบไบนารี่ซึ่งได้กล่าวก่อนหน้านี้
มีอยู่ด้วยกัน 2n สถานะ แต่วงจรนับที่มีสถานะน้อยกว่า 2n
ยังสามารถเกิดขึ้นได้
วงจรนับเหล่านี้ถูกออกแบบเพื่อให้มีจำนวนสถานะตามลำดับของมัน
ซึ่งถูกเรียกว่าลำดับซึ่งปัดออก
ลำดับเหล่านี้ทำได้โดยบังคับให้วงจรนับทำการรีไซเคิ้ลก่อนผ่านทุกสถานะปกติของมัน
เมื่อวงจรนับได้นับถึง
10 (1010) ฟลิบฟล๊อบทุกตัวจะถูกเคลียร์ สังเกตุว่าเพียง Q1
และ Q3 ถูกใช้เพื่อถอดรหัสการนับ 10 นี่ถูกเรียกว่าเป็นการถอดรหัสแบบบางส่วน เนื่องจากตั้งแต่ 0 ถึง 9 ไม่มีสถาวะไหนที่ Q1 และ
Q3 มีสถานะ High ในเวลาเดียวกัน
ลำดับของวงจรนับสิบถูกแสดงในตารางข้างล่าง
วงจรนับขึ้นลง แบบ
อะซินโครนัส ( Asynchronous Up-Down Counter)
ในการใช้งานบางอย่างวงจรนับต้องสามารถที่จะนับขึ้นและลง
วงจรข้างล่างเป็นวงจรนับขึ้นลงแบบ 3 บิต
มันนับขึ้นหรือลงซึ่งขึ้นอยู่กับสถานะของสัญญาณควบคุม ขึ้นและลง
เมื่ออินพุตของการนับขึ้นเป็น 1 อินพุตของการนับลงต้องเป็นศูนย์
วงจรแนนเกตระหว่าง FF0 และ FF1 จะส่งเอาท์พุตซึ่งไม่กลับขั้ว
(Q) ของ FF0 ไปสู่อินพุตสัญญาณนาฬิกา (clock
input) ของ FF1 ในทำนองเดียวกัน Q ของ FF1 จะถูกส่งผ่านวงจรแนนเกตอีกชุดหนึ่งไปสู่อินพุตสัญญาณนาฬิกาของ
FF2 จากหลักการนี้วงจรนับจะทำการนับขึ้น
เมื่ออินพุตที่ควบคุมการนับขึ้นอยู่ที่
0 และ อินพุตที่ควบคุมการนับลงอยู่ที่ 1 เอาท์พุตด้านกลับของ FF0 และ FF1 ถูกส่งไปให้กับ อินพุตสัญญาณนาฬิกาของ FF1 และ FF2
ตามลำดับ
วงจรนับแบบซิงโครนัส (Synchronous
Counters)
ในวงจรนับแบบซิงโครนัส
อินพุตที่รับสัญญาณนาฬิกาของฟลิบฟล๊อบทุกตัวถูกต่อด้วยกันและถูกทริกซ์ด้วยพัลซ์อินพุต
ด้วยเหตุนี้ฟลิบฟล๊อบทุกตัวจะเปลี่ยนสถานะไปพร้อมกัน (ในแบบขนาน)
วงจรข้างล่างเป็นวงจรนับแบบซินโครนัส 3 บิต อินพุต J และ K ของ FF0 ถูกต่อกับสัญญาณ
High FF1 มีอินพุต J และ K ของมัน ซึ่งต่ออยู่กับเอาท์พุตของ FF0 และ อินพุต J
และ K ของ FF2 ถูกต่อกับเอาท์พุตของเกตแอนซึ่งถูกป้อนโดยเอาท์พุตของ
FF0 และ FF1
ลองพิจารณาสิ่งที่เกิดขึ้นหลังจากพัลซ์ลูกที่
3 เอาท์พุตทั้งของ FF0 และ FF1 เป็น High ขอบขาขึ้นของพัลซ์นาฬิกาลูกที่ 4 จะทำให้ FF2 เปลี่ยนสถานะของมันเนื่องจากแอนเกต
ลำดับการนับสำหรับวงจรนับแบบ
3 บิต ถูกแสดงในตารางข้างล่าง
ข้อดีที่สำคัญมากของวงจรนับแบบซินโครนัส
คือ ไม่มีการหน่วงเวลาสะสมเนื่องจากฟลิบฟล๊อบทุกตัวถูกทริกซ์แบบขนาน
ด้วยเหตุนี้ความถี่ที่ทำงานได้สูงสุดสำหรับวงจรนับแบบนี้จะสูงกว่าในกรณีของ ripple
counter
วงจรนับสิบแบบซินโครนัส
(Synchronous Decade Counter)
คล้ายกันกับวงจรนับสิบแบบอะซินโครนัส
วงจรนับสิบแบบซินโครนัสนับจาก 0 ถึง 9 และ
ย้อนกลับไป 0 อีกครั้ง การย้อนกลับนี้ทำได้โดยการบังคับให้
สถาวะ 1010 กลับไปเป็นสภาวะ 0000 การนับแบบนี้สามารถถูกสร้างได้จากวงจรข้างล่าง
จากลำดับทางด้านซ้าย
เราจะสังเกตุได้ว่า
- Q0 สลับไปสลับมาทุกพัลซ์สัญญาณนาฬิกา
- Q1 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ
Qo = 1 และ Q3 = 0
- Q2 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ
Q0 = Q1 = 1
- Q3 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ
Q0=1, Q1=1, and Q2=1 (count 7), or เมื่อ Q0=1 and
Q3=1 (count 9)
คุณลักษณะนี้ถูกทำขึ้นด้วยลอจิก
แอน/ออร์ ซึ่งต่อดังในรูปข้างบน
วงจรนับขึ้นลงแบบซินโครนัส
(Synchronous Up-Down Counter)
วงจรนับขึ้นลงแบบซินโครนัส
3 บิต และตารางของลำดับของมันถูกแสดงข้างล่าง
คล้ายกับวงจรนับขึ้นลงแบบอะซินโครนัส
วงจรนับขึ้นลงแบบซินโครนัสยังคงมีอินพุตควบคุมขึ้นลง
มันถูกใช้เพื่อควบคุมทิศทางของวงจรนับผ่านลำดับบางลำดับ
การทดสอบของตารางซีเควนซ์แสดง
- สำหรับทั้งซีเควนซ์ขึ้นและลง
Q0 สลับไปสลับมาทุกพัลซ์นาฬิกา
- สำหรับซีเควนซ์สำหรับนับขึ้น
Q1 เปลี่ยนสถานะทุกพัลซ์นาฬิกาตัวถัดไปเมื่อ Q0 =1
- สำหรับซีเควนซ์นับลง
Q1 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ Q0 = 0
- สำหรับซีเควนซ์นับขึ้น
Q2 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ Q0=Q1=1
- สำหรับซีเควนซ์นับลง
Q2 เปลี่ยนสถานะที่พัลซ์นาฬิกาตัวถัดไปเมื่อ Q0=Q1=0