打印
[技术支持]

在通信中,比如串口通信中常用的校验方式哪种

[复制链接]
3352|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-5-23 16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最常用的是CRC16
但是别的同事用XOR
还有的开发板例程用哈希

在嵌入式设计中哪种校验方式最高效并有效?各有什么优缺点?

使用特权

评论回复
沙发
dukedz| | 2025-5-23 18:48 | 只看该作者
本帖最后由 dukedz 于 2025-5-23 18:50 编辑

用crc比较好,很多 mcu都有硬件crc,可以自定义多项式的
我一般用 modbus crc,用于 cdbus 通讯和文件校验
modbus crc 是 16 位的,软件计算可以查表、可以不查表循环 8 次计算 一个字节
查表可以查 512 字节的表,一个字节查一次
内存有限的话可以查 32 字节的表,一个字节查两次,速率只比查大表慢一点点,比不查表快很多很多,代码见:
https://github.com/dukelec/cdnet/blob/master/utils/modbus_crc.c

stm32、at32、gd32 等 硬件计算 modbus crc 代码:
https://github.com/dukelec/cdnet/blob/master/arch/stm32/arch_wrapper.c

使用特权

评论回复
板凳
chenjun89| | 2025-6-4 22:08 | 只看该作者
常用的有和校验,CRC校验。

使用特权

评论回复
地板
weifeng90| | 2025-6-5 08:10 | 只看该作者
CRC校验再单片机通信中最常用

使用特权

评论回复
5
probedog| | 2025-6-26 15:45 | 只看该作者
奇偶校验实现简单

使用特权

评论回复
6
flycamelaaa| | 2025-6-26 16:45 | 只看该作者
CRC校验。。

使用特权

评论回复
7
powerantone| | 2025-6-26 19:46 | 只看该作者
和校验适用于对数据准确性要求不高,且希望快速进行错误检测的场景。

使用特权

评论回复
8
probedog| | 2025-6-26 19:46 | 只看该作者
LRC校验能够检测出部分类型的错误,但其检测能力通常不如CRC校验。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1680

主题

14503

帖子

28

粉丝