วิธีเลือกและใช้ตัวแปลงสัญญาณเสียงและไมโครคอนโทรลเลอร์สำหรับไฟล์เสียงตอบรับแบบฝัง

By Jacob Beningo

Contributed By DigiKey's North American Editors

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

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

บทความนี้จะกล่าวถึงบทบาทของตัวแปลงสัญญาณเสียงลักษณะสำคัญที่นักพัฒนาควรพิจารณาเมื่อทำการเลือกและวิธีการนำไปใช้อย่างมีประสิทธิภาพ แนวทางแก้ไขจากAKM Semiconductor, Texas Instruments, และMaxim Integratedจะได้รับการแนะนำและใช้เป็นตัวอย่างที่นี่แม้ว่าคนอื่น ๆ ก็มีให้บริการเช่นกัน จะสรุปเป็นกลเม็ดเคล็ดลับในการเร่งการพัฒนาแอปพลิเคชันการเล่นเสียงโดยใช้ตัวแปลงสัญญาณในขณะที่ลดต้นทุนระบบ

ตัวแปลงสัญญาณเสียงคืออะไร?

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

ตัวแปลงสัญญาณเสียงทั่วไปจะมีบล็อกการทำงานหลายอย่าง:

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

ตัวอย่างตัวแปลงสัญญาณเสียงที่ค่อนข้างได้รับความนิยมเนื่องจากต้นทุนต่ำและความสามารถด้านเสียงคือไฟล์AK4637EN ตัวแปลงสัญญาณเสียง 24 บิตจาก AKM Semiconductor (รูปที่ 1) AK4637EN มีคุณสมบัติทั้งหมดนี้นอกเหนือจากอินพุตเครื่องกำเนิดเสียงบี๊บที่สามารถใช้เพื่อสร้างเสียงบี๊บโดยใช้สัญญาณการมอดูเลตความกว้างพัลส์ (PWM) ที่ความถี่ที่ต้องการ

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

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

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

วิธีเลือกตัวแปลงสัญญาณเสียง

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

ข้อพิจารณาประการแรกคือเอาต์พุตที่ต้องการจากตัวแปลงสัญญาณเสียง มีหลายทางเลือกที่แตกต่างกัน ตัวอย่างเช่น AK4637EN มีเอาต์พุตไลน์และเอาต์พุตลำโพงโมโน มีตัวแปลงสัญญาณอื่น ๆ เช่น Texas InstrumentsTLV320AIC3110IRHBRตัวแปลงสัญญาณเสียงสเตอริโอที่สามารถขับลำโพงสองตัวที่ 1.29 วัตต์ (รูปที่ 2)

แผนผังของ TI TLV320AIC3110IRHBR เป็นตัวแปลงสัญญาณเสียงที่มีเอาต์พุตสเตอริโอและการขยายสัญญาณ (คลิกเพื่อดูภาพขยาย)รูปที่ 2: TI TLV320AIC3110IRHBR เป็นตัวแปลงสัญญาณเสียงที่มีเอาต์พุตสเตอริโอและการขยายสัญญาณนอกเหนือจากอินพุตไมโครโฟน ตัวแปลงสัญญาณสามารถขับ 1.29 วัตต์จากแอมพลิฟายเออร์ภายในและมีบล็อคเสียงดิจิตอลที่ตั้งโปรแกรมได้ (แหล่งรูปภาพ: Texas Instruments)

ตัวแปลงสัญญาณเสียงอื่น ๆ เช่น Maxim IntegratedMAX9867 ได้รับการออกแบบมาเพื่อขับคู่หูฟังเท่านั้น (รูปที่ 3) MAX9867 มี I2S และ I2อินเทอร์เฟซดิจิตอล C แต่ยังมีอินพุตไมโครโฟนสเตอริโอและสองบรรทัดที่สามารถเลือกแบบดิจิทัลได้

