首页> 中国专利> 一种灵活通用的串行通信方法及系统

一种灵活通用的串行通信方法及系统

摘要

本发明涉及串行通信技术领域,公开了一种灵活通用的串行通信方法及系统。包括以下过程:通信参数配置单元根据串行数据特征,自动配置与其匹配的参数设置,并通过对外并行接口供处理控制器读写配置数据的参数;接收收发器的串行数据,进行通信命令解析,及产生中断信号并通知处理控制器进行数据接收FIFO操作;采集接收数据的位宽,对数据接收FIFO或者数据发送FIFO进行切换;通过数据发送FIFO,将并行进来的串行数据发送给收发器。本发明的技术方案,首先可以缓存大量数据,节约了FPGA资源。其次,采用字节延时算法,可自行判断接收串行数据通信中数据帧的长度,适应不同类型的接收串行通信报文协议,达到串行通信模块的通用、易用和简化实现。

著录项

  • 公开/公告号CN109408426A

    专利类型发明专利

  • 公开/公告日2019-03-01

    原文格式PDF

  • 申请/专利权人 四川九洲电器集团有限责任公司;

    申请/专利号CN201811237022.4

  • 发明设计人 冯硕;

    申请日2018-10-23

  • 分类号G06F13/24(20060101);G06F13/42(20060101);

  • 代理机构51214 成都九鼎天元知识产权代理有限公司;

  • 代理人夏琴

  • 地址 621000 四川省绵阳市科创园区九华路6号

  • 入库时间 2024-02-19 07:58:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-26

    授权

    授权

  • 2019-03-26

    实质审查的生效 IPC(主分类):G06F13/24 申请日:20181023

    实质审查的生效

  • 2019-03-01

    公开

    公开

说明书

技术领域

本发明涉及串行通信技术领域,特别是一种灵活通用的串行通信方法及系统。

背景技术

当前基于FPGA实现异步串行通信模块在接收和发送数据时,造成FPGA资源的浪费,增加了模块的调试周期;且需通过修改软件功能来适应不同类型通信报文协议,使得模块的通用性不强,且结构复杂。

发明内容

本发明所要解决的技术问题是:针对上述存在的问题,提供了一种灵活通用的串行通信方法及系统。

本发明采用的技术方案如下:一种灵活通用的串行通信方法,具体包括以下过程:

通信参数配置单元根据串行数据特征,自动配置与其匹配的参数设置,并通过对外并行接口供处理控制器读写配置数据的参数;

接收收发器的串行数据,进行通信命令解析,及产生中断信号并通知处理控制器进行数据接收FIFO操作;

采集接收数据的位宽,对数据接收FIFO或者数据发送FIFO进行切换;

通过数据发送FIFO,将并行进来的串行数据发送给收发器。

进一步的,所述处理控制器进行数据接收FIFO的具体过程为:

搜索数据的起始位置,低电平为有效,高电平为等待接收状态;

采样数据构成一个完整字节时,开始将收到的数据存入数据接收FIFO,同时对串口数据中的帧头字节进行校验,校验成功,继续将收到的数据存入数据接收FIFO中相应的位置;

通过字节延时算法来判断,如果等待时间超过接收一个字节的时间,则判定已经完成对一帧完整数据全部字节的接收,数据接收结束。

进一步的,所述等待时间超过接收一个字节的时间的具体判断过程为:

当收到一个完整字节数时,计数器开始以频率40MHz做加法计数,如果计数值小于1250时,串行数据线由“高”变“低”,停止计数并清零等待,当收到一个完整字节数时,启动计数器计数,以此循环;如果计数器计数值超过1250时,延时标志启动,关闭接收逻辑,并将逻辑全部恢复初始状态。

进一步的,所述处理控制器进行数据发送FIFO的具体过程为:步骤a、处理控制器将需要发送的所有数据依次写入数据发送FIFO地址中;再对另一个地址单元写入启动发送命令后,将数据提取到发送缓存并发送串行数据;步骤b、同时实时判定数据发送数据发送FIFO是否为空,若不为空则立即取出数据进入步骤a。

