在ZedBoard下SPI接口和ARM處理器端實現以太網遠端傳輸的設計
發布時間:2020/6/8


圖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型設備驅動程序,包含設備加載、設備卸載以及文件操作函數。