- 发布
- 北京安融互通科技有限公司
- 电话
- 010-80192720
- 手机
- 13366990809
- 发布时间
- 2022-10-03 10:35:13
首先,要明确你要的应答是什么,是正确接收某个报文,还是某个节点向另一节点请求报文
一、正确接收报文:
CAN报文包含一个ID场的部分,每个报文在总线上广播,节点收到报文后比较ID,如果是该节点应该接受的报文ID,该节点则完成接受;
二、请求报文:
CAN报文内在ID场前有一个1bit长度远程帧场,485总线,0表示为普通帧,1表示为远程帧,485总线报价,当A节点希望B节点向它发送某个报文时,A节点向总线广播远程帧,远程帧无数据场,总线上节点同样也是比较报文的ID场,当B节点比对ID场发现该远程帧是向它请求时,B节点发送该远程帧请求的帧,A通过一点中的方法接受收
CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,485总线即插即用,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率较高可达1Mbps。
完成对通信数据的成帧处理
CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。
如果你想正常的实现串口数据与CAN总线数据之间的转换,如果你不想在数据转换的时候发生丢帧现象,那滤波设置是必须的,滤的是CAN总线端的波。因为,相对而言,CAN总线的通讯速率远高于串口总线,如果我们不进行滤波,485总线抗干扰强,单位时间里大量的CAN端数据就没办法同时被转换成串口端的数据,比如说CAN端有10个数据,但同一时间串口端只能接收一个,那剩下的9个该怎么办呢?只能丢失掉了,这当然是我们不能接收的。