2can线上有两个状态,
a隐性状态,两线电压2.5V,表示位为1。
b显性状态,两线电压:低1.5V,高3.5V,压差2V;表示位为0;
3以上2里的电压叫差分线路,为的是增加抗干扰性能,同时在高与低两根线上并入120欧姆电阻,防止信号震荡。
4以上只是电路的硬件解释,下面以长城上的烽火台举个例子。
5第一个台子,冒烟了,在131个时间单位里(一个报文131个位,也就是一个数据帧131个位),其他的台子,就会记录44个时间单位里,有没有冒烟结果是131个0与1组成的数字:100110010101100101100101(这里一共是131个哈,我没具体计数)。
6如果有两个台子在冒烟,先冒烟a的不要停,接着冒烟。后冒烟的b停下来,接收a发出的信号。
7两个台子同时冒烟,在前11个冒烟记数里,谁不冒烟(状态为0,显性电平,压差2V)发送的多,谁的优先级就高,就不会停,而其它的1-N个就会停下来 改为接收。
8在一个131时间里,一个发出,其它的所有台子都会收到并记录这一串数字,然后根据领导的指示(或是军部的密码本)进行信息处理,如果能找到匹配密码的信息就把8个字节(一个131的帧有8*8位的数据内容,其它的131-64=67个位不是数据的)存下来,装进箱子里,A级文件装进第一个密码箱,B级文件装在第二个密码箱,每个箱子有三个格子,只能收三个文件。
9在131个时间里收到的数据串,前11个是ID,就是编号。12位是扩展位,可以在扩展28个位。
10一个131(叫报文,叫帧),有这样几个段,仲裁段(就是ID段,前面5678里提到的密码本就是在这一段做比对),数据段(8字节*8位),应答段,结束段。
11仲裁里数据叫标识符,用来匹配密码本(叫筛选器,叫识别器,叫过滤器)。
12每个can硬件有多个识别器,每个烽火台有多个密码本。两本是一个组。
13每组密码本的方式,
a一本指定检测位的,一本指定位的状态。比如第一本指定只看第3与5位,第二本指定3位与5位为0。那么只有这一种信息才能存后面的8个字(64位)
b一本指定密码A,一本指定密码B。
c与d记不清了。
14密码本有11位,使用的时候用不了那么多个(11位为0-7ff,0-2046)所以可以前三个位是烽火台的编号,最后两位是功能码(比如信息紧急程度,或数据类型:int char bit),也就是说,仲裁段可以对密码,与可以当数据段来使用。
15应答段只有两位,具体的忘了。
16结束段有7位隐性电平,好像是这样的。
这应该是自定义的一个通信协议吧,从字面理解:PRI:保留位,占3位;
SegFlag:分段传输的标志,占1位;
GROUP ID:帧所在组的ID,占4位;
DMAC:上面写着本机地址,我认为可能是目的地址Destination
SMAC:上面写着设备地址,我认为可能是源地址Source
CID:命令代码(Command ID)或者用户代码(Customer ID);
ACK:响应,占1位;
只是猜测,仅供参考。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)