当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:在CAN网络中传输摄文时,噪声干扰或传输中断等因素往往使接收端收到的报文出现错码。为了及时可靠地把报文传输给对方并有效地检测错误,需要采用差错控制。详细介绍了CAN总线中循环冗余校验码的差错控制原理及

摘要:在CAN网络中传输摄文时,噪声干扰或传输中断等因素往往使接收端收到的报文出现错码。为了及时可靠地把报文传输给对方并有效地检测错误,需要采用差错控制。详细介绍了CAN总线中循环冗余校验码的差错控制原理及其实现方法。

    关键词:循环冗余校验 差错控制 报文

在CAN系统中为保证报文传输的正确性,需要对通信过程进行差错控制。目前常用的方法是反馈重发,即一旦收到接收端发出的出错信息,发送端便自动重发,此时的差错控制只需要检错功能。常用的检错码两类:奇偶校验码和循环冗余校验码。奇偶校验码是一种最常见的检错码,其实现方法简单,但检错能力较差;循环冗余校验码的编码也很简单且误判率低,所以在通信系统中获得了广泛的应用。下面介绍CAN网络中循环冗余校验码(即CRC码)的原理和实现方法。

1 CRC码检错的工作原理

CRC码检错是将被处理报文的比特序列当作一个二进制多项式A(x)的系数,该系数除以发送方和接收方预先约定好的生成多项式g(x)后,将求得的余数P(x)作为CRC校验码附加到原始的报文上,并一起发给接收方。接收方用同样的g(x)去除收到的报文B(x),如果余数等于p(x),则传输无误(此时A(x)和B(x)相同);否则传输过程中出错,由发送端重发,重新开始CRC校验,直到无误为止。

上述校验过程中有几点需注意:①在进行CRC计算时,采用二进制(模2)运算法,即加法不进位,减法不借位,其本质就是两个操作数进行逻辑异或运算;②在进行CRC计算前先将发送报文所表示的多项式A(x)乘以xn,其中n为生成多项式g(x)的最高幂值。对二进制乘法来讲,A(x)·xn就是将A(x)左移n位,用来存放余数p(x),所以实际发送的报文就变为A(x)·xn+p(x);③生成多项式g(x)的首位和最后一位的系数必须为1。

图1为CRC校验的工作过程。

目前已经有多种生成多项式被列入国际标准中,如:CRC-4、CRC-12、CRC-16、CCITT-16、CRC-32等。CAN总线中采用的生成多项式为g(x)=x15+x14+x10+x8+x7+x4+x3+1。可以看出,CANU叫线中的CRC校验采用的多项式能够校验七级,比一般CRC校验(CRC-4、CRC-12、CRC-16等)的级数(二~五级)要高许多,因而它的检错能力很强,误判率极低,成为提高数据传输质量的有效检错手段。

图2 产生CRC校验码的硬件电路

2 CRC码的电路实现

2.1 硬件电路的特点

CAN总线中为了产生CRC码,硬件电路除了具有复位和时钟信号以外,还需要以下两个控制信号的参与:①填充位解除信号destuff,它的有效逻辑值是1;②CRC检验的使能信号enable,有效逻辑也为1。该硬件电路的特点是采用选择器和反相器代替传统设计中用的异或门,既实现了比较功能,又降低了生产成本,同时也为工程师们提供了一种新的设计思路。

2.2 硬件电路图

图2即为实现CRC码的硬件电路图。

图中需要说明的几点如下:①使能信号和填充位解除信号省略;②crcnxt代表的逻辑值为输入报文序列和CRC寄存器的最高位异或的结果;③标号0~14所指示的为15位CRC寄存器,上升沿触发;④标号1~6所指示的为选择器和反相器的组合逻辑,实现异或功能,该选择器的逻辑功能为Y=AB+AC,具体结构如图3所示。

2.3 电路工作过程

从以上分析可知:①当enable=0时,CRC清0;②当enable=1、destuff=1时,进行正常CRC计算;③当enable=1而destuff=0时,正在解除填充时,数据暂停传送。

在各个控制信号均有效时,输入报文的每一位都是和CRC寄存器的最高位相异和后移入最低位,同时寄存器的第13、9、7、6、3、2位均和其最高位异或,结果分别左移一位;其它未进行异或操作的寄存器位值也分别左移一位,直到报文的每一位都移入CRC寄存器为止,此时寄存器中的值取为计算得到的CRC码。

如果报文的比特序列长度为16,则需要左移16次才能对报文的每一位均进行处理。如果以Ck表示CRC寄存器的第k位位值、Ck'表示移位后的第k位位值(k=0,1,2,3……15),则移位规律见表1。

表1 移位规律表

