ไบนารีถูกแปลงเป็นสัญญาณไฟฟ้าได้อย่างไร?


16

ฉันเพิ่งเริ่มออกในอุปกรณ์อิเล็กทรอนิกส์และฉันก็หลงเสน่ห์แล้ว การเล่นกับ Arduino ไม่กี่วันที่ผ่านมาเหล่านี้ผมทราบว่าไบนารีเป็นตัวแทนของแรงดันไฟฟ้าที่แตกต่างกัน - เช่น + 5V ตัวแทนและตัวแทน1 GND0

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


1
ผมจำไม่ได้ที่หนึ่งมันเป็น แต่มีลักษณะที่นี้วิดีโอ เนื้อหาที่ดี
abdullah kahraman

2
จริงๆแล้วตัวควบคุมขนาดเล็กไม่แปลงไบนารีเป็นแรงดันไฟฟ้าที่แตกต่างกัน ไบนารีคือแรงดันไฟฟ้า A + 5V จะแสดงเป็น "HIGH" หรือ "1" และ 0V ถูกแสดงเป็น "LOW" หรือ "0" ไปดูสวิตช์อิเล็กทรอนิกส์หรือรายละเอียดเพิ่มเติม MOSFET
abdullah kahraman

คุณไม่ได้ถามเกี่ยวกับการแปลง "อนาล็อกเป็นดิจิทัล" หรือ "ดิจิทัลเป็นอนาล็อก" ใช่ไหม
abdullah kahraman

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

1
@abdullahkahraman คุณถูกต้องฉันไม่คิดว่าฉันกำลังพูดถึง DAC ตามที่คุณพูด ขอบคุณสำหรับลิงก์ไปยังวิดีโอมันมีข้อมูลมาก และด้วยวิธีนี้คุณได้แนะนำให้ฉันรู้จักกับเว็บไซต์ MIT OCW ซึ่งดูเหมือนว่ามันจะเป็นแหล่งข้อมูลที่ดีสำหรับการเรียนรู้ ขอบคุณ!
Matt

คำตอบ:


18

ฉันต้องการย้ำบางส่วนของคำตอบของ KellenJB ด้วยวิธีที่แตกต่างกันเล็กน้อย:

ไม่มีการแปลงจากไบนารี่ 1 และ 0 เป็นแรงดันเช่น 5 V และ 0 V. ไมโครคอนโทรลเลอร์หรือวงจรทางกายภาพใด ๆ เพียงทำงานบนแรงดันไฟฟ้า

แรงดันไฟฟ้าเหล่านั้นถูก "แปลง" เป็นไบนารี่ 1 และ 0 ในหัวของเราเมื่อเราสร้างแบบจำลองที่เรียบง่ายในใจของเราเกี่ยวกับการทำงานของวงจร


2
ใช่. ใช่แล้วใช่และ (ใช่) ใช่
JustJeff

1
และฉันจะเพิ่มมันให้เป็น 0 แรงดันเพียงแค่ต้องอยู่ใกล้กับ 0 หรือต่ำกว่าเกณฑ์ (พูด <0.8v) และเป็น 1 มากกว่าเกณฑ์ (พูด> 2.0v) เกณฑ์ที่แตกต่างกันโดยเทคโนโลยีที่ใช้ในการสร้างอุปกรณ์และแรงดันไฟฟ้าปฏิบัติการ 5v ในกรณีของเขา
เคนนี

1
ขอบคุณทุกคน ดังนั้นเมื่อคอมพิวเตอร์ทำงานไม่มีรหัสผ่านจริงของเครื่องไบนารีเลย? รหัสไบนารี่เมื่ออัพโหลดเป็นเฟิร์มแวร์น่าจะถูกเก็บไว้ในหน่วยความจำซึ่งเมื่อ 'เข้าถึง' โดยหน่วยประมวลผลตอบสนองด้วยวัฏจักรของแรงดันซึ่งสอดคล้องกับไบนารี่? (หวังว่านี้จะทำให้ความรู้สึก)
แมตต์

ในการเป็น "อัปโหลด" รหัสจะต้องอยู่ในรูปแบบทางกายภาพบางอย่างอยู่แล้ว: แรงดันไฟฟ้าบนสายโยงตำแหน่งของคันโยกบางส่วน (หรือแป้นบนแป้นพิมพ์) ไม่ว่าจะเป็นอะไรก็ตาม ในหน่วยความจำบิตจะถูกเก็บไว้เป็นประจุสะสมบนตัวเก็บประจุ ... ซึ่งสร้างแรงดันไฟฟ้าบนตัวเก็บประจุ
โฟตอน

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

