ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลข : สถาปัตยกรรม การทำงาน และการใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ระบบ DSP ต้องการรูปคลื่นไซน์หรือการสร้างรูปคลื่นเป็นระยะอื่นๆ วิธีหนึ่งที่ใช้ในการสร้างรูปคลื่นเหล่านี้ส่วนใหญ่เกี่ยวข้องกับ “ NCOs (ออสซิลเลเตอร์ควบคุมเชิงตัวเลข) ซึ่งใช้ตัวสะสมดิจิทัลเพื่อสร้างแอดเดรสเป็นไซน์ LUT (ตารางค้นหา) ระบบนี้พบได้ทั่วไปทั้งในซอฟต์แวร์และฮาร์ดแวร์ ดังนั้นจึงช่วยให้การเปลี่ยนแปลงทันทีภายในความถี่/เฟสทันทีของรูปคลื่นที่สร้างขึ้นในขณะที่รักษาคุณสมบัติเฟสคงที่ภายในเอาต์พุต เมื่อรวมกับ a ดีเอซี เพื่อสร้างรูปคลื่น o/p แบบอะนาล็อก ระบบจะเรียกว่า DDS หรือ Direct Digital Synthesizer บทความนี้จึงกล่าวถึงภาพรวมของก ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลข หรือ NCO - ทำงานกับแอปพลิเคชัน


Oscillator ที่ควบคุมด้วยตัวเลขคืออะไร?

ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขคือเครื่องกำเนิดสัญญาณดิจิทัลที่สร้างรูปคลื่นซิงโครนัส เวลาไม่ต่อเนื่อง และค่าที่ไม่ต่อเนื่อง ซึ่งโดยทั่วไปจะเป็นรูปคลื่นไซน์ที่ความถี่หรือเฟสของสัญญาณถูกควบคุมในการออกแบบ ออสซิลเลเตอร์เหล่านี้มักจะรวมกับ DAC (ตัวแปลงสัญญาณดิจิตอลเป็นอนาล็อก) ที่เอาต์พุตเพื่อสร้าง DDS โดยตรงหรือซินธิไซเซอร์ดิจิตอล NCO ให้ประโยชน์มากมายเหนือออสซิลเลเตอร์ประเภทอื่นๆ ในแง่ของความแม่นยำ ความคล่องตัว ความน่าเชื่อถือ และความเสถียร ดังนั้น เครื่องขยายเสียงคลาส D, เครื่องกำเนิดโทนเสียง, ระบบควบคุมไฟส่องสว่าง, บัลลาสต์เรืองแสง และวงจรปรับคลื่นวิทยุล้วนได้รับประโยชน์จาก NCO ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขจะใช้ในระบบการสื่อสารต่างๆ เช่น ระบบเรดาร์, PLL ดิจิตอล, ระบบวิทยุ, ไดรเวอร์ PSK/ หลายระดับ เอฟเอสเค โมดูเลเตอร์หรือดีโมดูเลเตอร์ และอื่นๆ อีกมากมาย



คุณสมบัติ

คุณสมบัติของออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขมีดังต่อไปนี้

ความถี่ขาออก



ความถี่เอาต์พุตที่สร้างโดย NCO นั้นสูงซึ่งขึ้นอยู่กับหมายเลขเป็นหลัก ของบิต ตัวอย่างเช่น; ขนาด 20 บิตสร้างได้สูงสุด 32 MHZ อย่างไรก็ตาม ขนาด 16 บิตสามารถสร้างได้เพียง 500 KHz

เอาต์พุตที่ยืดหยุ่น

  พีซีบีเวย์

เอาต์พุตของ NCO สามารถตั้งค่าเป็นรอบการทำงานที่เสถียร มิฉะนั้นจะเป็นรูปแบบความถี่พัลส์

ทำงานในโหมดสลีปพลังงานต่ำ

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

แหล่งที่มาของนาฬิกาหลายแห่ง

ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขสามารถใช้หมายเลข ของแหล่งสัญญาณนาฬิกาทั้งภายในและภายนอก

ฟังก์ชันตัวจับเวลา/ตัวนับ N-bit

นอกจากนี้ยังสามารถใช้ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขได้เหมือนกับตัวจับเวลา/ตัวนับ 20 บิตสำหรับวัตถุประสงค์ทั่วไปในโหมดการทำงานใหม่

