文獻(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),,是專門為實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法而設(shè)計(jì)的,嵌入式網(wǎng)絡(luò)可以有效地用于不方便使用計(jì)算機(jī)的應(yīng)用場(chǎng)合,,而嵌入式網(wǎng)絡(luò)開發(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門,8 M邏輯單元,,32×28個(gè)CLB(Configurable Logic Block)內(nèi)部資源,。可獲得的LUT門為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ù)讀寫操作,。系統(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寫使能(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處理器需要通過讀,、寫,、片選三個(gè)控制信號(hào),以及地址總線、數(shù)據(jù)總線以訪問外部SRAM的方式進(jìn)行讀寫控制,控制信號(hào)通過DSP的外部I/O進(jìn)行,。實(shí)現(xiàn)方法如下:首先在FPGA內(nèi)部構(gòu)建一個(gè)基于分布式塊區(qū)域異步IP核的SRAM,,該SRAM的數(shù)據(jù)寬度是16位,深度是1 024,,具有讀寫控制信號(hào)WE,,讀時(shí)鐘RCLK和寫時(shí)鐘WCLK。讀時(shí)鐘RCLK由DSP的讀信號(hào)XRD賦值,,寫時(shí)鐘WCLK由DSP的寫信號(hào)XWE賦值,,讀寫控制信號(hào)WE由DSP的外部擴(kuò)展IO賦值,當(dāng)DSP需要寫外部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ò)控制芯片。
通過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)地控制全部工作過程,。DSP首先完成上電初始化,,并進(jìn)行參數(shù)設(shè)置,完成中斷源XINT設(shè)置,、GPIO設(shè)置,,然后進(jìn)入主循環(huán)程序,進(jìn)行系統(tǒng)需要的運(yùn)算處理,。處理過程中,,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需要通過FPGA內(nèi)部的發(fā)送SRAM向控制端返回?cái)?shù)據(jù),DSP先把需要發(fā)送的數(shù)據(jù)寫到FPGA內(nèi)的發(fā)送SRAM,,這時(shí)SRAM的操作信號(hào)由DSP產(chǎn)生,,數(shù)據(jù)寫好以后,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ù)寫給UART接口SRAM,然后由UART接口完成數(shù)據(jù)發(fā)送,。UART接口接收過程與網(wǎng)絡(luò)接口接收過程是一致的,。
DSP接收網(wǎng)絡(luò)數(shù)據(jù)包流程圖如圖5所示。
3.2 FPGA軟件設(shè)計(jì)
3.2.1 網(wǎng)絡(luò)接口芯片
網(wǎng)絡(luò)接口操作是由FPGA使用VHDL語言實(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)生的,,包括寫信號(hào)、寫時(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ù)包,,通過網(wǎng)絡(luò)發(fā)送。
3.2.2 UART接口
UART接口與網(wǎng)絡(luò)接口一樣,,都采用DSP的外接總線接口XINTF實(shí)現(xiàn),,通過兩個(gè)SRAM與DSP處理器進(jìn)行數(shù)據(jù)交互。篇幅原因,,這里不再重復(fù),。不同的是,UART這里沒有采用專用的接口芯片,,而是由FPGA使用VHDL語言實(shí)現(xiàn),,這樣對(duì)于程序控制更簡(jiǎn)單。
4 實(shí)驗(yàn)結(jié)果
本文提出的硬件設(shè)計(jì)已經(jīng)通過實(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] 萬山明.TMS320F281xDSP原理及應(yīng)用實(shí)例[M]. 北京:北京航空航天大學(xué)出版社,2008.
[8] Xilinx Inc. Xilinx Spartan-3 Generation FPGA User Guide[S]. 2008.