基于ARM的海上浮体航向姿态测量装置设计与实现

时间:2022-10-18 07:09:43

基于ARM的海上浮体航向姿态测量装置设计与实现

? 要:针对海上浮体航向姿态数据测量的实际需求,采用ARM芯片STM32F407VGT6为控制核心,通过HMR3000模块获取航向姿态数据,采用北斗GPS双模定位授时模块UM220-IIIN获取时间信息,利用SD卡存储采集数据,研制了一套海上浮体航向姿态测量装置。阐述了设计思路和软硬件设计思想,给出了原理框图及部分线路图。

关键词:海上浮体 航向姿态 ARM HMR3000

Abstract: With the requirements of measuring seaborne floating body attitude and course,a professional measurement device was developed in this paper. An ARM controller of STM32F407VGT6 was used as the control core. Time information was obtained with Beidou UM220-IIIN,which is a GPS dual-mode positioning timing module. The measured data were stored in a SD card for convenience. Overall design of the device including software and hardware is also stated and the schematic diagram and parts of branching program were displayed in our paper.

Key words: seaborne floating body; attitude and course; ARM; HMR3000

梦乃傅暮I细√遄ㄓ糜诮懈呶O招缘暮I咸厥庾氨秆槭占觳馐匝槿挝瘛J匝槭贝钤囟嘀中秃诺募觳庾氨覆⑶沂匝楣讨形奕酥凳亍S捎谑艿椒纭⒗擞俊⒑A鞯裙餐饔?浮体的航向姿态随时处于变动状态。根据承担的军事测量使命要求,需获取浮体的实时航向姿态数据,用于事后修正测量装备所获取的测量数据。根据试验需求,设计开发了基于ARM的海上浮体航向姿态测量仪。

1 总体组成及软硬件实现途径

1.1 总体组成

基于HMR3000的海上浮体航向姿态测量装置由主控ARM芯片STM32F407VGT6、HMR3000模块、SD卡电路、UM220-IIIN电路和电源电路组成,原理框图如图1所示。

1.2 硬件设计说明

1.2.1 电源电路

电源模块选择LM2576系列降压型开关稳压器,降压开关稳压器LM2576最高输入电压为40 V,该系统采用12 V的蓄电池供电,输入电压符合稳压器要求。电源电路如图2所示[1-2]。

图2中的J1是电源接入插座,D1为IN5406,起到极性保护作用,当输入电压接反时,电路不工作,不会烧坏电路板上的电子元器件,C3、C3构成输入电源滤波电路。图2中的U2是开关电源芯片LM2576-5.0,它将12 V输入电压变换成5.0 V的直流电源VCC输出,HMR3000模块供电。D2、L1、C7、C5构成LM2576-5.0芯片的电路。图2中的U3是开关电源芯片LM2576-3.3,它将12 V输入电压变换成3.3 V的直流稳定电压输出,为ARM芯片和SD卡电路供电。D3、L2、C8、C6构成电源芯片LM2576-3.3的电路。

1.2.2 HMR3000模块接口电路设计

该设计选择美国Honeywell公司生产的数字罗盘模块HMR3000,实现航向姿态数据的采集。数字罗盘HMR3000使用磁阻传感器和两轴倾斜传感器来提供航向姿态信息,其航向的精度为±0.5°,分辨率为±0.1°,俯仰角和滚动角精度为±0.4°,分辨率为±0.1°。模块采用NMEA0813语句传输数据,包括3类标准信息(HDG、HDT和XDR),3类专用语句(HPR、RCD和CCD)[3-5]。HMR3000模块接口电路如图3所示。

图3中STM32F407VGT6的UART1用于和电子罗盘HMR3000通信。图3中的接口端子COM2是DB9接口,用于连接HMR3000,5 V稳压电源通过引脚8输入,HMR3000供电也可以通过引脚9输入6~15 V的非稳定电源。图3中的U4是TTL电平与RS232电平互换芯片。HMR3000有4种工作模式:连续、选通、睡眠和校准。HMR3000可在连续和选通模式下工作。在连续模式下,HMR3000以可组态的速率输出罗盘主动提供的NMEA标准信息,而在选通模式下,则根据用户控制电路的申请输出。