สถาปัตยกรรมออสซิลเลเตอร์ NCO

สถาปัตยกรรมออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขแสดงไว้ด้านล่าง สถาปัตยกรรมนี้ประกอบด้วยสองส่วนหลักคือ PA (ตัวสะสมเฟส) และ PAC (ตัวแปลงเฟสเป็นแอมพลิจูด)

  สถาปัตยกรรม Oscillator ที่ควบคุมด้วยตัวเลข
สถาปัตยกรรม Oscillator ที่ควบคุมด้วยตัวเลข

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

เมื่อโอเวอร์คล็อกแล้ว PA หรือตัวสะสมเฟสจะสร้างสัญญาณฟันเลื่อยแบบโมดูโล 2^N หลังจากนั้นจะเปลี่ยนผ่าน PAC (ตัวแปลงเฟสเป็นแอมพลิจูด) เป็นไซน์ไซด์ตัวอย่าง ที่นี่ 'N' คือหมายเลข ของบิตที่บรรทุกภายในเฟสแอคคิวมูเลเตอร์

จำนวนบิตที่พกพาเช่น 'N' ตั้งค่าความละเอียดความถี่ของออสซิลเลเตอร์ & มักจะสูงกว่ามากเมื่อเทียบกับหมายเลข ของบิตที่อธิบายพื้นที่หน่วยความจำของตารางค้นหา PAC

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

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

ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขทำงานอย่างไร

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

  สนช.ทำงาน
สนช.ทำงาน

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

นอกจากนี้ เอาต์พุตของ NCO ยังสามารถแก้ไขได้โดยการยืดพัลส์ หลังจากนั้น เอาต์พุตที่แก้ไขของ NCO จะถูกแจกจ่ายภายในไปยังอุปกรณ์ต่อพ่วงอื่นๆ & เอาต์พุตที่เป็นทางเลือกไปยังขาอินพุต/เอาต์พุต การล้นของตัวสะสมอาจทำให้เกิดการหยุดชะงัก

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

Phase Accumulator คืออะไร?

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

ข้อดีของออสซิลเลเตอร์ NCO

ข้อดีของออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขมีดังต่อไปนี้

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

การใช้ออสซิลเลเตอร์ NCO

การประยุกต์ใช้ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขมีดังต่อไปนี้

  • ออสซิลเลเตอร์ที่ควบคุมด้วยตัวเลขสามารถใช้ได้ในกรณีที่ต้องการความแม่นยำของความถี่สูง การควบคุมความถี่เชิงเส้น & ความละเอียดที่ยอดเยี่ยมที่รอบการทำงานคงที่ เช่น การควบคุมบัลลาสต์และไฟส่องสว่าง อุปกรณ์จ่ายไฟเรโซแนนซ์ & เครื่องกำเนิดโทนเสียง
  • NCO เป็นวงจรดิจิทัลปกติที่ใช้ในแอปพลิเคชันจับเวลาที่หลากหลาย เช่น การแปลงอัตรา การสังเคราะห์ความถี่ และการสร้าง CLK
  • ส่วนใหญ่จะใช้ NCO สำหรับการสร้างสัญญาณหลักบนชิป เช่น ไซน์ โคไซน์ LFM หรือมอดูเลตความถี่เชิงเส้น Gaussian ใน SoC
  • โมดูล NCO เป็นตัวจับเวลาที่สร้างสัญญาณเอาต์พุตโดยใช้โอเวอร์โฟลว์ของตัวสะสม
  • สิ่งเหล่านี้มีความสำคัญมากในการใช้งานวงจรปรับคลื่นวิทยุ การควบคุมแสง บัลลาสต์เรืองแสง เครื่องกำเนิดโทนเสียง และเครื่องขยายสัญญาณเสียงคลาส D
  • สิ่งเหล่านี้มักใช้ร่วมกับ DAC ที่ o/p เพื่อออกแบบ DDS (ซินธิไซเซอร์ดิจิตอลโดยตรง)
  • นี่คือเครื่องกำเนิดความถี่แบบดิจิตอล ใช้สำหรับทำความสะอาดสัญญาณ i/p ที่มีสัญญาณรบกวนของออสซิลเลเตอร์
    นี่คือเครื่องกำเนิดความถี่เชิงเส้นที่ตั้งโปรแกรมได้ซึ่งใช้สร้างความถี่สูงสุด 32 MHz

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