文獻標(biāo)識碼: A
文章編號: 0258-7998(2011)03-0072-03
以太網(wǎng)接口和RS422串行通信接口作為目前應(yīng)用最廣泛的兩種通信接口,被應(yīng)用到各個領(lǐng)域中。傳統(tǒng)的使用計算機的網(wǎng)絡(luò)接口和串口轉(zhuǎn)換卡的方式,需要以計算機作為主要運算部件,在很多工業(yè)場合不方便使用[1-3]。數(shù)字信號處理器(DSP)芯片作為一種特殊的嵌入式微處理器系統(tǒng),是專門為實現(xiàn)各種數(shù)字信號處理算法而設(shè)計的,嵌入式網(wǎng)絡(luò)可以有效地用于不方便使用計算機的應(yīng)用場合,而嵌入式網(wǎng)絡(luò)開發(fā)的應(yīng)用前景十分廣闊,已經(jīng)成為研究的熱點[4-5]。
根據(jù)實際項目的使用要求,本文使用TI公司的TMS320F2812 DSP芯片與Xilinx的FPGA芯片XC3S400以及ASIX公司的AX88180芯片完成了基于網(wǎng)卡通信控制系統(tǒng)。
1 方案設(shè)計
系統(tǒng)以TI公司的TMS320F2812 DSP為中央處理器,該芯片是用于測控領(lǐng)域的16位定點DSP,處理速度達(dá)到150 MHz,其主要特點是采用哈佛總線結(jié)構(gòu),具有快速中斷響應(yīng)和處理能力,具有4 M線性程序地址與4 M線性數(shù)據(jù)地址,16位的數(shù)據(jù)總線,以及1 M尋址空間的地址總線;三個外部芯片選擇信號[6,7]。DSP負(fù)責(zé)通信數(shù)據(jù)信息的處理,接收網(wǎng)絡(luò)接口數(shù)據(jù)包,將其轉(zhuǎn)換成串行通信數(shù)據(jù)包,并且將接收到的串行通信數(shù)據(jù)返回給網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接口控制芯片對收到的網(wǎng)絡(luò)數(shù)據(jù)進行處理,將以太網(wǎng)傳輸?shù)臄?shù)據(jù)格式轉(zhuǎn)換成數(shù)據(jù),與DSP處理器進行交互。采用Xilinx公司的Spartan系列的Spartan3-SC3S400芯片作為外部微處理器,該芯片有400 K門,8 M邏輯單元,32×28個CLB(Configurable Logic Block)內(nèi)部資源。可獲得的LUT門為7 168;可以使用的邏輯區(qū)為3 584[8]。FPGA完成以太網(wǎng)接口芯片AX88180的控制和UART實現(xiàn),采用DS90LV019進行TTL信號與差分信號轉(zhuǎn)換;DSP與FPGA之間采用總線方式進行數(shù)據(jù)讀寫操作。系統(tǒng)功能框圖如圖1所示。
2 硬件電路設(shè)計
系統(tǒng)硬件設(shè)計分三部分: (1)中央處理器TMS320F2812 DSP與FPGA之間的接口部分,這部分負(fù)責(zé)系統(tǒng)的通信轉(zhuǎn)換控制;(2)網(wǎng)絡(luò)控制芯片與FPGA之間的接口,這部分負(fù)責(zé)以太網(wǎng)數(shù)據(jù)與總線數(shù)據(jù)之間的轉(zhuǎn)換;(3)UART接口,這部分負(fù)責(zé)串行通信數(shù)據(jù)串并轉(zhuǎn)換。
2.1 DSP+FPGA硬件電路
TMS320F2812作為中央處理器;FPGA作為外部接口XINTF與DSP連接,連接內(nèi)容包括:地址總線Address(18~0)、數(shù)據(jù)總線(15~0)、片選信號(XZCS0AND1)、DSP讀使能(XRD)、DSP寫使能(XWE)、外部保持請求(XHOLD)、外部保持應(yīng)答(XHOLDA)、外部準(zhǔn)備后信號(XREADY)、中斷控制信號XINT。DSP與FPGA連接原理框圖如圖2所示。
DSP處理器與FPGA處理器之間采用XINTF總線接口進行數(shù)據(jù)交互,F(xiàn)PGA作為DSP的一個外部擴展區(qū),DSP處理器需要通過讀、寫、片選三個控制信號,以及地址總線、數(shù)據(jù)總線以訪問外部SRAM的方式進行讀寫控制,控制信號通過DSP的外部I/O進行。實現(xiàn)方法如下:首先在FPGA內(nèi)部構(gòu)建一個基于分布式塊區(qū)域異步IP核的SRAM,該SRAM的數(shù)據(jù)寬度是16位,深度是1 024,具有讀寫控制信號WE,讀時鐘RCLK和寫時鐘WCLK。讀時鐘RCLK由DSP的讀信號XRD賦值,寫時鐘WCLK由DSP的寫信號XWE賦值,讀寫控制信號WE由DSP的外部擴展IO賦值,當(dāng)DSP需要寫外部SRAM時,IO設(shè)置為低;當(dāng)DSP需要讀外部SRAM時,IO設(shè)置為高。
2.2網(wǎng)絡(luò)接口
網(wǎng)絡(luò)控制器選擇ASIX公司的AX88180芯片,AX88180芯片是臺灣ASIX公司推出的全球第一款Non-PCI接口的千兆以太網(wǎng)絡(luò)控制芯片。
通過FPGA芯片需要配置其控制信號,網(wǎng)絡(luò)接口芯片控制原理圖如圖3所示。
2.3 UART接口
UART接口芯片采用DS90LV019芯片,該芯片電壓是3.3 V,接口是RS422/RS485接口與TTL電平轉(zhuǎn)換,電路原理圖如圖4所示。
3 軟件設(shè)計
系統(tǒng)軟件由兩部分組成,DSP軟件和FPGA軟件,其中DSP軟件負(fù)責(zé)系統(tǒng)的控制工作。FPGA負(fù)責(zé)系統(tǒng)底層工作,包括網(wǎng)絡(luò)接口芯片的驅(qū)動及數(shù)據(jù)轉(zhuǎn)換和UART接口的實現(xiàn)。
3.1 DSP軟件設(shè)計
DSP作為系統(tǒng)的核心處理器,系統(tǒng)地控制全部工作過程。DSP首先完成上電初始化,并進行參數(shù)設(shè)置,完成中斷源XINT設(shè)置、GPIO設(shè)置,然后進入主循環(huán)程序,進行系統(tǒng)需要的運算處理。處理過程中,DSP以中斷方式接收FPGA提供的中斷信號,該中斷信號表示網(wǎng)絡(luò)接口芯片AX88180已經(jīng)接收到完整的一幀UDP數(shù)據(jù)包,接收到中斷信號后,DSP設(shè)置FPGA內(nèi)部的網(wǎng)絡(luò)接口SRAM為讀操作,讀取接收到的網(wǎng)絡(luò)通信數(shù)據(jù)。進行數(shù)據(jù)判斷與處理之后,DSP需要通過FPGA內(nèi)部的發(fā)送SRAM向控制端返回數(shù)據(jù),DSP先把需要發(fā)送的數(shù)據(jù)寫到FPGA內(nèi)的發(fā)送SRAM,這時SRAM的操作信號由DSP產(chǎn)生,數(shù)據(jù)寫好以后,DSP需要產(chǎn)生一個低電壓有效的寬度為1 ?滋s的脈沖信號,作為網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的起始信號。發(fā)送SRAM與接收SRAM是FPGA內(nèi)部建立的兩個獨立的SRAM,這兩個SRAM可以并行操作。需要注意的是,網(wǎng)絡(luò)接收的數(shù)據(jù)格式與SRAM內(nèi)順序保存的數(shù)據(jù)格式不同,需要DSP進行數(shù)據(jù)格式轉(zhuǎn)換。
DSP處理器接收到數(shù)據(jù)包以后,需要將接收到的網(wǎng)絡(luò)數(shù)據(jù)寫給UART接口SRAM,然后由UART接口完成數(shù)據(jù)發(fā)送。UART接口接收過程與網(wǎng)絡(luò)接口接收過程是一致的。
DSP接收網(wǎng)絡(luò)數(shù)據(jù)包流程圖如圖5所示。
3.2 FPGA軟件設(shè)計
3.2.1 網(wǎng)絡(luò)接口芯片
網(wǎng)絡(luò)接口操作是由FPGA使用VHDL語言實現(xiàn)的,所以接收和發(fā)送兩個進程可以并行操作。圖6是網(wǎng)絡(luò)接口發(fā)送流程圖。
當(dāng)網(wǎng)絡(luò)上有數(shù)據(jù)時,AX88180對數(shù)據(jù)包進行分析,如果UDP數(shù)據(jù)包的目的地址、源地址、端口號都正確,進入數(shù)據(jù)接收進程,按網(wǎng)絡(luò)格式把數(shù)據(jù)保存到FPGA的接收SRAM內(nèi),這時,接收SRAM的控制信號是由FPGA產(chǎn)生的,包括寫信號、寫時鐘。數(shù)據(jù)接收完成后,產(chǎn)生中斷信號,并且把SRAM的控制信號交給DSP。
數(shù)據(jù)發(fā)送進程如下:當(dāng)接收到DSP產(chǎn)生的發(fā)送脈沖后,F(xiàn)PGA操作SRAM,并且讀出數(shù)據(jù),封裝目的IP地址、源IP地址、端口號等固定格式,產(chǎn)生UDP數(shù)據(jù)包,通過網(wǎng)絡(luò)發(fā)送。
3.2.2 UART接口
UART接口與網(wǎng)絡(luò)接口一樣,都采用DSP的外接總線接口XINTF實現(xiàn),通過兩個SRAM與DSP處理器進行數(shù)據(jù)交互。篇幅原因,這里不再重復(fù)。不同的是,UART這里沒有采用專用的接口芯片,而是由FPGA使用VHDL語言實現(xiàn),這樣對于程序控制更簡單。
4 實驗結(jié)果
本文提出的硬件設(shè)計已經(jīng)通過實驗驗證,系統(tǒng)在網(wǎng)絡(luò)通信速度為1 Gb/s、串行通信速度為230.4 kb/s、8位數(shù)據(jù)位環(huán)境中運行穩(wěn)定可靠。
本文設(shè)計了采用TMS320F2812DSP和以太網(wǎng)控制器芯片AX88180實現(xiàn)的嵌入式系統(tǒng),設(shè)計了系統(tǒng)的硬件電路、以太網(wǎng)接口和UART接口及軟件程序。實驗表明,該電路實現(xiàn)簡單、工作穩(wěn)定,具有一定的實用價值。
參考文獻
[1] 劉巖俊,閆海霞. HDLC通訊協(xié)議中CRC的應(yīng)用[J].電子測量技術(shù).2010,33(3):21-23.
[2] 周益,周清根,喬鵬,等.基于FPGA+DSP微小型捷聯(lián)慣導(dǎo)系統(tǒng)的設(shè)計[J].電子測量技術(shù),2008,31(2):119-122.
[3] 劉巖俊,閆海霞,何昕.基于FPGA 的HDLC 協(xié)議實現(xiàn)[J].電子器件,2009,32(3):707-710.
[4] 徐義忠,孫苓生.基于FPGA 的測量數(shù)據(jù)存儲交換技術(shù)[J].電子技術(shù)應(yīng)用,2008,34(1):62-64.
[5] 王海濤,段哲民.多路數(shù)據(jù)采集與網(wǎng)絡(luò)遠(yuǎn)程傳輸系統(tǒng)實現(xiàn)[J].計算機測量與控制,2008,16(3):421-423.
[6] 姜培培,裘燕青,傅志輝,等.基于DSP和FPGA的多路型光纖光譜儀系統(tǒng)[J].光學(xué)精密工程,2006,14(6):944-948.
[7] 萬山明.TMS320F281xDSP原理及應(yīng)用實例[M]. 北京:北京航空航天大學(xué)出版社,2008.
[8] Xilinx Inc. Xilinx Spartan-3 Generation FPGA User Guide[S]. 2008.