Page 1

HMR3000 数字罗盘模块
用户指南
2003 年 9 月
( 注: 本册中文资料仅供参考,如有错误请以英文原版资料为准 )
1. 概述
Honeywell的HMR3000数字罗盘模块使用磁阻传感器和两轴倾斜传感器来提供航向信息。带有电子常平架的
罗盘即使即使倾达40°,也能给出精确的航向。HMR3000内部全部使用表面贴装元件,不含有任何的移动元
件,所以非常可靠和坚固。这个低功耗、小体积的装置带有非铁磁性金属外壳,便于安装固定在任何一个平
台上。
HMR3000便于使用,极其多样化。允许用户对罗盘的输出进行组态,包括六种NMEA标准信息的组合,改变
磁场计的测量参数以适应不同应用的需要等。
完善的罗盘自动标定程序将修正平台的磁影响。磁场计的宽动态范围 ( ±1G 或 100µT)允许
HMR3000工作在当地较大的磁场下。
2. 开始了解HMR3000
2.1 辨别产品
HMR3000罗盘模块有三种不同的选型:
(1) 带有RS232或RS485接口的电路板
(2) 带有RS232或RS485接口,带有外壳的罗盘模块
(3) 演示装置(只有RS232接口)
在选型(1)中,接口型式清楚地标在线路板上,在选型(2)中,清楚地标在产品标签上。
选型(3)只有RS232接口。
2.2 安装
Page 2

“”对于演示装置,接口和电源电缆包括在其中(参见 电连接 一节)
对于其它的HMR3000选型,用户自己应按照下表制作带有标准9针母接头电缆。电源只接到第9针或第8针上
。对于多数应用,连接好表 1中所列出的几个管脚就可以了,而第1、4、6和7 针
在HMR3000的工作中执行特定的功能,平时应保持其开路(维持逻辑高电平)
名称 In / Out 针号 说明
TxD/A Out 2 RS232发送 / RS485发送-接收信号
RxD/B In 3 RS232接收 / RS485发送-接收返回
GND In 5 电源和信号的公共地
6 - 15V In 9 未稳压的电源输入
5V In 8 经过稳压的电源输入
HMR3000在平常操作时的管脚定义
注意:在8脚上加的电压不要超过+5.5V,以免对元件造成损坏。
2.3 电连接
HMR3000到计算机RS232口的连接图
未稳压的电源输入
稳压的电源输入
2.4 通讯 - RS232选项
HMR3000与外部的主机通过RS232或RS485的标准,使用简单的ASCII指令字符串进行通讯。主机可通过这
些指令直接操作HMR3000。选择RS232通讯方式,有一个对用户友好的图形接口软件,可用于对罗盘进行直
接操作。
Page 3

RS232选项
连同罗盘模块提供给客户一套PC演示接口软件,客户可以通过RS232口对HMR3000进行组态。这个软件适
用于与IBM PC兼容的计算机,带有MS Windows 3.11, Windows 95或Windows
97。允许HMR3000和PC机之间通讯,对HMR3000 P组态,接收罗盘的输出,记录和获得罗盘的信息。这个
C演示接口软件还可以演示输入/输出的选项,是学习了解HMR3000 .的重要的工具
2.5 得到HMR3000的输出的数据
当电源和接口电缆连接好,软件在PC机中安装好以后,便可以开始从HMR3000获取罗盘数据了。
在PC演示软件的窗口下双击图标,选择相应的COM口和19200 . (波特率 工厂设定为19200).
,,在屏幕上将会出现信息块 表明微程序语言的版本 出现这一信息块表明安装和连接正确。
在PC演示界面下激活 " Tune Parameters " 的菜单,(从parameter 菜单或使用Tune 按钮).
罗盘处于RUN模式下(连续输出), (没有信号传出 所有输出句子的输出速率在出厂时设置为0).
设定HPR句子的输出速率为825(Tune Page \ Serial Output),现在罗盘可以按每分钟825条句子
的速率输出航向、俯仰和横滚数据。
激活 Display \ View 界面,Display \ Monitor NMEA Sentences 界面来看输出。
Diagnostics \ View Log 是另一种检查罗盘数据的选择。注意要使" Log all messages “ 选择被
激活(在Diagnostics \ Options 菜单中的logging ).一页
注:为使 View \ Interface被激活,应选择一个非零的HPR 信息速率。罗盘显示航向和倾斜的
信息需要快速的处理器(Pentium),以便足够快地响应罗盘的输出。速度较慢的计算机会在罗盘输出和显示
间有较长的延时。所有被选择的NMEA信息将在" Display \ Monitor NMEA Sentences "中被更新。
HMR3000的输出可以被改变为包括所有六个NMEA句子或六个句子中的任意部分,每个句子可有自己的速率
。用户可以使用"Capture Mode "来捕获一段信息到某一文件中,( Diagnostics \ Options ) 菜单
用户还可以通过PC演示界面软件修改HMR3000的测量参数。
2.6 HMR3000的组态
下面是一些可以在安装时和经常地访问的基本参数。控制磁场计操作、航向输出和报警阈值等的高级参数将
在”组态参数”(Configuration Parameters section)一节中叙述。
2.7 使用PC演示界面
激活 Tune Parameters 的按钮进行组态. (下表为安装时和经常访问的参数)
功能 参数 / 说明 位于 范围
磁偏角
Declination
磁偏角
磁北和地理北的夹角。在磁航向
General page ± 0 - 180 °
± 0 - 3200 mils
上加上磁偏角得到航向真值
输出信息和速率
Output Message
and Rate
Data Filters
航向输出
Heading Output
偏向角
Deviation
HDG,HDT,XDR,HPR,RCD,
CCD的NMEA句子输出速率(单位是每
分钟句子数目)
TC1和TC2
用于IIR 1 2滤波器 和 的连续的时间常数
L和S
非线性滤波器的平滑系数
偏向角
罗盘的正向方向和平台的正向方向的
Serial Output page 没有或所有
0 - 1200 / min
数据滤波器
0 - 255
1 = 72 ms
0<S<1
L = 整数 >1
L = 0 表示不执行
L < 256
General page ± 0 - 180 °
± 0 - 3200 mils
夹角。在罗盘的指向上加上偏向角得
到平台的指向
Page 4