进一步的,所述发送串行数据过程中,首先发送的是最高有效位。

本发明还公开了一种灵活通用的串行通信系统,具体包括:

通信参数配置单元,用于通过对外并行接口供处理控制器读写配置数据的参数;

数据接收及处理单元,用于接收收发器的串行数据,进行通信命令解析,及产生中断信号并通知处理控制器进行数据接收操作;

处理控制器,用于采集接收数据的位宽,对数据接收FIFO或者数据发送FIFO进行切换;

数据发送及处理单元,用于通过数据发送FIFO将并行进来的串行数据发送给收发器。

进一步的,所述收发器为SM 490型RS422/485收发器。

进一步的,所述处理控制器进行数据接收的具体过程为:

搜索数据的起始位置,低电平为有效,高电平为等待接收状态;

采样数据构成一个完整字节时,开始将收到的数据存入数据接收FIFO,同时对串口数据中的帧头字节进行校验,校验成功,继续将收到的数据存入数据接收FIFO中相应的位置;

通过字节延时算法来判断,如果等待时间超过接收一个字节的时间,则判定已经完成对一帧完整数据全部字节的接收,数据接收结束。

进一步的,所述等待时间超过接收一个字节的时间的具体判断过程为:

当收到一个完整字节数时,计数器开始以频率40MHz做加法计数,如果计数值小于1250时串行数据线由“高”变“低”,停止计数并清零等待,当收到一个完整字节数时,启动计数器计数,以此循环;如果计数器计数值超过1250时,延时标志启动,关闭接收逻辑,并将逻辑全部恢复初始状态。

进一步的,所述处理控制器进行数据发送的具体过程为:步骤a、处理控制器将需要发送的所有数据依次写入数据发送FIFO地址中;再对另一个地址单元写入启动发送命令后,将数据提取到发送缓存并发送串行数据;步骤b、同时实时判定数据发送数据发送FIFO是否为空,若不为空则立即取出数据进入步骤a。

与现有技术相比,采用上述技术方案的有益效果为:当采用大容量FIFO缓存收发技术,基于FPGA实现异步串行通信模块在接收和发送数据时,可以缓存大量的通信数据,不会将先前接收的数据覆盖,外部处理控制器可以在处理完其它紧要任务后,再来进行串行数据的读取和后续处理,而不必担心已接收的串行数据会丢掉,提高了接口传输数据的效率和准确性,极大地节约了FPGA资源。其次,字节节延时算法为等待时间超过接收一个字节的时间,判定已经完成对一帧完整数据全部字节的接收,使数据接收结束;使得模块在接收数据字节时,无需根据通信报文协议规定的字节长度来编写、修改变量与其相匹配;可自适应不同类型的接收报文内容中数据字节个数;达到通信模块的通用、易用和简化实现。

附图说明

图1是本发明灵活通用的串行通信收发原理框图。

图2是本发明串行通信数据接收的具体工作流程图。

图3是本发明字节延时算法与传统算法对比流程示意图。

图4是本发明串行通信数据发送的具体工作流程图。

具体实施方式

下面结合附图对本发明做进一步描述。

本实施例的串行通信数据速率为375kpbs,系统提供时钟频率为40Mhz,实现串行数据的收发。可通过外部处理控制器对本模块进行各种通信参数的动态配置,以适应不同的通信速率、时钟模式。配置完毕后开始串行数据的收发过程。如图1所示,具体的,一种灵活通用的串行通信方法,包括以下过程:

通信参数配置单元根据串行数据特征,自动配置与其匹配的参数设置,并通过对外并行接口供处理控制器读写配置数据的参数;其中对外并行接口单元负责与外部处理控制器进行数据交互;处理控制器可以是单片机、DSP等;

接收收发器的串行数据,进行通信命令解析,及产生中断信号并通知处理控制器进行数据接收FIFO操作;

采集接收数据的位宽,对数据接收FIFO或者数据发送FIFO进行切换;其中,数据接收FIFO和数据发送FIFO深度均设定为2048字节,可以缓存大量的通信数据,而不会将先前收到的数据覆盖,外部处理控制器可以在处理完其它紧要任务后,再来进行串行数据的读取和后续处理,而不必担心已接收的串行数据会丢掉;

