FPGA数据传输模块设计 您所在的位置:网站首页 打印机数据传输不过去 FPGA数据传输模块设计

FPGA数据传输模块设计

2024-06-18 20:33| 来源: 网络整理| 查看: 265

摘要 FPGA适合于大量数据处理的应用,广泛应用于嵌入式系统。本文设计的FPGA模块需要对GPS、便携打印机和串口数据进行处理,将详细介绍如何设计FPGA和不同外设之间的数据传输。同时,在RTL编码中,编写使综合与布局布线效果更佳的代码。

关键词 FPGA 综合

引言

      FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个主要部分。FPGA最大的优点就是可编程性,不投片也能开发自己的芯片,或者作为ASIC芯片的样片。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一,在嵌入式系统中广泛应用,特别是大批量的数据传输的应用。本设计采用FPGA实现一个系统中的数据传输模块的控制、采集功能,包括的外设有GPS接收设备、便携打印机和串口。设计中考虑复用问题,本设计的策略还强调RTL编码和综合,使设计出来的数据传输模块逻辑能使综合与布局布线效果更佳。

1 模块硬件设计

       FPGA数据传输模块硬件是独立出来的一块PCB板,包括的器件有Xilinx Spartan FPGA ,两片XCF01s为FPGA做配置,一片RAM芯片ISC61C1024,电源芯片、串口插座和GPS接收装置等,FPGA中没有和上述芯片连接的引脚引出到PCB板两侧,部分和嵌入式处理器连接,剩余引脚提供给系统扩展。FPGA有多种配置模式,本文采用可以采用串行PROM编程FPGA,两片XCF01s以菊花链方式连接。图1为硬件模块框图。

 

 

 

 

 

 

 

 

 

 

 

 

 

2 FPGA总体设计

       本模块中的FPGA具体功能为:

(1)采集GPS传输来的串行数据。因为本系统采集的GPS数据较多,所以通过解码后存储到外部RAM中。如果使用的FPGA资源丰富,可以考虑把数据存储到FPGA内部。

      (2)采集串口传输来的串行数据。根据需求,该串口数据频率不高,采用一个FPGA内部寄存器就能满足要求。

(3)输出数据到便携打印机。在FPGA中建立一块64个8位数据的寄存器组,保存将要打印的数据,通过串行编码,把并行数据转化为串行数据,输出到便携打印机。

FPGA设计分为如下几个部分:主控逻辑、串行数据解码、串行数据编码、RAM读写逻辑、打印机写逻辑和串口接收逻辑,FPGA设计框图如图2所示:

    

 

 

 

 

 

 

 

 

 

 

 

 

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 @(posedge clk16x or negedge rst)

if (!rst) begin

         rxd1



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有