左兆文
摘要:隨著電力電子技術(shù)的發(fā)展,單DSP已經(jīng)無(wú)法滿足例如MMC拓?fù)浣Y(jié)構(gòu)的開關(guān)管控制。故DSP+FPGA的控制器結(jié)構(gòu)成為了研究熱點(diǎn)。本文主要介紹了DSP和FPGA的串行通信方法,DSP發(fā)揮其數(shù)字處理的優(yōu)勢(shì)計(jì)算開關(guān)管的占空比,而FPGA完成占空比移相的功能。其中,串行通信方法利用DSP的GPIOA作為I/O口發(fā)送數(shù)據(jù)。文中給出了串行通信軟件實(shí)現(xiàn)的流程圖,并對(duì)FPGA通信程序進(jìn)行了仿真。通過(guò)仿真以及實(shí)驗(yàn),驗(yàn)證了串行通信方法的可行性。
關(guān)鍵詞:DSP;FPGA;串行通信
在電力電子領(lǐng)域中,一般情況下DSP都作為核心控制器,負(fù)責(zé)整個(gè)系統(tǒng)的正常運(yùn)行[1]。但是DSP在要求高可靠性的電路驅(qū)動(dòng)方面卻不如將驅(qū)動(dòng)算法以電路邏輯方式固化的現(xiàn)場(chǎng)可編程門陣列(FPGA)[2];同時(shí)DSP的輸出功能引腳數(shù)量一定,在一個(gè)需求多路PWM驅(qū)動(dòng)的系統(tǒng)中,DSP無(wú)法獨(dú)立完成系統(tǒng)的控制[3]。而FPGA的I/O口數(shù)量眾多,極大的擴(kuò)展了PWM輸出的數(shù)量。因此,利用DSP+FPGA作為核心控制器成為發(fā)展趨勢(shì)[4]。
一、串行通信的軟件設(shè)計(jì)
本文使用TI公司的TMS320F2812芯片,實(shí)現(xiàn)其與FPGA之間的串行通信。由于控制精度的要求,DSP每次發(fā)送的數(shù)據(jù)都為16位二進(jìn)制數(shù)。在串行通信中,DSP每2us發(fā)送16位數(shù)中的一位數(shù)據(jù)送至FPGA,并等待18usFPGA讀數(shù)據(jù),即50us發(fā)送一個(gè)16位二進(jìn)制數(shù)。
(一)硬件設(shè)計(jì)
TI公司的TMS320F2812DSP芯片晶振為30MHZ,最大倍頻150MHZ,且有56 個(gè)可編程通用輸入/輸出引腳,其中GPIOA和GPIOB可以設(shè)置為PWM輸出引腳。由于DSP需要串行發(fā)送數(shù)據(jù)到FPGA,所需引腳數(shù)量較少,因此選擇GPIOA6-15與FPGA的輸入輸出(I/O)引腳相連接。
(二)軟件實(shí)現(xiàn)
核心控制板中,用于串行發(fā)送數(shù)據(jù)的是GPIOA。所以,串行發(fā)送的時(shí)基是使用2812EVA中的T1定時(shí)器,中斷也為T1定時(shí)器中斷。T1定時(shí)器設(shè)計(jì)為每2us產(chǎn)生一次中斷,并訪問中斷子程序,開始發(fā)送數(shù)據(jù)。當(dāng)?shù)谝粋€(gè)16位的數(shù)據(jù)發(fā)送結(jié)束以后,定時(shí)器繼續(xù)計(jì)時(shí),但并不發(fā)送數(shù)據(jù),等待FPGA讀取數(shù)據(jù)。由于EVA中的計(jì)數(shù)模式設(shè)置為遞增模式。
在SPWM調(diào)試中,調(diào)制波為50HZ正弦波,設(shè)計(jì)PWM頻率為20kHZ,因此在一個(gè)調(diào)制波周期需要發(fā)送400個(gè)16為數(shù)據(jù)每0.9°選取一個(gè)點(diǎn),將正弦波數(shù)組定義為a[i](i=1,2…,400),當(dāng)下一個(gè)周期正弦波到來(lái)時(shí),該數(shù)字又重新開始計(jì)數(shù)。即在20ms內(nèi)發(fā)送400個(gè)數(shù)據(jù)送至FPGA,因此每一個(gè)數(shù)據(jù)發(fā)送周期為50us,而每個(gè)數(shù)據(jù)為16位,所以每一位數(shù)據(jù)發(fā)送時(shí)間為2us,等待時(shí)間為18us。同時(shí),F(xiàn)PGA需要一個(gè)握手信號(hào)表示DSP開始發(fā)送數(shù)據(jù)。所以,選定GPIOA7為握手信號(hào)發(fā)送的I/O口,GPIOA8為數(shù)據(jù)發(fā)送口。GPIOA7在0~32us內(nèi)為高電平表示DSP正在向FPGA發(fā)送數(shù)據(jù),在32~50us內(nèi)為低電平表示停止發(fā)送數(shù)據(jù),同時(shí)FPGA開始讀取數(shù)據(jù)。軟件流程圖見圖1。
在FPGA收到DSP發(fā)送的數(shù)據(jù)信號(hào)和握手信號(hào)以后,F(xiàn)PGA開始工作。當(dāng)控制信號(hào)高位時(shí),F(xiàn)PGA晶振100分頻產(chǎn)生一個(gè)時(shí)鐘信號(hào),目的是為了每2us讀取一次DSP發(fā)送的調(diào)制波信號(hào)。在讀取數(shù)據(jù)時(shí),F(xiàn)PGA還進(jìn)行了串行轉(zhuǎn)并行的操作。當(dāng)控制信號(hào)低位時(shí),調(diào)制波信息保持不變,繼續(xù)產(chǎn)生PWM信號(hào)。FPGA通過(guò)晶振的分頻操作,產(chǎn)生了三角波,接收的調(diào)制波與三角波進(jìn)行比較操作,最終產(chǎn)生PWM信號(hào)。
二、仿真及實(shí)驗(yàn)結(jié)果
為了驗(yàn)證上述理論的正確性,本文進(jìn)行了FPGA的仿真實(shí)驗(yàn)和DSP+FPGA實(shí)際操作。核心控制板如圖2所示。
本文首先驗(yàn)證了DSP在串行通信中軟件程序的正確性。由于DSP發(fā)送調(diào)制波信息以及控制信號(hào),所以DSP發(fā)送波形如圖3所示。通道1顯示的是調(diào)制波信息,從左至右為一個(gè)數(shù)據(jù)的低位到高位。通道2顯示的是DSP發(fā)送至FPGA的控制信息,即握手信號(hào)。
圖4中顯示的是FPGA的仿真波形,CLKIN位FPGA的晶振頻率,CLK0為FPGA的時(shí)鐘信號(hào),TZB為調(diào)制波,輸出Y為PWM波形。
三、結(jié)論
本文主要介紹了DSP+FPGA的串行通信方法,并利用PWM調(diào)試驗(yàn)證了通信算法的可行性。串行通信采用GPIO引腳實(shí)現(xiàn)。大多的電力電子系統(tǒng)要求的開關(guān)的頻率為20kHZ以內(nèi),且需要多路調(diào)制波信號(hào)發(fā)送至FPGA。因此結(jié)合工程實(shí)際,為了節(jié)省通信引腳,系統(tǒng)控制策略選擇串行發(fā)送。最后經(jīng)過(guò)仿真和實(shí)驗(yàn)的驗(yàn)證,證明了串行通信方法的正確性。
參考文獻(xiàn):
[1]2016世界能源發(fā)展報(bào)告[R].北京:社會(huì)科學(xué)文獻(xiàn)出版社,2016.7-10
[2]魏一鳴.中國(guó)能源報(bào)告[M].科學(xué)出版社,2014:2-8
[3]曾正,趙榮祥,湯勝清等.可再生能源分散接入用先進(jìn)并網(wǎng)逆變器研究綜述[J].中國(guó)電機(jī)工程學(xué)報(bào),2013 (24):1-12.
[4]聶華,劉開華,孫春光等.DSP和FPGA之間串口通信研究[J].電子測(cè)量技術(shù),2006,29 (6):112-114.