11

ไม่มี "การแปลง" ที่เกิดขึ้นจริง ๆ Binary 1s และ 0s เป็นเพียงการแสดงค่าศักย์ไฟฟ้าพื้นฐาน ในความเป็นจริงในหลาย ๆ ระบบแรงดันสูงอาจหมายถึง 0 ในขณะที่แรงดันไฟฟ้าต่ำหมายถึง 1 มีเหตุผลบางอย่างที่ทำเช่นนี้ แต่คุณอาจสนใจที่จะดำดิ่งลงไปในช่วงแรก

เพื่อให้เข้าใจถึงสิ่งที่เกิดขึ้นในลอจิกอาจเป็นการดีที่สุดที่จะตรวจสอบทรานซิสเตอร์ ทรานซิสเตอร์สามารถนำไปใช้ได้หลายอย่าง แต่ในระดับง่ายคุณสามารถใช้เป็นสวิตช์ได้ แนวคิดคุณสามารถคิดได้เหมือนสวิตช์ไฟของคุณบนผนัง แต่แทนที่จะถูกควบคุมโดยการเลื่อนสวิตช์ร่างกายมันถูกควบคุมโดยการเปลี่ยนแปลงของกระแส คุณสามารถปฏิบัติต่อแสงที่เปิดเป็น 1 และไฟดับเป็น 0 ทีนี้คุณสามารถเริ่มรวมสวิตช์เหล่านี้ในชุดต่าง ๆ เพื่อสร้างองค์ประกอบตรรกะที่แตกต่างกัน (เช่น AND, OR, NOR ฯลฯ )

ฉันรู้ว่าคำตอบของฉันไม่ได้มีรายละเอียดอย่างน่ากลัว แต่ฉันหวังว่ามันจะตอบคำถามของคุณ หากคุณต้องการคำอธิบายเพิ่มเติมฉันยินดีที่จะเพิ่มรายละเอียดเพิ่มเติมเพียงแค่ไม่ต้องการเอาชนะคุณ


ขอบคุณทุกคำตอบที่ยอดเยี่ยม !! ฉันจะคิดถูกแล้วในระดับที่เรียบง่ายไมโครโปรเซสเซอร์จะทำงานที่ความเร็วสัญญาณนาฬิกาที่แน่นอนและในแต่ละรอบจะส่งชุดคำสั่ง (แรงดันไฟฟ้าที่เกี่ยวข้องกับค่าไบนารี?) ผ่านทรานซิสเตอร์เหล่านี้ซึ่งทำหน้าที่เป็นประตูตรรกะ แล้วทรานซิสเตอร์จะสร้างเอาท์พุทที่เกี่ยวข้องตามตรรกะรวม (และ, หรือ, NAND ฯลฯ )?
แมตต์

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

ขอบคุณ @kellenjb คุณมีประโยชน์จริงๆ ฉันได้รับการสนับสนุนให้เรียนรู้เพิ่มเติม!
Matt

10

คำตอบสั้น ๆ คือมันไม่ได้ "แปลง" แรงดันไฟฟ้าเป็นไบนารี (หรือการแทนของมัน) เช่นเดียวกับถ้าคุณเขียนตัวเลขลงบนกระดาษบางแผ่นเครื่องหมายนั้นเป็นตัวแทนของตัวเลขหรือนับเป็นลูกคิดตำแหน่งหินนั้นเป็นตัวแทนของตัวเลข

ไบนารีเป็นระบบตัวเลขเช่นเดียวกับทศนิยม (หรือฐานแปดฐานสิบหก ฯลฯ )

ในขณะที่ทศนิยม (ฐาน -10) มี 10 สัญลักษณ์ (0123456789) เลขฐานสอง (ฐาน -2) มีเพียงสอง (01)

ลำดับ 10 ในฐานใด ๆ หมายถึงฐานกำลังแรกดังนั้นในทศนิยม 10 หมายถึง 10 ^ 1 = 10 และในเลขฐานสองหมายถึง 2 ^ 1 = 2 ตามด้วย 100 ในทศนิยมหมายถึง 10 ^ 2 = 100 และ ในไบนารีมันหมายถึง 2 ^ 2 = 4 และอื่น ๆ

