保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

CAN总线中循环冗余校验码的原理及其电路实现


如果报文的比特序列长度为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码检错是提高数据传输质量、高效检错的有力手段。


《CAN总线中循环冗余校验码的原理及其电路实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/153609.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。