在ZedBoard下SPI接口和ARM處理器端實現以太網遠端傳輸的設計

發布時間:2020/6/8

本文介紹了Zed Board平臺下可編程邏輯終端SPI接口和ARM處理器終端以太網遠程傳輸的設計。 介紹了Linux下可編程邏輯SPI接口和驅動程序生成的設計,以及采用UDP/IP協議的以太網傳輸技術。 實驗結果表明,該系統能夠準確地完成實時數據傳輸。 
隨著嵌入式技術和市場需求的不斷發展,嵌入式設備之間進行信息交互以及數據遠端傳輸成為嵌入式系統的一個重要的環節。在嵌入式應用中以太網是解決遠端傳輸高效可行的技術,如進行遠端監控、控制和遠端異常檢測,可節省大量的人力和財力[1]。如今,硬件設備間的通信通常采用WISHBONE總線協議、I2C總線協議、UART協議等。SPI是串行外圍接口協議,相比其他協議具有傳輸速度快、應用簡單和占用引腳資源少等優點[2]。本文利用全可編程片上系統特性實現了一種基于ZedBoard的SPI接口及以太網遠端傳輸的設計方案,完成Linux下硬件設備間應用SPI協議通信和數據的遠端傳輸功能,采用PL端制定接口控制模塊SPIIP核并且編寫Linux下IP核驅動的方法實現接口控制,Linux系統下UDP/IP協議進行以太網遠端傳輸。同時充分利用了ZedBoard平臺主芯片Zynq-7000雙核CortexA9ARM核和可編程邏輯于一體的特性,為軟硬件設計提供了很強的靈活性。

1 系統總體設計
本設計的主控板為ZedBoard開發板,主芯片Zynq-7000結合高性能雙核ARM Cortex A9MP Core處理系統和可編程邏輯于一體。系統主要功能是:可編程邏輯端通過SPI協議實現硬件設備間的通信,通過Pmod口實現硬件設備的物理連接,接收的數據再采用Linux系統下UDP/IP協議實現以太網遠端傳輸。系統框圖如圖1所示。

圖1 系統框圖

1.1 硬件設計
1.1.1 SPI硬件接口
通過ZedBoard上的Pmod接口實現硬件的物理連接,ZedBoard上的4個Pmod接口(JA、JB、JC、JD)支持LVCMOS3.3V和LVTTL3.3V信號,其中的2個(JC、JD)能夠支持525Mb/s的LVDS信號。為了避免短路電流和靜電,Pmod接口電路設計中為每個信號口增加了1個靜電保護二極管和串接了1個 200Ω的電阻[3] 。Pmod接口電路設計如圖2所示。其中SPI協議傳輸只用到Pmod的4個引腳,SPI的4個信號線SS、MOSI、MISO、SCK分別連接到Pmod的JA1、JA2、JA3、JA4。


圖2 Pmod接口電路

1.1.2 硬件配置
Xilinx可編程嵌入式系統工程在Xilinx公司的嵌入式開發套件(Embedded Development Kit,EDK) 環境實現,Xilinx EDK具有完成嵌入式系統設計的一套工具和硬件配置需要的IP核 [4] 。EDK環境下硬 件結構設計的主要工具是Xilinx開發平臺(Xilinx Platform Studio,XPS),硬件設計步驟如下:
(1)設置新工程路徑;
(2)用IPCatalog中的IP或自定義IP配置外設;
(3)建立UCF文件;
(4)bits流生成;
(5)下載bit流到FPGA中。

本設計中添加一個AXI4-Lite總線設備SPI模塊來控制Pmod接口實現硬件設備之間通信,其中 AXI4-Lite全局時鐘ACLK設置為100MHz。SPI模塊分配的物理地址為0x42020000,以及64K小的空間,SPI配置信息,如圖3所示


圖3 SPI模塊物理地址及大小

1.2 軟件設計
軟件設計包含Linux下SPI核驅動和Linux下UDP/IP以太網傳輸應用程序兩部分。SPI核驅動在軟件設計包含Linux下SPI核驅動和Linux下UDP/IP以太網傳輸應用程序兩部分。SPI核驅動在虛擬機中Ubuntu下交叉編譯完成,傳輸應用程序在EDK開發套件中的軟件開發環境下完成。

1.2.1 SPI核驅動
由于遠端傳輸由在Linux系統下UDP/IP協議實現的,因此,編寫Linux下的IP驅動,應用程序就可以通過Linux的標準接口訪問SPI設備。本設計編寫的是MISC型設備驅動程序,包含設備加載、設備卸載以及文件操作函數。



上海期货股指股票配资融资网