วันศุกร์ที่ 18 กันยายน พ.ศ. 2558

Digital Weekly Jurnal#6 :: SEQUENTIAL CIRCUITS

     มาถึง EP.06 แล้ว จากบทความที่แล้วได้พูดถึงเกี่ยวกับ Multiplexer และ DeMultiplexer นั้น คราวนี้ก็มีเนื่องด้วยความที่อยากจะสร้างวงจรนับแบบ Binary ขึ้นมา มันมีหลักการอย่างไรบ้าง และต้องรู้เรื่องเกี่ยวกับอะไรบ้าง

Sequential Logic
แบ่งได้เป็น 2 แบบ คือซิงโครนัสและอะซิงโครนัส ส่วนรายละเอียดจะลงลึกไปทีหลัง
Flip - Flop
     อุปกรณ์ความจำหรืออุปกรณ์ที่สามารถเก็บลอจิกได้ เป็นอุปกรณ์หลักสำหรับวงจร Sequential Logic
SR Flip - Flop
        เป็น Flip - Flop ที่ง่ายที่สุดที่ประกอบ Input S และ R และ Output Q และ Q' การต่อวงจรก็นำ NOR หรือ NAND มาต่อ โดย Input แรกจะเป็น S หรือ R ก็ได้ ส่วน Input อีกช่องจะเป็น Output จาก NOR หรือ NAND อีกตัวมาต่อไขว้กัน ทำให้ได้ OUTPUT เป็น Q และ Q'

      SR Flip - Flop With NOR Gate
        การทำงานของวงจรนี้ขึ้นอยู่กับ Input S และ R ถ้าสัญญาณใดสัญญาณหนึ่งเป็น Logic 1 สัญญาณนั้นจะเป็นตัวกำหนดค่า Output Q' เช่นถ้า S เป็น 1 และ R เป็น 0 ก็เป็นการ Set ให้ Output Q' เป็น 1 แต่ถ้า S เป็น 0 แล้ว R เป็น 1 จะเป็นการ Reset Output Q' เป็น 0 แต่ถ้าเป็น 0 ทั้งคู่ Output Q' จะคงสภาพเดิมไม่เปลี่ยนแปลง เป็นสภาวะที่ใช้จำข้อมูล ส่วนสภาวะสุดท้ายที่เป็น 1 ทั้งคู่ เป็นสภาวะที่ไม่นำมาใช้งานเพราะว่าการทำงานของวงจรจะไม่เหมือนกันเมื่อเปลี่ยน Gate Flip - Flop ดังนั้นจึงไม่สามารถทำนายการทำงานของวงจรได้ เรียกเงื่อนไขนี้ว่า "Invalid Condition"
     SR Flip - Flop With NAND Gate
       การทำงานเหมือนกันเด้ะ แต่ต่างกันในสภาวะเก็บข้อมูล  กรณีที่ใช้ Gate NAND สภาวะข้อมูลไม่เปลี่ยน จะเกิดขึ้นเมื่อ Input S และ R เป็น 1 ทั้งคู่ ส่วนสภาวะ "Invalid" จะเกิดเมื่อ Input เป็น 0 ทั้งคู่
JK Flip - Flop
        การทำงานจะขึ้นอยู่กับ Output Q Input J , K และ ขอบสัญญาณขาขึ้นของสัญญาณ CLK ถ้า CLK มี Logic 1 หรือ 0 หรือ ขอบลบ ค่า Q จะคงค่าเดิมไว้ไม่ว่า J และ K จะเป็นอะไรก็ตาม แต่ถ้า CLK เป็นขอบบวก การทำงานจะขึ้นกับ Input J K และค่า Q เดิม เช่นถ้า J เป็น 1 และ K เป็น 0 จะ Set Flip - Flop ทำให้ Q เป็น 1 แต่ถ้า J เป็น 0 และ K เป็น 1 จะเป็นการ Reset Flip - Flop ทำให้ Q เป็น 0 แต่ถ้า J เป็น 0 และ K เป็น 0 Flip - Flop จะอยู่ในสภาวะจำค่าเดิม Q ไม่เปลี่ยน และถ้า J เป็น 1 และ K เป็น 1 Flip - Flop จะอยู่ในสภาวะกลับตัว (Toggle) คือ Q จะเปลี่ยนเป็นค่าตรงข้ามกับค่าเดิม
