环境进行各类文件编辑。
(3)对工程文件进行编译。如果有语法错误,将在构建(Build)窗口中
显示出来,可以根据显示的信息定位错误位置更改错误。
(4)调试应用程序。修改成程序的语法错误后,可以对计算结果进行分
析,评估算法性能。CCS提供了探针、图形显示、性能测试等工具来分析数
据、评估性能。
(5)硬件仿真和实时数据交换。 TIDSP提供片上仿真支持,它使得CCS
能够控制程序的执行,实时监视程序运行。增强型JTAG连接是一种可与任意DSP系统相连的低侵扰式的连接,通过它可以向DSP下载代码或数据,
并检查DSP的寄存器或存储器。
4.2 电子磁罗盘的软件模块及流程图
4.2.1 主程序流程图
磁阻电子罗盘的软件主要完成的任务是控制外部硬件,对磁阻传感器的信号进行采集和处理、根据重力加速度信息计算姿态角、计算校正航向角、误差补偿校正、显示航向角等。系统的主程序实际上是一个无限循环,实时完成航向角和姿态角的测量,其具体流程图如图4.1所示。
图4.1主程序流程图
在软件设计的过程中必须要注意的一个问题是系统的实时性,由磁阻传感器获得的磁场信息计算航向角的正确性;另外一个重要问题是误差补偿校正,需要分析系统的误差来源,编写相应算法对其进行补偿,以提高精度。
4.2.2 系统初始化程序设计
在系统工作前首先应根据需要完成各片上硬件资源的初始状态设置,以
确保航向角测量各子程序的功能实现以及系统稳定工作。系统初始化子程序
只要完成一下面的内容。
(l)EMIF初始化
EMIF中存在一组存储器映射寄存器,因而必须初始化这些寄存器来完成对EMIF的控制,包括配置各个空间的存储器类型,设置相应的接口时序等。在本设计中,需要设置的寄存器有CTL、CECTL1、SDCTL等。
(2)定时器和GPIO初始化
定时器的功能主要用于测量加速度计的脉冲信号,对输入端脉冲信号的高电平部分进行计时,定时器初始化主要就是时钟源选择,即设置定时器控制寄存器,本设计选择内部时钟源,使用CPU/时钟4作为内部时钟源。
4.2.3 数据采集子程序
本系统数据采集子程序的任务主要是对由磁阻传感器获得的地球磁场信息进行连续数据采样,此过程由TMS320F2812A自带的ADC完成,由于信噪比较小且易受外界磁场干扰,本系统在信号进入A/D采样之前,硬件上有二阶滤波电路,在A/D采样之后软件上对数据进行滤波处理。A/D转换时,首先由DSP发出启动转换命令,即向寄存器ADCTLR写值,本设计需启动两根命令线使3路通道实现转换(只要用到3路模数转换);当启动信号抬高后,经过一段时间转换完成,此时可以从输出寄存器中读取转换结果。
TMS320F2812A内置模数转换模块特性:
1. 12位模数转换模块ADC,快速转换时间运行在25MHz,ADC采样率为12.5MSPS。
2. 16个模拟输入通道(AIN0-AIN15)
3. 内置双采样保持器
4. 采样幅值:0~3V
ADC模块有16个通道,可配置为两个独立的8通道模块以方便事件管理器A和B服务。两个独立的8通道模块可以级联组成16通道模块。虽然有多个输入通道和两个序列器,但在ADC内部只有一个转换器,同一时刻只有一路AD进行转换数据。模数转换相对于计算机来说是一个较为缓慢的过程,一般采用中断方式启动转换或保存结果。这样在CPU忙于其他工作时间时可以少占用处理时间。设计转换程序应首先考虑处理时间如何与模数转换的时间相匹配。根据实际需要选择适当的触发转换的手段,也要能及时的保存结果。下图4.2是AD程序的流程图: TMS320C2812电子磁罗盘补偿技术研究(12):http://www.youerw.com/wuli/lunwen_2479.html