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