D Type Flip - Flop
       เพื่อแก้ปัญหาสภาวะ "Invalid" ของ SR Flip - Flop เมื่อปรับวงจรตามรูปแล้ว ทำให้ S และ R ไม่มีโอกาสเป็น 0 พร้อมกัน สภาวะ "Invalid" ก็ไม่เกิดขึ้น การทำงานของวงจร สัญญาณ Output Q จะมีค่าเหมือนกับ D
แต่รูปที่นำมานั้นดันมีสัญญาณ CLK มาด้วย เรียก Flip - Flop นี้ว่า D Type Flip - Flop แบบมีสัญญาณควบคุม
T Type Flip - Flop
       อนึ่งการทำงานของ Flip - Flop ในสภาวะกลับตัว คือ Q เปลี่ยนจากค่าเดิมเป็นค่าตรงข้ามนี้สามารถพิจารณาให้เป็น Flip - Flop อีกแบบหนึ่งได้ เรียกว่า T Type Flip - Flop เป็น Flip - Flop ที่สร้างจาก D Type Flip - Flop และ T Type Flip - Flop ก็สามารถสร้างจาก JK Flip - Flop ได้เช่นกัน
  ประโยชน์ทางการ Flip Flop
         วงจร Flip Flop  สร้างขึ้นมาเพื่อใช้ในการเก็บ Memory ของ Input Logic ที่เข้ามา ดังนั้น ประโยชน์หลักๆของ Flip Flop  คือ
         1. Digital Counter
           การนับของวงจรดิจิตอลนั้นจะแบ่งออกเป็น 2 ประเภท คือ

                 1.1 Asynchronous Counter
           
         สถานะ Output ของ Flip Flop  แต่ละตัวนั้น จะขึ้นอยู่กับสถานะ Output ของ Flip Flop  ตัวก่อนหน้า คือ Flip Flop  ตัวแรกจะส่งสัญญาน (Plus) จาก Q ไปกระตุ้น (Trigger) ที่ Clk ของ Flip Flop  ของตัวที่สอง และ Flip Flop  ตัวที่สองก็จะส่งสัญญาณไปกระตุ้น (Trigger) ที่ Clk ของ Flip Flop  ของตัวที่สาม ไปเรื่อยๆ ตามขั้นตอนการทำงานของวงจรแบบนี้จะมีลักษณะไหลเป็นระลอก

     ข้อดี
          - สร้างง่าย
     ข้อเสีย
          - ประเด็นเรื่องของความเร็ว จากการสะสม Propagation Delay จาก Gate แต่ละตัว ยกตัวอย่าง Flip Flop ตัวนึงใช้เวลาในการทำงาน 50 ns หากมีการใช้ Flip Flop 4 ตัว ต้องใช้เวลาในการทำงานทั้งสิ้น 50 ns * 4 = 200 ns แสดงว่าความถี่สูงสุดในการนับที่ใช้ได้คือ 1/(200*10^-9) = 5 MHz
          - Ripple Effect

                 1.2 Synchronous Counter
            การทำงานของวงจรนับที่ความถี่สูงๆ จำเป็นที่ต้องให้ Flip Flop หลายๆตัวต่อกัน ได้รับสัญญาณกระตุ้นไปพร้อมๆกัน เพื่อหลีกเลี่ยงปัญหาที่เกิดจากการหน่วงเวลาของ Flip Flop  เป็นวงจรนับที่ Output ของ Flip Flop ที่เปลี่ยนแปลงพร้อมๆกันตามสัญญาณ Clock 
          Synchronous Counter ประยุกต์อะไรได้บ้าง
               - วงจรนับเลข binary 4 bit 
               - วงจรนับเลขถอยหลัง binary 4 bit 

       2. ประยุกต์เป็นวงจรเช็ครอบการหมุนของมอเตอร์
           เป็นวงจรที่ใช้หลอด LED คู่กับ Photo-transistor เพื่อตรวจสอบแสงที่เข้าไปกระทบกับ Photo-transistor ในแต่ละรอบการตกกระทบนั้น ก็จะถูกเก็บไว้เป็น Counter ในแต่ละครั้ง

       3. Shift Register
            คือ กลุ่มของ Flip Flop ที่ต่อเรียงกันและทำงานร่วมกัน ใช้สำหรับจัดเก็บข้อมูลหรือส่งออกข้อมูลในรูปเลขฐานสอง โดยพื้นฐานเกิดจากการนำ D - Type Flip Flop มาต่อเรียงกัน
         Shift Register มีโหมดการทำงานอยู่ 4 โหมด คือ
           3.1 Serial - in to Parallel - out (SIPO)
           3.2 Serial - in to Serial - out (SISO)
           3.3 Parallel - in to Serial - out (PISO)
           3.4 Parallel - in to Parallel - out (PIPO)
      ------------------------------------------------------------------------------------------------------
               3.1 Serial - in to Parallel - out (SIPO)
             เมื่อนำข้อมูล Input เข้าทีละหลัก แต่นำออก Output พร้อมกัน เรียกว่า Serial - in to Parallel - out

               3.2 Serial - in to Serial - out (SISO)
          
             เป็น Shift Register แบบ Serial - in to Serial - out ข้อมูลแบบอนุกรมจะถูกป้อนเข้าที่ Input Serial Data in และข้อมูลอนุกรมออกที่ Output Serial Data out

               3.3 Parallel - in to Serial - out (PISO)
             เมื่อนำข้อมูล Input เข้าพร้อมกัน แต่นำออกทีละหลัก เรียกว่า Parallel - in to Serial - out 

               3.4 Parallel - in to Parallel - out (PIPO)
             เมื่อนำข้อมูล Input เข้าพร้อมกัน และนำข้อมูลออกที่ Output พร้อมกัน เรียกว่า Parallel - in to Parallel - out

