数字罗盘HMR3000在单片机系统中的应用_俞红杰

更新时间:2023-06-05 07:00:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

HMR3000应用介绍

   经验交流

Technical Communications

《自动化技术与应用》2007年第26卷第09期

数字罗盘HMR3000在单片机系统中的应用

俞红杰,单海校,沈晓群

(浙江海洋学院机电工程学院,浙江 舟山  316000)

摘  要:数字罗盘HMR3000体积小、功耗低、精度高,能实时准确的输出被测物体的航向、俯仰、横滚三个方向上的状态数据。本

文介绍了数字罗盘与单片机组合,通过使用双端口RAM,简化系统的接口设计,实现数据共享,形成适用于移动测控的系统单元或模块,是姿态测量用户的理想选择。

关键词: 数字罗盘;单片机;双端口RAM

中图分类号:TP368.1      文献标识码:A    文章编号:1003-7241(2007)09-0115-03

A Single-Chip Microcomputer System in Combination With

Digital Compass HMR3000

YU Hong-jie, SHAN Hai-xiao, SHEN Xiao-qun

(Mechanical & Electrical Engineering College of Zhejiang Ocean University,Zhoushan 316000 China)

Abstract: The digital compass HMR3000 can output the real-time attitude data of heading, pitching and rolling of the measured

object. This paper introduces the combination of the digital compass and a single-chip microcomputer. A dual-port RAMis used to simplify the interface design.The module is suitable for mobile observation and control.

Key words: digital compass; single-chip microcomputer; dual-port RAM

1  引言

HMR3000数字罗盘是一款Honeyewll公司的产品,具备RS-232或RS-485数据输出格式,由三轴磁阻传感器和一个充有液体的两轴倾斜传感器组成,可以测量3个方向上的角度变化。其内部单片机控制传感器的测量时序,能及时获得当前的航向和水平姿态,罗盘在倾斜40°的情况下也能给出精确的航向信息。整个装置带有非铁磁性金属外壳,便于安装固定在任何一个平台上。而且HMR3000允许用户对罗盘的输出进行组态,包括六种NMEA标准信息的组合,还可改变磁场计的测量参数以适应不同应用的需要等。完善的罗盘自动标定程序将修正平台的磁影响,磁场计的宽动态范围允许HMR3000工作在当地较大的磁场下[1]。

图1  系统结构框图

2  系统硬件电路设计

2.1  系统总体结构

系统由主从单片机、数字罗盘、双端口RAM及数据转换电路等组成。其系统结构框图如图1所示。

2.2  HMR3000接口电路设计

收稿日期:2006-11-27

图2  两种不同电源的接口连接图

由于HMR3000与外部的通信通过RS-232接口或RS-485接口,因此不能直接与单片机进行通信,必须通过数据转换电路进行通

| 115

HMR3000应用介绍

   经验交流

Technical Communications

信。HMR3000数字罗盘上自带标准的D型9针串口插头,可以利用该插头通过MAX232芯片,连接到单片机的串口。这里需注意的是,在使用串口连接单片机时,HMR3000 的9针串口的2、3管脚经常会出现连接错误。这主要是因为HMR3000的输出数据在连接到D型插头时,为了方便和PC机的连接已经调换了2、3脚的顺序,因此只要将HMR3000的2、3脚按顺序连接到对应管脚就可以了。考虑到采用电源的不同,HMR3000还有两种不同的连接方式,如果是使用5V稳压电源的,将它和HMR3000的9针串口中的8脚连接,如果是使用6-15V未经稳压电源的,将它和HMR3000的9针串口中的9脚连接[2]。其具体连接电路如图2所示。

3  通讯协议及指令

3.1  HMR3000数字罗盘的通讯协议

HMR3000数字罗盘的串行通信是根据NMEA0183标准制定的简单的、异步的ASCII协议,可以在单片机系统中使用RS-232或者是RS-485接口电路。ASCII的传输和接收使用1位起始位、8位数据位、1位停止位,共10位码。数据传输率可选择1200、2400、4800、9600、19200、38400波特率。

3.2  HMR3000数字罗盘的指令

HMR3000数字罗盘有输入、输出及控制3类指令。对于HMR3000的输入有两类形式:一是对于句子的请求,二是设定一个组态参数。对于所有有效的输入,HMR3000都送出一个响应。

HMR3000数字罗盘的输出有6种可供选择的NMEA0183信息标准。3种标准的数据格式(HDG、HDT、XDR)和3种专用的数据格式(HPR、RCD、CCD)。现以HPR语句为例,它的标准输出格式为:

¥PTNTHPR,x.x(航向),a,x.x(俯仰角),a,x.x(横滚角),a*hh

该数据输出格式将HMR3000数字罗盘的3个重要测量结果和相应的测量状态结合在一起,数据中的“a”表示测量状态,共有6种状态,分别是:L(低级报警)、M(低级警告)、N(正常)、O(高级警告)、P(高级报警)和C(调节模拟电路)。

在HMR3000数字罗盘的控制类指令中,启动、停止、询问和响应是其最为基本的控制指令[4][5]。

2.2  数据存储接口电路设计

