当前位置:首页 > 日记 > 正文

vb下如何编写CRC校验程序

vb下如何编写CRC校验程序
随着计算机技术的不断发展,利用计算机进行数据通信,工业控制越来越广泛地应用于现代工业。由于许多可能的因素,如传输距离和场地条件、计算机和控制设备之间的通信数据经常发生不可预知的错误。为了防止误差的影响,数据检查一般通过沟通,和循环冗余校验是一种最常用的检查方法。

一、循环冗余校验原理

循环冗余码的英文名称是循环冗余校验,简称CRC,它采用除法和余数原理进行错误检测(错误检测),当应用时,发送设备计算CRC值并连同数据一起发送到接收设备。接收装置接收到的数据重新计算CRC,它与接收到的CRC比较。如果两个CRC值不同,则发生数据通信错误。

根据不同的应用环境和习惯,CRC可分为以下标准:

(1)crc-12代码;

(2)CRC-16码;

(3)校验码;

(4)CRC-32编码。

crc-12码通常用于传输位strings.crc-16和CRC-CCITT码用于发送8位字符,其中CRC-16在美国使用,并由欧洲countries.crc-32 CRC-CCITT码主要用于同步传输称为点对点。

以下是最常用的CRC-16为例来说明其产生的过程。

CRC-16码由两个字节,在CRC开始登记每个预置为1,然后华润登记和8位数据异或CRC登记后,从高到低的顶端水平位移(MSB)零的位置,和最低(LSB,转移了CRC从登记册中删除)如果1,与预定义的多项式码或者如果LSB是零登记,无需异或。重复上述转变,从高到低8倍,第一位的数据进行处理,然后使用CRC登记价值的同时,开展8班喜欢在下8位数据或以前的数据。毕竟字符处理完成后,在华润登记的价值是最终的CRC值。

下面是CRC的计算:

1。设置CRC登记并分配一个值(HEX)FFFF。

2。数据的第一个8位字符与16位CRC寄存器的低8位无关,结果存储在CRC寄存器中。

的3.crc登记移动到另一个点的权利,高位补零,搬出去和检查的LSB。

4。如果LSB为0,重复第三步;如果LSB为1,CRC寄存器与多项式代码不同。

5。用第四步重复第三,直到8个转换完成。此时,完成8位数据处理。

6。重复第二到第五步直到所有数据被处理。

7。最终CRC寄存器的内容是CRC值。

二、循环冗余码校验程序的编写
为了理解CRC校验码的生成过程,编写程序非常容易,由于VB的普及及其在数据通信中的重要地位,我们将用VB语言编写CRC校验程序。

编写CRC校验程序有两种方法:一种是计算方法,另一种是查表法,分别讨论了两种方法。
1。计算方法

计算方法是根据CRC校验码的生成原理设计的程序,优点是模块代码很少,修改灵活,且可移植性好,其缺点是计算量大,为了理解,三位数据是假设的,和多项式代码是A001(HEX)。

放置一个命令按钮command1的形式,并添加以下代码:
私有子command1_click()

将CRC()变为字节

将d()作为发送数据的字节

ReDim D(2)字节

d(0)=123

D(1)= 112

d(2)=135

CRC CRC16(D)呼叫CRC16计算功能

CRC(0)很高

CRC(1)很低

端子

注意:CRC的低位可能在数据传输之前,高位位置在后面。
功能CRC16(数据()字节)为字符串

昏暗的crc16lo字节,字节的CRC crc16hi登记

昏暗的CL为字节,字节码多项式假日001的CH

昏暗的savehi字节,SaveLo As Byte

模糊i为整数

标志为整数

crc16lo = HFF

crc16hi = HFF

CL = H1

CH = 0

我= 0,UBound(数据)

crc16lo = crc16lo异或数据(我)的每个数据不同于CRC登记

对于标志= 0到7

savehi = crc16hi

crc16lo Savelo =

crc16hi = crc16hi 2高右移位

crc16lo = crc16lo 2低右移位

如果((SaveHi和H1)= H1)然后如果高字节的最后一位是1

crc16lo = crc16lo或H80然后低位字节右移提前1

如果否则自动填充0