ขอขอบคุณ Ref :: shift-register
      ------------------------------------------------------------------------------------------------------
Class Work
  1. ทดลองต่อ Flip Flop เล่นและต่อวงจร Counter ขึ้นมา
    
ผลปรากฏว่า ใช้งานได้ตาม Truth Table เป๊ะ
 2. ต่อวงจร Shift Register โดยใช้ IC 74HC166 8-bit parallel - in / serial - out Shift Register
พบปัญหา คือ วงจรไม่ทำงาน ตอนแรกไล่เช็คตาม Datasheet แล้วก็ต่อถูกตาม Datasheet ซึ่งตอนหลังก็พบสาเหตุมาดังนี้
    1. เผลต่อเป็น Serial in/Serial out วงจรไม่ทำงาน
    2. น่าเจ็บใจมาก เสียบ IC ไม่แน่น +++ !!!!! ทำให้วงจรไม่ทำงาน (พอเสียบแล้วต้องมือกดช่วย มันเด้งออกตลอด)
    สุดท้ายวงจรก็ใช้งานได้ 
      ------------------------------------------------------------------------------------------------------
ปัญหาทางการเรียน
 - ไม่เข้าใจในเรื่องของ  Synchronous Counter ทำให้ต้องอ่านตำรานอกเพิ่มเพื่อความเข้าใจ
 - ยังไม่เห็นประโยชน์ทางด้าน Shift Register  มากขึ้น
 - ไม่ค่อยเห็น T Type Flip Flop ใช้งานจริงมากนัก


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

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