李森,黃海波,孫帆,盧軍,孫永新,李艷
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰442002)
感應(yīng)加熱電源常常工作在高溫、高塵和電磁復(fù)雜的環(huán)境中[1],目前國(guó)內(nèi)很多大型鋼鐵冶煉廠和鋁廠都采用感應(yīng)加熱的方式對(duì)金屬鑄件進(jìn)行加熱。大功率的感應(yīng)加熱電源需要實(shí)時(shí)的監(jiān)測(cè)工作溫度、電流和電壓等信號(hào),以確保電源的正常工作。而感應(yīng)加熱電源的加熱頻率會(huì)隨著金屬鑄件的形狀和材質(zhì)等發(fā)生改變,因此對(duì)感應(yīng)加熱電源的工作狀態(tài)的變頻采樣,變得尤為重要。其次,因?yàn)楣ぷ鳝h(huán)境惡劣,采集器的工作穩(wěn)定性和抗干擾能力也相當(dāng)重要,因此需要簡(jiǎn)化采集器的結(jié)構(gòu),降低復(fù)雜度,提高系統(tǒng)的穩(wěn)定性?;谝陨闲枨?,設(shè)計(jì)了一款以FPGA作為處理器、具有5種采樣頻率的信號(hào)采集器。
系統(tǒng)的整體結(jié)構(gòu)如圖1所示,由模擬信號(hào)處理系統(tǒng)[2]、FPGA處理系統(tǒng)、串口通信以及其他外圍組件組成。模擬信號(hào)處理系統(tǒng)主要完成信號(hào)的衰減以及雙極性采集的實(shí)現(xiàn),F(xiàn)PGA 處理系統(tǒng)主要實(shí)現(xiàn)多頻率采樣控制、數(shù)據(jù)緩存、數(shù)據(jù)分幀的功能,串口通信主要實(shí)現(xiàn)數(shù)據(jù)的傳輸。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
1)系統(tǒng)工作原理 系統(tǒng)上電后,從EPCS16 中讀取配置信息,并加載到FPGA 進(jìn)行系統(tǒng)初始化,采集器開始工作。鎖相環(huán)(PLL)產(chǎn)生5 路時(shí)鐘,通過時(shí)鐘無縫切換模塊,將PLL產(chǎn)生的時(shí)鐘信號(hào)送入AD9226 的時(shí)鐘輸入端口和雙時(shí)鐘FIFO 的寫入時(shí)鐘端口。AD9226 的數(shù)據(jù)輸出端口直接與雙時(shí)鐘FIFO 的數(shù)據(jù)寫入端口相連,在每一拍時(shí)鐘的作用下,不斷將采集數(shù)據(jù)寫入雙時(shí)鐘FIFO。系統(tǒng)狀態(tài)機(jī)從雙時(shí)鐘FIFO 的數(shù)據(jù)輸出端口讀取數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行重組,然后將重組后的數(shù)據(jù)寫入串口,采用高8位在前低8位在后的結(jié)構(gòu),將數(shù)據(jù)發(fā)送出去。
2)系統(tǒng)主要技術(shù)指標(biāo) 信號(hào)采集器主要技術(shù)指標(biāo)如下:系統(tǒng)采樣分辨率為12 bit,系統(tǒng)采樣頻率為5檔可調(diào),分別為1 MHz、2 MHz、5 MHz、10 MHz、15 MHz,輸入被測(cè)電壓的范圍為-5~5 V。
為了提高系統(tǒng)的穩(wěn)定性,增強(qiáng)系統(tǒng)的抗干擾能力,擴(kuò)寬輸入信號(hào)的范圍,設(shè)計(jì)了AD9226 采集電路和信號(hào)調(diào)理電路。
圖2 AD9226硬件電路圖
1)AD9226 采集電路設(shè)計(jì) AD9226 支持單端或差分輸入的高速并行ADC,其分辨率為12 bit,最高采樣頻率為65 MHz[3]。電路設(shè)計(jì)如圖2所示,為了方便使用SMA接口,把AD9226配置為單端輸入模式,輸入信號(hào)從VINA進(jìn)入。為了提高系統(tǒng)采樣精度,采用AD9226內(nèi)部的基準(zhǔn)源,VREF為基準(zhǔn)電壓的輸出端口,可提供1 V和2 V基準(zhǔn)電壓,當(dāng)SENSE接地時(shí),提供2 V 基準(zhǔn)電壓,當(dāng)SENSE 與VREF相連時(shí),提供1 V基準(zhǔn)電壓。文中選擇2 V基準(zhǔn)電壓,此時(shí)VINA輸入電壓的范圍為1~3 V。
2)信號(hào)調(diào)理電路設(shè)計(jì) 系統(tǒng)中,信號(hào)調(diào)理電路[4]通過對(duì)信號(hào)的衰減[5],使單極性的ADC實(shí)現(xiàn)雙極性的采樣功能,同時(shí)擴(kuò)寬采集信號(hào)的輸入范圍。根據(jù)圖2 中AD9226 的配置方式,設(shè)計(jì)的信號(hào)調(diào)理電路見圖3,Vin為被測(cè)輸入信號(hào),范圍為-5~5 V,Vout為轉(zhuǎn)換后的輸出信號(hào),接入AD9226 的VINA端口。信號(hào)電壓的轉(zhuǎn)換關(guān)系為
當(dāng)Vin為-5 V時(shí),Vout為1 V;當(dāng)Vin為5 V時(shí),Vout為3 V,滿足AD9226輸入信號(hào)的范圍要求。
圖3 信號(hào)調(diào)理電路
系統(tǒng)軟件設(shè)計(jì)主要包括AD9226 采集控制模塊、時(shí)鐘無縫切換模塊、雙時(shí)鐘FIFO 模塊、UART傳輸模塊以及系統(tǒng)控制狀態(tài)機(jī)的設(shè)計(jì)。
圖4 AD9226控制模塊
1)AD9226 采集控制模塊 AD9226 采集控制模塊的邏輯接口設(shè)計(jì)如圖4 所示,主要實(shí)現(xiàn)對(duì)AD9226 的驅(qū)動(dòng)控制功能,控制AD9226 采集的啟停、時(shí)鐘信號(hào)的輸入,并將采集的并行數(shù)據(jù)通過該采集控制模塊傳入雙時(shí)鐘FIFO的寫數(shù)據(jù)端口。
2)時(shí)鐘無縫切換模塊 為適應(yīng)實(shí)際工作的需求,設(shè)計(jì)了5 檔可調(diào)的多頻率采樣模塊,采用時(shí)鐘無縫切換的方式實(shí)現(xiàn)多頻率采樣功能[6]。但在時(shí)鐘切換的過程中,由于異步控制信號(hào)的引入,會(huì)產(chǎn)生亞穩(wěn)態(tài)、毛刺和凸點(diǎn),從而導(dǎo)致錯(cuò)誤的采樣。為了實(shí)現(xiàn)時(shí)鐘的無縫切換,設(shè)計(jì)了如圖5所示的時(shí)鐘無縫切換電路,第一級(jí)DFF 對(duì)數(shù)據(jù)寄存一拍,用于穩(wěn)定數(shù)據(jù),避免亞穩(wěn)態(tài)出現(xiàn);第二級(jí)下降沿DFF 確保切換只發(fā)生在目標(biāo)時(shí)鐘為低電平期間。通過引入反饋,將每路的輸出反饋至其他路的輸入端,確保在其他路輸出為低電平時(shí)發(fā)生切換。為了驗(yàn)證設(shè)計(jì)的效果,同時(shí)針對(duì)前仿真不能對(duì)亞穩(wěn)態(tài)進(jìn)行很好的模擬,對(duì)系統(tǒng)進(jìn)行了后仿真,其后仿真的波形圖見圖6。由圖6可知,輸出時(shí)鐘clk_out 在切換的過程中無任何毛刺、亞穩(wěn)態(tài)和凸點(diǎn)。
圖5 時(shí)鐘無縫切換邏輯電路
圖6 時(shí)鐘無縫切換仿真波形圖
3)雙時(shí)鐘FIFO 模塊 系統(tǒng)中ADC 采樣的最高頻率設(shè)計(jì)為15 MHz,ADC 的分辨率為12 bit,1 s采集的數(shù)據(jù)量為180 Mbit。實(shí)際進(jìn)行傳輸時(shí),數(shù)據(jù)是以字節(jié)為單位進(jìn)行傳輸?shù)?,因此?shí)際1 s 需要傳輸?shù)臄?shù)據(jù)量為240 Mbit。USB 串口傳輸?shù)牟ㄌ芈首罡咴O(shè)為115 200 b·s-1,因此需要1 個(gè)緩存器對(duì)速度進(jìn)行匹配[7]。采用QuartusII 中的雙時(shí)鐘FIFO IP核[8]作為數(shù)據(jù)緩存器,使數(shù)據(jù)的存入與發(fā)送相互獨(dú)立。以AD9226 的采樣時(shí)鐘作為雙時(shí)鐘FIFO 的寫時(shí)鐘[9],保證每采集一次,數(shù)據(jù)就同步的存入雙時(shí)鐘FIFO;雙時(shí)鐘FIIFO 讀取時(shí)鐘受系統(tǒng)時(shí)鐘的控制,串口傳輸完畢的結(jié)束信號(hào)作為FIFO 讀觸發(fā)信號(hào)。為了實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)寫入,在設(shè)計(jì)中將雙時(shí)鐘FIFO寫滿信號(hào)取反后作為FIFO的寫有效信號(hào),以實(shí)現(xiàn)數(shù)據(jù)自動(dòng)不斷寫入,整個(gè)雙時(shí)鐘FIFO 的接口設(shè)計(jì)[10]如圖7所示。
圖7 雙時(shí)鐘FIFO模塊
4)UART 發(fā)送模塊 UART 發(fā)送模塊主要將雙時(shí)鐘FIFO 中緩存的數(shù)據(jù)發(fā)送到計(jì)算機(jī)[11],其接口設(shè)計(jì)見圖8,其中Rst_n、Clk為復(fù)位和時(shí)鐘端口,Data_byte[7:0]為發(fā)送數(shù)據(jù)的輸入端口,Baud_set[2:0]為波特率設(shè)置端口,Send_en 為發(fā)送使能端口,Uart_tx為數(shù)據(jù)發(fā)送端口,Uart_state為串口工作狀態(tài)指示端口,Tx_done為發(fā)送完成標(biāo)志端口。
圖8 UART發(fā)送模塊
圖9 系統(tǒng)控制狀態(tài)機(jī)
5)系統(tǒng)控制狀態(tài)機(jī) 系統(tǒng)控制狀態(tài)機(jī)主要完成采集數(shù)據(jù)從雙時(shí)鐘FIFO到UART發(fā)送模塊的數(shù)據(jù)傳送控制及各模塊的協(xié)同工作控制[12]。該狀態(tài)機(jī)劃分為7 個(gè)狀態(tài),其狀態(tài)轉(zhuǎn)移圖如圖9 所示,由于每個(gè)狀態(tài)的輸出較多,因此在狀態(tài)圖中只給出了狀態(tài)和轉(zhuǎn)移條件。各狀態(tài)的含義如下:IDLE 為空閑狀態(tài),復(fù)位時(shí)返回的狀態(tài);READ_FIFO_TRIG為讀雙時(shí)鐘FIFO 的觸發(fā)態(tài),輸出FIFO 值到FIFO的q 端口上;READ_FIFO_DATA 讀取雙時(shí)鐘FIFO的q端口上的值;UART_TRIG1將雙時(shí)鐘FIFO 的q端口值的高4位賦給UART的Data_byte端口,同時(shí)使能UART發(fā)送;WAIT_TX1_DONE等待UART第1次發(fā)送完畢;UART_TRIG2將雙時(shí)鐘FIFO 的q端口值的低8位賦給UART的Data_byte端口,同時(shí)使能UART 發(fā)送;WAIT_TX2_DONE 等待UART 第2次發(fā)送完畢。
6)系統(tǒng)軟件整體結(jié)構(gòu) 編寫AD9226 頂層控制邏輯和系統(tǒng)頂層邏輯文件,將各個(gè)功能模塊匹配并進(jìn)行分析和綜合,完成整個(gè)系統(tǒng)的軟件設(shè)計(jì)。AD9226的頂層邏輯設(shè)計(jì)如圖10所示,系統(tǒng)軟件整體結(jié)構(gòu)如圖11所示。
圖10 AD9226頂層邏輯設(shè)計(jì)
圖11 系統(tǒng)軟件整體結(jié)構(gòu)
為測(cè)試信號(hào)采集器設(shè)計(jì)的正確性和性能的穩(wěn)定性[13],利用函數(shù)信號(hào)發(fā)生器作為激勵(lì)源,將產(chǎn)生的正弦波、方波[14]和三角波對(duì)信號(hào)采集器進(jìn)行多次測(cè)試,并用邏輯分析儀抓取輸出結(jié)果。通過試驗(yàn)證明,該信號(hào)采集器能夠正確采集模擬信號(hào),具有較高的穩(wěn)定性和處理能力。從多次測(cè)試結(jié)果中抽取1組結(jié)果,其信號(hào)源圖和測(cè)試效果如圖12所示。
圖12 測(cè)試結(jié)果
利用FPGA設(shè)計(jì)了具有5種采樣頻率的信號(hào)采集器,在存儲(chǔ)容量一定的情況下,增強(qiáng)了對(duì)被采樣信號(hào)的適應(yīng)能力。采集器僅由1片F(xiàn)PGA作為處理單元,且系統(tǒng)各模塊的協(xié)同工作全部由狀態(tài)機(jī)實(shí)現(xiàn),在降低功耗的同時(shí),提高了系統(tǒng)的實(shí)時(shí)性。經(jīng)試驗(yàn)證明采集器能準(zhǔn)確采集輸入信號(hào),且性能穩(wěn)定,達(dá)到工業(yè)要求。采集器僅設(shè)計(jì)了USB接口的數(shù)據(jù)傳輸方式,接口單一,后續(xù)研究將考慮增加接口。