左兆文
摘要:目前電力電子系統(tǒng)中,利用DSP完成電力電力開關管的占空比的計算,而FPGA完成PWM移相任務逐漸成為趨勢。本文介紹了DSP和FPGA的并行通信方式。并行方法利用DSP的外部數(shù)據(jù)總線(XINTF)與FPGA連接。文中給出了并行通信軟件實現(xiàn)的流程圖,并對FPGA通信程序進行了仿真。通過仿真以及實驗,驗證了并行通信方法的優(yōu)勢。
關鍵詞:外部數(shù)據(jù)總線;FPGA;并行通信
在電力電子領域中,采用DSP芯片作為主處理器,可以實現(xiàn)數(shù)模轉(zhuǎn)換,時基任務等,充分發(fā)揮了DSP在數(shù)字信號處理方面的優(yōu)勢[1]。而利用FPGA作為從控制芯片,接收來自DSP的發(fā)送的調(diào)制波信號,主要實現(xiàn)了產(chǎn)生多路PWM的功能,從而解決了DSP功能引腳數(shù)量不足的劣勢[2][3]。目前大多數(shù)文獻都沒有對DSP和FPGA的通信給出在電力電子領域應用的具體方法。
針對上述問題,本文使用TMS320F2812芯片,實現(xiàn)其與FPGA之間的并行通信。由于控制精度的要求,DSP每次發(fā)送的數(shù)據(jù)都為16位二進制數(shù)。在并行通信中,利用外部數(shù)據(jù)總線,將16位數(shù)據(jù)同時發(fā)送,并等待1usFPGA讀數(shù)據(jù)。最后,通過仿真以及實驗驗證了并行通信方法的正確性以及準確性,并總結并行方法的優(yōu)勢[4-5]。
一、并行通信的硬件和軟件設計
(一)硬件設計
TMS320F2812DSP芯片有16位XINTF數(shù)據(jù)總線XD[0~15],通常用于擴展SRAM、Flash、ADC模塊等。XINTF是F2812與外部設備通信的重要接口。外部設備不能控制F2812的外部接口信號線,只能讀取、判斷信號線的狀態(tài),來進行相應的操作。在系統(tǒng)的控制芯片中,將外擴數(shù)據(jù)總線與FPGA的用戶自定義I/O管腳連接,用于實現(xiàn)數(shù)據(jù)的并行發(fā)送。同時選擇DSP的與FPGA相連接的GPIO引腳,作為FPGA接收數(shù)據(jù)的控制信號發(fā)送口。DSP的外擴XD[0~15]作為并行數(shù)據(jù)發(fā)送的引腳;由于FPGA需要握手信號作為接收數(shù)據(jù)的使能位,所以選定GPIOA6作為控制信號引腳。
(二)軟件實現(xiàn)
由DSP2812的外擴接口結構可知,XINTF接口被映射到5個固定的存儲空間。在軟件設計中,選定Zone6區(qū)域,故直接定義外部起始地址為0x100000。與串行通信類似,并行通信亦需要定時器提供時基。使用CPU定時器,并開定時器中斷,在中斷子程序中完成數(shù)據(jù)的傳輸。CPU 定時器在初始化階段設計為每隔1us產(chǎn)生一個中斷發(fā)給CPU,使其訪問中斷子程序。在進入中斷程序后,首先GPIOA6輸出高電平送至FPGA,表示準備發(fā)送數(shù)據(jù),F(xiàn)PGA做好接收讀取數(shù)據(jù)的準備;然后,DSP并行16位發(fā)送數(shù)據(jù)。在一個數(shù)據(jù)發(fā)送結束之后,進入下一個1us中斷,GPIOA6輸出低電平,等待FPGA讀取數(shù)據(jù),同時DSP更新下一個即將發(fā)送的數(shù)據(jù)。
FPGA在接收來自DSP的控制信號與數(shù)據(jù)信號之后,F(xiàn)PGA開始工作。FPGA中調(diào)制波信息與三角載波信息直接比較產(chǎn)生PWM波形。由于DSP計算出的占空比為16位定點型數(shù)據(jù),且其大小范圍為[0,1],故而將其乘以104轉(zhuǎn)換為整型后,以二進制數(shù)據(jù)類型發(fā)送。然后將轉(zhuǎn)換后的整型占空比數(shù)據(jù)的每一位和1做與邏輯運算,求出每一位的值,并將其賦值給DSP的GPIO口。同時DSP輸出一位高電平的握手信號,表示已經(jīng)開始傳出數(shù)據(jù),F(xiàn)PGA接收到該I/O口的高電平后,開始接收數(shù)據(jù)。
當FPGA收到握手信號開始接收DSP傳輸?shù)恼伎毡雀碌闹狄院螅枰嬎愠稣{(diào)制波的值。將DSP傳輸?shù)亩M制數(shù)轉(zhuǎn)換為10進制數(shù)以后,復原其原有的占空比,乘以三角載波最大值,即為調(diào)制波的值。將調(diào)制波與三角載波比較,即可輸出控制功率開關管的PWM波,F(xiàn)PGA運行產(chǎn)生PWM的工作流程圖如圖1所示。
二、仿真以及實驗結果
圖2中顯示的是FPGA的仿真波形,CLKIN位FPGA的晶振頻率,CLK0為FPGA的時鐘信號,TZB為調(diào)制波,輸出Y為PWM波形。為了進一步驗證本文中軟件設計的正確性,又進行了PWM和SPWM的實驗。圖3中為FPGA輸出的PWM和SPWM。
圖3與FPGA仿真波形對比可發(fā)現(xiàn),實驗波形是正確的,說明軟件通信的是有效的。圖3(b)中通道1位雙極性SPWM波形,通道2位一階濾波后的正弦波形。由此說明本文中設計的并行通信方法的合理性和有效性。
三、結論
本文主要研究了DSP+FPGA的并行通信方法。并行通信采用DSP外擴數(shù)據(jù)總線實現(xiàn),通過實驗產(chǎn)生PWM和SPWM波形驗證了本文提出并行通信方法的正確性和有效性。
參考文獻:
[1]嚴剛峰,方紅,楊維等.采用FPGA實現(xiàn)同步串行數(shù)據(jù)的并行采集[J].自動化儀表,2014,35(9):84-86.
[2]聶華,劉開華,孫春光等.DSP和FPGA之間串口通信研究[J].電子測量技術,2006,29(6):112-114.
[3]姜楠,馬迎建,馮翔等.DSP和FPGA并行通信方法研究[J].電子測量技術,2008,31(10):146-148.
[4]王會錦.基于DSP-FPGA的電力機車輔助逆變器控制系統(tǒng)研究及實現(xiàn)[D].北京交通大學,2012.
[5]郭偉峰.基于DSP-FPGA全數(shù)字控制的并聯(lián)有源電力濾波器[J].電工技術學報,2007,22(5):123-127.