一种基于FPGA的异同步可切换串口及使用方法与流程

文档序号:13136711阅读:451来源:国知局
一种基于FPGA的异同步可切换串口及使用方法与流程

本发明涉及一种服务器数据传输接口,属于芯片技术领域,尤其涉及一种基于fpga的异同步可切换串口及使用方法。



背景技术:

随着信息科技的飞速发展,人们面临的信号处理任务越来越繁重,对串口传输速率的要求越来越高。

目前市场上常用的串口传输方式,如spi、i2c、uart、gpio、lvds等,各种串行接口各有其封包形式以及传输时序,但以上接口仅支持一种传输模式,或异步或同步,不具备实际生产和应用中ip对于多种情况下的可适应性和可调节性。其中,uart是universalasynchronousreceiver/transmitter的缩写,中文全称为通用异步收发器;soc是systemonchip的缩写,中文全称为片上系统;fpga是field-programmablegatearray的缩写,中文全称为现场可编程门阵列;hps是hardprocessorsystem的缩写,中文全称为硬核处理系统。

现有串口uart会随着传输速率的提高,传输过程中误码率也会增高,导致uart异步串口收发器已不能满足asic领域对于串口速率和准确性的需求,因此,需要对uart做出改进,提高其传输速率以及降低其误码率的产生。

如中国专利(申请号cn201610907808.7)公开了一种“基于fpga的多模式解调系统”,该系统主要解决现有的基于软件无线电的硬件平台存在浪费硬件资源及通用性差的问题,包括:dpsk/dqpsk解调模块、fsk解调模块和动态切换模块均基于fpga实现;dpsk/dqpsk解调模块,基于fpga,用于实现差分相移键控dpsk和四相相对相移键控dqpsk解调;fsk解调模块,基于fpga,用于实现频移键控fsk解调;动态切换模块,用于通过fpga实现差分相移键控dpsk解调、四相相对相移键控dqpsk解调和频移键控fsk解调的切换;所述fpga为通过microblaze软核处理器对该fpga的动态部分进行重构后的。该发明虽然同样是基于fpga所做的性能扩展,主要用于通信接收机中解调,但并未涉及串口有关的数据传输速率及准确率提高的问题。



技术实现要素:

本发明提供一种基于fpga的异同步可切换串口及使用方法,用以解决现有中串口uart会随着传输速率的提高,传输过程中误码率也会增高的问题。

本发明通过以下技术方案予以实现:

一种基于fpga的异同步可切换串口,包括通用异步收发器、发送寄存器、接收寄存器,所述通用异步收发器挂载在apb总线上,用于实现cpu通过apb总线向所述通用异步收发器发送数据,所述接收模块fifo的输出端、发送模块fifo的输入端分别与apb总线连接,所述通用异步收发器上设置有状态检测寄存器,通用异步收发器的发送脚、接收脚分别连接发送模块fifo、接收模块fifo的控制端,通用异步收发器的寄存器和现场可编辑门阵列的时钟模块连接,通过所述异步收发器的寄存器可以将所述串口设置为同步模式或异步模式,所述接收模块fifo的输入端、发送模块fifo的输出端分别连接接收模块和发送模块,所述现场可编辑门阵列的时钟模块分别与接收通道和发送通道的控制端连接。

如上所述的一种基于fpga的异同步可切换串口,所述现场可编辑门阵列的时钟模块为异步模式提供传输波特率所需要的分频数。

一种基于fpga的异同步可切换串口的使用方法,包括数据发送步骤和数据接收步骤,所述数据发送步骤包括:

①配置通用异步收发器中的寄存器;

②选择所述串口同步和/或异步工作方式;

③通过apb总线写入数据;

④对写入的数据进行打包处理;

⑤读取通用异步收发器的状态寄存器内容;

⑥判断数据是否发送成功,当发送成功则数据发送完成;当发送失败则返回上一步;

所述数据发送步骤包括:

①配置通用异步收发器中的寄存器;

②选择所述串口同步和/或异步工作方式;

③通过接收模块fifo接收串行数据;

④对接收的数据进行解析和/或进行串并转换;

⑤读取接收模块fifo内容;

⑥判断数据是否接收,当接收成功则数据接收完成;当接收失败则返回上一步。

如上所述的一种基于fpga的异同步可切换串口的使用方法,所述数据发送步骤和数据接收步骤包括明确hps侧的apb总线协议,确定apb总线传输速率,将apb时钟作为同步输出时钟.

如上所述的一种基于fpga的异同步可切换串口的使用方法,所述数据发送步骤和数据接收步骤包括明确用于接收模块fifo、发送模块fifo的深度,当fifo水位过高时,通过通用异步收发器及时通知cpu降低写入的数据量进行实时调整,避免出现overrun状态;

如上所述的一种基于fpga的异同步可切换串口的使用方法,所述通用异步收发器的寄存器由cpu可通过apb总线进行配置,以确定所述串口的同步和/或异步工作模式、波特率参数。

与现有技术相比,本发明的优点是:

1、本发明采用同步和/或异步串口收发方式,支持同步串口和异步串口两种接口形式,并且兼容uart协议,同时可支持多种从端接口,如spi、i2c等;同时在异步串口模式下,提高了其分频精度,降低误码率,数据的稳定性和准确性有明显提高,因而可以有效的提高传输速率并且降低误码率。