软件编写时,采用HMR3000出厂时的默认设置,即通信波特率为19200bps,1位停止位,8位数据位、无奇偶校验位和1位停止位。通过用户控制申请获取数据。该设计只读取NMEA语句中的$PTNTHPR语句,读取方法是ARM通过UART1接口向HMR3000发送语句$PTNT,HPR, 模块回送$PTNTHPR语句。具体为ARM发送语句的具体内容为:“$PTNT,HPR*78\r\n”,模块回应语句的具体内容为:“$PTNTHPR,85.9,N,-0.9,N,0.8,N*2C\r\n”。回应数据中:85.9为航向角,-0.9为俯仰角,0.8为滚动角。

根据以上分析进行ARM程序编写,首先对UART1进行初始化,初始化子程序片段如下[4]:

程序中的一维数组g_quer_HPRdata[i]在程序的头文件中定义为:

uint8_t g_quer_HPRdata[15]="$PTNT,HPR*78\r\n"。

1.2.3 SD卡接口电路设计

该设计存储电路采用SD卡方式实现,ARM芯片STM32F407具备SDIO(Secure digital input/output interface)接口用于读写8G以下的Micro SD卡。SD卡接口电路如图4所示[1-6]。

图4中的J4为Micro SD卡插座,Micro SD卡的引脚7、8、1、2是数据接口,连接到STM32F407的PC8、PC9、PC10、PC11,Micro SD卡的引脚3是命令/回应接口,连接到STM32F407的PD2,Micro SD卡的引脚5是时钟接口,连接到STM32F407的PC12,Micro SD卡的引脚9是卡检测接口,连接到STM32F407的PC13,用于检测有无SD卡插入。

该设计通过在STM32F407移植R0.09版本的FATFS文件系统,实现对SD卡的读写。FatFs Module是一种完全免费开源的FAT文件系统模块,专门为小型的嵌入式系统而设计,它完全用标准C语言编写,所以具有良好的硬件平立性,可以移植到8051、PIC、AVR、SH、Z80、H8、ARM等系列单片机上而只需做简单的修改。它支持FATl2、FATl6和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写[6]。

该系统直接将以前移植过的FATFS源代码拷贝过来使用,就是将 ff.c文件添加到工程文件夹中,新建diskio.c文件,在diskio.c文件中实现五个函数:

disk_initialize (BYTE);//卡的初始化。

disk_status (BYTE);//获取卡的状态。

disk_read (BYTE,BYTE*,DWORD,BYTE);//从读取数据。

disk_write (BYTE,const BYTE*,DWORD,BYTE);//写数据disk_ioctl (BYTE,BYTE,void*);//获取卡文件信息。

1.2.4 UM220-IIIN模块电路设计

授时模块选用和芯星通的BD2/GPS双系统精密授时产品UM220-IIIN。该模块为高性能SoC芯片,能够同时支持BD2 B1、GPS L1两个频点,其1PPS精度为20 ns。UM220-IIIN模块包括2个可配置的串口,默认波特率为9 600 bps。2个串口波特率均可由用户自行配置,最高可设为230 400 bps。输入/输出信号类型为LVTTL电平。UM220-IIIN模块电路如图5所示。

图5中ANT1为北斗/GPS双模天线接入端,图5中ARM芯片通过UART2和UM220-IIIN通信。授时模块的1PPS输出接入ARM芯片的PD0端。ARM嵌入式程序编写时,如果授时模块没有锁住卫星则使用ARM内部的RTC作为时间信息,如果授时模块锁住了卫星则通过UART2接收中断读取授时模块输出的“$GPGGA”和“$GPRMC”两条NMEA语句,取出日期和时间信息,并以PD0输入的1PPS信号上升沿作为准时刻点,定时200 ms读取和存储一帧数据。

1.3 软件设计思想

该系统的ARM程序采用C语音编写,可读性强,存于ARM芯片STM32F407VGT6内部的FLASH存储器中,软件系统流程如图6所示。

程序初始化结束后,ARM微处理器处于定时读取航向姿态状态,定时200 ms读取一帧航向姿态数据,读取的数据存入SD卡内。SD卡内数据的存储格式为:“编号、时间、航向、俯仰、横滚”的顺序,例如:“8 2016/03/20 11:19:40:20 312.5 0.6 -1.4”表示第8条记录,时间是2016年03月20日11时19分40秒20毫秒,航向312.5°,俯仰0.6°,滚动-1.4°。

2 测量结果分析

