文档库 最新最全的文档下载
当前位置:文档库 › CAN协议系列 PM-TSⅠⅡ-CAN 产品手册

CAN协议系列 PM-TSⅠⅡ-CAN 产品手册

二维电子罗盘使用说明书

1产品简介

此产品是一款二维电子罗盘,可测量方位角(heading) 0°~360°,采用我司专利技术的硬磁和软磁校准算法,使罗盘在有磁场干扰的环境中也能通过平面旋转一圈校准方法达得最佳效果。由于是平面罗盘,此款产品应用于平面工作环境性能卓越,如在倾斜角度大于±5°的环境中方位角数据会出现偏差。此产品体积小、功耗低、实用性强、应用场合多元化,可接受客户任何要求定制。

1.1性能指标

罗盘航向参数航向精度±1°

方位角

范围0°~360°精度1°

分辨率0.1°

校准

硬磁校准有

软磁校准有

磁场干扰校准方法平面旋转一圈

物理特性

尺寸94 x 74 x 37

重量200g RS-232 通信速率9600baud

电源

供电电压

直流3V-5V

(可定制7V-12V) 电流(最大) <40mA

环境

储存范围-45℃~+85℃

操作温度-45℃~+70℃

备注:供电电压最大不能超过5V,最小不能低于3V,一般常用3.3V,超过正常电压范围,会对产品造成不可逆转伤害。

1.2应用领域

机器人户外探险手持设备

工程塔吊勘探设备等配套产

GPS 辅助导航汽车监控

1.3电气连接

序号接线颜色信号定义

1 红色VCC

2 黑色GND

3 兰色TX

4 黄色RX

1.4产品尺寸

1.5安装方法

由于电子罗盘采用地磁原理,因此在安装罗盘时应尽量使电子元件充分暴露于地球磁场,而同时与干扰磁场影响相对隔绝。最好的方法是将罗盘安装在任何一个钢铁容器的外面(例如,一个车辆),并且尽可能远离磁场的影响。必须尽量避免将磁性物体包括进去,例如:汽车引擎、电动机、音频扬声器、钢板、钢铁螺母或螺栓。如果周围有这些磁介质,请至少需要维持0.5m远的距离。我们推荐使用铜、塑料或铝作为罗盘安

装和封装的材料。

安装磁罗盘模块的时候,确保外壳上的“箭头方向”与“平台笔直向前移动时方向”保持一致,安装完成之后,最好保证在使用过程中不对安装进行改动。罗盘的示意图如下所示,其中“加粗黑色箭头”表示罗盘的安装方向,姿态角具体定义见附录A 。

因为周围环境中很有可能存在着磁场干扰(软磁干扰和硬磁干扰),我们强烈建议:罗盘补偿程序应是在安装完成以及每次磁场环境改变之后实施。

1.6 校准方法

首次运行界面的时候,磁性物件(如邻近的手机、建筑结构钢铁以及地下埋藏的管道)可能会导致航向角误差。如果罗盘安装在一个车辆上,它将遭遇磁场异常,这就是为什么存在一个罗盘磁补偿程序的原因。然而,其它大体积的磁性物件即使在磁补偿过程中距离较远,很有可能会扭曲地球磁场。

进行环境校准时,周边的干扰物质在罗盘旋转过程中和罗盘的相对位置应该保持不变(即随罗盘一起转动)。 校准时需要操作者身上没有手机,磁卡,钥匙以及能影响电磁场的金属或者通电设备。

注意:在限定的干扰范围内,罗盘才具有补偿作用。罗盘内包含磁力计,而它的范围大概是在正负1Gauss 之间,这大约是北半球地磁场的两倍。如果磁场干扰值超过正负0.5Gauss ,那么磁力计可能会达到饱和状态,从而阻碍补偿作用。当补偿不能覆盖时,就表示出现了这个问题。

具体操作:开始校准后,将罗盘在平面内匀速缓慢旋转一圈以上(旋转速度不宜太快,不要超过3圈),旋转过程中罗盘会自动采样合适的数据,进行软硬磁补偿。

2通信协议

2.1数据帧格式

串口设置:8 位数据位,1位停止位,无校验,默认速率9600。

Z 轴

Heading Pitch

Y 轴

X 轴

Roll

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 默认0x00

标示符:固定为0xAA AA。

地址码:采集模块的地址,默认为0x00。0x00~0xFE为有效地址范围,0xFF是广播地址。

数据长度:从地址码到校验字(包括校验字)的长度。

命令字:两级命令字,第一级命令字表示功能,第二级命令字表示具体内容。

数据域:根据命令字不同内容和长度相应变化,16进制数据格式。

校验字:标示符、地址码、数据长度、命令字和数据域的CRC-16编码,具体内容见附录B。

