数据接收过程中的CRC码校验方法技术

技术编号:4344724 阅读:505 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及URAT异步通信领域,特别涉及一种数据接收过程中的CRC码校验方法,本发明专利技术所采用的技术方案为,在接收信息帧开始后,从信息帧的起始字节开始逐字节接收数据,并计算CRC码;把字节数据存储到FIFO模块,计算获得的CRC码中间值暂存在CRC码计算器中;在信息帧接收完毕后,从CRC码计算器中提取CRC码,进行正确与否的检查。本发明专利技术通过对信息帧的字节循环接收的方法,使得在接收信息帧的同时,自动计算CRC校验码,在信息帧接收完毕时给出CRC是否正确的状态位,省去了CPU在接收完一帧数据后再计算CRC码的过程,使确认接收数据是否正确的速度加快,从而大大提高了接收到效率。

【技术实现步骤摘要】

本专利技术涉及URAT异步通信领域,特别涉及一种数据接收过程中的CRC码校验方法。
技术介绍
通用异步通信常见的控制芯片有16C450、16C550、16C750等。3位地址总线、8位地址总线、读写控制总线等接口,可实现波特率设置、停止位个数设置、数据位个数设置,同时具有各种报错功能。通用异步通信控制芯片通信速率每秒已高达数兆位,可实现高速通信。现有的异步通信应用在RS485接口的多机通信网络中,当对接收数据采用CRC码(循环冗余校验码)校验时,接收完成后需要计算CRC码,判断是否有传输错误。由于计算CRC码的过程需要耗费时间,特别是在信息帧较长和高速通信的时候,这种耗时较明显,导致数据的接收效率受到严重影响。
技术实现思路
本专利技术克服了上述缺点,提供了一种控制过程简单、效率高的数据接收过程中的CRC码校验方法。本专利技术解决其技术问题所采取的技术方案是:一种数据接收过程中的CRC码校验方法,包括如下步骤:在接收信息帧开始后,从信息帧的起始字节开始逐字节接收数据,并分别计算CRC码;把逐字节计算获得的数据存储到FIFO模块,CRC码存储到CRC计算器中;在信息帧接收完毕后,从CRC计算器中提取CRC码,进行正确与否的检查。所述逐字节接收数据,并计算CRC码的步骤中,各个字节是逐位接收数据,并分布计算CRC码。在所述逐位接收数据的步骤后,还包括判断接收到的位数据是否有效,对有效的位数据计算CRC码。在逐字节接收数据的步骤后还包括,接收奇偶校验位,并将所述奇偶校验位写入FIFO模块。在从信息帧的起始字节开始逐字节接收数据的步骤之前还包括,对CRC码进行初始化的步骤。本专利技术通过对字节和信息帧的循环接收的,使得在接收信息帧的同时,自动计算CRC校验码,在信息帧接收完毕时给出CRC是否正确的状态位,省去了CPU在接收完一帧数据后再计算CRC码的过程,使确认接收数据是否正确的速度加快,从而大大提高了接收效率。-->附图说明图1为本专利技术所应用的接收模块框图;图2为本专利技术的控制流程图。具体实施方式本专利技术可应用于如图1中所示的接收模块中,所述接收模块由串行接收控制模块和9位数据存储FIFO(先进先出)模块构成,串行接收控制模块把串行数据转换成并行数据,同时计算CRC码,将接收到的字节存入所述FIFO模块中。其中,各信号端的功能说明如下:RESET:复位;SIN:串行输入;16XCLK:波特率的16倍时钟;STAcrc:CRC码状态;Wrf:串行接收控制模块写;FIFO控制信号;Dr:9位数据总线,第9位奇偶校验位;RDf:CPU读FIFO控制线;DA:9位数据总线,第9位奇偶校验位;基于上述结构,进行数据帧接收的具体过程如图2中所示。步骤201,初始化后,进入信息帧的帧头检测,判断信息帧接收是否开始;步骤202,在接收信息帧开始后初始化CRC码;步骤203,从信息帧起始位的字节开始接收,监测接收的起始位是否结束;步骤204,判断接收到的位数据是否有效,当有效时转入步骤205;步骤205,在起始数据位的有效采样点后,计算CRC码;步骤206,检测当前字节的8位数据是否接收完毕,从而循环接收8位数据位并进行CRC码计算;步骤207、208,分别接收奇偶校验位和停止位。步骤209,在接收到有效停止位后,把接收到的字节连同奇偶校验位写入FIFO。步骤210,检测信息帧接收完毕否,如果没有接收完,从步骤203开始循环接收下一字节;步骤211,在信息帧接收完毕后,从CRC计算器中提取事先计算好的CRC码,并检查CRC码是否正确,根据检测结果,分别转到步骤212和步骤213,分别设置CRC码状态位为正确的状态和错误的状态,然后循环检测下一个信息帧。从上述的控制过程可知,通过对字节和信息帧的循环接收的,使得在接收信息帧的同时,自动计算CRC校验码,在信息帧接收完毕时给出CRC是否正确的状态位,省去了CPU在接收完一帧数据后再计算CRC码的过程,使确认接收数据是否正确的速度加快,从而大大提高了接收效率。此外,CPU与异步通信控制器之间采用9位数据总线,第9位即是发送、接收数据奇偶校验位,提高数据与CPU并行传输的可靠性。以上对本专利技术所提供的数据接收过程中的CRC码校验方法进行了详细介绍,本文中应用了具体个例对本专利技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮-->助理解本专利技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本专利技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本专利技术的限制。-->本文档来自技高网...

【技术保护点】
一种数据接收过程中的CRC码校验方法,其特征在于:包括如下步骤:在接收信息帧开始后,从信息帧的起始字节开始逐字节接收数据,并分别计算CRC码;把逐字节接收到的信息存储到FIFO模块,计算获得的CRC码暂存在CRC码计算器中;在信息帧接收完毕后,从CRC码计算器中提取CRC码,进行正确与否的检查。

【技术特征摘要】
1.一种数据接收过程中的CRC码校验方法,其特征在于:包括如下步骤:在接收信息帧开始后,从信息帧的起始字节开始逐字节接收数据,并分别计算CRC码;把逐字节接收到的信息存储到FIFO模块,计算获得的CRC码暂存在CRC码计算器中;在信息帧接收完毕后,从CRC码计算器中提取CRC码,进行正确与否的检查。2.根据权利要求1所述的数据接收过程中的CRC码校验方法,其特征在于:所述逐字节接收数据,并计算CRC码的步骤中,各个字节是逐位接收数据,并分布计算CRC码。3.根据权利要求...

【专利技术属性】
技术研发人员:刘渝新
申请(专利权)人:重庆川仪自动化股份有限公司
类型:发明
国别省市:85[中国|重庆]

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

1