王國棟,馬曉軍,袁 東,楊懷彬
(裝甲兵工程學(xué)院,北京 100072)
基于FPGA+DSP的雙核控制器硬件設(shè)計
王國棟,馬曉軍,袁 東,楊懷彬
(裝甲兵工程學(xué)院,北京 100072)
在設(shè)計高實時性的系統(tǒng)時,針對基于DSP、單片機等串行運算方式的單核控制器無法實現(xiàn)高實時性的問題,利用FPGA的并行運行優(yōu)點構(gòu)建了基于DSP+FPGA的雙核控制器,以達到提高系統(tǒng)實時性的目的。通過分析系統(tǒng)總體結(jié)構(gòu),主要設(shè)計完成了系統(tǒng)總線構(gòu)架、DA電路、CAN總線和PROM電路,然后通過軟件編程來驗證硬件設(shè)計。經(jīng)調(diào)試分析,該系統(tǒng)各部分運行正常,可為研究設(shè)計高實時性的控制器提供參考和借鑒。
FPGA,控制器,并行,高速總線
在設(shè)計高實時性的系統(tǒng)時,基于DSP、單片機等串行運算方式的單核控制系統(tǒng)難以滿足高實時性的要求。若采用并行構(gòu)架的FPGA實現(xiàn)DSP功能或FPGA與DSP協(xié)同控制,系統(tǒng)可以實現(xiàn)大量數(shù)據(jù)并行運算,提高系統(tǒng)實時性[1-2]。文獻[3-4]中基于FPGA的高速信號處理平臺均驗證了并行構(gòu)架的FPGA提高系統(tǒng)實時性的可行性,對設(shè)計基于DSP+FPGA的雙核控制器提供了理論支持;本文所設(shè)計的DSP+FPGA的雙核控制系統(tǒng)采用DSP來實現(xiàn)系統(tǒng)頂層復(fù)雜控制算法部分,采用FPGA來實現(xiàn)系統(tǒng)底層計算量大、實時性要求高的數(shù)據(jù)處理部分,這樣發(fā)揮了DSP和FPGA各自的優(yōu)勢,從而滿足數(shù)字系統(tǒng)信號實時處理的要求。
系統(tǒng)中的 DSP采用了適合控制運算的TMS320F2812,F(xiàn)PGA則采用了適合作為DSP輔助處理器的Spartan3E系列的XC3S500E[5],圖1為系統(tǒng)結(jié)構(gòu)圖。系統(tǒng)由DSP、FPGA、PROM、DA轉(zhuǎn)換電路以及CAN總線組成。①DSP用于實現(xiàn)系統(tǒng)頂層復(fù)雜的控制算法,并輸出PWM等控制信號;②FPGA用于實現(xiàn)系統(tǒng)底層大量的高速信號的實時處理,F(xiàn)PGA與DSP通過高速總線相連,實現(xiàn)數(shù)據(jù)的高速交互;③PROM用于存儲FPGA的程序,防止程序掉電丟失;④DA轉(zhuǎn)換電路用于將FPGA內(nèi)部的數(shù)字信號轉(zhuǎn)換輸出,以便于系統(tǒng)測試,方便系統(tǒng)控制,系統(tǒng)包括6路DA電路,DA電路由FPGA直接控制,使FPGA替DSP分擔(dān)了底層并行信號的實時處理;⑤CAN總線用于實現(xiàn)DSP與外界的通信。
圖1 系統(tǒng)結(jié)構(gòu)圖
2.1 DA輸出電路設(shè)計
DA輸出電路由DA轉(zhuǎn)換電路和差分放大電路組成。DA轉(zhuǎn)換芯片選用DAC5652[6]。DAC5652是一種雙通道、電流型的10位DA轉(zhuǎn)換芯片,圖2以1片DAC5652為例分析系統(tǒng)的DA設(shè)計;其結(jié)構(gòu)如圖2所示,當MODE管腳為高時(3.3 V),DAC5652工作在雙通道模式;DA輸出電路共用一條數(shù)據(jù)總線和一個轉(zhuǎn)換時鐘(DACLK),每路DA電路有各自獨立的片選信號(DAWTR1/DAWTR2);轉(zhuǎn)換時鐘(DACLK)和片選信號(DAWTR1/DAWTR2)由FPGA控制依次有序輸出,從而保證6路DA電路有正確的工作時序,如下頁圖3所示。差分放大電路選用運放OPA2690,電路差模放大倍數(shù)如式(1)所示。
圖2 DA輸出電路
2.2 DSP與FPGA間的總線構(gòu)架
為了實現(xiàn)DSP與FPGA的信息交互,系統(tǒng)采用如下頁圖4所示的總線構(gòu)架。DSP和FPGA之間共有1組高速數(shù)據(jù)地址總線(DSP_D/DSP_A)和讀寫、片選等控制信號(XRD/XWE/XZCS)[8]。其中:①地址總線用于實現(xiàn)DSP在FPGA內(nèi)尋址,其中地址總線的高4位(DSP_A7-DSP_A4)用于確定片外存儲器的地址,將DSP的片外存儲地址指向FPGA的內(nèi)部緩存,低4位(DSP_A3-DSP_A0)用于確定DSP進行讀寫操作的具體地址,即DSP的地址信號指向了FPGA內(nèi)部緩存的哪一個地址,因此,低4位地址線(DSP_A3-DSP_A0)決定了DSP共指定了16個片外存儲地址;②數(shù)據(jù)總線用于實現(xiàn)DSP和FPGA之間數(shù)據(jù)的高速交互;③信號XZCS用于指定DSP的片外存儲器;④信號XWE用于控制DSP對FPGA進行寫操作;⑤信號XRD用于控制DSP對FPGA進行讀操作。
圖3 DA工作時序
在該總線構(gòu)架中,F(xiàn)PGA單獨進行數(shù)據(jù)運算,并控制著DA電路依次有序輸出,DSP通過高速地址總線來指定讀寫FPGA內(nèi)緩存的數(shù)據(jù),然后通過高速數(shù)據(jù)總線來進行數(shù)據(jù)交互。
圖4 DSP與FPGA間的總線構(gòu)架
2.3 CAN總線的設(shè)計
用CAN總線實現(xiàn)數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,CAN總線采用多主串行通信協(xié)議,具有較高的安全性,可以有效地支持分布式實時控制[9]。系統(tǒng)CAN總線設(shè)計如圖5所示,CAN總線控制器選用PCA82C250T實現(xiàn)數(shù)據(jù)的收發(fā)。TXD為數(shù)據(jù)輸入控制端,用于實現(xiàn)數(shù)據(jù)的發(fā),TXD和RXD通過電壓轉(zhuǎn)換后與DSP相連;RXD為數(shù)據(jù)輸出控制端,用于實現(xiàn)數(shù)據(jù)的收;CANH/L用于高/低壓總線數(shù)據(jù)的傳輸,用于實現(xiàn)與外界通訊。
2.4PROM設(shè)計
FPGA是基于SRAM的可編程器件,掉電后FPGA上配置的信息將全部丟失,因此,需要ROM為FPGA存儲信息。PROM的設(shè)計如圖6所示,TMS用于JTAG輸入模式選擇;TCK用于JTAG時鐘的輸入;TDI用于JTAG串行數(shù)據(jù)輸入;TDO用于JTAG串行數(shù)據(jù)輸出。在下載FPGA程序時,使用JTAG模式配置bit文件,然后用bit文件轉(zhuǎn)換為prom文件下載到PROM里,當系統(tǒng)上電時,將程序配置到FPGA里。
圖5 CAN總線設(shè)計
圖6 PROM設(shè)計
3.1 驗證DSP與FPGA之間的通信
為了驗證DSP與FPGA之間的通信設(shè)計,在ISE中創(chuàng)建一個簡單的讀寫工程。讀寫工程用于在FPGA內(nèi)部構(gòu)建地址譯碼模塊和數(shù)據(jù)緩存模塊,當FPGA收到DSP發(fā)出的地址和控制信號后,地址譯碼模塊將收到的地址信號進行翻譯,使DSP能夠讀寫數(shù)據(jù)緩存模塊中地址信號所指定的數(shù)據(jù)。工程的頂層設(shè)計如圖7所示。
圖7 DSP與FPGA通信
圖7 包括分頻程序模塊(hdaclk)、片選程序模塊(ChipSelA)、緩存程序模塊(DevBUFF)和D觸發(fā)器(FD)。片選程序(ChipSelA)是采用邏輯運算式(2)來指定DSP的外部存儲(FPGA)的地址;
緩存程序(DevBUFF)內(nèi)部構(gòu)建了16個地址緩存,每個地址緩存中都存儲有一個16位的二進制數(shù),程序通過讀(RDA)、寫(WEA)信號以及地址信號(A(3:0))來判斷讀寫緩存器內(nèi)的某個數(shù),讀寫的數(shù)據(jù)通過數(shù)據(jù)總線Data(15:0)與DSP進行交互,最終實現(xiàn)DSP與FPGA間的通信。經(jīng)試驗驗證,DSP可以順利讀寫FPGA內(nèi)指定地址的信息。
3.2 驗證DA輸出
由于系統(tǒng)的6路DA電路是共用與FPGA相連的數(shù)據(jù)線總線,因此,在進行設(shè)計驗證時,我們必須保證FPGA為各個DA電路依次有序的提供數(shù)據(jù)信號、片選信號以及轉(zhuǎn)換時鐘信號,使片選信號和轉(zhuǎn)換時鐘信號滿足圖3對工作時序的要求。軟件工程的結(jié)構(gòu)框圖如圖8所示。
圖8包括DA選擇程序模塊(daout)、片選選擇程序模塊(choose_S)和控制信號生成模塊。dout模塊和choose_S模塊分別控制著數(shù)據(jù)信號和片選信號的選擇輸出,即控制6路DA的輸入數(shù)據(jù)和片選信號依次按順序輸出,同時確保當某個DA的數(shù)據(jù)信號來時,片選信號同時到達;控制信號生成模塊是用于生成DAC5652所需的時鐘(DACLK)和片選信號(WTR),并確保兩個信號為圖3所示的正確工作時序。
圖8 DA程序框圖
對上述工程進行仿真驗證[5],仿真結(jié)果如圖9所示。
圖9 DA輸出仿真
通過圖9看到FPGA為DA芯片提供的時鐘信號(daclk)和片選信號(dawtr)與圖3的工作時序相同,表明DA電路工作正常。綜上所述,各個DA端口能夠依次有序輸出系統(tǒng)指定的數(shù)據(jù)信號。
通過軟件調(diào)試,驗證了設(shè)計DSP+FPGA的雙核控制器的可行性,這種構(gòu)架的控制器發(fā)揮了DSP和FPGA各自的優(yōu)勢,增強了系統(tǒng)實時處理數(shù)據(jù)的能力,十分適合實時性要求高的系統(tǒng),是構(gòu)建高實時性系統(tǒng)的一種有效設(shè)計。
[1]楊海鋼,孫嘉斌,王慰.FPGA器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學(xué)報,2010,32(3):714-727.
[2]Kuon I,Rose J.Measuring the Gap Between FPGAs and ASICs[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2007,26(2):203-215.
[3]付志紅,馬靜,謝品芳,陳清禮.基于高速數(shù)字信號平臺的實時仿真技術(shù)[J].系統(tǒng)仿真學(xué)報,2007,19(16):3680-3684.
[4]李樂,熊志輝,王斌,等.DSP+FPGA折反射全景視頻處理系統(tǒng)中雙核高速數(shù)據(jù)通信[J].電子與信息學(xué)報,2010,32(3):649-654.
[5]談世哲,李健,管殿柱.基于Xilinx ISE的FPGA/CPLD設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2009.
[6]DAC5652技術(shù)手冊[S].www.ti.com.
[7]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2006.
[8]劉和平,劉平,王華斌,等.數(shù)字信號控制器原理及應(yīng)用——基于TMS320F2808[M].北京:北京航空航天大學(xué)出版社,2011.
[9]杜春洋,王宇超.零基礎(chǔ)學(xué)TMS320F281x DSP C語言程序設(shè)計[M].北京:機械工業(yè)出版社,2010.
Design of Dual Core Controller Based on FPGA+DSP
WANG Guo-dong,MA Xiao-jun,YUAN Dong,YANG Huai-bin
(Academy of Armored Forces Engineering,Beijing 100072,China)
In the design of the high real-time system,for single core controller,such as DSP,singlechip,which is based on the way of serial arithmetic is difficulity to achieve high real-time.In this article,the advantages of FPGA which is parallel running to constructed the dual core controller which based on DSP and FPGA is utilized,in order to improve the real-time performance of the system. Through analysis of the overall structure of the system,the design of the bus architecture of the system,DA circuit,CAN bus circuit and PROM circuit are completed,then using the software to verification the design of hardware.After debugging and analysis,each part of the system is in normal operation,which can provide reference for design the high real-time controller.
FPGA,controller,parallel,high speed bus
TP391.9
A
1002-0640(2015)04-0165-04
2014-01-05
2014-03-19
王國棟(1990- ),男,山東泰安人,碩士研究生。研究方向:電力電子與電力傳動。