当前位置: 首页 > news >正文

wordpress修改站点名企查查企业信息查询网官网

wordpress修改站点名,企查查企业信息查询网官网,大丰做网站哪家公司好,静宁县建设局网站文章目录 一、什么是CRC校验#xff1f;二、实现CRC校验原理以及步骤2.1 用多项式表示二元码数据2.2 选择一个生成多项式作为校验2.3 计算CRC校验码 三、CRC判断数据是否错误的原理以及步骤3.1 将收到的数据与生成多项式求余3.2 数据发生错误再进行CRC校验判断 四、FPGA实现CR… 文章目录 一、什么是CRC校验二、实现CRC校验原理以及步骤2.1 用多项式表示二元码数据2.2 选择一个生成多项式作为校验2.3 计算CRC校验码 三、CRC判断数据是否错误的原理以及步骤3.1 将收到的数据与生成多项式求余3.2 数据发生错误再进行CRC校验判断 四、FPGA实现CRC4.1 线性移位反馈寄存器4.2 LFSR工作原理4.3 仿真验证 一、什么是CRC校验 CRCCyclic Redundancy Check循环冗余校验是一种广泛使用的错误检测技术主要用于检测数据在传输或存储过程中是否发生了错误。它通过对数据进行特定的数学运算生成一个固定长度的校验码CRC 校验码并将其附加到数据后面。接收方在收到数据时可以通过相同的运算来验证数据的完整性。 CRC 校验的基本思路是将数据视为一个多项式并通过模 2 除法即不考虑进位的二进制除法来计算校验值 选择生成多项式CRC 校验使用一个预定义的生成多项式通常是一个二进制数这个多项式的选择会影响 CRC 校验的性能和错误检测能力。数据多项式将待校验的数据视为一个多项式使用二进制表示。模 2 除法用数据多项式除以生成多项式得到的余数就是 CRC 校验码。附加校验码将 CRC 校验码附加到原始数据后面形成完整的数据包。 二、实现CRC校验原理以及步骤 2.1 用多项式表示二元码数据 将输入的数据看成一个多项式其多项式的公式如下 G ( X ) g n x n g n − 1 x n − 1 g n − 2 x n − 2 g 2 x 2 g 1 x 1 g 0 x 0 ∑ i 0 i n g i x i G(X)g_nx^n g_{n-1}x^{n-1} g_{n-2}x^{n-2} g_2x^2 g_1x^1 g_0x^0 \sum_{i0}^{in}g_ix^i G(X)gn​xngn−1​xn−1gn−2​xn−2g2​x2g1​x1g0​x0i0∑in​gi​xi g i g_i gi​表示二元码中第i位的数 x i x^i xi表示二元码中第i位 例如一个多项式为 G ( X ) x 4 x 1 1 ∗ x 4 0 ∗ x 3 0 ∗ x 2 1 ∗ x 1 1 ∗ x 0 G(X)x^4 x 11*x^4 0*x^3 0*x^2 1*x^1 1*x^0 G(X)x4x11∗x40∗x30∗x21∗x11∗x0 则这个多项式表示数据为{10011}反之亦然如果知道一个数据也就知道这个数据对应的多项式。 2.2 选择一个生成多项式作为校验 生成多项式满足仅仅能够被1和自身整除常见的生成多项式有以下 这里面多项式的宽度以及多项式的值是去掉了最高位1的比如我们上面举例 G ( X ) x 4 x 1 G(X)x^4 x 1 G(X)x4x1表示为{10011}一共五位换成16进制为13。截图里去掉了最高位1就变成了{0011}宽度为4初始值03。 2.3 计算CRC校验码 在上面我们知道了二元序列的多项式表示以及一些常见的生成多项式我们就要计算出我们需要的CRC校验码具体计算就是除法取余数。例如我们需要传输的数据为{10010101}我们选择CRC4的生成多项式 G ( X ) x 4 x 1 G(X)x^4 x 1 G(X)x4x1来计算CRC校验码。 将需要传输的数据最低位补n个0这里的n是指生成多项式中x的最高次方这里CRC4的最高次方是4因此需要在数据最低为补4个0变成为{100101010000} 用补0后的数据整除生成多项式取得余数二进制取余数用模2除法步骤如下 将余数{0100}就是CRC校验码填充到传输数据的末尾即可得到整个CRC编码{100101010100} 我们用CRC校验生成网站计算一下本次结果和我们手算的是否一致{10010101}换成16进制为95打开网站 可以看到我们用网站计算的结果和手算的结果一致。 三、CRC判断数据是否错误的原理以及步骤 接收方收到整个数据包后将整个数据对约定好的生成多项式进行模2取余操作最后判断余数是否为0如果余数为0表示数据传输无误如果不为0表示数据传输有错还是用上面的例子来操作一遍 3.1 将收到的数据与生成多项式求余 如果余数为0就表示这次收到的数据没有发生错误如果数据包发生了错误无论1位还是多位余数一定不为0 3.2 数据发生错误再进行CRC校验判断 我们随机将收到的数据两位取反表示收到的数据收到噪声干扰出错了我们再与生成多项式取余操作 由此可见如果传输过程中数据发生了错误最终CRC校验码不等于0。 四、FPGA实现CRC 实现CRC的关键就是取余数在FPGA中可以使用线性移位反馈寄存器来实现取余。 4.1 线性移位反馈寄存器 LFSR线性反馈移位寄存器Linear Feedback Shift Register是一种用于生成伪随机序列的电路或算法。它在数字电路、通信系统和密码学中有广泛的应用。LFSR 通过使用线性反馈机制来生成新的位通常用于加密、错误检测和伪随机数生成等领域。 LFSR的基本组成 寄存器LFSR 由一系列的位存储单元通常是触发器组成这些位存储在寄存器中。寄存器的长度通常用n表示。反馈多项式LFSR 的反馈是通过一个反馈多项式来实现的该多项式定义了哪些位会参与反馈计算。反馈多项式通常表示为 G ( X ) g n x n g n − 1 x n − 1 g n − 2 x n − 2 g 2 x 2 g 1 x 1 g 0 x 0 G(X)g_nx^n g_{n-1}x^{n-1} g_{n-2}x^{n-2} g_2x^2 g_1x^1 g_0x^0 G(X)gn​xngn−1​xn−1gn−2​xn−2g2​x2g1​x1g0​x0移位操作在每个时钟周期LFSR 会将寄存器中的所有位向右移位并将新的反馈位放入寄存器的最高位 4.2 LFSR工作原理 首先将移位寄存器里面的寄存器赋非0初值也叫种子。刚开始 R 0 R 1 R 2 . . . . . . R n − 1 {R_0R_1R_2......R_n-1} R0​R1​R2​......Rn​−1表示种子。然后根据生成多项式来确定反馈位通常是某些位的异或结果即 g 0 g 1 g 2 g 3 . . . . . . . g n − 2 g n − 1 g n {g_0g_1g_2g_3.......g_n-2g_n-1g_n} g0​g1​g2​g3​.......gn​−2gn​−1gn​表示抽头系数。最后移位将输入的数据低n位从高到低移动进来移动结束后 R 0 R 1 R 2 . . . . . . R n − 1 {R_0R_1R_2......R_n-1} R0​R1​R2​......Rn​−1表示余数。 4.3 仿真验证 根据前面的CRC计算原理以及LFSR原理我们搭建电路如上所示我们还是用最开始的例子传输的数据为{10010101}选择生成多项式 G ( X ) x 4 x 1 G(X)x^4 x 1 G(X)x4x1仿真代码如下 timescale 1ns / 1psmodule tb_crc4_lfsr();reg sys_clk ;reg sys_rst ;reg din ;//发送信息为1001_0101 //后面补4个0就是10010101_0000 initial beginsys_clk 0;sys_rst 1;din 0;#200(posedge sys_clk)sys_rst 0;#500(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;#200 $stop; endalways #5 sys_clk ~sys_clk;crc4_lfsr u_crc4_lfsr(.sys_clk ( sys_clk ),.sys_rst ( sys_rst ),.din ( din ),.crc_code_valid ( ),.crc_code ( ) ); endmodule 可以看到我们计算出来的CRC校验码为{0100}和我们前面计算的一致。我们将计算好的CRC校验码加到发送信息后四位再经过LFSR看一下结果仿真代码如下 timescale 1ns / 1psmodule tb_crc4_lfsr();reg sys_clk ;reg sys_rst ;reg din ;//发送信息为1001_0101 //后面补4个0就是10010101_0000 initial beginsys_clk 0;sys_rst 1;din 0;#200(posedge sys_clk)sys_rst 0;#500(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;#200 //加入前面计算好的余数0100总共信息位就是10010101_0100(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;#200 $stop; endalways #5 sys_clk ~sys_clk;crc4_lfsr u_crc4_lfsr(.sys_clk ( sys_clk ),.sys_rst ( sys_rst ),.din ( din ),.crc_code_valid ( ),.crc_code ( ) ); endmodule可以看到将计算好的余数添加到信息位后面再经过LFSR后得到余数为0表示数据无误。我们随机将打反一位数据仿真代码如下 timescale 1ns / 1psmodule tb_crc4_lfsr();reg sys_clk ;reg sys_rst ;reg din ;//发送信息为1001_0101 //后面补4个0就是10010101_0000 initial beginsys_clk 0;sys_rst 1;din 0;#200(posedge sys_clk)sys_rst 0;#500(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;(posedge sys_clk)din 0;#200 //加入前面计算好的余数0100总共信息位就是10010101_0100我们随机打反一位数据信息变成 11010101_0100(posedge sys_clk)din 1;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 1;(posedge sys_clk)din 0;(posedge sys_clk)din 0;#200 $stop; endalways #5 sys_clk ~sys_clk;crc4_lfsr u_crc4_lfsr(.sys_clk ( sys_clk ),.sys_rst ( sys_rst ),.din ( din ),.crc_code_valid ( ),.crc_code ( ) ); endmodule可以看到如果传输过程中数据位发生了错误那么经过解码后的余数不为0
http://www.dnsts.com.cn/news/246026.html

