在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型设备驱动程序,包含设备加载、设备卸载以及文件操作函数。