can总线协议中crc编码的vhdl实现

can总线协议中crc编码的vhdl实现

ID:26042897

大小:356.00 KB

页数:10页

时间:2018-11-24

can总线协议中crc编码的vhdl实现_第1页
can总线协议中crc编码的vhdl实现_第2页
can总线协议中crc编码的vhdl实现_第3页
can总线协议中crc编码的vhdl实现_第4页
can总线协议中crc编码的vhdl实现_第5页
资源描述:

《can总线协议中crc编码的vhdl实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CAN总线协议中CRC编码的VHDL实现CAN总线协议中CRC编码的VHDL实现2010-3-819:40:00来源:中国自动化网浏览:144网友评论条点击查看摘要:针对CAN协议中提出的串行CRC检验原理,给出其实现方法及硬件语言VHDL代码。为了提高CRC编码的生成速度和CRC检验的效率,介绍了CRC检验的并行原理。最后给出了为满足CAN协议的VHDL代码。经过测试,串、并行运算均满足设计要求。关键字:CAN、CRC、串行、并行TheVHDLImplementationforCRCinCanBusProtocolHouDian

2、-HuaChenXingAbstract:InthelightofSerialCRCexaminationprinciplewhichproposedintheCANprotocol,thispaperintroducestheimplementationmethodandtheVHDLcode.InordertoenhancetheproductionspeedofCRCcodeandtheefficiencyofCRCexamination,introducestheCRCexaminationparallelprincipl

3、e.FinallyintroducestheVHDLcode.Keywords:CAN、CRC、Serial、Parallel1引言信息在传递过程中,可能因某种原因使传输的数据发生错误。为减少和避免这类错误的发生,除提高硬件的可靠性外,在数据的编码上也应提供检错和纠错的支持。常见的校验码有奇偶校验码、海明校验码和循环冗余校验CRC(CyclicRedundancyCheck)码,它们都是将被校验的数据代码按k位一组分组,每组添加r个校验位,形成n位一组的代码,故又称为(n,k)分组校验码。其中CRC码既可检错又可纠错(与生成多项式

4、的选取有关),是以数据块为对象进行校验的一种高效、可靠的检错和纠错方法,由于它的编解码简单、纠错能力强且误判概率很低,因而在工业测控及通信系统中得到了广泛的应用。CAN协议中,为了保证帧传输的可靠性和较高的检错效率,其采用了以下几种检错方式:位错误、填充错误、CRC错误、格式错误及应答错误检测。如果,用m表示报文受损率,那么通过以上检错方式,它对于受损报文检测不到其受损的概率为:,因而CAN总线极高的检错率使得它目前被广泛应用到工业控制、通信、汽车甚至军事等多个领域。CRC检验作为CAN协议中一种重要的且行之有效的检错方式,它的生

5、成多项式可以检验7级,具有编码简单且误判率低的优点。2CRC编码原理循环冗余码属于多项式生成码,编译码设备都不太复杂,检(纠)错能力较强。它的规律在于编码后含n位码元的一个码组中有k位信息元和r=n-k位监督元,二者混合形成规律性,监督元是随着所传输的信息元而改变的。其工作原理如图1所示,图中P为输入数据,G为生成多项式对应的编码。图1CRC校验原理图Fig.1TheSchematicdiagramofCRC假定需传输的数据P=110,也就是信息元,此时k=3,与它对应的多项式为n=7且对应的(其最低4位为零,以便拼装4位监督位)

6、。用生成多项式g(x)去除,在运算中使用的均为模2的特殊运算。求CRC码所采用模2加减运算法则,即是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。如:。则有:取余数Q=101,所传输的数据为,n=7,该数据前三位是信息元,后四位是CRC序列。接收端收到数据时,为进行校验,仍用g(x)去除接收到信息所对应的多项式,由表达式(4)可以得到:两个相同的数的模2和为0,所以若接收数据无误时,应能被个g(x)整除。在此工作机制下,上述循环码不但

7、可检查出n-k-1个独立错误,还可以检查出长度b3CRC编码的硬件语言实现CRC编码的硬件语言实现,可以采用串行算法和并行算法两种实现方式。串行算法即是移位算法,有的文献称之为比特流算法,需编码的位流按位逐位输入,位流输入完成后生成检验码,检验码紧随需检验的位流发出或接收到。并行方式中需检验的位流每k位输入到检验码生成电路中,因而检验码的生成效率大大高于串行方式。以下针对CAN协议中CRC编码的生成多项式进行阐述。3.1CRC编码的串行实现由循环码的编码方法可知,循环码的编码可以由除法电路实现。除法电路的

8、主体由多级移位寄存器和模2加法器组成。由循环码的译码与纠错方法可知,译码器主要由一个除法器和缓冲移位寄存器构成。若接收有误,可经过几次移位后,在相应的错码位上输出“1”作为检错,并可以通过与缓冲移位寄存器输出的错码模2加后来纠正错误。CAN2.0A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。