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

TMS570LS3137: SCI设置为DMA接收,如果不知道接收帧长度,如何设置接收长度或判断接收帧是否完整?

Part Number:TMS570LS3137

当前SCI通过DMA方式发送已实现发送不同长度数据帧。接收只实接收现定长的数据帧,但是通信协议不可能做成定长的,我们有可能接收不同长度的数据帧,那么在不知道对方发送的数据帧长度的情况下,如何确定通过DMA接收的数据已经是一个完整的数据帧?我查了不少资料,其现方式有定时器检测DMA接收方式,超时则判断其接收完整,这种方式实时性不高;有的芯片有总线空闲中断,可通过中断判断接收数据是否完整,但是在TMS570中没有找到类似的中断。TMS570LS3137是否有实时性比较高的检测方式?

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

zhao zhang:

谢谢,期待你的回复!!

,

Cherry Zhou:

您好,您可以定义发送器和接收器的protocol。 例如发送器发送 "&!" 告诉接收器这些是消息的最后一个字。 接收器需要检查接收到的字符是 "&" 还是 "!"。

,

zhao zhang:

这种方法需要对接收缓冲数据进行定时检测数据状态,与我说的第一种方法效果类似,有时在程序设计中不能及时进行检测,实时性不够好。

我想要类似我提到的第二种中断方式,因为帧与帧之间有空闲间隔,且我不知道将要收到的是哪种数据帧即长度未知,假设芯片有总线空闲中断,那么产生中断就知道收到了完整帧,根据接收长度对接收缓冲进行处理,这种总线空闲中断一般等到总线收到数据后再次空闲才会再次触发,这样我就可以不用知道接收数据帧的长度,并且能够及时处理。TMS570LS3137有类似实现的方法吗?

另外,我从哪个寄存器中知道接收缓冲中收到的数据长度?

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS3137: SCI设置为DMA接收,如果不知道接收帧长度,如何设置接收长度或判断接收帧是否完整?
分享到: 更多 (0)