2.8 通讯 - RS485选项
带有RS485接口的HMR3000 .的操作和组态通过主机的直接命令输入来完成 图2为HMR3000和计算机的连接
图。
HMR3000罗盘模块的RS485接口为半双工,即发射和接收电路使用同一对传输线。HMR3000必须禁止它的
发射器允许接收来自主机的字符。如果罗盘工作在" Run" , ,的模式下 例如产生重复 的输出 那么" Run / Stop
"(6) (“的插脚 第 号插脚 在主机试图发送命令前应强制其为低电平 见 ” )硬件 中断 一节的叙述 。
当在你的运载工具或平台上安装HMR3000时,为获得最佳特性,需遵守下列规则:
位置: HMR3000 .使 尽可能远离任何可能产生磁场的地点和铁磁性的金属物体 HMR3000内部的磁传感器具有
较大的磁场范围( ± 1G 或 ± 100 µT ),而地球最大的磁场为0.65G( 65uT),所以在大
对交流或直流电流产生的变化的磁场进行补偿。
水平:HMR3000 , ,带有电子常平架 所以不需使罗盘完全水平 但是为获得最大的倾斜变化范围,当运载工具或
向转化为运载工具或平台的磁方向或真值方向。
ROP句子,如果磁场状态指示 或 ,则降低磁场计增益。见HPR信息的叙述和磁场计报警和警告阈值的说明。
例子: HPR输出带有磁场报警或警告条件
$PTNTHPR,218.7,N.P.1.5,N,0.8,N ** hh <cr><lf> N表明正常状态
$PTNTHPR,218.7,O.1.5,N,0.8,N ** hh <cr><lf> O表明磁场值高位警告(High warning)
$PTNTHPR,P.1.5,N,0.8,N ** hh <cr><lf> P表明磁场值高位报警(High alarm)
所有的磁罗盘必须标定,来补偿地磁场外的其它磁场,以获得精确的航向。地磁场外的磁场是由主平台产生
的,因此与罗盘的安装位置有关。通过执行一个简单的程序,HMR3000可以补偿
诸如硬铁磁场的静态环境磁场,经标定程序发现的磁场分量对于罗盘的特定的位置和方向是有效的。如果罗
盘改变了安装位置或平台的磁特性发生了变化,罗盘需重新标定,否则会产生航向误差。
罗盘的标定是依照制造厂商规定的标定步骤来完成的。在这一过程中罗盘为补偿算法收集数据。这一标定过
程的目的是对于主平台系统在许多可能的方向下的磁场分量进行采样。将主平台系统旋转360度或使其行驶一
个圆圈(如果主平台是车辆的话),,可使罗盘对它所在的磁场环境进行采样。
RS-232
TD
RD
GD
图 2 RS485 和计算机的连接
2.9 安装
: 方向 罗盘的正向可以和平台的正向成任意夹角。使用偏向角( Deviation ) 参数将罗盘的磁方
2.10
标定
RS-232 to RS-485
B&B Electronics #485TBLE
SD
Control
Echo off
2 RD
3 TD
7 GD
VAC
,多数平台上传感器不会饱和 罗盘内部的标定和补偿程序可以有效地补偿附加在地磁场上的静态磁场,但不能
,平台处于正常工作位置时 罗盘应安装成水平状态。
: HMR3000调节磁场计的增益 用户可以调节 的磁场计增 ,HP益 以便在安装时获得最优的特性,对罗盘组态输出
Shield 1
TD(A) 2
TD(B) 3
RD(A) 4
RD(B) 5
GND 6
+12V 7
+12VDC
RS-485
(B) 2
(A) 3
GND 5
Pwr 9
DB9 socket
connector
RS-485
GND
+12
Page 5

