最近一直在研究CAN总线,用的芯片是SJA1000。现在有两个问题一直没搞明白:
(1)如果总线上接的设备很多,那发数据包时就可能出现总线忙,可SJA1000资料上并没有提及如何判断总线忙,仔细看了CAN 2.0协议,协议上说只要把包交给控制芯片就行了,由芯片自动发。那请问:我只管发包,什么时候包能发出去我不用管,这样理解对吗???
(2)发出的数据包包括了CRC验证码之类的很多信息,协议上说包发错了控制芯片会自动重发,就是两个控制芯片之间自动完成,不用MCU的人工干预,那请问:我只管发包与收包,发出去的和收到的都是正确的(在错误漏判率之内),这样理解对吗???
(3)远程帧究竟怎么用,书上只是说“通过发送远程帧可以启动其资源节点传送它们各自的数据”,那接收方接收到远程帧后如何判断是数据帧还是远程帧,请问:如何充分利用远程帧???
问题有点多,但很急迫,请各位专家帮帮忙!!!
|