牛卧堂MCU技术交流

标题: M467的CANFD通道,如何使传送效率最高? [打印本页]

作者: 匿名    时间: 2023-11-23 15:26
标题: M467的CANFD通道,如何使传送效率最高?
现在我在用M467-64PIN 进行解算与数据收发;

M467的CANFD通道,如何使传送效率最高?
例如使用1M+5M传输模式,如何使传送效率最高?

例如循环发送64 Byte的计算数据,需要10个不同的CANFD ID;而这10个帧数据之间,如果不用delay 阻塞延时,该如何操作,使效率最高?

谢谢!

作者: 蒋海东    时间: 2023-11-23 21:44
内部有发送FIFO,可以将需要发送的消息存到队列里,发送完成后进入中断,置位下一个发送标志位就能发送一下一个消息了。
作者: Angus    时间: 2023-11-24 15:00
本帖最后由 Angus 于 2023-11-24 15:02 编辑

CANFD 发送结构看下图,可以同时写好32个报文,对TXBRP写 0xFFFFFFFF,  低位对应的报文先发送,按位对应,依次到高位对应的报文,发送出去。无需CPU 干预。



接收时,用FIFO0或FIFO1, 每个FIFO可缓存64条报文。CPU按先入先出读出报文。

作者: 匿名    时间: 2023-11-24 15:37
Angus 发表于 2023-11-24 15:00
CANFD 发送结构看下图,可以同时写好32个报文,对TXBRP写 0xFFFFFFFF,  低位对应的报文先发送,按位对应, ...

此刻 无需关心 CANFD总线的连续发送延时了对吧?

可惜没有在BSP包看到相关的应用案例。

BSP里面的CANFD还加了一个很可怕的for(),连续发送死等延时。




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2