ประเภท: บทความเด่น » อิเล็กทรอนิคส์ในทางปฏิบัติ
จำนวนการดู: 49294
ความเห็นเกี่ยวกับบทความ: 0

วิธีการแปลงสัญญาณอนาล็อกเป็นดิจิตอล

 

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

วิธีการแปลงสัญญาณอนาล็อกเป็นดิจิตอล

ประเภทสัญญาณ

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

สำหรับคน "เย็น" อาจแตกต่างกันมันเป็นฤดูใบไม้ร่วงเย็นและฤดูหนาวน้ำค้างแข็งและน้ำค้างแข็งแสง แต่ไม่เสมอ "เย็น" เป็นอุณหภูมิลบเช่นเดียวกับ "อบอุ่น" ไม่ได้เป็นอุณหภูมิบวกเสมอ

ประเภทสัญญาณ

ตามด้วยสัญญาณอะนาล็อกมีสองคุณสมบัติ:

1. ความต่อเนื่องในเวลา

2. จำนวนของค่าสัญญาณมีแนวโน้มที่จะไม่มีที่สิ้นสุดเช่น สัญญาณอะนาล็อกไม่สามารถแบ่งออกเป็นส่วน ๆ หรือสอบเทียบอย่างแม่นยำโดยการแบ่งสเกลออกเป็นส่วนเฉพาะ วิธีการวัด - ตามหน่วยของการวัดและความแม่นยำขึ้นอยู่กับราคาของการแบ่งส่วนของขนาดเท่านั้นยิ่งมีขนาดเล็กเท่าไหร่ก็ยิ่งมีความแม่นยำมากขึ้นเท่านั้น


สัญญาณไม่ต่อเนื่อง - สิ่งเหล่านี้เป็นสัญญาณที่เป็นลำดับของรายงานหรือการวัดขนาดใดก็ได้ การวัดสัญญาณดังกล่าวไม่ต่อเนื่อง แต่เป็นระยะ

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

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


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


บิต - นี่คือจำนวนข้อมูลขั้นต่ำในรูปแบบดิจิทัลสามารถเก็บค่าได้สองประเภทเท่านั้น: 1 (หน่วยโลจิคัล, ระดับสูง) หรือ 0 (ศูนย์โลจิคัล, ระดับต่ำ)

ในอุปกรณ์อิเล็กทรอนิกส์บิตของข้อมูลจะถูกแสดงในรูปแบบของระดับแรงดันต่ำ (ใกล้กับ 0) และระดับแรงดันสูง (ขึ้นอยู่กับอุปกรณ์เฉพาะมักจะเกิดขึ้นพร้อมกับแรงดันไฟฟ้าของโหนดดิจิตอลที่กำหนดค่าทั่วไปคือ 1.7, 3.3. 5V, 15V)

สัญญาณดิจิตอล

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

ยิ่งค่าที่แม่นยำและความจุที่คุณต้องการจัดเก็บยิ่งมากขึ้นเท่าที่คุณต้องการเราให้ตารางตัวอย่างที่มีจอแสดงผลดิจิตอลสี่ค่าของเวลาในแต่ละวัน:

กลางคืน - เช้า - กลางวัน - เย็น

สำหรับสิ่งนี้เราต้องการ 2 บิต:

ตัวอย่างที่มีจอแสดงผลดิจิตอลสี่ค่าของเวลาในแต่ละวัน

การแปลงสัญญาณอนาล็อกเป็นดิจิตอล

ในกรณีทั่วไปการแปลงแอนะล็อกเป็นดิจิทัลเป็นกระบวนการแปลงปริมาณฟิสิคัลเป็นค่าดิจิตอล ค่าดิจิตอลเป็นชุดของหน่วยและศูนย์รับรู้โดยอุปกรณ์การประมวลผล

การเปลี่ยนแปลงดังกล่าวมีความจำเป็นสำหรับการโต้ตอบของเทคโนโลยีดิจิทัลกับสิ่งแวดล้อม

