首页 理论教育 模块软件的设计优化方案

模块软件的设计优化方案

时间:2023-06-16 理论教育 版权反馈
【摘要】:表10-3GPS 接收机串口通信设置图10-18GPS 数据采集程序流程图3. 三维电子罗盘数据采集程序设计查阅三维电子罗盘DCM300B 产品说明书,罗盘的串口通信设置为波特率9600,8 位数据位,无校验码和1 位停止位。

模块软件的设计优化方案

1. 主程序设计

本系统利用中断的方法获得每个数据的实时时间差,由STM32 微控制器的内部16 位计时器TIM3 实现精确计时。采用C 语言程序设计。设置激光雷达测距信息摄取开始脉冲信号为最高中断优先级,以保证记录每一个图像采集信息。此外,软件还可对各个传感器进行监控,当某个传感器在一定时间内未能正常工作,相应的指示灯即被点亮,提示用户采取相应的措施。从而能够准确了解GPS 接收机、电子罗盘和激光雷达的工作情况。主程序流程图如图10-16 所示。

系统上电工作,首先进行初始化,包括系统时钟初始化、串口初始化、定时器TIM2初始化、定时器TIM3 初始化、外部中断初始化、SD 卡的初始化和各传感器的初始化等。初始化成功后,系统等待GPS 接收机、三维电子罗盘和激光雷达的中断信号。响应中断后,对各传感器数据的接收和有用信息的提取均放在中断服务子程序中进行。PPS 秒脉冲信号到来触发TIM3 开始工作,当三维电子罗盘数据包到达或者激光雷达图像摄取开始信号到来时,读出此时的TIM3 值。这个计数值为三维电子罗盘数据包或者激光雷达图像摄取开始信号接收时间与PPS 秒脉冲信号上升沿时间之间的时间差。当正确接收GPS 接收机的数据包后,从中解析出PPS 秒脉冲信号上升沿对应的UTC 时间,后续的数据处理根据这个UTC 时间和其与各传感器数据接收时间之间的时间差,即可计算三维电子罗盘数据包和激光雷达图像摄取开始信号的UTC 时间。STM32 微控制器正确接收到各传感器的数据包后,对数据进行解析处理,提取有用的信息后,将这些数据信息、GPS 的UTC 时间和各个对应时间差一起存入SD 卡,实现对各传感器数据的采集和时间差数据的获取。主程序的主函数如图10-17 所示。

图10-16 主程序流程图(杨春桃,2014)

图10-17 主程序的主函数

软件设计中,需要注意的是,从PPS 输出到GPS 数据包接收还有一段延迟,这段延时时间里就不能为罗盘和激光雷达测距信息摄取时刻提供相应的最新UTC 时间基准,而仍是上一个秒点的时刻。所以需要在微控制器接收存储数据时,额外增加了一个时间基准更新标志位,作为后期时间校正的依据,这样就能在后续的数据处理中根据标志位替换为对应的准确UTC 时间。(www.xing528.com)

2. GPS 数据采集程序设计

GPS 接收机数据的输出格式遵循美国国家海洋电子协会所指定的标准规格NMEA-0183 协议。上电后,GPS 接收机即向用户自动发送包含多种信息类型的数据包,每种信息类型都是以“$”开头。因此,在GPS 数据接收函数中,可以根据“$”判断是否为数据帧的帧头,根据“∗”判断接收完成标志,而且帧内不同的数据信息都以逗号相隔,可以通过对逗号的计数区分并提取需要的信息。根据实际应用,实验选用GPGGA 语句,GPGGA 语句包括17 个字段,分别用14 个逗号进行分隔。17 个字段包含多种信息,需要在程序中实现世界时间、纬度、纬度半球、经度、经度半球和海拔高度这些感兴趣字段的提取。查阅LEA-5S 模组说明书,GPS 接收机串口通信设置如表10-3 所示,GPS 数据采集程序流程图如图10-18 所示。

表10-3 GPS 接收机串口通信设置

图10-18 GPS 数据采集程序流程图

3. 三维电子罗盘数据采集程序设计

查阅三维电子罗盘DCM300B 产品说明书,罗盘的串口通信设置为波特率9600,8 位数据位,无校验码和1 位停止位。角度输出有两种模式:自动输出式和问答式。这里我们设置罗盘工作在问答模式下,向罗盘发送指令68 04 00 04 08 以获取罗盘输出的三个姿态角信息。DCM300B 输出格式为二进制高性能协议,角度输出协议中,数据为压缩BCD码,需要进行转换再存入SD 卡,三维电子罗盘数据采集程序流程图如图10-19 所示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