- หลักการพื้นฐานของตัวเข้ารหัส:
- การสร้างตัวเข้ารหัสโดยใช้ Combinational Logic Designs
- ตัวเข้ารหัส 8: 3:
- ข้อเสียของตัวเข้ารหัสปกติ:
- ตัวเข้ารหัสลำดับความสำคัญ:
ตัวเข้ารหัสตามชื่อที่แนะนำจะเข้ารหัสข้อมูลขนาดใหญ่ให้เป็นค่าบิตที่น้อยลง ตัวเข้ารหัสมี หลายประเภทตามจำนวนอินพุตและเอาต์พุตและขึ้นอยู่กับวิธีการทำงาน แต่ตัวเข้ารหัสทุกตัวมีกฎพื้นฐานอย่างหนึ่งจำนวนบรรทัดเอาต์พุตบนตัวเข้ารหัสจะน้อยกว่าจำนวนสายอินพุตเสมอ เราจะเรียนรู้เพิ่มเติมเกี่ยวกับตัวเข้ารหัสตัวเข้ารหัสคืออะไรใช้อย่างไรและทำไมถึงใช้ในวงจรดิจิทัลในบทความนี้
หลักการพื้นฐานของตัวเข้ารหัส:
ให้เราจินตนาการถึงตัวเข้ารหัสเป็นกล่องดำดังที่แสดงด้านล่างซึ่งจะช่วยลดจำนวนสายอินพุตจาก 4 เหลือเพียง 2 บรรทัดเอาต์พุต แต่ยังคงให้ข้อมูลเหมือนเดิมโดยที่ข้อมูลไม่สูญหาย
ก่อนอื่นเรามาดูกันก่อนว่าตัวเข้ารหัสนี้จะชื่ออะไร มันมีสี่ปัจจัยการผลิตและสองออกเพื่อให้ชื่อของ Encoder นี้จะเป็น4: 2 Encoder หากตัวเข้ารหัสมีจำนวนบรรทัดเอาต์พุต“ n ” จำนวนสายอินพุตจะเป็น2 nในกรณีของเราจำนวนบรรทัดเอาต์พุตคือสอง (n = 2) ดังนั้นจำนวนสายอินพุตควรเป็น (2 2 = 4) สี่ซึ่งเป็นกรณีเดียวกัน พินอินพุตทั้งสี่มีป้ายกำกับจาก I0 ถึง I3 และพินเอาต์พุตทั้งสองมีป้ายกำกับตั้งแต่ O0 ถึง O1
ดังนั้นตัวเข้ารหัสจะแปลงสัญญาณสี่สัญญาณเป็นสองสัญญาณได้อย่างไรจึงสามารถเข้าใจได้โดยดูตารางความจริงด้านล่าง สิ่งสำคัญคือต้องทราบว่าตัวเข้ารหัสธรรมดาเช่นเดียวกับที่แสดงไว้ที่นี่มีกฎว่าในเวลาที่กำหนดควรมีเพียงขาอินพุตเดียวเท่านั้นดังนั้นในตารางความจริงต่อไปนี้จะมีเพียงอินพุตเดียวเท่านั้น
ทุกเงื่อนไขที่เป็นไปได้ของอินพุตเอาต์พุตจะแสดงในตารางความจริงด้านบน ตัวอย่างเช่นเมื่อ O1 เท่านั้นสูง (1) และอินพุตอื่น ๆ ทั้งหมดต่ำ (0) ขาเอาต์พุตทั้งสองจะต่ำ (0) ในทำนองเดียวกันสำหรับแต่ละกรณีพินเอาต์พุตจะเปลี่ยนสถานะด้วย ด้วยการใช้สถานะบิตเอาต์พุตนี้ผู้ใช้จะสามารถตรวจสอบย้อนกลับไปว่าสัญญาณอินพุตใดที่จะได้รับให้กับตัวเข้ารหัส
เอาล่ะมีความแปลกใหม่เกี่ยวกับการแปลง 4 บรรทัดเป็น 2 บรรทัดทำไมเราถึงต้องการมัน?
เพื่อจุดประสงค์ในการทำความเข้าใจเราได้อธิบายตัวเข้ารหัส 4: 2 แต่มีตัวเข้ารหัสอื่น ๆ ที่สามารถรับอินพุตจำนวนมากขึ้นและแปลงเป็นจำนวนเอาต์พุตที่ต่ำกว่าเช่นตัวเข้ารหัส 8: 3 ตัวเข้ารหัส 16: 4เป็นต้นประเภทเหล่านี้ ของ Encoder มีประโยชน์มากเมื่อเราต้องลดจำนวนพินที่ใช้กับMCU / MPUหรือลดจำนวนสายสัญญาณในPLCและระบบอื่น ๆ ที่อาร์เรย์ของสวิตช์หรือ LED นอกจากนี้ยังใช้ในการส่งข้อมูลอย่างมีประสิทธิภาพโดยใช้สายไฟน้อยกว่า ในบางแอปพลิเคชันเราอาจมีสถานการณ์ที่อินพุตมากกว่าหนึ่งรายการอาจสูง (1) ในกรณีนี้เราจะเรียกสิ่งที่เรียกว่าPriority Encoderซึ่งเราจะพูดถึงเพิ่มเติมในบทความนี้
การสร้างตัวเข้ารหัสโดยใช้ Combinational Logic Designs
ตอนนี้เรารู้แล้วว่า Encoder ทำงานอย่างไรและใช้งานที่ไหน ให้เราเรียนรู้วิธีการสร้างโดยใช้ลอจิกเกตง่ายๆ แม้ว่าตัวเข้ารหัสเช่น 8: 3 จะมีให้ใช้งานในรูปแบบแพ็กเกจเดียวที่เรียบร้อยเช่นSN74LS148แต่สิ่งสำคัญคือต้องทราบว่าตัวเข้ารหัสเหล่านี้สร้างขึ้นอย่างไรเพื่อให้เราสามารถสร้างตัวเข้ารหัสแบบกำหนดเองสำหรับโครงการของเราตามตารางความจริงที่ต้องการ
นิพจน์บูลีน:
สิ่งแรกในการออกแบบอุปกรณ์ Combinational Logic คือการค้นหา Boolean Expression สำหรับตารางความจริง เป็นเรื่องง่ายมากและกำหนดได้ง่ายเพียงแค่ดูตารางความจริง ตารางความจริงเดียวกันกับที่เราเห็นก่อนหน้านี้มีภาพประกอบอยู่ด้านล่างเพื่อให้คุณเข้าใจได้ดีขึ้น
จำนวนนิพจน์จะเท่ากับจำนวนบรรทัดเอาต์พุตที่นี่เรามีสองเอาต์พุตและด้วยเหตุนี้เราจึงมีสองนิพจน์ สำหรับเอาต์พุตแรก O0 เพียงตรวจสอบว่าเงื่อนไขใดสูง (1) และติดตามหมายเลขพินอินพุตที่สอดคล้องกันซึ่งยังคงสูง (1) ในทำนองเดียวกันสำหรับค่าสูงทั้งหมดของบันทึก O0 ซึ่งหมายเลขพินอินพุตสูงและเพิ่มพิน พินอินพุตที่ตรงกับขาเอาต์พุต O0 จะถูกเน้นด้วยสีแดงด้านบนและสำหรับ O1 จะเน้นเป็นสีน้ำเงิน ดังนั้นนิพจน์สำหรับ O0 และ O1 จะเป็น
O 1 = ฉัน3 + ฉัน2 O 0 = ฉัน3 + ฉัน1
แผนภาพวงจรเข้ารหัส 4: 2:
เมื่อเราได้รับ Boolean Expression แล้วเราก็ต้องวาดมันในรูปแบบของ Gates ที่นี่เนื่องจากเรามีการดำเนินการเพิ่มเติม (+) เราจะใช้ประตูหรือเพื่อสร้างวงจรของเรา คุณยังสามารถลดความซับซ้อนหรือปรับเปลี่ยนนิพจน์บูลีนได้ตามความต้องการของคุณ แผนภาพวงจรสำหรับนิพจน์ข้างต้นแสดงไว้ด้านล่าง
วงจรนี้สามารถสร้างได้อย่างง่ายดายโดยใช้ IC ประตู 7432 หรือ ฉันสร้างวงจรเข้ารหัสบนเขียงหั่นขนมตามที่แสดงด้านล่าง
สายอินพุตสี่สาย (I0, I1, I2 และ I3) มีให้โดยปุ่มกดสี่ปุ่มเมื่อกดปุ่มจะเชื่อมโยง + 5V เข้ากับพินทำให้ตรรกะ 1 และเมื่อไม่ได้กดปุ่มพินจะถูกยึดไว้กับพื้น ผ่านตัวต้านทานแบบดึงลง 10k เพื่อให้ตรรกะเป็นศูนย์ เอาต์พุต (O0 และ O1) จะแสดงโดยใช้ LED สีแดงคู่หนึ่ง หากไฟ LED สว่างแสดงว่าลอจิกเอาต์พุตคือ 1 และหากปิดอยู่แสดงว่าลอจิกเอาต์พุต 0 การทำงานที่สมบูรณ์ของวงจรเข้ารหัสจะแสดงในวิดีโอด้านล่าง
อย่างที่คุณเห็นเมื่อกดปุ่มแรกอินพุต I0 จะสูงและด้วยเหตุนี้เอาต์พุตทั้งสองจึงยังคงต่ำ เมื่อกดปุ่มที่สองอินพุต I1 จะเปิดอยู่และด้วยเหตุนี้ LED หนึ่งดวงจึงสูงขึ้นเพื่อแสดงว่า O0 สูง ในที่สุดเมื่อกดปุ่มที่สี่อินพุต I3 จะสูงและ LED ทั้งสองจะสูง นี่เป็นวงจรที่ง่ายมากดังนั้นเราจึงสร้างมันขึ้นมาได้อย่างง่ายดายบน breadboard แต่สำหรับตัวเข้ารหัสที่ใช้งานได้จริงวงจรจะซับซ้อนขึ้นเล็กน้อย อย่างไรก็ตามตัวเข้ารหัสยังมีให้ในรูปแบบแพ็กเกจ IC ซึ่งสามารถซื้อได้หากเหมาะสมกับโครงการของคุณ
ตัวเข้ารหัส 8: 3:
การทำงานและการใช้งานของตัวเข้ารหัส 8: 3 ยังคล้ายกับตัวเข้ารหัส 4: 2 ยกเว้นจำนวนพินอินพุตและเอาต์พุต ตัวเข้ารหัส 8: 3 เรียกอีกอย่างว่าตัวเข้ารหัส Octal เป็น Binary แผนภาพบล็อกของตัวเข้ารหัส 8: 3 แสดงไว้ด้านล่าง
ที่นี่ตัวเข้ารหัสมี 8 อินพุตและ 3 เอาต์พุตอีกครั้งเพียงอินพุตเดียวควรสูง (1) ในเวลาใดก็ตาม เนื่องจากมี 8 อินพุตจึงเรียกว่าอินพุตฐานแปดและเนื่องจากมีสามเอาต์พุตจึงเรียกว่าเอาต์พุตไบนารี ตารางความจริงของตัวเข้ารหัสแสดงอยู่ด้านล่าง
ตารางความจริงของตัวเข้ารหัส 8: 3:
นิพจน์บูลีน:
เนื่องจากเรามีผลลัพธ์ของคุณเราจะมีสามนิพจน์ดังที่แสดงด้านล่าง
O 2 = ฉัน7 + ฉัน6 + ฉัน5 + ฉัน4 O 1 = ฉัน7 + ฉัน6 + ฉัน3 + ฉัน2 O 0 = ฉัน7 + ฉัน5 + ฉัน3 + ฉัน1
แผนภาพวงจรเข้ารหัส 8: 3:
เมื่อได้นิพจน์บูลีนเช่นเคยเราสามารถสร้างแผนภาพวงจรโดยใช้ประตูหรือตามที่แสดงด้านล่าง
วงจรนี้ใช้ IC 4 อินพุตหรือเกตคุณยังสามารถลดความซับซ้อนของนิพจน์บูลีนเพื่อใช้เกตไอซี 2 อินพุตปกติ
ข้อเสียของตัวเข้ารหัสปกติ:
โปรแกรมเปลี่ยนไฟล์ประเภทนี้ประสบข้อบกพร่องที่สำคัญดังต่อไปนี้
- เมื่อไม่มีอินพุตใดสูงเอาต์พุตจะเท่ากับศูนย์ทั้งหมด แต่เงื่อนไขนี้ก็ขัดแย้งกับบิตแรกที่มีค่าสูง (MSB) ดังนั้นควรใช้ความระมัดระวังเสมอว่าอย่างน้อยหนึ่งบิตจะยังคงเปิดอยู่เสมอ
- เมื่ออินพุตมากกว่าหนึ่งอินพุตสูงเอาต์พุตจะถูกยุบและสามารถให้ผลลัพธ์สำหรับอินพุตใดอินพุตหนึ่งซึ่งนำไปสู่ความสับสน
เพื่อเอาชนะปัญหาเหล่านี้เราใช้ตัวเข้ารหัสประเภทอื่นที่เรียกว่าตัวเข้ารหัสลำดับความสำคัญซึ่งใช้เอาต์พุตเพิ่มเติมเพื่อตรวจสอบว่าเอาต์พุตนั้นถูกต้องหรือไม่และเมื่อมีมากกว่าหนึ่งอินพุตจะช่วยให้สูงขึ้นสิ่งที่ไปสูงโดยเริ่มจาก LSD จะถูกพิจารณาเพียงอย่างเดียวในขณะที่ ไม่สนใจอินพุตอื่น ๆ
ตัวเข้ารหัสลำดับความสำคัญ:
ให้เราวิเคราะห์ตัวเข้ารหัสลำดับความสำคัญ 4: 2เป็นตัวอย่างเพื่อทำความเข้าใจว่ามันแตกต่างจากตัวเข้ารหัสปกติอย่างไรและสามารถเอาชนะข้อเสียสองประการที่กล่าวมา แผนภาพบล็อกของตัวเข้ารหัสลำดับความสำคัญ 4: 2 แสดงอยู่ด้านล่าง
ลำดับความสำคัญ 4: 2 ตัวเข้ารหัสยังมี 4 อินพุตและ 2 เอาต์พุต แต่เราจะเพิ่มเอาต์พุตอื่นที่เรียกว่า V ซึ่งหมายถึงบิตที่ถูกต้อง บิตที่ถูกต้องนี้จะตรวจสอบว่าพินอินพุตทั้งสี่อยู่ต่ำหรือไม่ (0) หากต่ำบิตจะทำให้ตัวเองต่ำเช่นกันโดยระบุว่าเอาต์พุตไม่ถูกต้องดังนั้นเราจึงสามารถเอาชนะข้อเสียแรกที่กล่าวถึงข้างต้น
ตารางความจริงของตัวเข้ารหัสลำดับความสำคัญ 4: 2:
ข้อเสียเปรียบถัดไปสามารถหลีกเลี่ยงได้โดยการให้ความสำคัญกับ MSB bits ตัวเข้ารหัสจะตรวจสอบจาก MSB และเมื่อพบบิตแรกที่สูง (1) ก็จะสร้างเอาต์พุตตามนั้น ดังนั้นจึงไม่สำคัญว่าหมุดอื่นจะสูงหรือต่ำ ดังนั้นในตารางความจริงด้านล่างเมื่อถึง 1 ค่าไม่สนใจจะแสดงโดย "X"
นิพจน์บูลีน:
ตอนนี้เราต้องได้รับนิพจน์สามรายการสำหรับ O0, O1 และ V เนื่องจากตารางความจริงไม่สนใจรายการเราจึงต้องใช้วิธี K-map เพื่อรับนิพจน์บูลีนสำหรับสิ่งนี้ เราจะไม่กล่าวถึงวิธีการแก้ด้วย K-maps เนื่องจากอยู่นอกขอบเขตของบทความนี้ แต่แผนที่แสดงไว้ด้านล่างเพื่อให้คุณสามารถแทรกแซงและเรียนรู้ด้วยตัวเอง
ในแผนที่ด้านบนแผนที่ด้านซ้ายใช้สำหรับ O1 และด้านขวาสำหรับ O0 บรรทัดเอาต์พุตถูกกล่าวถึงโดย y และบรรทัดอินพุตถูกกล่าวถึงด้วย x ดังนั้นการจัดเรียงสมการเราจะได้สิ่งต่อไปนี้
O 1 = I 3 + I 2 O 0 = I 2 I 1 '+ I 3
ในทำนองเดียวกันสำหรับบิต“ V” ที่ถูกต้องนิพจน์บูลีนสามารถกำหนดเป็น
V = ฉัน3 + ฉัน2 + ฉัน1 + ฉัน0
แผนภูมิวงจรรวม:
แผนภาพวงจรสำหรับโครงการนี้สามารถสร้างได้โดยใช้นิพจน์บูลีน
วงจรสามารถสร้างได้โดยใช้ประตูพื้นฐานไม่และและหรือ ที่นี่บิต O0 และ O1 ถือเป็นเอาต์พุตในขณะที่บิต V ใช้เพื่อตรวจสอบเอาต์พุต เฉพาะในกรณีที่บิต V สูงเอาต์พุตจะถูกพิจารณาหากค่าของ V ต่ำ (0) เอาต์พุตควรถูกละเว้นเนื่องจากหมายความว่าพินอินพุตทั้งหมดเป็นศูนย์