เนื่องจากสัญญาณไฟฟ้าแบบอะนาล็อกจะทำซ้ำสัญญาณอินพุตในรูปแบบของมันจึงไม่สามารถบันทึกแบบดิจิทัล“ ตามที่มันเป็น” เพราะมันมีจำนวนค่าไม่สิ้นสุด ตัวอย่างคือกระบวนการบันทึกเสียง มันอยู่ในรูปแบบดั้งเดิมที่มีลักษณะเช่นนี้:

เสียงหลัก

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

คลื่นเสียง

ทีนี้ลองนำเสนอในรูปแบบของชุด“ 111100101010100” มันค่อนข้างยากใช่ไหม

อีกตัวอย่างของความต้องการในการแปลงปริมาณอนาล็อกเป็นดิจิตอลหนึ่งคือการวัด: เครื่องวัดอุณหภูมิอิเล็กทรอนิกส์, โวลต์มิเตอร์, แอมป์และอุปกรณ์วัดอื่น ๆ โต้ตอบกับปริมาณอะนาล็อก



การแปลงเป็นอย่างไร

ขั้นแรกให้ดูที่แผนภาพของการแปลงสัญญาณอนาล็อกเป็นดิจิตอลและในทางกลับกัน หลังจากนั้นเราจะกลับไปหาเธอ

การแปลงสัญญาณอนาล็อกเป็นดิจิตอล

ในความเป็นจริงนี้เป็นกระบวนการที่ซับซ้อนซึ่งประกอบด้วยสองขั้นตอนหลัก:

1. การแยกสัญญาณ

2. ปริมาณโดยระดับ

การแยกสัญญาณของสัญญาณคือการกำหนดช่วงเวลาที่วัดสัญญาณ ยิ่งช่องว่างเหล่านี้สั้นลงเท่าใดการวัดก็ยิ่งแม่นยำมากขึ้นเท่านั้น ระยะเวลาการสุ่มตัวอย่าง (T) คือระยะเวลาตั้งแต่การอ่านข้อมูลจนถึงจุดสิ้นสุด Sampling rate (f) คือส่วนกลับของ:

fd = 1 / T

หลังจากอ่านสัญญาณจะถูกประมวลผลและเก็บไว้ในหน่วยความจำ

ปรากฎว่าในช่วงเวลาที่การอ่านของสัญญาณอ่านและประมวลผลก็สามารถเปลี่ยนแปลงได้ดังนั้นค่าที่วัดได้จะบิดเบี้ยว มีทฤษฎีบท Kotelnikov ดังกล่าวและกฎต่อไปนี้เป็นดังนี้:

ความถี่การสุ่มตัวอย่างควรมากกว่าความถี่ของสัญญาณตัวอย่างอย่างน้อย 2 เท่า

นี่คือภาพหน้าจอจาก Wikipedia ที่ตัดตอนมาจากทฤษฎีบท

ทฤษฎีบท Kotelnikov

ในการกำหนดค่าตัวเลขจำเป็นต้องทำการ quantization ตามระดับ Quantum เป็นช่วงของค่าที่วัดได้บางค่าโดยเฉลี่ยลดลงเป็นจำนวนที่แน่นอน

X1 ... X2 = Xy

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

ดังนั้นด้วยการควอนไทซ์ตามระดับควอนตัมยิ่งการวัดที่แม่นยำยิ่งขึ้นและตำแหน่งทศนิยมเพิ่มเติม

แม่นยำยิ่งขึ้นจำนวนตำแหน่งทศนิยมจะถูกกำหนดโดยความละเอียดของ ADC

การหาปริมาณระดับ

ภาพแสดงกระบวนการ quantization ของสัญญาณด้วยความช่วยเหลือของข้อมูลหนึ่งบิตดังที่อธิบายไว้ข้างต้นเมื่อเกินขีด จำกัด ที่แน่นอนจะยอมรับค่าระดับสูง

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

จำนวนของระดับ quantization จะถูกกำหนดโดยสูตร:

จำนวนระดับควอนตัม