测试方法:将航向姿态测量仪放置在倾斜度在0~15°可调节的单轴滑台上,滑台上同时放置一个测量精度为0.1°的Bevel Box数字测角仪作为真值。先测试俯仰角,调节滑台到测角仪显示为0.0°,航向姿态测量仪加电开始测量记录数据,手动从0°~15°~0°慢慢调节滑台倾斜度,其中在数字测角仪显示值为1.0°、3.0°、5.0°、7.0°、9.0°、10.0°、13.0°、15.0°处各停留3 s左右。再测试滚动角,将航向姿态测量仪转动90°再重复以上过程。

表1部分只选取了8组实测数据,第一行,序号26是SD卡的存π蚝牛读取SD卡的存储数据后,序号18~33的俯仰数据都是1.1°~1.5°之间,均值为1.3°,在数字测角仪显示值为1.0°时停留3 s左右,SD卡可记录15条左右,因此,SD卡内序号18~33的数据就是滑台在1.0°时测得的数据。取第26条记录代表1.0°时的测量数据。余下的7条记录也采用相同的方法获得。从表1可以看出,实测数据与测角仪数据之间的误差不大于0.4°,同样,对负方向的俯仰角和正负方向的滚动角进行了对比,实测数据与测角仪数据之间的误差绝对值都不大于0.3°,与HMR3000精度参数中俯仰角和精度为±0.4°符合。

最后测试航向角,航向角测量采用中海达支持BDS(B1/B3)、GPS(L1/L2)双天线输入,四频高端测向板卡BX242所测的航向作为真值,采用10 m长的玻璃钢条作为BX242测向板卡前后天线的基线,则BX242测向板卡的测向精度为:0.2°/L= 0.2°/10=0.02°。测试时,将BX242测向板卡固定在为其供电并引出了RS232调试接口的测试底板上。航向姿态测量仪放置在作为基线的玻璃钢条中心位置,航向与基线平行且指向前天线方向。玻璃钢条平行于地面放置在无遮挡的开阔地上,基线0°~360°可连续转动。将测向板卡引出的RS232调试接口COMA通过USB转RS232连接到笔记本电脑的USB接口,运行中海达提供的WaiView软件,正确设置COM接口后即可实时观测航向数据,手动从0°~360°慢慢旋转天线基线,每隔5.0°停留3 s左右。

由表2可知,8组实测数据与BX242高精度测向板获取的数据之间的误差平均大于2.7°,这与测量模块中航向精度为±0.5°不相符。特别是在码头实际安装到浮体之后,与BX242高精度测向板获取的数据之间的误差平均大于8.2°,这种不相符是由使用环境中存在铁磁材料造成的,这种环境引起的误差是固定值,事后处理时,浮体上测得的航向数据减去8.2°后,实测数据与BX242高精度测向板获取的数据之间的误差绝对值都不大于0.4°,经过处理后与HMR3000参数中航向精度为±0.5°相符。

3 结语

目前,高危险性复杂海况的海上特殊装备验收检测试验任务增多,海上浮体的航向姿态数据获取是亟待解决的问题。基于ARM的海上浮体航向姿态测量仪体积小,能够很方便安装到海上浮体,在试验过程中能够适应无人值守,海上多发的恶劣环境,实时采集海上浮体的航向姿态数据,且经事后误差修正可实现精度为±0.5°的航向姿态数据的测量记录功能,能够满足海上浮体航向姿态数据测量要求。

参考文献

[1]赵晶.Protel 99高级应用[M].北京:人民邮电出版社,2001.

[2]薛明军,张辉,赵敏.LM2575系列开关稳压集成电路及其应用[J].国外电子元器件,2001(1):67-68.

[3]彭建新,段智文,石明,等.HMR3000电子罗盘与DSP的接口设计及编程[J].电子设计工程,2010(3):182-185.

[4]杜春雷.ARM体系结构与编程[M].清华大学出版社,2003.

[5]Michael J.Caruso Applications of Magnetic Sensors for Low Cost Compass Systems[R].Honeywell Inc,2000.

[6]李世奇,董浩斌.基于FatFs文件系统的SD卡存储器设计[J].测控技术,2011(12):79-81.

上一篇:信息化背景下POA在大学英语视听说教学中的教学... 下一篇:喷印工艺的LGA焊点缺陷的类型与原因