แผนผังของตัวแปลงสัญญาณเสียง Maxim Integrated MAX9867รูปที่ 3: ตัวแปลงสัญญาณเสียง Maxim Integrated MAX9867 สามารถขับหูฟังสเตอริโอและเลือกระหว่างอินพุตดิจิตอลไมโครโฟนและสาย (แหล่งที่มาภาพ: Maxim Integrated)

การตัดสินใจระหว่างวิธีแก้ปัญหาทั้งสามนี้ว่าประเภทเอาต์พุตจะเป็นอย่างไร (หรือแม้แต่อินพุต) ถือเป็นการตัดสินใจขั้นต้นที่สำคัญ

นักพัฒนายังต้องพิจารณาถึงสิ่งที่พวกเขาจะขับเคลื่อน ตัวแปลงสัญญาณเสียงจะเป็นหูฟังขับโดยตรงลำโพงหนึ่งตัวหรือลำโพงคู่หนึ่งตัวและคะแนนเอาต์พุตจะเป็นอย่างไร? หากระบบจะขับลำโพงขนาด 5 วัตต์จะมีตัวแปลงสัญญาณสำหรับระบบฝังตัวไม่มากนักที่จะทำเช่นนั้น แต่นักพัฒนาอาจต้องการเลือกบรรทัดออกและใช้ไฟล์Class-D เครื่องขยายเสียงเพื่อขับลำโพงโดยตรง ช่วยประหยัดค่าใช้จ่ายในขณะเดียวกันก็ให้ความยืดหยุ่นในการออกแบบ

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

ขึ้นอยู่กับผู้พัฒนาที่จะต้องปรับสมดุลความต้องการของพวกเขาอย่างรอบคอบจากตัวแปลงสัญญาณเสียงกับ BOM และจำนวนเนื้อที่บอร์ดที่จะใช้โดยวงจร

ระบบการเล่นเสียง

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

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

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

นักพัฒนายังต้องพิจารณาว่ารูปแบบการเล่นเสียงจะเป็นอย่างไร ที่พบบ่อยที่สุดคือการใช้ MP3 ในกรณีนี้ไมโครคอนโทรลเลอร์ที่เลือกจำเป็นต้องมีกองซอฟต์แวร์ที่รองรับการถอดรหัส MP3 สิ่งนี้ช่วยให้สามารถเปิดไฟล์ MP3 จากนั้นผลักโดยใช้ตัวควบคุมการเข้าถึงหน่วยความจำแบบไดนามิก (DMA) ผ่านทาง I2S อินเตอร์เฟซ แม้แต่ I2สามารถกำหนดค่าพอร์ต S สำหรับ master/slave และโหมดอื่น ๆ ได้หลายโหมดดังนั้นจึงจำเป็นต้องได้รับการตรวจสอบอย่างรอบคอบเพื่อให้แน่ใจว่าข้อมูลถูกถ่ายโอนไปยังตัวแปลงสัญญาณในอัตราที่ถูกต้อง

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

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

คำแนะนำและคำแนะนำในการเลือกและใช้ตัวแปลงสัญญาณเสียง

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

  • ใช้คุณสมบัติ Direct memory access controller (DMA) ภายในไมโครคอนโทรลเลอร์เพื่อป้อนตัวแปลงสัญญาณเสียงโดยมีการแทรกแซงของ CPU น้อยที่สุด วิธีนี้จะช่วยให้มั่นใจได้ว่าตัวแปลงสัญญาณจะไม่ “starved” สำหรับข้อมูล
  • เมื่อไม่ได้เล่นเสียงให้ใช้คุณสมบัติปิดเสียงตัวแปลงสัญญาณเพื่อป้องกันไม่ให้เสียงเอาท์พุตระดับต่ำไปถึงลำโพง
  • เมื่อปิดหรือเปิดใช้งานการเล่นให้ใช้คุณสมบัติปิดเสียงของตัวแปลงสัญญาณเสียงเพื่อป้องกันไม่ให้ลำโพงแตกและเสียงรบกวนอื่น ๆ ที่ไม่ต้องการ
  • ใช้แอปพลิเคชันเทอร์มินัลเพื่อส่งออกการลงทะเบียนตัวแปลงสัญญาณหลังจากเริ่มต้นตัวแปลงสัญญาณแล้ว สิ่งนี้จะมีประโยชน์อย่างยิ่งเมื่อพยายามแก้ไขปัญหาหรือปรับแต่งวงจรและกล่องหุ้มเอาต์พุตของลำโพง
  • ใช้ประโยชน์จากกลไกตัวกรองดิจิทัลภายในที่รวมอยู่ในตัวแปลงสัญญาณ ฟิลเตอร์ดิจิทัลช่วยให้นักพัฒนาสามารถปรับเอาท์พุตให้เท่ากันกรองความถี่สูงและต่ำที่ไม่ต้องการออกไปและเพิ่มคุณภาพของระบบเสียงให้สูงสุด
  • อย่าลืมว่าการปรับแต่งเสียงจะเป็นประโยชน์เมื่อติดตั้งแผงวงจรและลำโพงในกล่องหุ้มเท่านั้นเนื่องจากสิ่งที่แนบมาและการติดตั้งสร้างความแตกต่างอย่างมาก

