第四章 交錯式D類放大器控制晶片系統規劃及實現
4.7 NIOS II處理器功能規劃
NIOS II系統的規劃如4.1.3節中所述,先由SOPC Builder規劃好一個包含NIOS處理 器的系統後,再進入NIOS II IDE軟體內撰寫控制程式,在本論文中,NIOS II系統的功 能規劃主要有兩部份,其一為將設定好的參數透過SPI介面傳送至各控制暫存器中,其 次 就 是 將 實 驗 波 形 取 樣 後 , 由 FPGA 實 驗 板 使 用 UART 介 面 傳 送 回 電 腦 模 擬 軟 體 Simulink中,與模擬波形做一比較。
本論文中使用的NIOS II系統包括了一個32位元的CPU、16MB的SDRAM、UART 及SPI的通訊介面以及數個傳接資料的IO腳位,其外觀圖如4.46所示。NIOS II CPU負責 處理使用者撰寫的C程式,16MB的動態記憶體儲存運算的資料以及程式,UART介面 功能在於與電腦溝通,SPI介面傳輸NIOS中設定之控制暫存器值給D類放大器控制晶 片,DISP_DATA是欲傳送回電腦觀察之資料輸入腳,disp_sel則是選擇何者訊號需送至 DISP_DATA,可選擇的資料有輸出電壓、輸出電流、電感電流及控制器計算值等。
reg_data及spi_data兩個輸入腳,分別為暫存器方塊及SPI方塊所收到的參數值,我們藉 這兩個腳位觀察接收到的資料是否正確。Sel腳位是選擇何者暫存器該被寫入,暫存器 的位址定義如表4.1。
NIOS II CPU處理之程式是以C或是C++語言所撰寫,程式流程如圖4.47所示。一開
據disp_sel腳位選定哪種數據要被送回至電腦觀察,將該資料透過DISP_DATA腳位讀到 記憶體中,每讀一筆值,記憶體位址就加1,當儲存1000筆後,CPU開始等待電腦的開 始傳輸資料命令,一旦成立,NIOS處理器就呼叫UART介面,開始傳輸資料回電腦 中,每傳一筆值,記憶體位址變遞減,一直到傳送完1000筆資料後,就回到程式的起 點。值得注意的是在NIOS的SPI及UART中,其傳輸資料的長度都是8位元,所以如果 使用者的資料長度是超過8位元的,就需要拆成兩個,然後在接收端再將兩筆資料加起 來,如此傳接的資料才會正確。在Quartus II軟體中,整個D類放大器控制晶片內各功 能方塊以及NIOS II處理間的連接,如圖4.48所示。
圖4.46 NIOS II 系統符號圖
圖4.47 NIOS II系統程式流程圖
圖4.48 Quartus II中D類放大器控制晶片內部連接圖
為了驗證傳輸動作以及所設計控制器計算值是否正確,我們在FPGA中內建一個 5kHz的正弦波,將其送至數位控制器中,而在Simulink中也產生同樣的命令及控制器 參數,觀察兩者控制器的輸出結果是否相同。因為控制器的輸出為12位元,我們使用 的UART介面為8位元,故須先將其拆成兩筆8位元的資料再傳送出去,在Simulink端則 將接到的兩筆資料再合成為一筆,也因為如此,如果接收方漏接一筆資料,則後面接 到的數據會組合錯誤,故為了確保兩者傳送及接收的時間是一致的,在Simulink端準備 要接收資料時,會先發確認訊號給NIOS處理器,當接到此訊號,才開始傳送資料。接 收端並不是直接用Simulink來接收資料,而是透過Matlab的圖形使用者介面(GUI),將 接收到的資料先組合好存進workspace中,再至Simulink中繪圖。自定的GUI介面如圖 4.49所示,在視窗中的正弦波形為GUI介面所接收到的資料,資料傳回Simulink繪圖 後,與其模擬波形比對圖如圖4.50,其頻率及資料的峰值均是正確,但是有些點的數值 並不一樣,思索應為NIOS中計算取樣的時間點沒有剛好200kHz所造成,目前取樣時間 的做法是以for迴圈來計算大約的時間,並不是那麼準確的緣故。最後整體硬體架構在 FPGA中所佔的Logic Cell比較請參考表4.9。
圖4.49 Matlab接收及傳送資料GUI圖
圖4.50 Simulink中模擬與實驗波形圖
表 4.9 交錯式 D 類放大器控制 IC 使用資源分析表
電路名稱 使用資源 (LEs)
六相PWM產生器 1909
同步取樣控制器 277
數位控制器 358
SPI傳輸介面 53
NIOS II系統 2857
暫存器Bank 38
ADC接收方塊 40
除頻電路 7
Total 5539
百分比(%) 17%
第 五 章
模 擬 及 實 驗 結 果
5.1 模擬及實驗平台介紹
模擬平台以Modelsim連結Simulink而成,藉此驗證修正所設計之電路功能正確性,
如圖5.1。圖5.2為單相及交錯式D類放大器的實驗平台,使用ALTERA的FPGA發展板與 一台個人電腦做控制。FPGA發展板為系統之核心,讀取迴授的D類放大器電路板的輸 出電壓、電流、電感電流值、並計算出相對應的調變值,改變脈寬調變輸出藉以控制D 類 放 大 器 的 輸 出 。 以 硬 體 描 述 語 言 實 現 的 電 路 程 式 在 個 人 電 腦 中 修 改 並 透 過 ByteBlasterII線下載至FPGA發展板上,而實驗波形可透過UART介面傳回到個人電腦 中,在模擬軟體Simulink中繪出。
圖5.2 單相及交錯式D類放大器實驗平台圖
5.1.1 FPGA發展板介紹
本論文所採用之FPGA發展板為Altera公司的NIOS II Development Kit,此實驗板使 用的FPGA晶片型號為Cyclone II系列的EP2C35。具備多種常用IP,可支援SOPC發展所 需一切,容量為33,216個Logic Cell,足以應付一般電路設計者所需,共有四個相位鎖 迴路,最高頻率為275MHz,使用者視所需調整參數可變更。此發展板以SRAM為基 礎,具有可重複燒錄且價格低廉的優點,方便在實驗發展階段使用,提供使用者嵌入 式的應用及發展環境,主要功能特性包括:
(1) 提供一個16MBytes的Flash Memory。
(2) 提供一個16MBytes的DDR SDRAM。
(3) 提供一個1MBytes的SRAM。
(4) 提供2個10-pin接頭,使用者可由ALTERA公司的download cable--- ByteBlasterII 以JTAG模式直接對Cyclone晶片進行燒入或以AS模式對EPCS64進行燒入。
(5) 提供一個串列傳輸介面(RS-232)。
5.1.2 D類放大器功率板介紹
單相及交錯式D類放大器電路,大致分為幾部份,分別為包含開關及輸出濾波器的 功率級、功率開關驅動電路、迴授訊號Scaling電路以及類比轉數位的轉換器,此實驗 板為本人與學弟黃少軍共同設計製做及測試。
圖5.3為單相D類放大器功率級及開關驅動的電路,因為交錯式的電路僅多並聯兩 相,所以就不做說明。此電路設計最大輸出功率為100W,直流電壓輸入為60V,輸出2 階濾波器的頻寬為16kHz,輸出負載為阻抗8Ω的喇叭,但測試目前最高輸出功率僅可 至 50W , 效 能 並 沒 有 很 好 , 但 在 50W 以 下 的 操 作 均 無 誤 。 故 開 關 使 用 IR 公 司 的 IRFP250N,其具有低的導通電阻及非常短暫導通時間之優點,開關的驅動IC使用 IR2011,輸出的開關控制電壓為12V以上,足以驅動本電路的所使用之開關,電感電流 及輸出電流的量測,使用霍爾電流感測器來感測,HY5-P的最大輸入電流範圍為5A,
感應出之輸出電壓為4V。
圖5.4為輸出電流及電感電流的回授電路,因霍爾電流感測器的輸出電壓為正負 4V,而實驗所使用的ADC的輸入電壓範圍為0~3.3V,故須將訊號縮小後再改變其電壓 準位。第一級為將訊號縮小,第二級則是改變輸出電壓準位,使其輸出電壓以正1.65為 中點,正負4V會scale成正負1.65V的振幅輸出,要注意的是此為反相組態,故輸出訊號 與輸入訊號相差180度。使用的OP為TL084,輸出電壓的迴授電路與電流迴授相同,僅 電阻值改變,100W時最大輸出電壓為40V,須scale成1.65V後再送至ADC。
圖5.5為所使用的ADC及正3.3V電源IC電路,此ADC為TI所生產之12位元單通道類 比數位轉換器,最快取樣頻率為1MHz,輸入時脈最高為20MHz,以串列傳輸的方式輸 出,輸入訊號的範圍為0~3.3V。電源穩壓IC使用LM1117S-3.3V,可提供穩定的3.3V電 源供ADC及迴授訊號電路所使用。
圖5.4 輸出及電感電流迴授電路
圖5.5 ADC及電源穩壓電路
5.2 模擬結果
5.2.1 單相半橋式D類放大器模擬結果
圖5.6為單相半橋式D類放大器閉迴路的輸出電壓、電流以及電感電流波形。電感 電容及電阻值分別為100µH、1µF及8Ω,輸入訊號頻率為2kHz的正弦波,圖5.7為輸入 訊號頻率為20kHz時的輸出。PWM切換頻率100 kHz,無效時間設定為0.5µs,DC Bus 電壓為100V,輸出功率為20W,最大輸出電壓漣波3.1V,最大電感電流漣波2.274A,
當ADC的同步取樣頻率為200 kHz,此時訊號的總諧波失真為11.09%。在相同情況下,
當ADC的同步取樣頻率為100 kHz,此時訊號的總諧波失真為13.7%,總諧波失真較 高,故我們採用兩倍切換頻率的同步取樣策略。頻率對總諧波失真圖如圖5.8,在不加 入無效時間情況下,隨著輸入頻率越高則總諧波失真也越大。
圖5.6 單相半橋式D類放大器輸出電壓、電流及電感電流波形圖(2kHz)
圖5.7 單相半橋式D類放大器輸出電壓、電流及電感電流波形圖(20kHz)
0 3,000 6,000 9,000 12,000 15,000 18,000 20,000 8
8.5 9 9.5 10 10.5 11 11.5 12 12.5 13
Frequency(Hz)
THD(%)
Signal Frequency V.S. THD
No Dead-Time With Dead-Time
圖5.8 單相D類放大器輸入訊號頻率變化對總諧波失真變化圖
5.2.2 三相交錯式D類放大器模擬結果
圖5.9為交錯式半橋式D類放大器閉迴路的輸出電壓、電流以及電感電流波形。電 感電容及電阻值分別為100µH、1µF及8Ω,輸入訊號頻率為2kHz的正弦波,圖5.10為輸 入頻率20kHz時的輸出。PWM切換頻率100 kHz,無效時間設定為0.5µs,DC Bus電壓 為100V,輸出功率為20W,最大輸出電壓漣波0.3V,最大電感電流漣波0.25A,與單相 半橋式相比均小很多,在不改變開關切換頻率的情況下,當ADC的同步取樣頻率為600 kHz,此時訊號的總諧波失真為1.02%。在相同情況下,當ADC的同步取樣頻率為300 kHz,此時訊號的總諧波失真為1.22%,交錯式D類放大器的總諧波失真與單相式相 比,確實改進很多,證實此種方法在不需提高開關切換頻率的情況下,可有效的降低 電壓、電流漣波以及總諧波失真。頻率對總諧波失真圖如圖5.11。
圖5.9 交錯式半橋式D類放大器輸出電壓、電流及電感電流波形圖(2kHz)
圖5.10 交錯式半橋式D類放大器輸出電壓、電流及電感電流波形圖(20kHz)
2000 5,000 8,000 11,000 14,000 17,000 20,000 0.7
0.8 0.9 1 1.1 1.2 1.3 1.4
Frequency(Hz)
THD(%)
Signal Frequency V.S. THD
No Dead-Time With Dead-Time
圖5.11 交錯式D類放器輸入訊號頻率變化對總諧波失真變化圖
5.3 實驗結果
5.3.1 實現之控制器功能驗證
為驗證所設計方塊功能正確,直接使用NIOS來修改各控制暫存器的數值,觀察各 各方塊輸出是否如預期,首先測試數位脈寬調變產生器,給責任週期0.5的命令,切換 頻率100kHz時,不加無效時間及加了無效時間0.6µs的波形如圖5.12。接著測試脈寬調 變產生器是否能產生六相的輸出,將其設定在使用六相的情況下,具相位移的波形如 圖5.13,以上結果均顯示所設計之脈寬調變產生器動作正確。接下來測試同步取樣命令 產生器,同步取樣的時機應取樣再開關導通或截止的中間,而取樣頻率可設定成開關 切換頻率的一倍及兩倍,也就是說上升取樣、下降取樣或是雙邊取樣,波形如圖5.14。
以上波形顯示所設計的各方塊動作均正確。
圖5.12 脈寬調變有設定及無設定無效時間波形圖
圖5.13 脈寬調變具相位移波形圖
5.3.2 單相半橋式D類放大器閉迴路實驗
單相半橋式D類閉迴路的電感、電容以及電阻值均如模擬所設定,ADC使用同步 取樣,取樣頻率為200kHz,PWM切換頻率為100kHz,DC輸入電壓為40V,無效時間 設定為0.5µs,當輸入訊號為1kHz時,其輸出電壓及輸出電流波形如圖5.15(a),輸出功
單相半橋式D類閉迴路的電感、電容以及電阻值均如模擬所設定,ADC使用同步 取樣,取樣頻率為200kHz,PWM切換頻率為100kHz,DC輸入電壓為40V,無效時間 設定為0.5µs,當輸入訊號為1kHz時,其輸出電壓及輸出電流波形如圖5.15(a),輸出功