TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280049: 使用DCAN接收数据,CAN_readMessage函数执行时间很长

Part Number:TMS320F280049

实际测试,CAN_sendMessage()和 CAN_readMessage()执行时间过长,CAN_readMessage接收8bytes 需要4.2us,与波特率没有关系,在28335 ECAN里面取数据,可以直接读寄存器来读取数据,现在DCAN程序执行时间过长,有办法能够解决吗?

Green Deng:

你好,请问你是在仿真的情况下测得的数据还是单机运行的情况测的?以及你的接收时间是用什么方式测量的?

,

Li Cong:

仿真时候测试的,是通过计算函数执行器前和执行后的定时器计数来判断 的

,

Green Deng:

收到,我会与DCAN方面的专家沟通一下之后回复你。

,

Green Deng:

请看一下这篇帖子:e2e.ti.com/…/4129060

最可靠的验证方法如下:

对于发送,在写入 IFxCMD 寄存器之前切换 GPIO 引脚,然后验证 CANTX 引脚变低需要多长时间。可以在那篇文章中看到它需要 330 nS 到 1 uS 的时间。 

对于接收,可以轮询 RxOK 位并在该位变为 1 时切换 GPIO 引脚。然后需要测量从 EOF 位到 GPIO 切换的时间。 

另外还要保证设备在CAN收发期间没有其他任务或者中断执行,这一点也很重要。

,

Li Cong:

您好,这个链接我这边打不开,提示“Page not Found”,但是测试时间与我测试基本一直,发送时间短,接收时间长。特别是接收数据里面 CAN_readDataReg,这个函数,for循环接收8个bytes,时间竟然高达2.8us。

,

Green Deng:

收到,我再反馈一下。

,

Green Deng:

你好,究竟是什么占用了2.8us是个问题。单独执行“for”循环?

你能在循环之前和之后翻转一个 GPIO 引脚并将波形发送给我吗?

,

Li Cong:

一个问题问了九天了,还在需要我反复去证明这个函数时间是不是很长?我觉得我对问题的描述已经足够清楚了。我一直在说

CAN_readMessage函数执行时间长,函数里面子程序CAN_readDataReg执行时间2.8us。

,

Green Deng:

这里流程就是这样,要是觉得慢或者处理结果不满意的话建议你可以去其他途径咨询。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049: 使用DCAN接收数据,CAN_readMessage函数执行时间很长
分享到: 更多 (0)