HMR3000的标定既可以使用插入的标定方法(Built-in Calibration Method ),也可以使
用PC演示软件,两者标定的结果是一样的。
插入的标定方法 ( Built-in Calibration Method , 这种方法用于当硬铁磁场较小时)
这一方法使用迭代的过程来计算硬铁偏置.通常情况下275次迭代可以得出满意的结果.标定的过程一直继续直
到达到这一迭代次数.将HMR3000置于标定模式下
(发给命令:#F33.4=0*51<CR><lf> )
缓慢地转动平台两周,在平台允许范围内尽可能多地变化俯仰和横滚角度.通常这一过程需进行2分钟.
通过命令 #I26C?*31<CR><lf> 来检查迭代次数.HMR3000将回答 #nnnn*hh<CR><lf>
信息,其中nnnn为迭代次数. 如果该值小于275,继续进行标定过程直到该值达到275为止。
在这一过程的最后发出指令 ( #F2FE.2=1*67<CR><lf> ) 将结果存于EEPROM中. 将罗盘返回操作模式.
(发给指令: #F33.4=1*50<CR><lf>)
PC演示软件界面的方法 PC Demo Interface Software Method
三维标定 3D Calibration:
当硬铁磁场较大时,建议使用这一方法。PC演示界面将在标定过程中收集磁场矢量信息并进行分析,以找出
硬铁偏置量。
在PC演示软件下,进入Diagnostics ,然后进入 Perform 3D Calibration 菜单.
在Hard Iron一页,激活"Read Data",可看见"Total Valid Readings"(收集的数据点的个数) 在上升。
如果没有,可退出 Calibration一页,转到 Diagnotics \ Options \ Calibration,选择 "Real Time Data from Unit "
缓慢地转动平台两周,在平台允许范围内尽可能多地变化俯仰和横滚角度。通常这一过程需进行2分钟。
在这一过程的最后,点击" Stop" “和 Compute”,一旦计算结束,点击"Apply"将硬铁偏置数据存入罗盘。
如果在标定过程中没有进行足够的倾斜的变化,对于Zoffset的计算可能不可靠。这时Zoffset将显示为红字,并
且相应的检查框内是空的。用户可以检查这个框内的值。
Z轴参考方法 (Z Reference Method):
在某些应用中倾斜主平台是不可能的,通过使用Z轴参考方法可以大致估计出Zoffset的值。这一方法是直接比
较无干扰点的地磁场Z轴分量和主平台的Z轴分量。
这一过程包括两步:
步骤1: 在标定点附近收集Z轴参考值,远离大的钢铁物体。
激活 Diagnostics \ Capture \ Clear Z Reference
点击 Read Data
保持罗盘大致水平,在获得10至20个读数后点击Stop “,再点击 Apply",将新的Z轴参考值存入EEPROM。
步骤2: 将罗盘安装到主平台上,进行普通的三维标定(如前所述). Z轴磁场的偏置值将被计算出来,最接近
的值下面会用一个交叉的符号表示出来。
标定的质量(Goodness of Calibration)
在每次标定结束时,PC演示软件将会计算和报告出一个变化的数字,这个数字越小表明标定的质量越高。如
果这个数字大于40,表明需要重新选择罗盘的安装位置。
3. HMR3000操作详述
3.1 概述
HMR3000由三轴磁阻传感器和一个充有液体的两轴倾斜传感器组成。产生倾斜补偿的航向数据。单片机控制
传感器的测量时序,所有控制HMR3000操作的参数存储在EEPROM中。HMR3000输出句子的格式符合航海
通讯的NMEA 0813标准。HMR3000有四种操作模式:
Page 6

连续模式(Continuous Mode): 在可组态的速率下输出罗盘主动提供的NMEA标准信息。
选通模式 Strobe Mode: 主动选通模式 — 连续测量,根据申请输出
被动选通模式 — 测量和输出都根据申请进行。
休眠模式 Sleep Mode(需在接插件处提供一个中断信号): 测量和输出都被悬置,串行输入被忽略。
标定模式 Calibration Mode: 使罗盘进入用户硬铁标定模式。
3.2 HMR3000电路模块图
3.3 HMR3000处理过程框图(流程控制框图和用户可编程的参数)
在框图下方的斜体字为用户可编程的参数,用来控制测量和航向标定过程。
Page 7

3.4 测量时序
在通常的工作状态下,微处理器进行七次测量,四次倾斜和三次磁场,然后产生出航向, 横滚和俯仰数据。
测量磁场的速率可选为110、55、27.5或13.75Hz,倾斜传感器以固定的55Hz的脉冲驱动.原始航向的数据经过
规格化,线性化和以13.75Hz的频率滤波,规格化包括增益的匹配,偏置的调零和对三个磁场测量值进行硬铁补偿
,以及对倾斜的增益和偏置的补偿。倾斜测量进行线性化处理是因为倾斜计中存在非线性的特性。所有五个
测量结果,倾斜X,倾斜Y,磁场X,磁场Y,磁场Z,都通过一个或两个IIR滤波器进行低通滤波.12使用 个或 个IIR滤波
器是由对TC1和TC2的设定决定的,0通过将时间常数设置为 ,可以关闭任意一个或两个滤波器。
磁场计的工作包括了一个置位/复位脉冲,来达到高灵敏度的磁场的测量。在与电桥处于同一IC上的电流带上
加以3A的电流脉冲,来对磁阻元件周期性地置位和复位。置位复位的周期可以改变,以达到更高的航向精度
或降低功耗。
罗盘的指向是由5个经过滤波的测量结果以每秒13.75次的频率计算出来的。一个非线性平滑的格式可以加在
当前的航向读数上,以产生平滑的航向。算法的传递函数为在航向的微小变化上加以高度的平滑处理,例如
噪声信号;而对较大的和较明显的变化不加以平滑处理。
对于某一给定的应用可能不需要同时使用IIR滤波器和非线性平滑处理。如果罗盘装在不可能快速改变方向的
船只上,最好使用IIR滤波而不使用平滑处理。反之,对于一些手持的应用或存在噪声的难题时,使用平滑处
理功能是一种很好的方法。
3.5 接口引脚定义
下表为9针接插件各针的定义。通过不同的针可提供经过稳压的5V直流电压或未经过稳压的6至15V直流电压
(。两个供电电压针脚只可连接一个。 下图为接口信号描述)
名称 In / Out 针号 解释
TxD / A Out 2 RS-232发射 / RS-485发射-接收信号
RxD / B In 3 RS-232接收 / RS-485发射-接收返回
GND In 5 电源和信号地
6 - 15V In 9 未稳压的电源输入
5V In 8 稳压的电源输入
Oper / Calib * In 1 工作 / 标定 - 1 输入 (开路 = 工作)
Run / Stop * In 6 运行 / 停止 - 输入 (开路 = 运行)
Ready / Sleep * In 4 准备 / 休息 - 输入 (开路 = 准备)
Cont / Reset * In 7 连续 / 复位 - 输入 (开路 = 连续)
“信号后面跟着 - ”表明该信号要求低电平。在这里,第1针为低电平,则表示选择了标定功能。
3.6 通讯
HMR3000的串行通讯是根据NMEA 0183标准制定的简单的、异步的ASCII协议。可以使用RS232或RS485
接口电路。ASCII码的传输和接收使用1位停止位、8(位数据位(低位在先)、无奇偶校验位 MSB永远为0)和1
位停止位。每一个码有10位。波特率可选择1200,2400,4800,9600或19200
HMR3000支持NMEA 0183和 专用的信息。在测量模式中由HMR3000按照EEPROM 中的编程的速率主动
发送NMEA信息。HMR3000还对从主机来的所有信息进行响应。HMR3000对于输入指令的响应可能会因其
正在发送信息而受到拖延。主机在发送另一条命令前,要等待HMR3000对上一条指令做出响应。
3.7 输出
有六种可能的NMEA信息,三种标准的和三种专用的,以连续的模式从HMR3000自动发送出来(通过选择更
新速率 Updated Rates)。另外,还有第七种不一致的ASCII显示信息可被发送。ASCII显示信息不 希望
和其它六种NMEA信息混在一起。对于一个较为简单的系统,HMR3000可连接到一个数据读出装置可取代主
计算机。
HMR3000 “发出和收到的每一条指令包含一个两字符的 检查总数(Checksum)”的部分,在数据部分结束以后,
“*” “以 划分界限。在下面的句子里以 hh”表示。检查总数的作用是保证发送数据的准确性。它是根据NMEA018
3标准计算出来的,在3.11节将做进一步介绍。
每一种信息的更新速率可被设置为下面的任意一种:0,1,2,3,6,12,20,30,60,120,180,300,413,600,825或1200句
每分钟。如果输出通道由于其编程的波特率不能容纳所选择句子的总数,那么通道应以全速和最高的优先级
Page 8

来给输入一个响应,然后再将句子的更新速率由最低调到最高。优先级别的设计将履行公平的原则,以保证
在更高级别的句子被重复发送之前每一个准备输出的句子至少发送一次。
3.8 输入
对于HMR3000有两类输入:对于输出句子的请求,或设定一个组态参数。对于所有有效的输入,HMR3000
都送出一个响应,带有正确的检查总数的值。
1,对于请求输出句子的响应是一条相应的句子。
2,对于设定参数的输入的响应为 # ! 2000*21,表明指令和参数都被接收。
3.9 询问NMEA句子
可按如下询问三条标准的NMEA句子(HDG,HDT和HDR)和三条专用的信息(HPR,RCD和CCD)。
接收的三条标准的询问信息是:
$TNHCQ,HDG*27<cr><lf>
$TNHCQ,HDT*34<cr><lf>
$TNHCQ,XDR*22<cr><lf>
接受的三条专用的询问信息是:
$PTNT,HPR,78<cr><lf>
$PTNT,RCD,67<cr><lf>
$PTNT,CCD,76<cr><lf>
3.10 NMEA输出句子的格式
HDG Heading, Deviation, & Variation
航向,偏向角和磁偏角
$HCHDG, x.x,x.x,a,x.x,a*hh<cr><lf>
Deviation ( 偏向角 )是罗盘正方向和平台的正方向的夹角
Variation (磁偏角)是磁北与地理北之间的夹角
如果偏向角( Deviation )或磁偏角 ( Variation )未被编入,相应的位置将为空白(根据NMEA 0183 版本2.1,
第5.2.2.3节).如果参数的绝对值大于3200mils,或180度,将不被编入.偏向角和磁偏角如果为正, 指示为
a=E;如果为负,指示为 a = W。 如果航向不能被计算出来,相应的位置将为空白(参见HPR专用的句子)
NMEA要求航向测量的单位为度。
例:以角度的模式
$HCHDG,85.8,0.0,E,0.0,E*77
$HCHDG,271.2,0.0,E,0.0,E*44
$HCHDG,271.1,10.7,E,12.2,W*52
$HCHDG,0.0,10.7,E,12.2,W*57
在NMEA标准中不允许使用Mil模式。
HDT Heading, True
航向真值
$HCHDT, x.x,T*hh<cr><lf>
如果磁偏角(Variation)未被编入,或者航向不能被计算出来,则航向的部分将为空白(见HDG和定义).如果偏向角(
Deviation)未被编入,则假设其为零,否则将被加入到航向和磁偏角的测量中来,表示罗盘指示的真值
例:以角度的模式
$HCHDT,86.2,T*15
$HCHDT,271.1,T*2C
$HCHDT,0.9,T*20
在NMEA标准中不允许使用Mil模式。
XDR Transducer Measurements
传感器的测量
Page 9

$HCXDR,A,x.x,D,PITCH,A,x.x,D,ROLL,G,x.x,,MAGX,G,x.x,,MAGY,G,x.x,,MAGZ,G,x.x,,MAGT*hh<cr><lf>
六个可能的测量(俯仰,横滚,磁场X,Y,Z和总的值)的任意一个可被单独的包括在这段信息之内,或被排除
“在这段信息之外(见 XDR has”参数)。参见NMEA 0183 “对 Type-Data-Units-ID ” (形式-数据-单位-ID)编
“” “”码的详细叙述。如果因测量饱和, 数据 部分的内容不能计算出来,相应的 数据 部分将为空白。对于俯仰和
横滚测量,根据NMEA的规定,使用的唯一单位是度。
磁场的测量将由一个可调整的转换系数来转换为工程单位(毫高斯)。MAGX与罗盘线路板的南北轴方向一
致,MAGZ垂直于罗盘线路板平面。MAGT为整个的磁场强度,是通过计算MAGX,MAGY,MAGZ的平方和
再求平方根而得出来的。
例: 以角度的模式
$HCXDR,A,-0.8,D,PITCH,A,0.8,D,ROLL,G,122,,MAGX,G,1838,,MAGY,G,-667,,MAGZ,G,1959,,MAGT*11
以Mil的模式
$HCXDR,A,-3,D,PITCH,A,14,D,ROLL,G,1090,,MAGX,G,5823,,MAGY,G,-20,,MAGZ,G,5924,,MAGT*2B
下面将叙述专用的句子:
HPR Heading, Pitch, & Roll
航向,俯仰和横滚
$PTNTHPR,x.x,a,x.x,a,x.x,a*hh<cr><lf>
这个句子把HMR3000的三个重要的测量结果和有用的状态信息结合在一起,数据依次代表:航向,磁场状态
,俯仰,俯仰状态,横滚,横滚状态。航向、俯仰和横滚的单位可以是度或mils,由在EEPROM中的设定来决
定。如果偏向角和磁偏角写入EEPROM中,航向的测量将会被修正。
例: 以角度的模式
$PTNTHPR,85.9,N,-0.9,N,0.8,N*2C
$PTNTHPR,7.4,N,4.2,N,2.0,N*33
$PTNTHPR,354.9,N,5.2,N,0.2,N*3A
以Mil的模式
$PTNTHPR,90,N,29,N,15,N*1C
状态信息的部分包括六个字母的指示:
L = low alarm, (低级报警)
M = low warning, (低级警告)
N = normal, (正常)
O = high warning (高级警告)
P = high alarm, (高级报警)
C = tuning analog circuit (调节模拟电路)
如果这三个状态指示中的任一个报警,航向部分将为空白,相应的磁场部分也如此。报警和警告的阈值可在
EEPROM中更改。
RCD Raw Compass Data
原始罗盘数据
$PTNTRCD,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x*hh<cr><lf>
这个句子提供了原始的倾斜和磁场测量数据,以供诊断使用。每一部分内容均代表 A/D的读数,按顺序为:
TiltAp, TiltAm, TiltBp, TiltBm, MagA, MagB, MagC, MagAsr, MagBsr, MagCsr。所有数据均代表最近一次
A/D转换的实际读数,除了倾斜的读数是经过调节的(如果在转换时使用的是低增益 .Mag_sr) 值代表每个传
感器最近的置位-复位脉冲测量的标定的总和。在这一句子中不会出现空白的位置。
例: 以角度的模式
$PTNTRCD,1509,1551,1548,1553,15199,16146,17772,17055,16176,17059*42
以Mil的模式
$PTNTRCD,1435,1512,1497,1453,16776,14066,9477,17403,16073,17225*7F
CCD Conditioned Compass Data
经过调整的罗盘数据
$PTNTCCD,x.x,x.x,x.x,x.x,x.x,x.x,x.x*hh<cr><lf>
这个句子提供了经过调节的倾斜和磁场测量数据供诊断使用,按顺序为:
TiltX 罗盘线路板南-北轴与水平面的夹角的正切值乘以32768。这一数值是规格化、线性化和根据参数设
Page 10

置进行滤波的原始倾斜测量的差值。俯仰角通过计算arctan ( TiltX / 32768 ) 而得出。
TiltY 与TiltX相同,但指的是罗盘线路板的东-西轴(横滚)。
MagX 沿罗盘线路板南-北轴的经过规格化和滤波的磁场强度。这一数值已经经过在标定时确定的硬铁偏置
的调整. (或人工调节)。
MagY 与MagX相同,但是沿罗盘线路板东-西轴。
MagZ 与MagX和MagY相同,但是沿与线路板平面垂直的轴线。这一数值已经经过与X-
Y传感器对的增益变化的调整和对硬铁偏置的调整。
MagT 总体的磁场强度。
Heading 根据磁场计和倾斜计的数据计算出来的航向。根据EEPROM中的设置以度或mils的单位表示。
如果航向不能计算出来则这一部分为空白。
例: 以角度的模式
$PTNTCCD,522,-472,109,1841,677,1964,86.3*44
以Mil的模式
$PTNTCCD,-2518,351,-3909,1899,-4394,6180,1838*58
ASCII信息:专门的ASCII显示信息通常由4位数字组成,代表航向的角度值,显示到小数点后一位。紧跟着
一个回车符。如果磁偏角和变化量被编入EEPROM中,输出的航向是经过修正的。当由于磁场计或倾斜信号
超出测量范围,不能传送出航向信号时,显示的4“位均以 -” 表示。
例: 以角度的模式
86.1
3.11 检查总数部分 ( Checksum Field )
“这一绝对数值的计算是把在 $” “和 *” “之间的,但不含 $” “和 *”,信息的每个字符的8位(ASCII码)(不包括起
始位和停止位)进行异或操作。结果的最有效的一位和剩下的最有效的四位十六进制数字被转化为两个ASCII
字符(0 - 9,A - F )进行发送。最有效的一位字符发送在先。
3.12 警告(Warning)和报警(Alarm)的设定
倾斜传感器和磁场计的极限数值可被存入EEPROM,在HPR句子中状态信息的部分表示出警告(Warning)和
报警(Alarm)。
倾斜的设定 当测量的倾斜值低于警告(Warning) “线时,状态信息的部分表示为 N”
例如:$PTNTHPR,59.6,N,-0.2,N,-3.0,N*0F
倾斜的高位警告和高位报警可由用户编程设定
当测量的横滚值或俯仰值介于警告值和报警值之间时,HPR “句子中状态信息的部分表示为 O”
例如:$PTNTHPR,72.9,N,-1.6,N,-29.6,O*33
当测量的横滚值或俯仰值超过了报警线时,HPR “句子中状态信息的部分表示为 P”,同时航向数据的部分将为空
白。例如:$PTNTHPR,,N,-1.5,N,,P*03
磁场计的设定 磁场计的警告和报警限可设置四级:高位警告,高位报警,低位警告和低位报警。测量的总
磁场强度(MagT)可据此划分为五个区域,这四级界限存入EEPROM中.下图为测量总磁场与四级状态的关系。
界限 磁场状态部分 航向值部分
Low Warn < Mag T< High Warn N 正常
High Warn < Mag T < High Alarm O 正常
High Alarm <Mag T P 空白
Low Alarm < Mag T < Low Warn M 正常
Mag T < Low Alarm L 空白
例如:磁场计处于高位报警的状态 $PTNTHPR,,P,0.3,N,0.1,N*06
Page 11

4.0 组态参数
这一节将介绍使用HMR3000组态软件来设定组态参数。
4.1 可操作的指令
使用前面叙述的串口协议,外部的主机可用下面的指令直接操作HMR3000: (HMR3000基本可操作的参数)
指令 说明 指令句法 动作
工作(RUN) 1 = RUN #FA0.3=1*26<CR><lf> 罗盘启动
停止(STOP) 0 = STOP (选通模式) #FA0.3=0*27<CR><lf> 罗盘停止
询问
( Query )
响应
( Response )
STOP #0*30<CR><lf>
强迫复位 执行上电复位程序 #F33.6=1*52<CR><lf>
滤波器初始化 IIR滤波器复位(在TC1改变后设置) #F33.2=1*56
4.2 一般的组态参数
这一部分的参数影响到罗盘的一般操作。()一般组态参数
参数名称 说明 指令句法
角度 设定航向、俯仰和横滚的单位: #FA0.4=1*21<CR><lf>
1 = 角度(0.0到359.9)
Mils 0 = mils(0到6399) #FA0.4=0*20<CR><lf>
角度 = mils * 9 / 160
询问
响应
Mils #0*30<CR><lf>
十进制 为数据I/O口设定: #FA0.5=1*20<CR><lf>
1 = 十进制
十六进制 0 = 十六进制 #FA0.5=0*21<CR><lf>
询问
响应
十六进制 #0*30<CR><lf>
偏向角 设定偏向角的值为nnn.n ( 角度 ) #IE2=nnn.n*hh<CR><lf>
"hh"是检查总数的值
询问
响应
磁偏角 设定磁偏角的值为nnn.n ( 角度 ) #IE4=nnn.n*hh<CR><lf>
"hh"是检查总数的值
询问
响应
4.3 测量参数
次磁场,并取平均值。在选通模式下,在收到NMEA的询求指令前,测量处于悬置状态。当收到这一询求指
“” “”令后, 磁场采样速率 决定每进行一次倾斜测量,需进行多少次磁场测量, 选通模式计数 决定在返回结果查
指令后,花费18.6秒才能开始发出输出句子。
“”磁场单位系数 (Mag units factor)的设定是用于将磁场计的规格化读数转化为毫高斯作单位,在XDR 和
CCD信息输出时使用。目的在于使输出带有合适的磁场强度的单位,磁场的数字有意义。
询问RUN / STOP的状态 #FA0.3?*15<CR><lf> 以状态表示回答
RUN #1*31<CR><lf>
#FA0.4?*12<CR><lf>
角度 #1*31<CR><lf>
#FA0.5?*13<CR><lf>
十进制 #1*31<CR><lf>
偏向角 #IE2?*01<CR><lf>
#nnn.n*hh<CR><lf>
磁偏角 #IE4?*07<CR><lf>
#nnn.n*hh<CR><lf>
“”这一节的参数影响到罗盘的测量功能。 磁场采样速率 (Mag. sample rate )是一项关键的设定,影响到连续
“”模式或选通模式测量。在连续模式下,根据 磁场采样速率 的设定,测量一次倾斜,测量1,或2,或4,或8
“”询句子前需要取平均值的读数的个数。 选通模式计数 为零表明256个读数取平均值,这将在收到NMEA询求
Page 12

下表为测量参数:
名称 说明 指令句法
磁场采样速率 磁场计采样速率
Mag sample rate 13.75, 27.5, 55, 110Hz
询问
响应
选通模式计数 在选通模式下取平均的读数的个数
Strobe Mode Count
询问
响应
置位 / 复位 Set/Reset ON (以13.75Hz置位复位) #FA0.6=1*23<CR><lf>
Set / Reset Set/Reset OFF #FA0.6=0*23<CR><lf>
询问
响应
OFF #0*30<CR><lf>
置位 / 复位间隔 两次置位 / 复位标定的间隔时间 #BA9=ddd*hh<CR><lf>
Set / Reset interval 单位为秒 ddd=置位复位的间隔,单位为秒
(ddd) 0 = 无效, 255 = 4分钟15秒。
询问
响应
磁场单位系数 将规格化的磁场读数转化为以毫高斯
Mag units factor 为单位
询问
响应
X轴磁场偏置 沿南-北轴的硬铁偏置 #IC4=nnnn*hh<CR><lf>
MagX offset
( nnnn )
询问
响应
Y轴磁场偏置 沿东-西轴的硬铁偏置 #IC6=nnnn*hh<CR><lf>
MagY offset
( nnnn )
询问
响应
Z轴磁场偏置 沿垂直轴的硬铁偏置 #IC8=nnnn*hh<CR><lf>
MagZ offset
( nnnn )
询问 #IC8?*0D<CR><lf>
响应 N = 硬铁偏置 #N*hh<CR><lf>
磁场高位报警 超过报警上限 #WB6=nnnn*hh<CR><lf>
Mag high alarm
询问 #WB6?*12<CR><lf>
响应 #nnnnn*hh<CR><lf>
磁场高位警告 超过警告上限 #WB8=nnnn*hh<CR><lf>
Mag high warn
询问 #WB8?*12<CR><lf>
响应 #nnnnn*hh<CR><lf>
磁场低位警告 低于警告下限 #WBA=nnnn*hh<CR><lf>
Mag low warn
询问 #WBA?*6B<CR><lf>
响应 #nnnnn*hh<CR><lf>
磁场低位报警 低于报警下限 #WBC=nnnn*hh<CR><lf>
Mag low alarm
询问 #WBC?*69<CR><lf>
响应 #nnnnn*hh<CR><lf>
俯仰 / 横滚报警 超过俯仰和横滚的报警上限 #WE6=nn.n*hh<CR><lf>
Pitch / roll alarm 单位为度
(nn.n)
询问 #WE6?*1B<CR><lf>
响应 俯仰/横滚报警门限 #nn.n*hh<CR><lf>
俯仰 / 横滚警告 超过俯仰和横滚的警告上限 #WE8=nn.n*hh<CR><lf>
Pitch / roll warn 单位为度
(nn.n)
询问 #WE8?*15<CR><lf>
响应 #nn.n*hh<CR><lf>
m=1 ~ 13.75Hz; m=2 ~ 27.5Hz
m=4 ~ 55Hz; m=8 ~ 110Hz
N = 取平均值的读数的个数
#FA0.6?*10<CR><lf>
ON #1*31<CR><lf>
(该参数只能在置位复位关掉时申请)
T = 置位复位的间隔时间,单位为秒 #T*hh<CR><lf>
#WB4?*1E<CR><lf>
#IC4?*01<CR><lf>
N = 硬铁偏置 #N*hh<CR><lf>
#IC6?*03<CR><lf>
N = 硬铁偏置 #N*hh<CR><lf>
#BA6=1*39<CR><lf> (13.75Hz)
#BA6=2*3A<CR><lf> (27.5Hz)
#BA6=4*3C<CR><lf> (55Hz)
#BA6=8*30<CR><lf> (110Hz)
#BA6?*0A<CR><lf>
#m*hh<CR><lf>
#BA7=nn*hh<CR><lf>
#BA7?*0B<CR><lf>
#N*hh<CR><lf>
#BA9?*05<CR><lf>
Page 13

名称
TC1时间常数 对IIR滤波器1的规格化的时间常数 #BA2=T*hh<CR><lf>
TC1 time constant T=0(不允许),T=1(72ms)
(T) T=255(18.4s)
询问 #BA2?*0E<CR><lf>
响应 #T*hh<CR><lf>
S平滑系数 平滑的总和(见文中算法) #WB2=m*hh<CR><lf>
S smoothing factor 0 = 不允许, 最大 = 0.999985
(S) m=S*65535
询问 #WB2?*18<CR><lf>
响应 #m*hh<CR><lf>
L平滑系数 Difference knee 单位为mils #BB1=L*hh<CR><lf>
L smoothing factor (见文中算法)
(L) 0 = 不允许,1 = 1mil,
max = 6399mils
询问 #BB1?*0E<CR><lf>
响应 L平滑系数 #L*hh<CR><lf>
说明
指令句法
4.4 串行 I / O
这一节的参数影响到罗盘的串行输出功能. 下表为串行 I / O 参数表
名称 说明 指令句法
波特率 串行 I / O 波特率: 序号值(1)
1200:(2) #BA4H=2T*24<CR><lf>
2400:(4) #BA4H=4T*22<CR><lf>
4800:(8) #BA4H=8T*2E<CR><lf>
9600:(16) #BA4H=16T*11<CR><lf>
19200:(32) #BA4H=32T*17<CR><lf>
查询
响应
HDG更新速率 每分钟HPR信息句子(R)的更新速率 #BAA=I*hh<CR><lf>
(R) R值用整数编号表示(见下表)
查询
响应
HDT更新速率 与前面相同,针对HDT句子 #BAB=I*hh<CR><lf>
(R)
查询
响应
XDR更新速率 与前面相同,针对XDR句子 #BAC=I*hh<CR><lf>
查询
响应
HPR更新速率 与前面相同,针对HPR句子 #BAD=I*hh<CR><lf>
查询
响应
RCD更新速率 与前面相同,针对RCD句子 #BAE=I*hh<CR><lf>
查询
响应
CCD更新速率 与前面相同,针对CCD句子 #BAF=I*hh<CR><lf>
查询
响应
ASCII更新速率 与前面ASCII显示句子相同 #BB0=I*hh<CR><lf>
查询
响应
XDR has Pitch 在XDR句子中包括或不包括俯仰
不包括 #FA1.0=0*25<CR><lf>
包括 #FA1.0=1*24<CR><lf>
查询
响应
XDR has Roll 在XDR句子中包括或不包括横滚
不包括 #FA1.1=0*24<CR><lf>
包括 #FA1.1=1*25<CR><lf>
查询
响应
设定新的波特率后面应紧跟强制复位
的命令,可立即或在上电后激活
#BAA?*7D<CR><lf>
返回序号值I,作为HDG的更新速率 #I*hh<CR><lf>
#BAB?*7E<CR><lf>
返回序号值I,作为HDT的更新速率 #I*hh<CR><lf>
#BAC?*7F<CR><lf>
返回序号值I,作为XDR的更新速率 #I*hh<CR><lf>
#BAD?*78<CR><lf>
返回序号值I,作为HPR的更新速率 #I*hh<CR><lf>
#BAE?*79<CR><lf>
返回序号值I,作为RCD的更新速率 #I*hh<CR><lf>
#BAF?*7A<CR><lf>
返回序号值I,作为CCD的更新速率 #I*hh<CR><lf>
#BB0?*0F<CR><lf>
返回序号值I,作为CCD的更新速率 #I*hh<CR><lf>
#FA1.0?*17<CR><lf>
m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
#FA1.0?*17<CR><lf>
m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
返回波特率的序号值 #I*hh<CR><lf>
#BA4H?*40<CR><lf>
Page 14

名称
XDR has MagX 在XDR句子中包括或不包括X轴磁场
不包括 #FA1.2=0*27<CR><lf>
包括 #FA1.2=1*26<CR><lf>
查询 #FA1.2?15<CR><lf>
响应 m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
XDR has MagY 在XDR句子中包括或不包括Y轴磁场
不包括 #FA1.3=0*26<CR><lf>
包括 #FA1.3=1*27<CR><lf>
查询 #FA1.3?*14<CR><lf>
响应 m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
XDR has MagZ 在XDR句子中包括或不包括Z轴磁场
不包括 #FA1.4=0*21<CR><lf>
包括 #FA1.4=1*20<CR><lf>
查询 #FA1.4?*13<CR><lf>
响应 m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
XDR has MagT 在XDR句子中包括MAGT(总体磁场)
不包括 #FA1.5=0*20<CR><lf>
包括 #FA1.5=1*21<CR><lf>
查询 #FA1.5?*12<CR><lf>
响应 m=1 ( 包括 ), m=0 ( 不包括 ) #m*hh<CR><lf>
说明
指令句法
在当前的组态软件中,当波特率改变时,新的波特率只有当执行了" Force Reset"的指令后才会起作用,或当
整套装置断电后再上电,新的波特率才被执行。当任一个输出句子的速率被改变时,当前的间隔会在新速率
执行前结束。
更新速率单位为每分钟句子的个数:
序号 速率 序号 速率 序号 速率 序号 速率
0 0 4 6 8 60 12 413
1 1 5 12 9 120 13 600
2 2 6 20 10 180 14 825
3 3 7 30 11 300 15 1200
5.1
硬件中断管脚的说明
关于连续 / 复位 Cont / Reset,操作 / 标定 Operate / Calibrate , 准备 / 休眠 Ready / Sleep,运行 / 停止
Run / Stop几个开关的功能介绍.
开关输入的优先次序如下:(最优先的在第一个)
1. 无条件地设定"Cont/Reset"为低电平,保持单片机在其复位状态下。除非开关返回"Continue"
的位置,否则任何其它功能不能被执行。
2. 设定 "Oper/Calib"为低电平(处于标定的状态下),"Run/Stop"和"Ready/Sleep"开关在此模式下被忽
略。当开关设定在Operate 的位置,罗盘可以 “根据 选择模式Select Mode ”指令位的状态工作在任意一种模式
“”下。这一指令位的修改可通过串口来完成。 选择模式 指令在上电时被初始化为操作状态。
3. “设定 Ready/Sleep”为低电平,当罗盘不处于标定模式下时使其工作在低功耗状态下,这时测量和
输出悬置,串行输入被忽略。在主机可以发出一个串行指令前这一开关必须返回到"Ready"的位置。当瞬态地
放置在 " Ready" 的位置上时,罗盘内的单片机会运行一个完整的测量和输出周期(在运行模式下),然后悬
置操作。可以允许在硬件中使用机械开关扳到这一输入位置。
4. 设定"Run/Stop"为低电平将使任何正在进行的输出在一个字符时间内停止,并阻止以后的输出。当
“”开关处于 运行 位置下时,内部的运行/停止指令位的状态控制着主动提供的输出。内部的运行/停止指令位的
初始化存于EEPROM中。
6.0
非线性航向滤波器的算法
假设 CH = 当前航向
SH = 经平滑处理的输出
L = 调谐参数设置 ( 整数 > 0, 0 = 无效)
S = 调谐参数设置 ( 0< 小数 < 1, 0 = 无效,最大值 = 0.999985 )
Page 15

计算 D = SH - CH (差值 )
G = S + S*(D/L )**2 ( 当D/L变大时,G趋于饱和,S ≤ G ≤ 1 )
SH = SH + D*G (注:SH=CH时,G=1 )
这些计算是以13.75Hz的频率进行迭代的。
7.0 初步的特性指标
航向 (1 mil = 0.056°)
精度 ± 0.5°
± 1.5°
重复性 ± 0.3°
分辨率 0.1°
磁倾角 ± 80°
单位 角度 / mils 用户自选
横滚和俯仰
范围 ± 40°
精度 ± 0.3°
重复性 ± 0.2°
分辨率 ± 0.1°
响应时间 0.1s
单位 角度 / mils 用户自选
磁场
动态范围 ± 1.0Gauss max. ±0.5Gauss范围
分辨率 1mGauss
电气参数
供电电压 5.0VDC 经过稳压
6 - 15VDC 未经稳压 最高到24VDC
功率 35mA @ 5 VDC 最大值
接口
串口 RS232或RS485
1200到38400Bit/s
8位数据,无奇偶校验,1位停止位
NMEA 0183
100 char I/O Buffers
更新模式 连续 1/min ~ 20Hz
滤波 可选的平均值
环境
工作温度 -20 ~ 70℃
储存温度 -35 ~ 125℃
冲击 MIL-STD-810
参数 数值 说明
磁倾角<50°,倾斜角<20°
磁倾角<75°,倾斜角<20°