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