一般测控系统都采用单片机来完成数据处理和控制算法,但在本系统中,如果采用普通的单处理器与常规的异步串行通信方案,在实际应用中,会出现一系列的问题。主要有以下几点:1、由于HMR300D输出的串行数据是ASCⅡ码, 并不能被单片机直接进行处理, 必须要将ASCⅠl码字符进行转换才能处理。整个转换过程会占用单片机大量的内部RAM,造成单片机资源紧张。2、串行通信速度较慢,会影响整个系统的实时响应速度。3、测控系统的控制算法和串行通信都要保证实时性和连续性,因此在程序设计中经常要使用中断,而单片机的串行通信一般也采用中断方式,且串行数据寄存器SBUF只有一个字节,在这种情况下,单片机就有可能无法及时响应和处理串行通信的中断,造成传输数据的丢失或错误,从而影响串行通信数据接收的可靠性[3]。

因此在本系统中采用主从单片机的双处理器设计方案,从单片机作为通信单片机和HMR3000数字罗盘通信,完成数据的接收及前期处理。主单片机完成数据后续处理和控制算法。单片机之间用双端口RAM实现数据共享。由于数据总是由从单片机写入RAM,又从RAM读入主单片机,因此在双端口RAM的设计中不需考虑同时读或同时写的非法状态,可以简化相关的软硬件设计。其中通信单片机的具体连接电路如图3所示。

4  系统软件设计

为了增强控制的灵活性,且使开发的程序具有较好的可移植性,决定采用C51进行开发。软件设计主要分为2大块,其中主单片机主要完成数据后续处理及控制算法。通信单片机主要完成串行数据的接收、数据转换及向双端口RAM写入数据。其中串行数据的接收是通信单片机软件设计的关键。本文给出了数据接收

图3  通信单片机连接电路图

T(下转第90页)

HMR3000应用介绍

   经验交流

Technical Communications

传入的待解码参数为单一码种或总和而自动选择相应的解码方法。

解码完成后,需要将结果存储在NeuroCheck指定的一个字符数组中,然后可以由NeuroCheck内部的函数将其调用并显示,同时也可以将其作为输出参数传递,用于PLC的控制信号。

6  结束语

如前所述,各种工业用机器视觉软件都有各自的优缺点。NeuroCheck的使用简单,但是其在条形码阅读时,不仅不能解码128码,而且还必须指定待解码类型,甚至还需指定解码之后的字符数目,所以当某些特殊情况需要解码不明条形码时,使用NeuroCheck就极其不不方便。而使用eVision虽然同时必须使用其它编程软件,但是其函数库功能相对比较强大,尤其是在条形码阅读方面。不过,在此方面eVision也有它的一些缺点。比如有些条形码可以同时被不同的条形码类型解码,得到不同的答案。此时使用eVision的总和解码方法,固然有其方便的优点,但是也有只能输出一种结果的缺点。如果需要输入所有可能性结果,然后做相似性比较的话,必须设定一个循环语句,然后在此循环内对所有可能的码种作单一解码,并输出所有解码成功的结果。

在熟练应用各种相关软件的基础上,了解其优缺点,各取其长而避其短,综合成最合适于工程需要的处理方法,其意思是相当重大的。不仅可以解决一些凭单一软件难以解决的问题,同时也因为可以避免重复购买软件而节约成本,此外对开发具有自主知识产权的同类软件也有很大的帮助。

参考文献:

[1] NeuroCheck. Programmer’s Reference[Z].2006

[2] eVision.C++ Reference Manual[Z].2004

作者简介:骆顺耀,男(1982-),男,同济大学中德学院硕

图4  eVision函数解码条形码的流程

(上接第116页)

的中断程序流程图,如图4所示,其中RECORD为记录标志位。因程序篇幅较多,文中不再给出。

士研究生,研究方向:机器视觉软件Neuro Check的插件的开发。

5  结束语

由于数字罗盘可以通过对地球磁场等信息的读取、计算后,精确输出航向、俯仰、横滚等参数。因此它作为一种重要的导航工具,越来越多的应用于导航和定位系统。本文介绍了数字罗盘在单片机系统中的应用,其软、硬件电路的设计方法同样适合于其它基于单片机系统的数字罗盘的设计。而且随着通信技术的发展,数字罗盘必将会得到越来越广泛的使用。

参考文献:

[1]  HMR3000数字罗盘模块用户指南[M].Honeyewll2003.9.[2] 求是科技.单片机典型模块设计实例导航[M].人民邮电出版社,2004,176-194.

[3] 陈皓生,徐军,李疆.HMR3000数字罗盘在微型飞行器中的应用[J].传感器技术,2001,20(9):44-46.

[4] 张颖.基于高级语言的HMR3000 模块接口编程[J].兵工自动化,2002,21(4):41-43.

[5] 彭树生.数字电子罗盘HMR3000 的特性及应用[J].电子技术,2004,(8):39-43.

图4  接受中断程序流程图

作者简介:俞红杰 (1973-),男,浙江舟山,讲师,研究生,研究方向:自动控制与应用。

本文来源:https://www.bwwdw.com/article/f0e1.html

Top