C14'=C13^crcnxt C13'=12 C12'=C11 C11'=C10
C10'=C9^crcnxt C9'=C8 C8'=C7^crcnxt C7'=C6^crcnxt
C6'=C5 C5'=C4 C4'=C3^crcnxt C3'=C2^crcnxt
C2'=C1 C1'=C0 C0'=crcnxt^datain  

3 CRC校验码的软件实现

CRC校验用软件实现起来非常方便。鉴于目前的资料中介绍的方法多使用C语言、汇编语言等实现,而缺乏用硬件描述语言实现,这里给出CRC码的Verilog HDL之行为级描述程序。

本程序在Verilog_XL下编译通过,同时在Synopsis上成功进行了综合及优化。

//用Verilog HDL实现CRC码

module crc(clk,rst,enable,destuff,datain,crc);

input clk;

input rst;

input enable;

input destuff;

input datain;

output[14:0]crc;

reg[14:0]crc;

wire crcnxt=datain^crc[14];

always@(posedge rst or posedge clk)

begin

if(rst)crc=0;

else if(enable && destuff)

begin

if(crcnxt)

crc<=crc^15h'4599;

else

crc<={crc[13:0],1'b0};

end

end

endmodule

图4 crc仿真波形图

4 仿真波形

假设发送的是一个标准格式的远程帧,需求的数据字节为8,标识符序列为10101011000,则对上述程序仿真后的波形如图4所示。Crc序列从第20位开始输出。

CRC校验码的检错能力很强,并且由于CRC码检错的软件和硬件实现都很简单,因而被广泛地应用于各类数据校验中。CRC码检错是提高数据传输质量、高效检错的有力手段。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

柏林2025年9月9日 /美通社/ -- 总部位于迪拜的生活方式科技品牌ASTRAUX强势亮相2025年柏林国际电子消费品展览会(IFA),首次推出的三款原创产品引发广泛关注,成功将品牌推向绿色出行与智能生活领域的舆论焦...

关键字: ST COM AI GLOBAL

北京2025年9月5日 /美通社/ -- 近日,2025年中瑞商业大奖颁奖典礼在北京举行,SGS通标标准技术服务有限公司(以下称SGS通标)作为瑞士SGS在中国的分支机构荣获了传承奖的殊荣。SGS通标北京总经理...

关键字: 可持续发展 ST AI ABILITY

RighValor现已基于Synaptics® Astra™ SL1600系列SOC运行,提供隐私至上的实时边缘智能。 加利福尼亚州帕洛阿尔托2025年9月5日 /美通社/ -- 边缘分布式代理AI先驱企业Righ今日...

关键字: 智能家居 SYNAPTICS AI ST

马萨诸塞州剑桥2025年8月20日 /美通社/ -- 今天,晶泰科技(2228.HK)宣布与韩国领先的制药企业——韩国Dong-A ST(东亚公司)签署合作备忘录(MOU),...

关键字: 泰科 AI 机器人 ST

上海2025年7月25日 /美通社/ -- 昨日,在首届上海国际低空经济博览会现场,昂际智航与翊飞航空科技正式签署ES1000型号铁鸟及101工程实验样机飞控电子集成和试飞支持合同。此次采购合同签署标志着双方自2024年...

关键字: 运输机 飞控系统 EV ST

在工业自动化与智能交通领域,CAN总线因其高可靠性、抗干扰能力和实时性,成为设备间通信的核心协议。然而,单CAN总线存在单点故障风险,一旦总线节点或线路损坏,可能导致整个系统瘫痪。针对这一痛点,基于STM32的双CAN总...

关键字: STM32 CAN总线

杭州 2025年7月16日 /美通社/ -- 近日,当美国加征关税,欧美市场增长持续承压之际,米奥兰特以"会展+AI"的创新模式在越南、印尼、阿联酋三地相继启动新兴市场开拓行动。依托技术赋能与本地化...

关键字: AI 中国制造 ST 数据驱动

CAN总线(Controller Area Network)‌是一种串行通信协议,旨在解决现代汽车中众多电子控制系统之间的通信问题。

关键字: CAN总线

新加坡 2025年6月11日 /美通社/ -- 在近日由新加坡资讯通信媒体发展局(IMDA)主办的2025年新加坡亚洲科技大会(ATxSG)核心活动—亚洲科技峰会(ATxS...

关键字: 新加坡 IO 生成式AI ST

香港 2025年6月4日 /美通社/ -- 全球领先的互联网社区创建者 - 网龙网络控股有限公司 (“网龙”或“本公司”,香港交易所股票代码:777)欣然宣布,公司创始人兼...

关键字: AI EDA TE ST
关闭