ในการเริ่มต้นนักพัฒนาสามารถทดลองกับไฟล์MAX9867EVKIT+ชุดประเมิน Maxim Integrated’s MAX9867 (รูปที่ 5)

รูปภาพ Maxim MAX9867EVKIT + eval kit สำหรับ MAX9867รูปที่ 5: ชุด MAX9867EVKIT + eval สำหรับ MAX9867 เชื่อมต่อกับพีซีผ่านสาย USB และมีอินพุต RCA เอาต์พุตหูฟังและโมดูลส่งและรับไฟเบอร์ออปติก (แหล่งที่มาภาพ: Maxim Integrated)

ชุดประกอบด้วยบอร์ดและซอฟต์แวร์ที่เกี่ยวข้องและมีการกำหนดค่าให้ส่งและรับข้อมูลเสียงโดยใช้อินเทอร์เฟซดิจิทัลของ Sony/Philips (S/PDIF) แม้ว่าจะสามารถตั้งค่าให้ใช้ I2S มีแจ็คอินพุต RCA สองช่องแจ็คหูฟังเอาท์พุตอะนาล็อก 3.5 มิลลิเมตร (mm) สองตัวและโมดูลรับและส่งสัญญาณไฟเบอร์ออปติก ซอฟต์แวร์นี้เข้ากันได้กับ Windows และเมื่อเชื่อมต่อกับพีซีผ่านสาย USB ซอฟต์แวร์จะเปิดขึ้นในอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ซึ่งนักพัฒนาสามารถทดลองกับการตั้งค่าของ MAX9867 ได้ (รูปที่ 6)

รูปภาพของ GUI บน Windows (คลิกเพื่อดูภาพขยาย)รูปที่ 6: ด้วยการใช้ GUI บน Windows ผู้ใช้สามารถทดลองกับการตั้งค่า MAX9867 ที่หลากหลายโดยเริ่มจากนาฬิกาและเสียงดิจิตอล (แท็บที่เลือก) ไปจนถึงรีจิสเตอร์ 1 และรีจิสเตอร์ 2 (ขวา) (แหล่งที่มาภาพ: Maxim Integrated)

สรุป

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

อ้างอิง

  1. https://en.wikipedia.org/wiki/Audio_codec
DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo เป็นที่ปรึกษาด้านซอฟต์แวร์แบบฝังตัว เขาได้ตีพิมพ์บทความมากกว่า 200 บทความเกี่ยวกับเทคนิคการพัฒนาซอฟต์แวร์แบบฝังตัวเป็นวิทยากรและผู้ฝึกสอนด้านเทคนิคที่เป็นที่ต้องการและสำเร็จการศึกษา 3 ปริญญา รวมถึง ปริญญาโทวิศวกรรมศาสตร์จากมหาวิทยาลัยมิชิแกน

About this publisher

DigiKey's North American Editors