预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

FPGA数据传输模块设计 杭州电子科技大学方振宇 摘要FPGA适合于大量数据处理的应用,广泛应用于嵌入式系统。本文设计的FPGA模块需要对GPS、便携打印机和串口数据进行处理,将详细介绍如何设计FPGA和不同外设之间的数据传输。同时,在RTL编码中,编写使综合与布局布线效果更佳的代码。 关键词FPGA综合 引言 FPGA(FieldProgrammableGateArray),即现场可编程门阵列,包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个主要部分。FPGA最大的优点就是可编程性,不投片也能开发自己的芯片,或者作为ASIC芯片的样片。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一,在嵌入式系统中广泛应用,特别是大批量的数据传输的应用。本设计采用FPGA实现一个系统中的数据传输模块的控制、采集功能,包括的外设有GPS接收设备、便携打印机和串口。设计中考虑复用问题,本设计的策略还强调RTL编码和综合,使设计出来的数据传输模块逻辑能使综合与布局布线效果更佳。 1模块硬件设计 FPGA数据传输模块硬件是独立出来的一块PCB板,包括的器件有XilinxSpartanFPGA,两片XCF01s为FPGA做配置,一片RAM芯片ISC61C1024,电源芯片、串口插座和GPS接收装置等,FPGA中没有和上述芯片连接的引脚引出到PCB板两侧,部分和嵌入式处理器连接,剩余引脚提供给系统扩展。FPGA有多种配置模式,本文采用可以采用串行PROM编程FPGA,两片XCF01s以菊花链方式连接。图1为硬件模块框图。 FPGA RAM 串口 打印机 电源 PROM PROM GPS 连接处理器及扩展的引脚 图1硬件模块框图 2FPGA总体设计 本模块中的FPGA具体功能为: (1)采集GPS传输来的串行数据。因为本系统采集的GPS数据较多,所以通过解码后存储到外部RAM中。如果使用的FPGA资源丰富,可以考虑把数据存储到FPGA内部。 (2)采集串口传输来的串行数据。根据需求,该串口数据频率不高,采用一个FPGA内部寄存器就能满足要求。 (3)输出数据到便携打印机。在FPGA中建立一块64个8位数据的寄存器组,保存将要打印的数据,通过串行编码,把并行数据转化为串行数据,输出到便携打印机。 FPGA设计分为如下几个部分:主控逻辑、串行数据解码、串行数据编码、RAM读写逻辑、打印机写逻辑和串口接收逻辑,FPGA设计框图如图2所示: 主控逻辑 RAM读写逻辑 串行数据 解码 串行数据 解码 GPS 串口 串口数据 接收 串行数据 编码 打印机 打印机写 逻辑 处理器 图2FPGA逻辑框图 RAM 3详细设计 3.1主控逻辑 FPGA中的主控逻辑控制模块负责数据切换,把CPU需要接收或传送的数据送到处理器数据总线上。在本模块中,处理器需要接收的数据是GPS和串口的数据,需要发送的数据是打印机的数据。微处理器每隔一定时间(现设定为1s)读取一次RAM中的GPS数据,根据设计,1s内数据不会超过RAM的容量,此时控制逻辑切换GPS数据到总线;串口的数据到来时间不确定也不频繁,采用中断的方式,通过中断处理程序来读取,此时切换到串口数据;需要给打印机数据的时候,切换到打印机数据。这三种数据根据不同的总线地址来判断。 3.2串行数据编码解码 本模块的串行数据帧格式定义为1位起始位、8位数据位和1位停止位,波特率为9600。 解码模块中,采样时钟是波特率的16倍,为了防止毛刺,采用二次采样方式,VerilogHDL代码如下,rxd1和rxd2是两个串接寄存器,因为串行数据在不传送字符时保持为1,所以初始化为1。rxd直接与输入的串行信号相连,不断地检测,一旦有检测到0,则应该准备接收数据了。 always@(posedgeclk16xornegedgerst) if(!rst)begin rxd1<=1'b1; rxd2<=1'b1; end elsebegin rxd1<=rxd; rxd2<=rxd1; end 解码中最主要的逻辑是串并转换,这通过移位寄存器实现,移位寄存器表示为rsr[0]<=rxd2;rsr[7:1]<=rsr[6:0]。同时通过计数器来判断收到了多少位数据,如果需求中不是8位数据位,那么可以通过更改计数器,来接收不同的数据。 编码逻辑将并行数据转换为所定义的串行帧格式编码,也是通过移位寄存器将串行数据一位一位发送到便携打印上。 3.3RAM读写 RAM读写部分实际上是一个异步FIFO控制逻辑,FIFO是一种先进先出的电路,使用在