- หลักการพื้นฐานของตัวถอดรหัส:
- ข้อเสียของตัวถอดรหัสมาตรฐาน:
- ตัวถอดรหัสลำดับความสำคัญ:
- 3: 8 ตัวถอดรหัส:
- 4:16 ถอดรหัส:
- การใช้งาน:
Decoder เป็นประเภทของ Combinational Circuit ที่ถอดรหัสค่าบิตเล็กเป็นค่าบิตขนาดใหญ่ โดยปกติจะใช้ร่วมกับตัวเข้ารหัสซึ่งตรงข้ามกับสิ่งที่ตัวถอดรหัสทำดังนั้นอ่านเกี่ยวกับตัวเข้ารหัสที่นี่ก่อนที่คุณจะดำเนินการกับตัวถอดรหัส เช่นเดียวกับตัวเข้ารหัสมีตัวถอดรหัสหลายประเภทเช่นกัน แต่จำนวนบรรทัดเอาต์พุตในตัวถอดรหัสจะมากกว่าจำนวนสายอินพุตเสมอ เราจะเรียนรู้ว่าตัวถอดรหัสทำงานอย่างไรและเราจะสร้างตัวถอดรหัสสำหรับโครงการของเราได้อย่างไรในบทช่วยสอนนี้
หลักการพื้นฐานของตัวถอดรหัส:
อย่างที่บอกไปก่อนหน้านี้ตัวถอดรหัสเป็นเพียงส่วนหนึ่งของตัวเข้ารหัส ใช้ค่าไบนารีจำนวนหนึ่งเป็นอินพุตและถอดรหัสจากนั้นเป็นบรรทัดเพิ่มเติมโดยใช้ตรรกะ ถอดรหัสตัวอย่างที่แสดงด้านล่างซึ่งจะใช้เวลาใน 2 เส้นเป็น input และแปลงให้ถึง 4 เส้น
กฎง่ายๆอีกประการหนึ่งของตัวถอดรหัสก็คือถ้าจำนวนอินพุตถูกพิจารณาว่าเป็น n (ที่นี่ n = 2) จำนวนเอาต์พุตจะเท่ากับ2 n (2 2 = 4) ซึ่งเป็นสี่ในกรณีของเรา ตัวถอดรหัสมี 2 สายอินพุตและ 4 สายเอาต์พุต; ดังนั้นตัวถอดรหัสประเภทนี้จึงถูกเรียกว่าเป็นตัวถอดรหัส 2: 4 พินอินพุตสองพินมีชื่อเป็น I1 และ I0 และพินเอาต์พุตสี่พินตั้งชื่อจาก O0 ถึง O3 ดังที่แสดงด้านบน
สิ่งสำคัญคือต้องทราบว่าตัวถอดรหัสธรรมดาเช่นเดียวกับที่แสดงไว้ที่นี่มีข้อเสียคือไม่สามารถแยกความแตกต่างระหว่างเงื่อนไขของอินพุตทั้งสองเป็นศูนย์ (ไม่ได้เชื่อมต่อกับวงจรอื่น) และอินพุตทั้งสองต่ำ (ลอจิก 0) ข้อเสียเปรียบนี้สามารถแก้ไขได้โดยใช้Priority Decoderซึ่งเราจะเรียนรู้ในบทความนี้ ตารางความจริงของเครื่องถอดรหัสธรรมดาแสดงอยู่ด้านล่าง
จากตารางความจริงของตัวถอดรหัสเราสามารถเขียนนิพจน์บูลีนสำหรับแต่ละบรรทัดเอาต์พุตได้เพียงทำตามตำแหน่งที่เอาต์พุตสูงและสร้างตรรกะ AND ตามค่าของ I1 และ I0 คล้ายกับวิธี Encoder มาก แต่ที่นี่เราใช้ตรรกะ AND แทนตรรกะ OR นิพจน์บูลีนสำหรับทั้งสี่บรรทัดมีให้ด้านล่างโดยที่สัญลักษณ์ (.) แสดงถึงตรรกะ AND และสัญลักษณ์ (') แสดงถึงไม่ใช่ตรรกะ
O 0 = ฉัน1 'ฉัน0 ' O 1 = ฉัน1 'ฉัน0 O 2 = ฉัน1ฉัน0 ' O 3 = ฉัน1ฉัน0
ตอนนี้เรามีนิพจน์ทั้งสี่แล้วเราสามารถแปลงนิพจน์เหล่านี้เป็นวงจรลอจิกเกตแบบผสมโดยใช้ประตู AND และไม่ใช่ประตู เพียงใช้ประตู AND แทน (.) และ NOT gate (ตรรกะกลับหัว) แทน a (') และคุณจะได้รับแผนภาพตรรกะต่อไปนี้
ให้เราสร้างแผนภาพวงจรถอดรหัส 2: 4บนเขียงหั่นขนมและตรวจสอบว่ามันทำงานอย่างไรในชีวิตจริง เพื่อให้การทำงานเป็นฮาร์ดแวร์ที่คุณต้องใช้ประตูตรรกะเช่น IC 7404 ไม่ได้ประตูและ7408 สำหรับประตูและ อินพุตสองอินพุต I0 และ I1 มีให้ผ่านปุ่มกดและเอาต์พุตจะสังเกตได้จากไฟ LED เมื่อคุณทำการเชื่อมต่อกับ breadboard แล้วจะมีลักษณะดังนี้ในภาพด้านล่าง
บอร์ดใช้พลังงานจากแหล่งจ่ายภายนอก + 5V ซึ่งจะจ่ายไฟให้กับ Gate IC แม้ว่าหมุด Vcc (พิน 14) และกราวด์ (พิน 7) อินพุตจะได้รับจากปุ่มกดเมื่อกดแล้วจะเป็นลอจิก 1 และเมื่อไม่ได้กดจะให้ลอจิก 0 ตัวต้านทานแบบดึงลงของค่า 1k จะถูกเพิ่มเข้าไปในสายอินพุตเพื่อป้องกันไม่ให้พินจากสภาวะลอย สายเอาต์พุต (O0 ถึง O3) จะได้รับผ่านไฟ LED สีแดงเหล่านี้หากไฟเรืองแสงเป็นลอจิก 1 มิฉะนั้นจะเป็นลอจิก 0 การทำงานที่สมบูรณ์ของวงจรถอดรหัสนี้ จะแสดงในวิดีโอด้านล่าง
โปรดทราบว่าตารางความจริงสำหรับแต่ละอินพุตจะแสดงที่มุมบนซ้ายและไฟ LED ก็จะส่องสว่างตามลำดับเช่นเดียวกัน ในทำนองเดียวกันเรายังสามารถสร้างแผนภาพตรรกะเชิงผสมสำหรับตัวถอดรหัสทุกประเภทและสร้างขึ้นบนฮาร์ดแวร์เช่นนี้ นอกจากนี้คุณยังสามารถดู IC ตัวถอดรหัสที่พร้อมใช้งานได้หากโครงการของคุณเหมาะสม
ข้อเสียของตัวถอดรหัสมาตรฐาน:
เช่นเดียวกับตัวเข้ารหัสตัวถอดรหัสมาตรฐานก็ประสบปัญหาเดียวกันเช่นกันหากอินพุตทั้งสองไม่ได้เชื่อมต่อ (ตรรกะ X) เอาต์พุตจะไม่เป็นศูนย์ แทนที่ตัวถอดรหัสจะถือว่าเป็นตรรกะ 0 และบิต O0 จะถูกทำให้สูง
ตัวถอดรหัสลำดับความสำคัญ:
ดังนั้นเราจึงใช้ Priority Decoder เพื่อแก้ไขปัญหานั้นตัวถอดรหัสประเภทนี้มีพินอินพุตเพิ่มเติมที่ระบุว่า "E" (เปิดใช้งาน) ซึ่งจะเชื่อมต่อกับพินที่ถูกต้องของตัวถอดรหัสลำดับความสำคัญ แผนภาพบล็อกความสำคัญถอดรหัสแสดงอยู่ด้านล่าง
ตารางความจริงสำหรับ Encoder ลำดับความสำคัญยังแสดงให้เห็นด้านล่างนี่ X หมายถึงไม่มีการเชื่อมต่อและ '1' หมายถึงสูงตรรกะและ '0' หมายถึงตรรกะต่ำ โปรดสังเกตว่าบิตเปิดใช้งานคือ 0 เมื่อไม่มีการเชื่อมต่อบนบรรทัดอินพุตดังนั้นบรรทัดเอาต์พุตจะยังคงเป็นศูนย์ ด้วยวิธีนี้เราจะสามารถเอาชนะอุปสรรคดังกล่าวข้างต้นได้
เช่นเคยจากตารางความจริงเราสามารถขับนิพจน์บูลีนสำหรับบรรทัดเอาต์พุต O0 ถึง O3 ได้ นิพจน์บูลีนสำหรับตารางความจริงข้างต้นแสดงอยู่ด้านล่าง หากคุณมองเข้าไปใกล้คุณจะสังเกตเห็นว่านิพจน์นั้นเหมือนกับของตัวถอดรหัส 2: 4 ปกติ แต่บิตเปิดใช้งาน (E) ถูกสร้างเป็น AND พร้อมกับนิพจน์
O 0 = EI 1 '.I 0 ' O 1 = EI 1 'ฉัน0 O 2 = EI 1.I 0 ' O 3 = EI 1.I 0
แผนภาพตรรกะเชิงผสมสำหรับนิพจน์บูลีนข้างต้นสามารถสร้างได้โดยใช้อินเวอร์เตอร์สองสามตัว (ไม่ใช่เกตส์) และ 3 อินพุตและเกต เพียงแทนที่สัญลักษณ์ (') ด้วยอินเวอร์เตอร์และสัญลักษณ์ (.) ด้วย AND gate คุณจะได้รับ Logic diagram
3: 8 ตัวถอดรหัส:
นอกจากนี้ยังมีตัวถอดรหัสลำดับที่สูงกว่าเช่นตัวถอดรหัส3: 8และตัวถอดรหัส 4:16ซึ่งเป็นที่นิยมใช้กันมากขึ้น ตัวถอดรหัสเหล่านี้มักใช้ในแพ็คเกจ IC เพื่อความซับซ้อนของวงจร นอกจากนี้ยังเป็นเรื่องปกติมากที่จะรวมตัวถอดรหัสลำดับที่ต่ำกว่าเช่นตัวถอดรหัส 2: 4 เพื่อสร้างตัวถอดรหัสลำดับที่สูงขึ้น ตัวอย่างเช่นเราทราบว่าตัวถอดรหัส 2: 4 มี 2 อินพุต (I0 และ I1) และ 4 เอาต์พุต (O0 ถึง O3) และตัวถอดรหัส 3: 8 มีอินพุตสามตัว (I0 ถึง I2) และแปดเอาต์พุต (O0 ถึง O7) เราสามารถใช้สูตรต่อไปนี้เพื่อคำนวณจำนวนตัวถอดรหัสลำดับที่ต่ำกว่า (2: 4) ที่ต้องการเพื่อสร้างตัวถอดรหัสลำดับที่สูงขึ้นเช่นตัวถอดรหัส 3: 8
จำนวนที่ ต้องการของตัวถอดรหัสลำดับล่าง = m2 / m1 โดยที่ m2 -> จำนวนเอาต์พุตสำหรับตัวถอดรหัสลำดับที่ต่ำกว่า m1 -> จำนวนเอาต์พุตสำหรับตัวถอดรหัสลำดับที่สูงขึ้น
ในกรณีของเราค่าของ m1 จะเป็น 4 และค่าของ m2 จะเท่ากับ 8 ดังนั้นการใช้ค่าเหล่านี้ในสูตรข้างต้นเราจะได้รับ
จำนวนตัวถอดรหัส 2: 4 ที่ต้องการสำหรับตัวถอดรหัส 3: 8 = 8/4 = 2
ตอนนี้เรารู้แล้วว่าเราจะต้องใช้ตัวถอดรหัส 2: 4 สองตัวเพื่อสร้างตัวถอดรหัส 3: 8 แต่จะเชื่อมต่อทั้งสองอย่างไรเพื่อรวบรวม แผนภาพบล็อกด้านล่างแสดงให้เห็นเพียงแค่นั้น
ดังที่คุณเห็นว่าอินพุต A0 และ A1 เชื่อมต่อเป็นอินพุตแบบขนานสำหรับทั้งตัวถอดรหัสจากนั้นขาเปิดใช้งานของตัวถอดรหัสตัวแรกจะทำหน้าที่เป็น A2 (อินพุตที่สาม) สัญญาณกลับด้านของ A2 มอบให้กับพินเปิดใช้งานของตัวถอดรหัสที่สองเพื่อรับเอาต์พุต Y0 ถึง Y3 ที่นี่เอาต์พุต Y0 ถึง Y3 เรียกว่าสี่ minterms ล่างและเอาต์พุต Y4 ถึง Y7 เรียกว่าสี่ minterms ที่สูงกว่า minterms ลำดับที่ต่ำกว่าจะได้รับจากตัวถอดรหัสที่สองและ minterms ลำดับที่สูงขึ้นจะได้รับจากตัวถอดรหัสตัวแรก แม้ว่าข้อเสียเปรียบอย่างหนึ่งที่เห็นได้ชัดในการออกแบบผสมผสานประเภทนี้คือตัวถอดรหัสจะไม่มีพินเปิดใช้งานซึ่งทำให้เสี่ยงต่อปัญหาที่เราได้กล่าวไปก่อนหน้านี้
4:16 ถอดรหัส:
คล้ายกับตัวถอดรหัส 3: 8 ตัวถอดรหัส4:16ยังสามารถสร้างได้โดยการรวมตัวถอดรหัส 3: 8 สองตัว สำหรับตัวถอดรหัส 4: 16 เราจะมีอินพุตสี่ตัว (A0 ถึง A3) และเอาต์พุตสิบหกตัว (Y0 ถึง Y15) ในขณะที่สำหรับตัวถอดรหัส 3: 8 เราจะมีอินพุตสามตัวเท่านั้น (A0 ถึง A2)
เราได้ใช้สูตรคำนวณจำนวนตัวถอดรหัสที่ต้องการแล้วในกรณีนี้ค่าของ m1 จะเป็น 8 เนื่องจากตัวถอดรหัส 3: 8 มีเอาต์พุต 8 เอาต์พุตและค่าของ m2 จะเป็น 16 เนื่องจากตัวถอดรหัส 4:16 มี 16 เอาต์พุต ดังนั้นเราจึงใช้ค่าเหล่านี้ในสูตรข้างต้น
หมายเลขที่ต้องการของตัวถอดรหัส 3: 8 สำหรับตัวถอดรหัส 4:16 = 16/8 = 2
ดังนั้นเราจึงต้องการตัวถอดรหัส 3: 8 สองตัวในการสร้างตัวถอดรหัส 4:16 การจัดเรียงของตัวถอดรหัส 3: 8 ทั้งสองนี้จะคล้ายกับที่เราทำก่อนหน้านี้ แผนภาพบล็อกสำหรับเชื่อมต่อตัวถอดรหัส 3: 8 สองตัวนี้เข้าด้วยกันแสดงอยู่ด้านล่าง
ที่นี่เอาต์พุต Y0 ถึง Y7 ถือเป็นแปดนาทีที่ต่ำกว่าและเอาต์พุตจาก Y8 ถึง Y16 ถือว่าสูงกว่าแปดนาที minterms ด้านขวาล่างถูกสร้างขึ้นโดยตรงโดยใช้อินพุต A0, A1 และ A2 สัญญาณเดียวกันจะถูกกำหนดให้กับอินพุตสามตัวของตัวถอดรหัสแรก แต่พินเปิดใช้งานของตัวถอดรหัสตัวแรกจะใช้เป็นพินอินพุตที่สี่ (A3) สัญญาณกลับหัวของอินพุตที่สี่ A3 มอบให้กับพินเปิดใช้งานของตัวถอดรหัสที่สอง ตัวถอดรหัสตัวแรกให้เอาต์พุตค่าแปดนาทีที่สูงกว่า
การใช้งาน:
โดยปกติตัวถอดรหัสจะใช้ร่วมกับตัวเข้ารหัสและด้วยเหตุนี้ทั้งสองจึงแชร์แอปพลิเคชันเดียวกัน หากไม่มีตัวถอดรหัสและตัวเข้ารหัสอุปกรณ์อิเล็กทรอนิกส์ที่ทันสมัยเช่นโทรศัพท์มือถือและแล็ปท็อปคงเป็นไปไม่ได้ แอปพลิเคชั่นถอดรหัสที่สำคัญมีอยู่ด้านล่างนี้
- แอปพลิเคชั่นสัญญาณลำดับ
- การใช้งานสัญญาณเวลา
- สายเครือข่าย
- องค์ประกอบหน่วยความจำ
- เครือข่ายโทรศัพท์