嵌入式技术william hill官网
直播中

哔哔哔-

8年用户 1268经验值
擅长:电源/新能源
私信 关注
[问答]

如何对惯导的数据实时解析呢?

通过RTT 系统例子的串口,读取串口数据,按照惯导串口协议解析出方位、俯仰,横滚角度,但是发现每次解析获取的数据比串口吐出来的数据有大概200ms 的延时,不知道怎么消除延时。目前解析实现方案:

采用两个线程,线程1负责串口读出来的数据压入一个循环buffer;线程2,负责读取缓存buffer 数据,并且按照协议解析出数据值。考虑实时性,当前的buffer 最多容纳两个完整的数据信息。但是这种方案就是目前测试,存在延时。。。

回帖(5)

刘桂英

2022-11-8 10:35:23
降低线程时间片。
解析放到接收线程比较好。有完整数据,给其它线程的是完整的操作。
举报

哔哔哔-

2022-11-8 10:35:31
一个线程的话,存在一个问题,由于惯导吐出数据比较快,解析需要一定时间,会导致数据丢包。
举报

刘桂英

2022-11-8 10:35:45
大概多长时间一包完整数据?解析时间需要多长?之前告诉线程2可以解析是收全一个完整包数据告诉一次还是只要收到数据就告诉一次?
这200ms的延时,确定不是很多包给扔了,其实是隔好几个包才来得及处理一个?
举报

哔哔哔-

2022-11-8 10:36:07
降低了线程时间片,是降低哪些时间的时间片? 如果降低当前串口的读取、解析时间片,CPU占有时间更少,且不更加降低了解析效率。
举报

刘桂英

2022-11-8 10:36:13
雨露均沾,假如你给接收线程的时间片够接收10个完整包的,你的缓存只够俩,8个就被冲掉了。
所以上面让你提供几个关键的时间数据,才能系统性优化
举报

更多回帖

发帖
×
20
完善资料,
赚取积分