一个CAN的保温,最大可以传输8BYTE的数据,所以没办法一次发送很多的数据,这个是CAN协议规定的。
想要传输大量的数据,只有分包传输。
在编程的时候,可以使用DMA,这样就能有效的避免MCU长时间的占用
CAN总线的机制一帧数据最多就只能发8个字节,大量数据肯定是要进行缓存的。
另外,对于超过8字节的数据,就需要利用协议了,J1939协议就是一种多包协议
你要想一次发生完的请求可能不能强制得到满足,因为这个总线机制是基于协商的。除非你发送端的地址是总线中最小的(优先级最高的)。
对于大量数据,最好再用协议封装一下,这样有更好的纠错机制,更容易保证数据完整性,当然,这会带来额外的资源占用消耗。
要在总线上的协议上支持才可以的,否则其他的CAN设备可能会打断你的数据发送,由于CAN的机制限制。
大量数据,除了有协议,还要有一个纠错的机制,保证数据的正确性
总线上要设计好协议与逻辑,在有设备发的时候,其他的设备不可以发数据。
大量数据可以使用DAM的方式发,效率高一些