如果(((SaveLo和H1)= H1)然后如果LSB为1,则多项式编码不同或。

crc16hi = crc16hi异或CH

crc16lo = crc16lo异或CL

最后如果

下一个标志

下一个我

昏暗的returndata(1)字节

returndata(0)= crc16hi的CRC高

returndata(1)= crc16lo的CRC低

returndata CRC16 =

端功能

2。查表法

The merits and demerits of the look-up table method are the opposite of the calculation method.For comparison purposes, all the assumptions here are exactly the same as the calculation method, and the Command1 button is placed on the form. 代码部分也与上面的内容一致。下面是编写CRC函数的源代码。
私有函数CRC16(数据()字节)为字符串

crc16hi字节暗淡

昏暗的crc16lo字节

crc16hi = HFF

crc16lo = HFF

模糊i为整数

昏暗的指数一样长

我= 0,UBound(数据)

指数= crc16lo异或数据(我)

crc16lo = crc16hi异或getcrclo(指数)的低位处理

crc16hi = getcrchi(指数)的处理

下一个我

昏暗的returndata(1)字节

returndata(0)= crc16hi的CRC高

returndata(1)= crc16lo的CRC低

returndata CRC16 =

端功能
CRC低字节字节值表

功能getcrclo(Ind时间)为字节

   GetCRCLo = Choose(Ind + 1, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, _

H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40, H0, HC1, H81, H40, H1, HC0, H80, H41, H0, HC1, H81, H40, H1, HC0, H80, H41, H1, HC0, H80, H41, H0, HC1, H81, H40)

端功能
CRC高字节值表

函数的GetCRCHi(Ind时间)为字节

   GetCRCHi = Choose(Ind + 1, H0, HC0, HC1, H1, HC3, H3, H2, HC2, HC6, H6, H7, HC7, H5, HC5, HC4, H4, HCC, HC, HD, HCD, HF, HCF, HCE, HE, HA, HCA, HCB, HB, HC9, H9, H8, HC8, HD8, H18, H19, HD9, H1B, HDB, HAD, H1A, H1E, HDE, HDF, H1F, HDD, H1D, H1C, HDC, H14, HD4, HD5, H15, HD7, H17, H16, HD6, HD2, H12, H13, HD3, H11, HD1, HD0, H10, HF0, H30, H31, HF1, H33, HF3, HF2, H32, H36, HF6, HF7, H37, HF5, H35, H34, HF4, H3C, HFC, HFD, H3D, HFF, H3F, H3E, HFE, HFA, H3A, H3B, HFB, H39, HF9, HF8, H38, H28, HE8, HE9, H29, HEB, H2B, H2A, HEA, HEE, H2E, H2F, HEF, H2D, HED, HEC, H2C, HE4, H24, H25, HE5, H27, HE7, HE6, H26, H22, HE2, HE3, H23, HE1, H21, H20, HE0, HA0, H60, _

H61, HA1, H63, HA3, HA2, H62, H66, HA6, HA7, H67, HA5, H65, H64, HA4, H6C, HAC, HAD, H6D, HAF, H6F, H6E, HAE, HAA, H6A, H6B, HAB, H69, HA9, HA8, H68, H78, HB8, HB9, H79, HBB, H7B, H7A, HBA, HBE, H7E, H7F, HBF, H7D, HBD, HBC, H7C, HB4, H74, H75, HB5, H77, HB7, HB6, H76, H72, HB2, HB3, H73, HB1, H71, H70, HB0, H50, H90, H91, H51, H93, H53, H52, H92, H96, H56, H57, H97, H55, H95, H94, H54, H9C, H5C, H5D, H9D, H5F, H9F, H9E, H5E, H5A, H9A, H9B, H5B, H99, H59, H58, H98, H88, H48, H49, H89, H4B, H8B, H8A, H4A, H4E, H8E, H8F, H4F, H8D, H4D, H4C, H8C, H44, H84, H85, H45, H87, H47, H46, H86, H82, H42, H43, H83, H41, H81, H80, H40)

端功能
上面的程序进行了调试和Win98和VB6通过。

相关文章

车载平台安德鲁斯潮流涌入新的蓝海

车载平台安德鲁斯潮流涌入新的蓝海

数字,音乐,平台,潮流,安德鲁斯,2013年3月,全国汽车行业报告显示,国内汽车生产销售形势良好,当月产量和销量均超过200万辆,创下新高。 面对如此庞大的汽车用户数量,大多数主流品牌目前只提供汽车音响、CD、USB等老牌音响设备。不仅娱乐形式非常…

QQ最新下载:Win81.32.228解决后台滴

QQ最新下载:Win81.32.228解决后台滴

后台,下载,最新,电脑软件,QQ,QQ最新下载:Win8 1.32.228解决后台滴线 12月13日,在win8qq Windows应用商店(QQ Windows8)提供了更新版下载最新版本升级到新版本1.32.228,增加个人数据卡的功能,搜索添加联系人,解决问题和修复的削减下来,接收群图片失…

终于发布了SQLServer育空测试版本2

终于发布了SQLServer育空测试版本2

版本,测试,发布了,电脑软件,SQLServer,漫长的等待育空测试版2终于可以在MSDN下载(只有MSDN用户),SQL Express也被公布于众。 释放是伴随着对更期望经理表示一些谣言,这是管理SQL express.sql表示UI被一些个人,并希望测试能站起来。 如果你是MSDN…

博客曝谷歌十大另类技术投资

博客曝谷歌十大另类技术投资

博客,十大,另类,技术,电脑软件,据国外媒体报道,Jay Hierro(Jay Yarow),该技术博客BusinessInsider作者,写上星期日,清单十谷歌最怪异的投资。在他的文章中,耶罗说,不像其他一些科技巨头,谷歌不怕花钱。有时谷歌会做出一些合理的投资,如视频网站YouTub…

Win8密钥嵌入式BIOS重装系统可直接

Win8密钥嵌入式BIOS重装系统可直接

重装系统,嵌入式,激活,密钥,可直接,serverjia的最新消息:据Ghacks网站在德国,笔记本电脑制造商直接嵌入Windows 8的产品密钥到主板的BIOS。当他们重新安装操作系统时,他们不需要再输入,也可以直接激活。 在不久的将来,购买Windows 8笔记本的用户…

热比娅在日本谣传乌鲁木齐事件失踪

热比娅在日本谣传乌鲁木齐事件失踪

事件,乌鲁木齐,谣传,千人,失去了,Jiang Du 分子热比娅会很开心,这些天在日本,不仅将自己伪装成维吾尔领袖,而且,把自己装扮成乌鲁木齐的骚乱现场目击者。7月29日日本亚洲通讯社,徐静泊先生在热比娅访问在东京的一个小事件日本近看热比娅,丑,语无伦…

微软Win8无线网络密码查看教程

微软Win8无线网络密码查看教程

无线网络,教程,密码,电脑软件,随着Windows 8系统的普及,用户越来越多。Win8系统下,无线网络的加密密钥,可以在无线的连接属性看,步骤简单: 1、打开控制面板->网络和共享中心(控制面板中的查看网络范畴;和Internet内;查看网络状态和任务;打开网络和…

虎年祝福与祝福短信(6)

虎年祝福与祝福短信(6)

虎年,短信,电脑软件,新年祝福信息:这个季节,我有最深的思念,让风带着满满的祝福,充满你甜蜜的梦想,祝你明年更加灿烂灿烂! 新年短信祝福:刮风时,我想你!下雪的时候我读你!新年快乐,记得保持联系。 新年寄语:好久没有听到你的声音了。我好久没有你的消…

关于如何解决Windows7爆音问题(2)

关于如何解决Windows7爆音问题(2)

音问,如何解决,电脑软件,测试结果表明,相同的电影文件在同一硬件环境下,高清视频播放采用WindowsXP系统,没有弹出和杂音,而Windows 7平台(电影)则出现了弹出和噪声的情况。 XP测试结果弹出噪声 Windows 7弹出噪声测试结果 特别是我们过去常说的音…

不包含文本的解决方案

不包含文本的解决方案

解决方案,文本,不包含,电脑软件,搜索看哪一个文件在一个文件夹中包含一个文本到今天,因为这个工作经常需要这个函数,只是搜索不能包含文本,一个文本和一些确定的搜索没有出来,一直在苦苦寻找解决方案。 方法:在hkey_local_machine 系统控制设定…

Win7主题的超级恶棍,免费下载

Win7主题的超级恶棍,免费下载

下载,恶棍,主题,电脑软件,{ win7主题} 超级恶棍免费下载 近日,微软个性化设计中心(windowpersonalizationgallery)增加了一个基于卡通电影主题曲,让用户可以免费下载。 众所周知,动画电影叫超级恶棍megamind文件大小6.6mb,包括一些电影海报和壁纸…

android音乐3免费下载免费下载

android音乐3免费下载免费下载

下载,音乐,电脑软件,android,BusinessInsider报道,一位名叫techfrom10 androidhoneycomb博客收到的androidmusic安装包的测试版本,它带来了谷歌的云音乐服务的最新发展,该软件包是现在可供下载,Android手机用户不妨一试。本产品可以上传用户的…