โดยที่ n คือจำนวนบิต N คือระดับควอนไลซ์

นี่คือตัวอย่างของสัญญาณที่แบ่งเป็นควอนตั้มจำนวนมากขึ้น:

การวัดปริมาณ ADC

สิ่งนี้แสดงให้เห็นอย่างชัดเจนว่ายิ่งมีการใช้ค่าสัญญาณมากขึ้น (ยิ่งความถี่การสุ่มตัวอย่างสูงขึ้น) ยิ่งวัดได้แม่นยำมากขึ้นเท่านั้น

การแปลงสัญญาณอนาล็อกเป็นดิจิตอล

ภาพนี้แสดงการแปลงสัญญาณอนาล็อกเป็นรูปแบบดิจิตอลและทางด้านซ้ายของแกนกำหนด (แกนตั้ง) เป็นการบันทึกแบบดิจิตอล 8 บิต


ตัวแปลงอนาล็อกเป็นดิจิตอล

ADC หรือตัวแปลงแอนะล็อกเป็นดิจิทัลสามารถใช้เป็นอุปกรณ์แยกต่างหากหรือรวมเข้าด้วยกัน ไมโครคอนโทรลเลอร์.

ก่อนหน้านี้ไมโครคอนโทรลเลอร์เช่นตระกูล MCS-51 ไม่ได้มี ADC นั้นมีการใช้ microcircuit ภายนอกและสิ่งนี้จำเป็นต้องเขียนรูทีนย่อยเพื่อประมวลผลค่าของ IC ภายนอก

อินพุตแบบอะนาล็อกบนบอร์ด Arduino

ตอนนี้พวกเขาอยู่ในไมโครคอนโทรลเลอร์ที่ทันสมัยที่สุดเช่น AVR AtMEGA328 ซึ่งเป็นพื้นฐานของความนิยมมากที่สุด แผงวงจร Arduinoมันถูกสร้างขึ้นใน MK เอง ใน Arduino การอ่านข้อมูลอะนาล็อกนั้นง่ายมากด้วยคำสั่ง AnalogRead () แม้ว่าไมโครโปรเซสเซอร์ซึ่งติดตั้งใน Raspberry PI ที่นิยมไม่น้อยก็ไม่มี แต่ทุกอย่างไม่ง่ายนัก

ในความเป็นจริงมีตัวเลือกจำนวนมากสำหรับตัวแปลงแอนะล็อกเป็นดิจิทัลซึ่งแต่ละตัวมีข้อเสียและข้อดีของตัวเอง การอธิบายว่าบทความใดในบทความนี้ไม่สมเหตุสมผลเนื่องจากเป็นเนื้อหาจำนวนมาก พิจารณาเฉพาะโครงสร้างทั่วไปของบางคน

ตัวเลือก ADC ที่ได้รับสิทธิบัตรที่เก่าแก่ที่สุดคือสิทธิบัตร“ ระบบโทรสารโทรเลข” ของ Paul M. Rainey” สหรัฐอเมริกา สิทธิบัตร 1,608,527, ยื่น 20 กรกฎาคม 2464, ออก 30 พฤศจิกายน 2469 นี่คือการแปลงโดยตรง 5 บิต ADC จากชื่อของสิทธิบัตรความคิดมาว่าการใช้อุปกรณ์นี้เชื่อมต่อกับการส่งข้อมูลผ่านโทรเลข

ADC แรก

หากเราพูดถึง ADC ที่ทันสมัยของการแปลงโดยตรงพวกเขามีรูปแบบดังต่อไปนี้:

วงจร ADC

นี่แสดงให้เห็นว่าการป้อนข้อมูลเป็นห่วงโซ่ จากการเปรียบเทียบซึ่งส่งสัญญาณของพวกเขาเมื่อพวกเขาข้ามสัญญาณเกณฑ์บางอย่าง นี่คือความลึกบิตและปริมาณ ใครก็ตามที่แข็งแกร่งในวงจรเล็ก ๆ น้อย ๆ ก็เห็นความจริงที่ชัดเจนนี้