注意:所有字节都是高字节在前,低字节在后。

2.2 协议

2.2.1 连接串口

点击“连接”按钮或“自动扫描”按钮连接串口,向终端发送初始化查询命令。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0xFF 0x00 01 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(12byte)

校验字

(2byte)

0xAA AA 当前地址0x80 01 *

如果串口连接成功,终端设备需要返回设备型号,设备地址,应答模式,磁偏角和姿态角偏置(方位角偏置,俯仰角偏置和横滚角偏置)。注意:二维罗盘的姿态角偏置都是零。

产品型号如下表所示,其中型号表示产品类型,版本号表示某类型的第几版。

名称设备

型号

*数据域实时监测

型号版本号俯仰角横滚角航向角

二维电子罗盘C_D_01 0x01 0x01 √

二维电子罗盘(带加计)C_D_02 0x01 0x02 √√√

举例:设备类型为0x0101,设备地址为0x01,应答模式是0x00(问答式(手动)),磁偏角是-2.5°。

标示符(2byte)地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA FF 06 00 01 DC 11 应答AA AA 01 12 80 01 01 01 01 00 FF 06 00 00 00 00 00 00 3E 7F 2.2.2设置地址

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA FF 0x01 01 *模块地址应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(1byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 当前地址0x81 01 0x00: 成功0xFF: 失败

*模块地址可以是0x00~0xFE,出厂默认是0x00。举例:设置地址为0x00

标示符(2byte)地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA FF 07 01 01 00 30 4C

应答AA AA 00 07 81 01 00 CC 59 2.2.3查询当前地址

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA FF 0x02 01

应答命令:

标示符地址码数据长度命令字数据域校验字

(2byte) (1byte) (1byte) (2byte) (1byte) (2byte) 0xAA AA 当前地址0x82 01 *模块地址

举例:当前地址是0x00

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA FF 06 02 01 BC 10

应答AA AA 00 07 82 01 00 CC A9 2.2.4 设置波特率

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x01 02 *波特率应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x81 02 0x00: 成功0xFF: 失败

*波特率:0x01表示9600,0x02表示19200,0x03表示38400,0x04表示57600,0x05表示115200,默认是9600。

举例:设置波特率为9600

标示符(2byte)地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 07 01 02 01 14 99

应答AA AA 00 07 81 02 00 3C 59

2.2.5设置磁偏角(单位:°)

磁偏角指的是磁场强度矢量的水平投影与正北方向之间的夹角,即磁子午线与地理子午线之间的夹角。如果磁场强度矢量的指向偏向正北方向以东称东偏,偏向正北方向以西称西偏。

磁偏角补偿公式:(真北)航向角=(磁北)航向角+磁偏角,其中偏东的磁偏角为正,偏西的磁偏角为负。

注意:一般情况下,罗盘计算的航向角指的是(磁北)航向角,需要实际位置的磁偏角进行补偿得到(真北)航向角。

方法1: 用户模式——用户直接输入磁偏角

方法2:WMM模型——根据世界磁场模型计算当地的磁偏角

用户需要输入海拔,经度,纬度,日期后,上位机可根据WMM模型计算出当地磁偏角。注意:使用此方法计算的磁偏角不需要用户判断方向。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(2byte)

校验字

(2byte)

0xAA AA 0x01 03 *

*磁偏角数值(3位整数,2位小数)乘以100后转化为2字节有符号16进制数。应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x81 03 0x00: 成功0xFF: 失败

举例:当前输入的磁偏角为-2.5°

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 08 01 03 FF 06 C9 11

应答AA AA 00 07 81 03 00 AC 58 2.2.6查询当前磁偏角(单位:°)

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x02 02 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(2byte)

校验字

(2byte)

0xAA AA 0x82 02 *磁偏角*磁偏角表示方法同2.2.5所示。

举例:当前磁偏角为-2.5°

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 02 02 A9 60

应答AA AA 00 08 82 02 FF 06 8D 69 2.2.7设置应答模式

这里的应答模式设置指的是监控界面和原始数据界面的数据输出频率。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x01 04 应答模式应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x81 04 0x00: 成功0xFF: 失败

应答模式:0x00--问答式(手动),0x01--问答式(自动),0x02--5Hz Data Rate,0x03--10Hz Data Rate,0x04--20Hz Data Rate,0x05--25Hz Data Rate,0x06--50Hz Data Rate,默认输出模式为 00。5Hz Data Rate 意味着每秒自动输出 5次数据,其他以此类推。

举例:设置应答模式为5Hz Data Rate

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 07 01 04 02 B5 DA

应答AA AA 00 07 81 04 00 9C 5A

2.2.8保存设置

对于参数设置,如果设置完成后不发送保存设置命令,断电后这些设置都将恢复成出厂默认值。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x03 01 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x83 01 0x00: 成功0xFF: 失败

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 03 01 38 21应答AA AA 00 07 83 01 00 C0 F8 2.2.9恢复出厂设置

恢复出厂默认参数设置和校准结果。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x04 01 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x84 01 0x00: 成功0xFF: 失败

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 04 01 08 23应答AA AA 00 07 84 01 00 CD 49 2.2.10开始校准

点击“开始校准”按钮后,用户根据校准流程操作,罗盘开始采集数据。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x05 02 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x85 02 *

*数据域:0x00表示进入校准状态,开始返回返回当前采样点情况,0x01~0x08表示采样点大致方位,0x09表示采样完成,0x10表示磁场饱和,0x11表示磁场干扰严重。

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 05 02 99 62

应答AA AA 00 07 85 02 02 3C 99 2.2.11停止校准

校准流程完成后,点击“停止校准”按钮,罗盘停止采集数据。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x06 02 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x86 02 4byte *校准指标

*校准指标:按照X轴,Y轴的顺序,数值(1位整数,3位小数)乘以1000后转化为2字节无符号16进制数。校准指标越靠近1越好,在0.9~1.1范围内表示校准成功,反之失败。如0x0465对应校准指标值是1.125,表示校准失败;0x03D4对应校准指标值是0.98,表示校准成功。

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

应答AA AA 00 0A 86 02 04 65 03D4E4 0D

2.2.12保存校准

保存校准结果就是把校准数据存储到FLASH中。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x03 02 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x83 02 0x00: 成功0xFF: 失败

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 03 02 39 61 应答AA AA 00 07 83 02 00 FC F8 2.2.13清除校准

清除校准结果就只是采用出厂校准数据。

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x04 02 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x84 02 0x00: 成功0xFF: 失败

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

应答AA AA 00 07 84 02 00 3D 49

2.2.14开始读取航向角

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x05 01 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

设备型号字节数

0xAA AA 0x85 01

01 01 2byte 注1

01 02 6byte 注2

注1:航向角数值(3位整数,2位小数)乘以100后转化为2字节无符号16进制数。

注2:数据域按照俯仰角,横滚角,航向角的顺序,姿态角数值(3位整数,2位小数)乘以100后转化为2字节有符号数16进制数(除航向角外)。

举例:设备型号:0x01 01,航向角是240.56°

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 05 01 98 22 应答AA AA 00 08 85 01 5D F8 19 60 2.2.15停止读取航向角

发送命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

0xAA AA 0x06 01 应答命令:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

(1byte)

校验字

(2byte)

0xAA AA 0x86 01 0x00: 成功0xFF: 失败

举例:

标示符(2byte) 地址码

(1byte)

数据长度

(1byte)

命令字

(2byte)

数据域

校验字

(2byte)

发送AA AA 00 06 06 01 68 22 应答AA AA 00 07 86 01 00 0D E8

在电子罗盘应用中,常以载体质心为原点,沿载体结构纵轴指向前的轴为纵轴X ,在对称平面内垂直于纵轴X 指向下的轴为垂直轴Z ,垂直于对称平面并和纵轴X ,垂直轴Z 构成右手坐标系的轴为横向轴Y 。

航向角(Heading):以垂直轴Z 为旋转轴,地磁北沿顺时针方向旋转到纵轴X 水平分量的角度,范围是0~360°。

俯仰角(Pitch):以横向轴Y 为旋转轴,水平面沿逆时针方向旋转到纵轴X 的角度(逆时针为正,顺时针为负),范围是0~±90°。

滚转角(Roll):以纵轴X 为旋转轴,水平面沿逆时针方向旋转到横向轴Y 的角度(逆时针为正,顺时针为负),范围是0~±180°。

Roll

X 轴

Heading Z 轴

Pitch Y 轴

O

CRC-16码的生成多项式是x16+x15+x2+1,具体C语言程序如下:unsigned short GetCheckCode(unsigned char *ptr, unsigned char len) {

unsigned short Code;

char i,j;

Code = 0xffff;

for(i=0;i

{

Code ^= ptr[i];

for(j=0;j<8;j++)

{

if(Code&0x0001)

{

Code >>= 1;

Code ^= 0xa001;

}

else

{

Code >>= 1;

}

}

}

return (Code);

}

西安精准测控有限责任公司

电话:029-88814882/883/891/892 传真:029-88814881

网址: https://www.wendangku.net/doc/747104494.html, E-mail: admin@https://www.wendangku.net/doc/747104494.html, 地址:西安市高新开发区科技路二路65号清华科技园A座312

相关文档