เพื่อเป็นตัวแทนของทศนิยมโดยใช้อุปกรณ์อิเล็กทรอนิกส์ที่จะเป็นไปได้ แต่มีความซับซ้อนเพื่อให้พวกเขาเลือกไบนารีซึ่งสามารถแสดงโดยง่าย 0 และ 1 (หรือเปิด / ปิด)
มีการเปลี่ยนแปลงที่อยู่ในนี้เช่น ternary (3 รัฐ) ระบบและหลักสูตรคอมพิวเตอร์แบบอะนาล็อก ก่อนที่ทรานซิสเตอร์จะมีเครื่องตอกบัตรแบบกลไก (google รู้ดีมากมีการอ่านที่น่าสนใจมาก ๆ ถ้าคุณมีเวลา)
คอมพิวเตอร์ดิจิตอลไบนารีแรกสุดนั้นถูกสร้างขึ้นด้วยสวิตช์จริง (รีเลย์อิเล็กทรอนิกส์) Zuse Z3 (1941) เป็นตัวอย่าง:

Zuse Z3

หลังจากหลอดสูญญากาศนี้ถูกใช้แทนรีเลย์ (สามารถสลับได้เร็วขึ้นโดยไม่มีชิ้นส่วนกลไกเคลื่อนที่) ซึ่งทำการสลับแทนรีเลย์ ENIACเป็นตัวอย่างของเครื่องคอมพิวเตอร์ในช่วงต้นทำด้วยหลอดสุญญากาศ

จากนั้นใน 60 ของทรานซิสเตอร์มาถึงและหลังจาก IC ทรานซิสเตอร์ทำหน้าที่เหมือนกับรีเลย์ / วาล์วที่มีในเครื่องรุ่นก่อน แต่มีขนาดเล็กลงเร็วขึ้นและสิ้นเปลืองพลังงานน้อยลง

ทฤษฎีที่แท้จริงที่อยู่เบื้องหลังการทำงานของวงจรคอมพิวเตอร์ไบนารีแบบพื้นฐานนั้นไม่ได้เปลี่ยนแปลงเลยเหมือนกับที่เราไม่ได้เปลี่ยนวิธีที่เราจัดการตัวเลขในคณิตศาสตร์ - อัลกอริธึมปรับปรุง แต่กฎพื้นฐานยังคงเหมือนเดิม

ดังนั้นถ้าคุณรู้ว่าไบนารีทำงานอย่างไรและคุณมีวงจรอย่างง่ายที่สามารถเก็บ 1 หรือ 0 เป็นสองระดับแรงดันไฟฟ้าที่แตกต่างกัน (เช่น 5V และ 0v) และวงจรง่ายๆอื่น ๆ ที่สามารถทำหน้าที่ตรรกะง่าย ๆ เช่น AND และ OR คุณสามารถรวมพวกมันทั้งหมดเพื่อทำสิ่งที่ซับซ้อนมากขึ้น
เนื่องจากวงจรไบนารีทั้งหมดเหล่านี้เป็นเพียงสวิตช์ที่พื้นฐานที่สุดคุณสามารถบรรลุสิ่งเดียวกันกับทุกสิ่งที่สามารถสลับระหว่างสองสถานะเช่นกลไก / รีเลย์ / วาล์ว / ทรานซิสเตอร์ /?

เพื่อยกตัวอย่างการเก็บตัวเลขในรูปแบบไบนารีสมมติว่าเรามีสวิตช์ 8 ตัว (ชนิดใดที่พวกเขาไม่สำคัญ)
1 จะถูกแทนด้วย 5V และ 0 จะถูกแทนด้วย 0V
เราต้องการเก็บหมายเลข 123

ในทศนิยมเป็น 123 = (1 X 10 ^ 2) + (2 * 10 ^ 1) + (3 x 10 ^ 0)
ในเลขฐานสองคือ 01111011 = (0 x 2 ^ 7) + (1 x 2 ^ 6) + (1 x 2 ^ 5) + (1 x 2 ^ 4) + (1 x 2 ^ 3) + (0 x 2 ^ 2) + (1 x 2 ^ 1) + (1 x 2 ^ 0)
ดังนั้นทั้งหมด เราตั้งค่าสวิตช์เป็น 0,1,3,4,5,6 ถึง 5V และสวิตช์ 7 และ 2 เป็น 0V นี่ "เก็บ" หมายเลข 123 เป็นเลขฐานสอง การตั้งค่านี้จะเรียกว่า "ลงทะเบียน"

หากคุณต้องการทราบเพิ่มเติมเกี่ยวกับวิธีการรวมสวิตช์เพื่อสร้างวงจรที่ซับซ้อนมากขึ้นคุณจะได้หนังสือดีๆเกี่ยวกับตรรกะดิจิทัลหรือถาม google

นี้เว็บไซต์ไม่ได้ดูเหมือนจะไม่ดีเกินไปที่จะเริ่มต้นด้วย


