打印
[CAN-bus/DeviceNet]

iCAN协议中的分段代码疑问

[复制链接]
2304|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lab678|  楼主 | 2012-5-24 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!
学习iCAN协议有段时间了,今天突然发现个问题,小弟想请教下。
分段代码是这样说的,“传输的最大报文长度为64×7 =448 个字节。”
小弟对此有个疑问。
1、无分段的情况就不用说了,这个字节就是0x00.
2、当分段时,起始分段时标志为0x40,这个可以算是总分段数的第1分段。
3、中间分段时,标志为0x81~0xBF(10111111,不知道中间分段能不能到这个值),这样算起来的话中间分段就可以有64个值,可以有64个数据段。
4、最后分段为0xC0,可以算是总分段数的最后一个分段。

这样算下来总共就可以有66个分段。

我这样的理解对吗?哪里出了问题?请高手指点迷津!

相关帖子

沙发
992704777| | 2012-5-24 13:25 | 只看该作者
我也想知道

使用特权

评论回复
板凳
lab678|  楼主 | 2012-5-24 14:33 | 只看该作者
已经求证过了,广州致远给的答复是:
1、中间分段的最大值为0xBE(即中间分段最大值为63),此时除去最后分段共有64个分段。
2、最后分段时,高两位为二进制11,低6位为中间分段的末尾值(即中间分段的最后一个分段值(低6位))加1,即最大值为0xFF。(segpolo为0b11,segnum为0b111111)。
3、最后结论是最大可支持65个分段,最大传输字节数为65*7=455个字节。
是广州致远的一位姓董的工程师给的答复。电话不便透露。
不知道站内网友有没有其它答复,期待中......

使用特权

评论回复
地板
sixgett| | 2012-6-8 18:40 | 只看该作者
楼上说的应该没错0x81-0xBF即10000001-10111111,这里边是63个,其实也可以这样理解,不知道对不对,就是说第一个分段当然就算作一个,中间63个共64个,到达最后分段式,即低六位全为1,当全部为1时segpolo将变为11,也就是当低六位变为1时,segpolo变为11,也就相当于64了,假如我们传18个字节,1-7,8-14,15-18,即15-18的时候segpolo将自动(太专业的术语不会,包涵啊)变为11,有自动识别功能(我只能这样说了,哈哈)。至于LS说是致远工程师说的,那我就不知道了,我的意见只供参考,要是像楼上说的,那就更好不过了,不过我还没用到一口气传64个字节,ican也主要用来采集一些模拟数字信号。

使用特权

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

本版积分规则

0

主题

10

帖子

0

粉丝