2、本发明的串口挂载到内部hps的apb总线上,操作人员可通过hps对该设计进行参数配置,通过apb配置其分频级数,调整传输速度;同步模式下,输出时钟是由ip外部发送给从端,实现两端时钟同步,常见于芯片内部高速ip通信;异步模式下,常见用于红外数据传输,gprs,以及串口设备连接等。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。

图1是现有技术的通用异步收发器原理图;

图2本发明所述串口的原理图;

图3是本发明所述数据发送步骤的流程图;

图4是本发明所述数据接收步骤的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

如图1所示,现有的通用异步收发器uart中,信号检测器检测数据,发送控制信号给uart核,数据经过移位寄存器处理发送给uart核,波特率发生器产生波特率用于控制串口线上的传输速率,整个uart通过tx/rx串行数据线与后端处理模块相连接,进行数据传递,cts/rts为握手信号,负责与后端处理状态交流。

现有技术并未应用到asic领域,缺少内部cpu总线接口,不可以挂载到总线上,造成了接收数据的速率较低,与cpu交流能力差,不具备可配置性,并且仅支持一种传输模式,不具备对于多种情况下的可适应性,tx/rx传输速率较慢,可能会造成寄存器复写,并且在产生波特率时,一般波特率发生器精准度地,造成误码率偏高;总而言之,现有的通用异步收发器uart整个架构功能单一,软件不可配,因为采用移位寄存器,限制了接收数据的数据量,同时没有总线接口,不能良好的应用于asic领域。

如图2所示,本实施例一种基于fpga的异同步可切换串口,包括通用异步收发器、发送寄存器、接收寄存器,所述通用异步收发器挂载在apb总线上,用于实现cpu通过apb总线向所述通用异步收发器发送数据,所述接收模块fifo的输出端、发送模块fifo的输入端分别与apb总线连接,所述通用异步收发器上设置有状态检测寄存器,通用异步收发器的发送脚、接收脚分别连接发送模块fifo、接收模块fifo的控制端,通用异步收发器的寄存器和现场可编辑门阵列的时钟模块连接,通过所述异步收发器的寄存器可以将所述串口设置为同步模式或异步模式,所述接收模块fifo的输入端、发送模块fifo的输出端分别连接接收模块和发送模块,所述现场可编辑门阵列的时钟模块分别与接收通道和发送通道的控制端连接。

本发明基于altera公司的cyclonev系列soc,cyclonevsoc芯片是一款内嵌基于双核arm的硬核处理系统hps的fpga,可以在同一块芯片内实现fpga+arm的设计。由于现有的uart接口产生波特率的分频精度不一致,会造成误码率的存在,如果采用同步模式就可以避免误码率并且提高传输速率,提高传输过程中数据的稳定性,避免出现寄存器复写的情况,同时简化了接口设置,节省了外部接口资源。

如图2所示,本实施例在现场可编辑门阵列的时钟模块为异步模式提供传输波特率所需要的分频数。

如图3、图4所示,本发明还提供了一种基于fpga的异同步可切换串口的使用方法,包括数据发送步骤和数据接收步骤,所述数据发送步骤包括:

①配置通用异步收发器中的寄存器;

②选择所述串口同步和/或异步工作方式;

③通过apb总线写入数据;

④对写入的数据进行打包处理;

⑤读取通用异步收发器的状态寄存器内容;

⑥判断数据是否发送成功,当发送成功则数据发送完成;当发送失败则返回上一步;

所述数据发送步骤包括:

①配置通用异步收发器中的寄存器;

②选择所述串口同步和/或异步工作方式;

③通过接收模块fifo接收串行数据;

④对接收的数据进行解析和/或进行串并转换;

⑤读取接收模块fifo内容;

⑥断数据是否接收,当接收成功则数据接收完成;当接收失败则返回上一步。

具体而言,本发明的方法在使用时,cpu通过apb总线向该设计发送数据,同时该设计通过中断机制,可及时反馈数据处理状况;本设计接收到apb上的数据,先缓存到fifo中,经过发送模块的处理,通过tx通道送出,可通过寄存器设置为同步模式或异步模式;异步模式由内部计数器,计算出传输波特率所需要的分频数。

另外,基于基于altera公司的cyclonev系列soc,使用过程中需要明确hps侧的apb总线协议,确定apb总线传输速率,将apb时钟作为同步输出时钟;明确用于乒乓结构的两个缓存fifo的深度,fifo水位过高时,及时通知cpu降低写入的数据量,实时调整,避免出现overrun状态;确定uart协议中的校验模式;设置寄存器,cpu可通过apb总线对该设计进行配置,选择同步/异步工作模式,以及波特率等;确定tx/rxfifo侧分别指示transmit和receiver模块的非空可读信号;确定tx/rxfifo侧分别指示transmit和receiver模块的非满可写信号。

本发明主要实现了cpu与外设之间的同步方式通信,提高了传输速度,降低了误码率,替代了传统uart的功能,弥补其不足,可将实时的信息通过该设计上传至上位机。

本发明解决了数据量较大时,异步串口传输速率较慢的问题,同时解决了误码率较高的问题,有效降低了波特率产生模式对数据传输准确性的影响,采用同步/异步可切换设计,兼容uart协议,具备多样性。

本发明未详尽描述的技术内容均为公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1