发表于:2008-01-09 22:32:00
3楼
串行通信中,一帧数据由多个字节组成,CANBUS的帧结构有完整的定义,它包含帧头\数据\帧尾三部分,帧头含ID,帧尾含CRC校验,因此用户数据段无需考虑帧头和校验,若觉得CRC校验还不满足您的可靠性要求,可在ID中增加其它校验算法.
-------
谢谢你的留言,不过我还有点不明白:
你的意思是我的上位机通过CAN总线发送数据时,发送程序只需要实时的往发送缓冲区丢8个字节的数据包就可以了?不用发送用户层自定义的校验位了(比如各个数据的异或操作,我在用422通讯时是这么定义的校验位)?也不用发送帧头(比如232,可以用个'#'字符标识帧头)?那如果不发送帧头的话,接收方怎么知道开始接收数据以及什么时候停止接收数据呢?总需要添加个数据帧尾之类的标识位(比如232时用‘&’字符作为帧尾结束符)用来提醒接收方接收到的是另一帧数据而不是同一帧数据吧?难道这些都不用在发送程序中定义吗?没有用过CAN通讯,不怎么清楚,不知道您能不能给讲讲呢,
再次感谢!