假设我在汽车上连接了一个设备,其中包括一个MCU和一个SIM908模块。 SIM908的功能是从卫星接收GPS数据,然后每分钟通过2G / GPRS将其发送到远程服务器以显示在Web上。现在,除了发送GPS位置信息外,我还想发送汽车的速度和方向。我知道可以从GPS坐标中计算出速度和方向,但是我不确定MCU是否可以处理这些计算。

我应该将此任务放在远程服务器上以减少负载MCU(例如节省功率,平稳运行...)还是直接在MCU上处理?您能建议执行此任务的好方法吗?

#1 楼

正如Bence所说,这取决于芯片和所需的精度。

但是我想补充一件事:许多GPS在其NMEA语句之一中输出速度和航向(方向)。如果您的GPS芯片可以执行此操作,则可以直接使用它,而不必进行任何计算,只需使用GPS提供的值即可。

#2 楼

这在很大程度上取决于您拥有的MCU,但我认为市场上的任何微控制器都可以轻松地完成此任务。从坐标计算速度和方向并不重要。我认为解析GPS语句会占用更多的CPU时间。


因此,如果您只是通过GPRS链路隧道传输GPS数据(未经处理),那么将整个NMEA语句合为一体,然后执行在服务器端进行计算。
如果在发送之前在MCU上提取了相关信息,则建议在MCU上也进行速度和方向的计算。我将所有逻辑(解析+计算)放在同一侧。不要在这里和那里有一点,只会使事情变得复杂。

做出决定之前,我会想到一些其他东西:


用电池运行设备,并且电源不足,那么您可以在服务器端进行尽可能多的处理,并且MCU可以休眠更多,并且仅醒来即可查询GPS并发送数据。
我不知道您的SIM908的移动资费是多少,但是如果成本和发送的每kB都很重要,那么请提取并计算MCU的所有内容以减少GPRS链路上的数据流量。


#3 楼

作为一个创建车队管理系统的人,它使用GPS接收器处理设备中的数据,这些设备目前服务于200万个设备,其中包括来自全球数百家制造商的数千种不同类型的此类跟踪器,我只有一个建议-尽您所能在设备端,仅依靠服务器来稳定存储原始遥测消息。您可以从GPS接收器读取速度和航向,但也不要忘记将数量的卫星,hdop和其他参数传送到服务器。您的设备已连接到汽车的电线,因此您无需节省电源,SIM卡流量的价格每年都在下降。因此,只要发送您可以捕获的所有内容,并相信每块数据服务器有时可以做的事超出您的想象。

不要忘记,大多数服务器只是在向数据库写入数据,尤其是在高负载下系统,它们无法从您的设备快速访问(或有时根本无法访问)以前的消息,并且在保存消息之前无法进行任何计算。