2 硬件设计
本装置在设计上,选择S3C2440作为主控制器构成硬件平台,利用其丰富的外部接口和高速处理能力,达到实时采集数据、及时处理数据、快速传输数据、不附加额外接口设备的目的。由于该装置需要测量的参数多,GPS、电子罗盘统一采用RS 232接口,保证了测量数据精度和接口一致性。供电统一采用+5 V锂电池电源供电。
3 软件设计
本装置采用ARM9作为主控制器,以Windows CE.net操作系统作为系统平台,使用EVC4开发环境作为开发工具,软件采用多线程结构,MFC和API编程技术,实时采集传感器数据,计算修正方位值,达到准确对星的目的。
3.1 总体程序设计
本装置程序采用多线程结构,在主线程(用户接口线程)的基础上,增加两个辅助线程(工作者线程),辅助线程负责处理数据采集,主线程负责界面响应、数据融合、数据显示。线程处理采用API,而不采用MFC编程,增加了程序的通用性。程序中还使用Suspend-Thread挂起线程、ResumeThread恢复线程、Exit-Thread退出线程。
线程同步采用临界区域(也称关键区域,即CRITI-CAL SECTION)措施,首先用CRITICAL_SEC-TION申明一个全局变量,再调用InitializeCriticalSec-tion初始化,使用EnterCriticalSection进入关键区域,使用LeaveCriticalSection离开关键区域,使用Delete-CriticalSection函数删除关键区域。其关键部分代码如下:
3.2 HMR3000程序设计
电子罗盘数据输出格式满足NMEA0183通信协议规范,根据需求选用$PTNTHPR语句,每秒更新30次,基本满足实时测量的要求。$PTNTHPR语句的数据格式为:
$PTNTHPR,<1>,<2>,<3>,<4>,<5>,<6>*hh
各字段含义为:<1>表示方位值,<2>表示方位状态,<3>表示俯仰值,<4>表示俯仰状态,<5>表示横滚值,<6>表示横滚状态,hh表示校验和。采集数据程序在判断各参数状态正常的基础上,从输出语句中提取对应参数值。其线程函数部分代码如下:
3.3 GPS模块程序设计
GPS模块数据输出格式也满足NMEA0183通信协议规范,根据需求选用$GPRMC语句,默认更新速率。$GPRMC语句的数据格式为:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,*hh。
各字段含义为:<1>表示方位值,<2>表示方位状态,<3>表示俯仰值,<4>表示俯仰状态,<5>表示横滚值,<6>表示横滚状态。采集数据程序在判断各参数状态正常的基础上,从输出语句中提取对应参数值。其线程函数部分代码如下:
3.4 对星参数理论值计算
卫星通信中重要的一步就是卫星通信天线准确对准通信卫星。对星需要三个参数:方位、俯仰、极化。下面分别是三个参数的计算公式,其中ψc是卫星波束中心经度,ψs为卫星的经度,ψg是接收地经度,θ为接收地纬度。
卫星通信天线方位角计算公式:
极化角通常位于式(3)和式(4)的计算值之间,为简化计算常采用式(3)作为极化角计算公式使用。经过GPS采集得到接收地经度、纬度,结合卫星经度,采用C语言提供的数学函数可以很简便地计算出天线准确对星需要的三个参数:方位、俯仰、极化。为对星操作提供理论标准值,将对星操作简化为比对理论标准值,调整天线,使实际值与理论值完全一致,从而完成对星任务。
3.5 方位角修正程序设计
电子罗盘测量得到的是天线实际指向值,由于电子罗盘是根据地磁场测量出方位值,此方位值实际是以磁北为标准的方位值,而理论值是以真北为标准的方位值,这样在电子罗盘测量值和理论计算值之间存在一个差值,此差值即为磁偏角。要使电子罗盘测量的方位值代表以真北为标准的方位值,必须在电子罗盘测量的数据基础上进行磁偏角的修正。