0

โปรแกรมที่คุณใช้งานอยู่กำลังใช้แรงดันไฟฟ้าที่เป็นตัวแทนของค่าศูนย์ ทุกอย่างเกี่ยวกับชิ้นส่วนดิจิตอลนั้นเป็นแรงดันไฟฟ้าไม่ว่าจะใกล้เคียงกับพื้นดินหรือใกล้กับแรงดันไฟฟ้า (5V ในตัวอย่างของคุณ) เมื่อคุณโหลดตัวประมวลผลการลงทะเบียนด้วย 0xFF ให้บอกว่าคุณกำลังสร้างสัญญาณ 5Volt 8 ตัวแยกกันที่ใดที่หนึ่งในชิป เมื่อคุณเก็บค่าการลงทะเบียนนั้นในรีจิสเตอร์ควบคุมที่เกี่ยวข้องกับพอร์ตเอาต์พุตพินเอาต์พุตบนอุปกรณ์ที่สัญญาณ 5V ในตัวประมวลผลลงทะเบียนแล้วทำให้เกิดสัญญาณ 5V อื่น ๆ ที่จะสร้างขึ้นซึ่งเชื่อมต่อกับพินภายนอกของอุปกรณ์ .


0

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

ตรรกะวิธีไบนารีมักจะดำเนินการทางอิเล็กทรอนิกส์โดยใช้ CMOS ( http://en.wikipedia.org/wiki/CMOS ) เทคโนโลยีซึ่งในสอง MOS ทรานซิสเตอร์มีการตั้งค่าในคู่ที่สมบูรณ์ในรูปแบบของ CMOS gate มีการใช้งานทางอิเล็กทรอนิกส์อื่น ๆ ของตรรกะไบนารีแม้ว่าโดยใช้ TTL ( http://en.wikipedia.org/wiki/Transistor –transistor_logic) ตัวอย่างเช่นหรือรีเลย์ แต่คุณสามารถใช้อะไรจริงๆ, กระดาษ, แพะหุ่นยนต์กระดาษ: http://www.robives.com/category/product_tags/logic_goats การใช้ CMOS แบบอิเล็คตรอนแบบอิเลคตรอนนั้นมีประสิทธิภาพและใช้งานได้จริง

จากเกต CMOS แบบง่าย ๆ เหล่านี้คุณสามารถสร้างประตูลอจิกที่ซับซ้อนมากขึ้น: NAND และ NOR ซึ่งเป็นเกทมาตรฐานที่ไม่เป็นประตูพื้นฐาน จากสิ่งเหล่านี้คุณสามารถสร้างทุกสิ่งที่เป็นตรรกะลอจิก, adder, ไฟล์ register, หน่วยความจำ จากสิ่งเหล่านี้คุณสามารถสร้าง ALU ได้จนถึงไมโครโปรเซสเซอร์ที่สมบูรณ์

หากคุณต้องการข้อมูลเพิ่มเติมคุณสามารถอ่านหนังสือเกี่ยวกับตรรกะดิจิทัลฉันบังเอิญเป็นเจ้าของและชอบหนังสือเล่มนี้:

http://www.amazon.com/Digital-Systems-Principles-Applications-11th/dp/0135103827/ref=sr_1_1?s=books&ie=UTF8&qid=1326877355&sr=1-1

วิธีปฏิบัติที่ดีสำหรับการทำความเข้าใจวิธีการสร้างซีพียูคือการสร้างด้วยตัวเองโดยใช้ VHDL และ FPGA คุณสามารถรับบอร์ดพัฒนา FPGA ราคาถูกและซอฟต์แวร์มักจะฟรี (สำหรับสิทธิ์การใช้งานแบบ จำกัด ) ฉันมีน้อยโดย digilent ซึ่งค่อนข้างแพง:

http://www.digilentinc.com/


-3

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

ดังนั้นไบนารีเป็นเพียงการเพิ่มและลดแรงดันไฟฟ้าที่วัดเป็นระยะ

นี่คือตัวอย่างที่ง่าย ในช่วงจาก 1V ถึง 256V เรามาแปล (แอนะล็อก) 137 เป็นไบนารี (ตัวเลข) โดยใช้ pseudocode:

// used this way: analogToNumeric(137, 256);
function convert(var number, var length) {
    if (number > length) { return(ERROR); }
    function convert(var half, var binary) {
        if (half < 2) { return(binary); }
        elseif (number < half) {
            return(convert((half / 2), append(binary, 0)));
        } else {
            return(convert((half / 2), append(binary, 1)));
        }
    } return(convert((length / 2), list()));
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.