ประเภท: บทความเด่น » อิเล็กทรอนิคส์ในทางปฏิบัติ
จำนวนการดู: 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 ที่ตัดตอนมาจากทฤษฎีบท

ในการกำหนดค่าตัวเลขจำเป็นต้องทำการ quantization ตามระดับ Quantum เป็นช่วงของค่าที่วัดได้บางค่าโดยเฉลี่ยลดลงเป็นจำนวนที่แน่นอน
X1 ... X2 = Xy
กล่าวคือ สัญญาณจาก X1 ถึง X2 ซึ่งมีเงื่อนไขเท่ากับค่าเฉพาะของ Xy ซึ่งคล้ายกับราคาหารของตัวชี้มิเตอร์ เมื่อคุณอ่านคุณมักจะเทียบมันกับเครื่องหมายที่ใกล้ที่สุดในระดับของเครื่องมือ
ดังนั้นด้วยการควอนไทซ์ตามระดับควอนตัมยิ่งการวัดที่แม่นยำยิ่งขึ้นและตำแหน่งทศนิยมเพิ่มเติม
แม่นยำยิ่งขึ้นจำนวนตำแหน่งทศนิยมจะถูกกำหนดโดยความละเอียดของ ADC

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

โดยที่ n คือจำนวนบิต N คือระดับควอนไลซ์
นี่คือตัวอย่างของสัญญาณที่แบ่งเป็นควอนตั้มจำนวนมากขึ้น:

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

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

ตอนนี้พวกเขาอยู่ในไมโครคอนโทรลเลอร์ที่ทันสมัยที่สุดเช่น AVR AtMEGA328 ซึ่งเป็นพื้นฐานของความนิยมมากที่สุด แผงวงจร Arduinoมันถูกสร้างขึ้นใน MK เอง ใน Arduino การอ่านข้อมูลอะนาล็อกนั้นง่ายมากด้วยคำสั่ง AnalogRead () แม้ว่าไมโครโปรเซสเซอร์ซึ่งติดตั้งใน Raspberry PI ที่นิยมไม่น้อยก็ไม่มี แต่ทุกอย่างไม่ง่ายนัก
ในความเป็นจริงมีตัวเลือกจำนวนมากสำหรับตัวแปลงแอนะล็อกเป็นดิจิทัลซึ่งแต่ละตัวมีข้อเสียและข้อดีของตัวเอง การอธิบายว่าบทความใดในบทความนี้ไม่สมเหตุสมผลเนื่องจากเป็นเนื้อหาจำนวนมาก พิจารณาเฉพาะโครงสร้างทั่วไปของบางคน
ตัวเลือก ADC ที่ได้รับสิทธิบัตรที่เก่าแก่ที่สุดคือสิทธิบัตร“ ระบบโทรสารโทรเลข” ของ Paul M. Rainey” สหรัฐอเมริกา สิทธิบัตร 1,608,527, ยื่น 20 กรกฎาคม 2464, ออก 30 พฤศจิกายน 2469 นี่คือการแปลงโดยตรง 5 บิต 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
: