您好,欢迎光临有路网!
循环冗余校验码(CRC)计算——C、VB、C51、ASM51编程实例
QQ咨询:
有路璐璐:

循环冗余校验码(CRC)计算——C、VB、C51、ASM51编程实例

  • 作者:杜树春
  • 出版社:清华大学出版社
  • ISBN:9787302476504
  • 出版日期:2017年09月01日
  • 页数:0
  • 定价:¥39.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    文章节选
    目录
    第1章概述
    1.1循环冗余校验简介
    1.2循环冗余校验的基本过程
    1.3使用循环冗余校验码的一个例子
    1.3.1Modbus通信协议通信格式说明
    1.3.2循环冗余码CRC16码的用法
    第2章CRC8码的计算
    2.1用手工计算CRC8码
    2.2用程序计算CRC8码:生成多项式g(x)=x8 x5 x4 1(正序)
    2.2.1C语言
    2.2.2VB语言<br /><br />目录<br />第1章概述<br />1.1循环冗余校验简介<br />1.2循环冗余校验的基本过程<br />1.3使用循环冗余校验码的一个例子<br />1.3.1Modbus通信协议通信格式说明<br />1.3.2循环冗余码CRC16码的用法<br />第2章CRC8码的计算<br />2.1用手工计算CRC8码<br />2.2用程序计算CRC8码:生成多项式g(x)=x8 x5 x4 1(正序)<br />2.2.1C语言<br />2.2.2VB语言<br />2.2.3C51语言<br />2.2.4ASM51汇编语言<br />2.3用程序计算CRC8码:生成多项式g(x)=x8 x5 x4 1(反序)<br />2.3.1C语言<br />2.3.2VB语言<br />2.3.3C51语言<br />2.3.4ASM51汇编语言<br />2.4用程序计算CRC8码:生成多项式g(x)=x8 x2 x 1(正序)<br />2.4.1C语言<br />2.4.2VB语言<br />2.4.3C51语言<br />2.4.4ASM51汇编语言<br />2.5小结<br />第3章CRC16码的计算<br />3.1如何生成CRC16码<br />3.2用程序计算CRC16码:生成多项式g(x)=0A001H<br />3.2.1C语言<br />3.2.2VB语言<br />3.2.3C51语言<br />3.2.4ASM51汇编语言<br />3.3用程序计算CRC16码:生成多项式g(x)=11021H<br />3.3.1C语言<br />3.3.2VB语言<br />3.3.3C51语言<br />3.3.4ASM51汇编语言<br />3.4小结<br />第4章CRC32码的计算<br />4.1CRC32码简介<br />4.2如何��C语言计算CRC32码<br />4.2.1直接计算法(正序)<br />4.2.2直接查表法(正序)<br />4.2.3直接查表法(反序)<br />4.2.4表格逐渐生成查表法(正序)<br />4.2.5表格逐渐生成查表法(反序)<br />4.2.6表格的生成法(正序)<br />4.2.7表格的生成法(反序)<br />4.3如何用C51语言计算CRC32码<br />4.3.1直接查表法(反序)<br />4.3.2表格逐渐生成查表法(正序)<br />4.3.3表格的生成法(反序)<br />4.4小结<br />附录AVisual C 6.0的上机操作<br />A.1Visual C 的安装和启动<br />A.2输入和编辑源程序<br />A.3编译、连接和运行<br />A.4编译和运行C语言程序的另一种方法<br />附录B单片机开发软件Keil C51的使用方法<br />B.1Keil C51简介<br />B.2安装Keil C51<br />B.3如何建立一个工程<br />B.4单片机选型<br />B.5创建源程序<br />B.6把新创建源程序加入到工程文件中<br />B.7工程的设置<br />B.8编译<br />B.9调试<br />附录CVisual Basic 6.0的上机操作<br />C.1Visual Basic 6.0的安装、启动及退出<br />C.2如何编译和运行配套的VB语言程序<br />C.3如何运行一个VB语言程序<br />参考文献<br /><br />显示全部信息前 言前言自从人类进入信息社会后,有线的或无线的通信网络便遍布全球。在通信系统中,由于存在干扰或信道传输特性不好,容易对信道造成不良的影响。通过对所传输的数字信息进行特殊的处理(如差错控制编码),即可实现对传输信息中错误的自动检验,称为检错。检错对数字通信系统的有效传输起着重要的作用。检错的手段有三种,一是奇偶校验,二是累加和校验,三是循环冗余校验。循环冗余校验是这三种校验中*好的一种。同一组数据采用不同的生成多项式,将得出不同的循环冗余校验码。一般说来,一组数据的CRC值由四个因素决定,一是生成多项式,二是该生成多项式正序还是反序,三是余数初始值是什么(通常有00H和0FFH,0000H或0FFFFH,00000000H或0FFFFFFFFH的选择), 四是结果异或值是00000000H还是0FFFFFFFFH(结果异或值只在CRC32码中考虑)。当生成多项式固定,正反序固定,余数初始值固定,结果异或值也固定时,同一组数的CRC值便是**的。本书是一本用不同的计算机语言编程计算循环冗余校验码的程序集。常用的循环冗余校验码有8位的、16位的和32位的三种,每种之下又有不同的生成多项式、正序反序、余数初始值取值和结果异或值的区分。所用计算机语言有四种:分别是C语言、VB语言、C51语言和ASM51汇编语言,前两种在个人电脑或笔记本电脑上运行,后两种在51系列单片机上运行。本书共分4章,第1章是概述,介绍循环冗余校验码的概念。第2章是8位循环冗余校验码的计算程序,生成多项式①为x8 x5 x4 1, 包括正序和反序; 生成多项式②为x8 x2 x 1,包括正序。所用计算机语言包括C语言、VB语言、C51语言和ASM51汇编语言。第3章是16位循环冗余校验码的计算程序,生成多项式①为x15 x13 1 ; 生成多项式②为x16 x12 x5 1 。所用计算机语言包括C语言、VB语言、C51语言和ASM51汇编语言。第4章是32位循环冗余校验码的计算程序,生成多项式为x32 x26 x23 x22 x16 x12 x11 x10 x8 x7 x5 x4 x2 x 1,包括正序和反序,所用计算机语言包括C语言和C51语言。本书*后有三个附录,分别是介绍Visual C 6.0上机操作的附录A , 介绍单片机开发软件Keil C51使用方法的附录B 和介绍Visual Basic 6.0上机操作的附录C。电子资料包的内容,仍是以书中章节为单位。在每一章(指第2章~第4章)下,都有一个章文件夹,每章文件夹下面有节文件夹,节文件夹内有四个文件夹,分别是C语言程序夹、VB语言程序夹、C51语言程序夹和ASM51汇编语言程序夹。打开任意一个程序文件夹,里面是例子文件夹。如果是C语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.dsw的文件,在Visual C 6.0 软件已安装在电脑中的前提下,双击具有.dsw扩展名的文件就可进入Visual C 6.0 软件集成环境,也就是Visual C 6.0的编辑、编译、连接、调试、运行环境。如果是VB语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.vbp的文件,在Visual Basic 6.0 软件已安装在电脑中的前提下,双击具有.vbp扩展名的文件就可进入Visual Basic 6.0软件集成环境,也就是Visual Basic 6.0的编辑、编译、连接、调试、运行环境。如果是C51语言程序夹或ASM51汇编语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.Uv2的文件,在单片机开发软件Keil C51已安装在电脑中的前提下,双击具有.Uv2扩展名的文件,就可进入C51语言和ASM51汇编语言软件集成环境。本书适合以下人员阅读或参考。一是学习C语言、VB语言或51系列单片机课程的大、中专及高等职业学校、中等职业学校的在校学生; 二是使用这些语言的广大工程技术人员; 三是这些语言编程的初学者; 四是广大程序设计爱好者。通过这本CRC程序集的出版,希望达到如下目的: 当广大编程人员遇到CRC计算的应用问题时,能从本书中查到符合自己所需位数、所需生成多项式和合适程序语言的程序模块,从而加快编程的工作进度。由于编著者水平有限且时间仓促,书中难免存在缺点和错误,恳请读者批评指正。我的电子邮箱为dushuchun@263.net。本书电子资料包请扫描二维码下载。前言 <div>自从人类进入信息社会后,有线的或无线的通信网络便遍布全球。在通信系统中,由于存在干扰或信道传输特性不好,容易对信道造成不良的影响。通过对所传输的数字信息进行特殊的处理(如差错控制编码),即可实现对传输信息中错误的自动检验,称为检错。检错对数字通信系统的有效传输起着重要的作用。检错的手段有三种,一是奇偶校验,二是累加和校验,三是循环冗余校验。循环冗余校验是这三种校验中*好的一种。同一组数据采用不同的生成多项式,将得出不同的循环冗余校验码。一般说来,一组数据的CRC值由四个因素决定,一是生成多项式,二是该生成多项式正序还是反序,三是余数初始值是什么(通常有00H和0FFH,0000H或0FFFFH,00000000H或0FFFFFFFFH的选择), 四是结果异或值是00000000H还是0FFFFFFFFH(结果异或值只在CRC32码中考虑)。当生成多项式固定,正反序固定,余数初始值固定,结果异或值也固定时,同一组数的CRC值便是**的。本书是一本用不同的计算机语言编程计算循环冗余校验码的程序集。常用的循环冗余校验码有8位的、16位的和32位的三种,每种之下又有不同的生成多项式、正序反序、余数初始值取值和结果异或值的区分。所用计算机语言有四种:分别是C语言、VB语言、C51语言和ASM51汇编语言,前两种在个人电脑或笔记本电脑上运行,后两种在51系列单片机上运行。本书共分4章,第1章是概述,介绍循环冗余校验码的概念。第2章是8位循环冗余校验码的计算程序,生成多项式①为x8 x5 x4 1, 包括正序和反序; 生成多项式②为x8 x2 x 1,包括正序。所用计算机语言包括C语言、VB语言、C51语言和ASM51汇编语言。第3章是16位循环冗余校验码的计算程序,生成多项式①为x15 x13 1 ; 生成多项式②为x16 x12 x5 1 。所用计算机语言包括C语言、VB语言、C51语言和ASM51汇编语言。第4章是32位循环冗余校验码的计算程序,生成多项式为x32 x26 x23 x22 x16 x12 x11 x10 x8 x7 x5 x4 x2 x 1,包括正序和反序,所用计算机语言包括C语言和C51语言。本书*后有三个附录,分别是介绍Visual C 6.0上机操作的附录A , 介绍单片机开发软件Keil C51使用方法的附录B 和介绍Visual Basic 6.0上机操作的附录C。电子资料包的内容,仍是以书中章节为单位。在每一章(指第2章~第4章)下,都有一个章文件夹,每章文件夹下面有节文件夹,节文件夹内有四个文件夹,分别是C语言程序夹、VB语言程序夹、C51语言程序夹和ASM51汇编语言程序夹。打开任意一个程序文件夹,里面是例子文件夹。如果是C语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.dsw的文件,在Visual C 6.0 软件已安装在电脑中的前提下,双击具有.dsw扩展名的文件就可进入Visual C 6.0 软件集成环境,也就是Visual C 6.0的编辑、编译、连接、调试、运行环境。如果是VB语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.vbp的文件,在Visual Basic 6.0 软件已安装在电脑中的前提下,双击具有.vbp扩展名的文件就可进入Visual Basic 6.0软件集成环境,也就是Visual Basic 6.0的编辑、编译、连接、调试、运行环境。如果是C51语言程序夹或ASM51汇编语言程序夹下的例子文件夹,打开后,多个文件中必有扩展名是.Uv2的文件,在单片机开发软件Keil C51已安装在电脑中的前提下,双击具有.Uv2扩展名的文件,就可进入C51语言和ASM51汇编语言软件集成环境。本书适合以下人员阅读或参考。一是学习C语言、VB语言或51系列单片机课程的大、中专及高等职业学校、中等职业学校的在校学生; 二是使用这些语言的广大工程技术人员; 三是这些语言编程的初学者; 四是广大程序设计爱好者。通过这本CRC程序集的出版,希望达到如下目的: 当广大编程人员遇到CRC计算的应用问题时,能从本书中查到符合自己所需位数、所需生成多项式和合适程序语言的程序模块,从而加快编程的工作进度。由于编著者水平有限且时间仓促,书中难免存在缺点和错误,恳请读者批评指正。我的电子邮箱为dushuchun@263.net。本书电子资料包请扫描二维码下载。<br /><br /><br />编著者2017年4月<br /><br /></div>显示全部信息媒体评论评论免费在线读第1章概述
    1.1循环冗余校验简介在远距离数据通信中,为确保**而无差错地传输数据,必须对数据检错,即差错控制。有多种检错的方法,如奇偶校验、算术累加和校验及循环冗余校验。而循环冗余校验是其中*好的一种。循环冗余校验(Cyclic Redundancy Check,CRC)是目前运用非常广泛的一种数据校验方式。其特点是: 检错能力极强,开销小,易于用编码器及检测电路实现。从检错能力来看,其不能发现错误的几率在0.0047%以下; 从性能和开销上考虑,其远远优于奇偶校验及算术累加和校验等方式。因而,在计算机网络、磁盘存储和数据通信等领域,CRC无处不在。Modbus通信协议下有两种通信模式: 一种是ASCII(美国标准信息交换代码)通信模式,另一种是RTU(远程终端单元)通信模式,后者就采用了CRC校验方法。**的通信协议X.25的FCS(帧检错序列)采用的是CRCCCITT; 磁盘驱动器的读写采用的是CRC16; ARJ、LHA等压缩工具软件采用的是CRC32; 一些半导体厂商生产的单总线芯片用CRC8校验其芯片固有编号,如芯片DS18B20的8字节的序列号,*后1个字节是前面7个字节的CRC码,这是为了保证序列号的**性与正确性; 此外通用的图像存储格式GIF、TIFF等都用CRC作为检错手段。CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(即CRC码),并附在信息后面,构成一个新的二进制码序列数,共(k r)位,*后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。CRC校验可以简单地描述为: 例如我们要发送一些数据(信息字段),为了避免一些干扰并在接收端判断接收的是否是真实的数据,这时就要加上校验数据(即CRC校验码),以判断接收的数据是否正确。在发送端,根据要传送的k位二进制码序列,以一定的规则(CRC校验有不同的规则,规则一词,在差错控制理论中称为“生成多项式”)产生一个校验用的r位校验码(CRC码),附在原始信息后边,构成一个新的二进制码序列数,共k r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则(即与发送时生成CRC校验码相同的规则)进行检验,校验采用计算机的模2除法,即除数和被除数(即生成多项式)做异或运算,进行异或运算时除数和被除数*高位对齐,进行按位异或运算,若*终的数据能被除尽,则传输正确; 否则,传输错误。生成CRC码的多项式g(x)又叫生成多项式(Generation Polynomial),生成多项式有多种(见表11)。生成多项式不同,产生的CRC码也不同。这就类似作除法时被除数相同,除数不同,所求得商和余数不同。生成多项式如果是(4 1)位的,则产生4位的CRC4码; 如果是(8 1)位的,则产生8位的CRC8码; 如果是(12 1)位的,则产生12位的CRC12码; 如果是(16 1)位的,则产生16位的CRC16码; 如果是(32 1)位的,则产生32位的CRC32码。

    表11标准CRC码生成多项式
    目录
    目录
    第1章概述
    1.1循环冗余校验简介
    1.2循环冗余校验的基本过程
    1.3使用循环冗余校验码的一个例子
    1.3.1Modbus通信协议通信格式说明
    1.3.2循环冗余码CRC16码的用法
    第2章CRC8码的计算
    2.1用手工计算CRC8码
    2.2用程序计算CRC8码:生成多项式g(x)=x8 x5 x4 1(正序)
    2.2.1C语言
    2.2.2VB语言
    编辑推荐语
    (1)本书内容丰富,涉及不同CRC位数、生成多项式和程序语言,方便读者各取所需。(2)通俗易懂,实例典型,既适合初学者,也适合有一定编程基础的爱好者和技术人员。(3)实践性强,所有实例均已通过验证,并提供完整的电子资料包,读者可以直接运行程序。
     

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外