通过数据发送FIFO将并行进来的串行数据发送给收发器,完成对数据发送的处理。

优选地,如图2所示,所述处理控制器进行数据接收FIFO的具体过程为:

搜索数据的起始位置,低电平为有效,高电平为等待接收状态;当收到第一个数据位‘0’时,标志一个数据帧的开始,但是在一个数据帧中间也有可能包括一个低电平位,系统有可能默认为这个低电平为起始位,这样就会产生一个“伪起始位”。所以,在数据接收的过程中还要包括对数据起始位的搜索判断。在判断起始位为低电平后,触发接收过程,依次进入数据位读取状态、读取停止状态、准备完成接收和停止位读取状态。

采样数据构成一个完整字节时,开始将收到的数据存入数据接收FIFO,同时对串口数据中的帧头字节进行校验,是否收到枕头AAH AAH,如果收到,校验成功,继续将收到的数据存入数据接收FIFO中相应的位置,接收到的字节数加1。

通过字节延时算法来判断,如果等待时间超过接收一个字节的时间,则判定已经完成对一帧完整数据全部字节的接收,数据接收结束。

在传统接收串行数据算法即每当采样数据构成一个完整的字节时,将数据存入“数据接收FIFO”,同时对串口数据中的每个特殊字段进行协议解析,直到检索到串口数据总长度字节后,并且还要判断已收到的字节总数是否达到串口数据总长度值。

如图3所示,传统的异步通信中,对接收的数据,判断是否收到数据总长度字节,如果是判断是否收全所有通信数据,来判断置命令数据接收完整标志。优选地,本申请的字节延时算法是判断等待时间是否超过接收一个字节的时间,具体判断过程为:

当收到一个完整字节数时,计数器开始以频率40MHz做加法计数,如果计数值小于1250时串行数据线由“高”变“低”,停止计数并清零等待,当收到一个完整字节数时,启动计数器计数,以此循环;如果计数器计数值超过1250时,延时标志启动,关闭接收逻辑,并将逻辑全部恢复初始状态。数据接收完毕,中断标志信号int_rxd及时中断处理控制器,通知外部控制器读取数据进行处理,而不必每接收到1个字节就中断一次,避免了主程序被频繁中断。

优选地,如图4所示,所述处理控制器进行数据发送FIFO的具体过程为:

步骤a、处理控制器将需要发送的所有数据依次写入数据发送FIFO地址中;再对另一个地址单元写入启动发送命令后,将数据提取到发送缓存并发送串行数据;步骤b、同时实时判定数据发送数据发送FIFO是否为空,若不为空则立即取出数据进入步骤a。所述发送串行数据过程中,首先发送的是最高有效位(MSB)。上述数据发送过程,对主程序而言,就是向一特定地址写入所有需要发送的数据,再写入一个启动发送命令即可自动完成全部数据的发送,无需进行发送流程控制。

本发明还公开了与上述灵活通用的串行通信方法对应的一种灵活通用的串行通信系统.

本发明的灵活通用的串行通信方法及系统,可以采用了XILINX公司的EDA编译平台ISE14.6。用VHDL语言完成基于字节延时算法的异步串行通信接口模块的编写,通过了XST程序综合,然后用ISim软件完成了模块的仿真。在建立测试平台时,建立模拟从SM490型RS422/485信号收发器方数据发送/接收的模块与本系统进行通信验证,在仿真软件的辅助分析下,得到了正确的结果。仿真通过后,将整个设计工程文件经综合后的EDIF文件提交给ISE进行布局、布线后,把生成的MCS文件下载到FPGA芯片XCF32PFS48C中运行,运用ChipScope在线调试软件,采集的实际结果与在ISim中仿真结果一致。该方法/系统能达到要求实现的性能,具有很强的实用性。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。如果本领域技术人员,在不脱离本发明的精神所做的非实质性改变或改进,都应该属于本发明权利要求保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号