ใครไม่แข็งแรงแล้ววงจรอินพุตทำงานด้วยวิธีนี้:

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

Urefi = (1/16, 3/16, 5/16, 7/16, 9/16, 11/16, 13/16) * Uref

ในวงเล็บเครื่องหมายจุลภาคเป็นการระบุว่าส่วนใดของแรงดันอ้างอิงทั้งหมดที่ส่งไปยังอินพุตของแรงดันไฟฟ้าแต่ละค่า

กล่าวคือ แต่ละองค์ประกอบมีสองอินพุตเมื่อแรงดันไฟฟ้ามีการลงนาม «+» เกินแรงดันอินพุตที่มีเครื่องหมาย“ -” หน่วยโลจิคัลจะปรากฏขึ้นที่เอาต์พุต เมื่อแรงดันไฟฟ้าที่อินพุตบวก (ไม่กลับด้าน) จะน้อยกว่าที่อินพุตเชิงลบ (กลับด้าน) จากนั้นเอาต์พุตจะเป็นศูนย์

เปรียบเทียบ

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

ตัวเปรียบเทียบดังกล่าวนั้นดีที่ความเร็วการประมวลผลข้อมูลองค์ประกอบทั้งหมดของวงจรอินพุตถูกทริกเกอร์แบบขนานความล่าช้าหลักของ ADC ประเภทนี้เกิดขึ้นจากความล่าช้าของตัวเปรียบเทียบ 1 ตัว (จะถูกเรียกพร้อมกันพร้อมกัน) และความล่าช้าเป็นตัวเข้ารหัส

อย่างไรก็ตามมีข้อเสียเปรียบอย่างมากในวงจรขนาน - นี่คือความต้องการสำหรับตัวเปรียบเทียบจำนวนมากเพื่อให้ได้ ADC ที่มีความละเอียดสูง ในการรับตัวอย่างเช่น 8 หลักคุณต้องมีตัวเปรียบเทียบ 2 ^ 8 และนี่มีมากถึง 256 ชิ้น สำหรับสิบบิต (ใน Arduino 10-bit ADC โดยวิธี แต่ชนิดอื่น) คุณต้องเปรียบเทียบ 1024 ตัดสินด้วยตัวคุณเองถึงความเหมาะสมของตัวเลือกการรักษาและสถานที่ที่อาจจำเป็น

ADC ประเภทอื่น ๆ :

  • การประมาณต่อเนื่อง

  • เดลต้าซิกมา ADC

ข้อสรุป

การแปลงสัญญาณอนาล็อกเป็นดิจิตอลเป็นสิ่งที่จำเป็นสำหรับการอ่านพารามิเตอร์จากเซ็นเซอร์อะนาล็อก มีเซ็นเซอร์ดิจิตอลแยกประเภทพวกเขาเป็นวงจรรวมเช่น DS18b20 - ที่เอาต์พุตมีสัญญาณดิจิตอลแล้วและสามารถประมวลผลโดยไมโครคอนโทรลเลอร์หรือไมโครโปรเซสเซอร์โดยไม่ต้องใช้ ADC หรือเซ็นเซอร์อะนาล็อกบนบอร์ดที่มีตัวแปลงอยู่แล้ว เซ็นเซอร์แต่ละประเภทมีข้อดีและข้อเสียของตัวเองเช่นภูมิคุ้มกันเสียงและข้อผิดพลาดในการวัด

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

ดูได้ที่ e.imadeself.com:

  • การเชื่อมต่อเซ็นเซอร์อะนาล็อกกับ Arduino อ่านเซ็นเซอร์
  • ความแตกต่างระหว่างเซ็นเซอร์อะนาล็อกและดิจิตอลคืออะไร
  • สัญญาณดิจิตอลและอนาล็อก: อะไรคือความเหมือนและความแตกต่างข้อดีและข้อเสีย ...
  • เซ็นเซอร์ยอดนิยมสำหรับ Arduino
  • ทริกเกอร์ซมิต - มุมมองทั่วไป

  •