社区
通信技术
帖子详情
紧急紧急,CRC校验的问题,保证给分。
bluestar
2001-06-22 04:41:00
使用摩托罗拉芯片与因特尔的芯片通讯。
由于摩托罗拉芯片使用的是大序(就是高字节在前),而因特尔的芯片用的是小序(低字节在前)。
通讯的时候协议中使用CRC校验,在因特尔下的CRC校验和在摩托罗拉下的CRC校验不相等。
欲求在大序下的CRC校验代码。
万分感谢!
...全文
144
8
打赏
收藏
紧急紧急,CRC校验的问题,保证给分。
使用摩托罗拉芯片与因特尔的芯片通讯。 由于摩托罗拉芯片使用的是大序(就是高字节在前),而因特尔的芯片用的是小序(低字节在前)。 通讯的时候协议中使用CRC校验,在因特尔下的CRC校验和在摩托罗拉下的CRC校验不相等。 欲求在大序下的CRC校验代码。 万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xxxbird
2001-06-24
打赏
举报
回复
做完上述工作之后再做CRC校验。
xxxbird
2001-06-24
打赏
举报
回复
实际上你根本不需要考虑所谓大序CRC算法。
在你定义的协议类型中,应该只使用short, long, char数据类型,而不应该使用其它数据类型。
在只使用上述数据类型的情况下:
(1)数据由Intel->Motorola
在传输前,需做如下的转换:
将所有short(16位)利用htons转换成网络字节顺序(大序),
将所有long(32位)利用htonl转换成网络字节顺序(大序),
所有char类型数据不做转换。上述工作完成后,就可以将数据通过网络传给Motorola机器了。
在Motorola机器上就不必考虑字节顺序问题。
(2)数据由Motorola->Intel
传输前不必考虑字节顺序问题,直接传输就是了。
在Intel机器接收到数据后,需做如下的转换:
将所有的short(16位)利用ntohs转换成主机字节顺序(小序,little-endian)
将所有的long(32位)利用notohl转换成主机字节顺序
char类型不必转换。
bluestar
2001-06-24
打赏
举报
回复
谢谢,不管行不行,都给分。
xxxbird
2001-06-24
打赏
举报
回复
Here is a simple sample. We assume that you want to transfer the following struct between Intel and Motorola machine:
typedef struct
{
short msgid;
long msglen;
char buffer[512];
short CRC;
} testpacket;
testpacket tp;
(1) Intel->Motorola
Intel:
Step 1: tp.CRC = Calc_CRC (tp);
Step 2: tp.msgid = htons (tp.msgid);
Step 3: tp.msglen = htonl (tp.msglen);
Step 4: tp.CRC = htons (tp.CRC);
When all these works down, just send tp to Motorola
Motorola:
Check CRC, no other works needed.
(2) Motorola -> Intel
Motorola:
Just send the packet, no other works needed.
Intel:
Read the packet first,
Step 1: tp.msgid = ntohs (tp.msgid);
Step 2: tp.msglen = ntohl (tp.msglen);
Step 3: tp.CRC = ntohs (tp.CRC);
Step 4: crc = Calc_CRC (tp), check it
bluestar
2001-06-23
打赏
举报
回复
还有人能回答吗?
冰河:我必须用CRC校验,协议不可能改动
xxxbird,因为我没时间去理解CRC校验算法,希望能找到一个大序下的CRC校验法。这些函数我也用过,可是用在CRC校验中有些繁琐。
我是用查表法的CRC校验。
xxxbird
2001-06-22
打赏
举报
回复
在Intel芯片中将CRC转换成大序后再传输吧。没有必要用大序下的CRC校验算法。实际上有这些函数可以为你做到
htonl, htons - 分别将long及short转换成网络字节顺序(big-endian)
ntohl, ntohs - 分别将long及short转换成主机字节顺序
duuyuu
2001-06-22
打赏
举报
回复
以太网一般都是小序呀,怎么会冒出个大序呢?
我记得只有FDDI是大序。
你是直接面向网卡编程吗?
换一个校验方法看看,或者干脆忽略校验,或者自己写一个
和字节顺序无关的校验算法。
wwwunix
2001-06-22
打赏
举报
回复
你用的是什么协议?
CRC校验
和计算.rar
总结起来,"
CRC校验
和计算.rar"提供的工具是数据恢复专业人士的得力助手,特别是在处理GPT磁盘
问题
时,能有效地验证数据的完整性和准确性。无需安装的特性使其在各种环境中都能快速投入使用,对于确保数据安全和提高...
CRC校验
算法详解与实用工具推荐
本文详细解析了
CRC校验
算法的核心原理,通过对比校验和等简单方法,阐述了CRC在数据通信中高可靠性的优势。文章以CRC-16/Modbus和CRC-16/X25为例,详解了不同标准的参数差异与常见误区,并提供了C语言与Python的实用...
紧急
避坑指南:卫星终端
CRC校验
常见错误及C语言修复策略
解决卫星通信数据出错难题,本文深入剖析卫星终端的C语言
CRC校验
常见错误,涵盖误码检测、查表法优化与多项式配置等核心方法,适用于低轨卫星通信等高可靠性场景,显著提升数据完整性,
紧急
避坑指南值得收藏。
从数据完整性到系统可靠性:STM32 Flash存储的
CRC校验
艺术
本文深入探讨STM32 Flash存储中如何利用硬件
CRC校验
技术确保数据完整性和系统可靠性。通过
分
析CRC原理、HAL库实现及智能存储策略,提供了从基础配置到高级优化的完整解决方案,帮助开发者构建高效的嵌入式存储系统。
CAPL脚本实现高效
CRC校验
码计算:从基础到实战
本文详细介绍了如何使用CAPL脚本实现高效的
CRC校验
码计算,从基础原理到实战应用。通过具体的代码示例和优化技巧,帮助开发者在CAN通讯中确保数据完整性,适用于汽车电子领域的ECU刷写、CAN FD传输等场景。
通信技术
4,391
社区成员
28,906
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章