一种基于FPGA搭建的增强型串口制造技术

技术编号:6370348 阅读:216 留言:0更新日期:2012-04-11 18:40
本实用新型专利技术公开了一种基于FPGA搭建的增强型串口结构,以FPGA(现场可编程逻辑门阵列)为硬件,用HDL语言在FPGA中搭建串口,包括以下模块:发送数据FIFO模块、接收数据双口RAM模块、接收缓存模块、发送缓存模块、参数配置逻辑模块、接收超时判断逻辑模块、接收逻辑模块、发送逻辑模块,本实用新型专利技术对主程序而言类似于对外部存储器进行操作,从而将主程序从频繁的中断或查询操作中解放出来,提高了主程序的运行效率,增强了系统的稳定性,提高了软件的可移植性和扩展性。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术涉及一种基于FPGA搭建的增强型串口及其工作方法,以FPGA为硬件 基础,用Verilog HDL编写代码实现。
技术介绍
RS232通信时,数据以字节为单位,在接收数据时,单片机、DSP等内部集成的硬件 串口具有收完一个(或多个)字节置位相应标志位的功能,当数据量较大的时候,主程序需 要频繁进行中断响应或进行标志位查询操作,控制接收流程并缓存收到的数据,这将占用 主程序的时间以及进行流程控制花费硬件资源;在发送数据时,需要查询当前串口状态,进 行发送流程控制,这也将占用自身资源和处理时间。
技术实现思路
本技术一种基于FPGA搭建的增强型串口,包括以下模块发送数据FIFO模 块、接收数据双口 RAM模块、接收缓存模块、发送缓存模块、参数配置逻辑模块、接收超时判 断逻辑模块、接收逻辑模块、发送逻辑模块;其特征在于,所述接收数据双口 RAM是采用环 形存储器方式存储数据,该双口 RAM的一个端口只供写入数据,即只写,双口 RAM的另一个 端口专供外部控制器读取数据,即只读。本技术的目的是提供一种基于FPGA搭建的增强型串口及其工作方法,以 FPGA为硬件基础,用Verilog HDL编写代码实现。基于FPGA搭建的增强型串口,其特征在于,包括以下模块发送数据FIFO模块、接 收数据双口 RAM模块、接收缓存模块、发送缓存模块、参数配置逻辑模块、接收超时判断逻 辑模块、接收逻辑模块、发送逻辑模块。本工作方法,其步骤为(1)参数配置步骤工作之前,需要由外部控制器对所述的参数配置逻辑模块写 入参数配置数据,该参数配置数据包括波特率、数据长度、校验方式、停止位长度等参数;(2)接收数据步骤a 当数据到来时,所述基于FPGA搭建的增强型串口检测到起始 位则立即启动所述的接收逻辑模块,根据波特率设置在每比特数据的中间位置进行采样, 同时启动所述的接收超时判断逻辑模块,以检测本次数据流是否接收完毕需要进行中断;接收数据步骤b 当接收完毕一个字节的停止位时,将由所述的接收缓存模块将 收到的数据存入所述的接收数据双口 RAM模块,同时记录下本次数据流的第一个字节的存 储地址,在这个过程中,如果一定时间内未接收到任何数据则判定本次接收完毕,这时将产 生中断,通知前述外部控制器读取数据进行处理,同时所述的接收数据双口 RAM模块采用 环形存储器方式存储数据,该双口 RAM模块的一个端口只写入数据,该双口 RAM模块的另一 个端口供前述外部控制器读取数据即只读,而前述外部控制器以根据每次数据流第一个数 据的存储地址进行数据读取和处理。(3)发送数据步骤当需要发送数据时,前述外部控制器将需要发送的所有数据依次写入所述的发送数据FIFO模块中,实时判定该FIFO模块是否非空,若该FIFO模块内 有数据则立即取出数据进行发送,由前述外部控制器写入数据到所述的发送数据FIFO模 块,同时从该FIFO模块中取出数据进行发送。系统框图如图1所示在工作之前,需要由外部控制器对本设计进行参数配置,配置的过程非常简单,只 需要向本设计的“参数配置逻辑”模块写入参数配置数据,以确定波特率、数据长度、校验 方式、停止位长度等参数,如果未进行配置则本设计将按一个默认波特率(可配置)进行数 据收发,配置完毕后,即可开始进行数据收发通信。RS232信号经过接口芯片转换为TTL电平后的信号格式如图2所示(以8bits数据位为例)本设计工作时分两大功能模块接收数据和发送数据。接收数据的流程图如图3所示发送数据的流程图如图4所示综上所述,由于采用了上述技术方案,本技术的有益效果是相对现有硬件串 口,本设计具有如下优点 接收发送数据全自动,无需主程序进行干预,将主程序从繁琐的中断和查询操 作中解放出来; 收发数据的缓存大小可按需要进行配置 参数配置灵活简单,波特率控制非常精确,能实现特殊波特率,且波特率切换速 度极快 移植性和扩展性强,操作简单本技术创造设计可以广泛应用于使用RS232接口的通信中,特别是以下系统 中将体现出本设计的巨大优势 通信的数据量特别大的系统中; 通信特别频繁的系统中; 对实时性要求较高的系统中; 需要扩展多个串口的系统中; 通信的波特率较高、波特率较特殊、需要波特率切换的系统中;附图说明本技术将通过例子并参照附图的方式说明,其中图1是系统框图;图2是RS232信号格式;图3是接收数据的流程图;图4是发送数据的流程具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥 的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙 述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只 是一系列等效或类似特征中的一个例子而已。进行数据传输的时候,先发送起始位,再发送数据位,最后是停止位。接收数据当数据到来时,本设计检测到起始位则立即启动接收逻辑,根据波特 率设置在每bit数据的中间位置进行采样,同时启动“接收超时判断逻辑”模块,以检测本 次数据流是否接收完毕需要进行中断,当接收完毕一个字节的停止位时,将由“接收缓存” 模块将收到的数据存入“接收数据双口 RAM”,同时记录下本次数据流的第一个字节的存储 地址,在这个过程中,本设计不需要外部控制器进行控制,如果一定时间内(时间长度可配 置,如Sbits的时间)未接收到任何数据则判定本次接收完毕,这时将产生中断,通知外部 控制器读取数据进行处理,而不必每接收到1个字节进行中断,避免了主程序被频繁中 断,同时“接收数据双口 RAM”采用环形存储器方式存储数据,双口 RAM的一个端口只供本设 计写入数据,即只写,双口 RAM的另一个端口专供外部控制器读取数据,即只读,当数据量 特别大或者接收数据流特别频繁的情况下,可以有效的缓存数据,不会将先前收到的数据 覆盖,而外部控制器可以根据每次数据流第一个数据的存储地址进行数据读取和处理。发送数据当需要发送数据时,外部控制器将需要发送的所有数据依次写入本设 计的“发送数据FIFO”中,本设计实时判定FIFO是否非空,若FIFO内有数据则立即取出数 据进行发送,可以一边由外部控制器写入数据到“发送数据FIFO”,一边由本设计从FIFO中 取出数据进行发送,即对主程序而言,发送数据的过程就是向一特定地址写入所有需要发 送的数据即可完成,无需进行发送流程控制。本设计成功应用与某项目的RS232通信接口中,作为一个子模块嵌入该项目的 FPGA中,由另一块DSP进行数据处理,经过多次内、外场试验验证,完全能替代DSP原有硬件 串口,且控制使用更为简单、灵活,节省了 DSP在接口通信方面的硬件开销和处理时间,提 高了 DSP程序的运行效率,增强系统的功能稳定性和软件可移植性。本技术并不局限于前述的具体实施方式。本技术扩展到任何在本说明 书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组I=I O权利要求1.一种基于FPGA搭建的增强型串口,包括以下模块发送数据FIFO模块、接收数据双 口 RAM模块、接收缓存模块、发送缓存模块、参数配置逻辑模块、接收超时判断逻辑模块、接 收逻辑模块本文档来自技高网...

【技术保护点】
一种基于FPGA搭建的增强型串口,包括以下模块:发送数据FIFO模块、接收数据双口RAM模块、接收缓存模块、发送缓存模块、参数配置逻辑模块、接收超时判断逻辑模块、接收逻辑模块、发送逻辑模块;其特征在于,所述接收数据双口RAM是采用环形存储器方式存储数据,该双口RAM的一个端口只供写入数据,即只写,双口RAM的另一个端口专供外部控制器读取数据,即只读。

【技术特征摘要】

【专利技术属性】
技术研发人员:江勇杨杰
申请(专利权)人:四川九洲电器集团有限责任公司
类型:实用新型
国别省市:51[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1