本次毕业设计采用传感器+高精度A/D模数转换器+高性能微处理器的设计方案。信号调理部分采用精密仪表放大器,从而保证敏感信号的精度;选用高位模数转换器,提高数据采样分辨率;选用高性能微处理器,可以提高姿态解算数据处理速度,便于运行更加复杂的软件算法。软件的处理上兼顾电子罗盘的动态性能,这样一来当需要考虑动态性能的时候,就可以兼顾精度、成本和实时性,而且绝大的软件程序采用C语言编写,程序容易移植,从而使该电子罗盘更容易升级和文护。其方案如图3.3所示。
图3.3 电子罗盘设计方案
4 电子罗盘软件设计
4.1 开发环境
电子罗盘系统在ADS1.2软件下完成开发。ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2是目前主流的ARM平台集成开发环境。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序,具有人机界面友好、编译效率高、系统库功能强等特点。ADS编译器生成的代码密度和执行速度优异,可快速低价地创建ARM结构。
ADS1.2采用了CodeWarrior IDE集成开发环境,并集成了ARM汇编器、ARM的C/C++编译器和ARM链接器。CodeWarrior IDE开发环境窗口如图4.1所示。ADS环境下软件开发步骤依次为:建立工程、建立源文件、添加源文件到工程、编译连接工程及调试工程。
本次软件编程采用C语言编程。C语言具有广泛的库程序支持,目前在嵌入式系统中是应用最广泛的编程语言,在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。
图4.1 CodeWarrior IDE开发环境
4.2 总体设计
电子罗盘系统件设计是嵌入式系统的软件设计。在嵌入式系统的软件设计过程中,常涉及到操作系统的使用与否问题。对设计者来说,可以使用操作系统,将用户软件构建在操作系统平台之上,也可以不使用操作系统,直接构建在驱动程序之上[18]。嵌入式电子罗盘系统是一款实时性和稳定性较高且功能单一的测量系统。嵌入式电子罗盘系统的任务调度需求并不高,程序实现起来不太复杂。考虑到硬件支持,ARM包含向量中断控制器(Vectored Interrupt Controller,VIC),能处理多个中断事件,软件实现起来比较方便。本系统软件设计对操作系统的需求并不高,为了提高软件响应时间和避免片内FLASH和RAM的额外开销,电子罗盘系统没有移植操作系统,而是选择常用的嵌入式前后台系统。软件开发语言使用最基础的高级语言C语言进行编程,它有利于产生快速紧凑的代码,并且在与硬件联系程度上较其它高级语言有优势,在整体上使得编程风格很清晰。本文的软件采用模块化设计,便于编写和管理,也有利于调试和仿真。
电子罗盘系统利用磁阻传感器和加速度传感器来感测载体姿态,然后通过坐标变换把它们变换到水平坐标系并对它们进行误差补偿处理,最后把航向角、俯仰角及滚转角通过串口(RS485)输出。通过对电子罗盘的功能进行分析,结合硬件配置,软件部分需要完成以下几个方面的任务:
(1)系统内核初始化,通过启动代码实现;
(2)AD7714通过SSP总线传输采集的磁阻传感器模块测量值,铁电存储器通过SPI总线传输定标数据;
(3)加速度传感输出的信号器通过定时器得出占空比,得到的加速度信号进行温度补偿和数字滤波;
(4)磁场置位、复位得到磁场强度数据;
(5)对三文姿态角的解算;
(6)磁航向角误差补偿。
(7)通过UART串口与上位机收发数据; LPC2366抗干扰电子指北仪算法研究(6):http://www.751com.cn/zidonghua/lunwen_8578.html