相关文章:

  • 哪个网站可以免费学编程logo生成器免费下载
  • 房地产公司 网站建设江西网站建设与推广
  • 烟台市芝罘区建设局网站自助建站是什么意思
  • 如何做网站插件wordpress添加路由
  • 离退休工作网站建设方案长沙网站制作方法
  • phpstudy如何搭建网站手机和电脑同步的进销存软件
  • 信阳做网站的公司wordpress在线商城
  • 网站建设和维护合同东莞设计企业网站的有哪些
  • 展会网站建设阿里云网站备案需要多久
  • 残联网站建设概况网站开发人员周报
  • 网站开发者yotoon广西网站建设-好发信息网
  • 惠州app网站建设排行榜抖音产品推广方案
  • 做网站 不做源码一个网站的建设步骤是
  • 佛山市品牌网站建设哪家好检察院门户网站建设情况总结
  • json取数据做网站开福区网站建设中
  • 个人网站可备案微信公众平台开发教程
  • 福建设计招聘网站有哪些免费推广网站
  • 上海省住房与城乡建设厅网站家居网站建设平台
  • 电商网站建设价格网站建设的栏目规划
  • 展示网站模版源码有哪些做ppt的网站
  • 怎么弄一个网站平台linux下wordpress安装
  • 移动网站建设渠道网站怎么能快速备案
  • 做招聘网站怎么设计框架邢台企业做网站的公司
  • 网站建设数据安全分析南宁网站建设公司哪个好
  • 企业网站多少钱一年临海城市建设网站
  • 丹阳建设局网站专做网页的网站
  • 广州网站设计哪里好医美三方网站怎么做
  • 宣传片制作网站网站怎么建设好看
  • 网站建设和域名什么关系怎么做网站上翻译泰剧
  • 网站建设怎么管理业务员广告推送平台