CAN总线是一种常见的串行通信协议,被设计用在高噪声环境下提供可靠的通信,被广泛应用在汽车、工业自动化和其他领域,为保证能在条件恶劣的工业环境下工作,CAN总线都会具备完整的错误检测能力及校验方法,下面来看看CAN总线有哪些校验法?
1、简单的校验
是指数据发送后进行回读,结果一致才确认传输成功,很显然这种传输沟通的方法很直观且精确,但由于回读操作导致数据传输量翻倍,效率低下,因此很少工程师采用。
2、奇藕校验
是指数据传输中使用额外一个位来记录传输数据二进制书中1的个数是奇数还是偶数,这种方案适合大多部分硬件,传输开销适中,因此被广泛应用在串口通信。
3、累加和校验
该算法原理是对数据逐一进行累加后得到一个数值,接收方在接收数据同时也进行数据的累加并终与发送过来的累加和进行比较,该算法计算简单,无论在硬件或是软件实现都能保证较高的效率,常用于低速串行数据通信校验和芯片代码的完整性判断。
4、CRC校验
该算法是基于一个多项式除法取余的结果,其根据位数需求和多项式变化有数十种版本,凭借其硬件实现简单,位反转侦错能力较强及运算开销适中的优点被广泛应用与数字网络传输以及数据存储领域,如磁盘数据校验、USB、GSM/CDMA通信,在计算机应用中经常接触到的RAR和ZIP文件的压缩/解压数据完整性检查也采用了该算法。
5、MD5
SHA为代表的信息摘要校验,数据摘要算法也被称为哈养Hash)算法、散列算法,摘要算法用于数据量比较大的场合。它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密,如软件注册授权文件的内容保护,还有经常遇到的互联网大文件(例如大小到GB级别的ISO镜像)通常会带有MD5、SHA1等信息方便用户检查传输数据的完整性。
暂无评论