一种基于硬件语言的航向角指示仪的制作方法

文档序号:6244154阅读:219来源:国知局
一种基于硬件语言的航向角指示仪的制作方法
【专利摘要】本发明属于系统导航领域,具体涉及一种基于硬件描述语言的航向角指示仪。基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据传给FPGA,经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。航向角指示仪实现了对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。
【专利说明】一种基于硬件语言的航向角指示仪

【技术领域】
[0001] 本发明属于系统导航领域,具体涉及一种基于硬件描述语言的航向角指示仪。

【背景技术】
[0002] 航向角是载体导航最重要的参数之一,在船舶载体上提供操纵指示和执行相应的 任务,就必须用到精确的航向角指示。同样,对任何移动载体来说,精确可靠的航向角对载 体的运行均是非常必要。地球磁场比较稳定,如果利用好这个资源,利用地磁传感器测量载 体在地磁场的各个信号分量,再通过数值计算、误差校正,可以计算出载体的航向角,从而 提高载体的导航精度和导航性能。


【发明内容】

[0003] 本发明的目的在于提供一种基于硬件描述语言的航向角指示仪。
[0004] 本发明的目的是这样实现的:
[0005] 基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,使用 FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据传给FPGA, 经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、校正,最后 将载体的航向角输出显示。
[0006] 地磁传感器为MAG3110型三轴地磁传感器模块。
[0007] FPGA与地磁传感器的通信方式采用的是I2C方式,根据I2C总线的时序对地磁信 息进行采集。
[0008] 数码管为三位共阳数码管,作为航向角指示仪的显示器采用静态显示的方式。
[0009] 本发明的有益效果在于:航向角指示仪实现了对地磁传感器所采集信号的计算、 校正,最后将载体的航向角输出显示。

【专利附图】

【附图说明】
[0010] 图1航向角指示仪总体设计框图;
[0011] 图2 I2C时序图;
[0012] 图3系统流程总框图;
[0013] 图4地磁信号采集流程图;
[0014] 图5未修正地磁场形状不意图;
[0015] 图6修正后的地磁场示意图;
[0016] 图7数据处理程序流程图;

【具体实施方式】
[0017] 下面结合附图对本发明做进一步描述。
[0018] 本发明是基于硬件语言(Verilog语言)的航向角指示仪,包括:地磁传感器、FPGA 控制器、数码管。其特征是使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过 I2C总线把接收数据传给FPGA,经过FPGA进行数据处理,经数据处理后实现了对地磁传感 器所采集信号的计算、校正,最后将载体的航向角输出显示及实现各部分的Verilog程序。 [0019] 利用硬件描述语言(Verilog语言)对地磁传感器测得的载体磁场数据进行数值 计算、误差校正,最后给出载体的航向角。航向角指示仪主要由FPGA控制板、地磁传感器模 块和数码管显示模块组成。使用FPGA作为控制器,地磁传感器接收到载体所在位置的地磁 数据,通过I2C总线把接收数据送给FPGA,经过FPGA进行数据处理,经数据处理后实现了 对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。航向角指示仪总体 设计框图如图1所示。
[0020] 航向角指示仪的控制器使用的是自主设计的FPGA核心板,其核心为CYCLONE III 系列的EP3C40Q240C8N。选择的地磁传感器为Freescale公司的MAG3110微小型三轴地磁 传感器模块。
[0021] MAG3110为三轴地磁传感器能敏感来自三个方向的地磁信息,它采用标准I2C总 线协议,任何带I2C总线的微处理器,都可以轻松的访问它并接收其采集到的磁场数据。图 2是其I2C总线的时序,SCL高电平时SDA下降沿代表有效数据开始,然后每个SCL的高电 平读取SDA的数据,最后在SCL高电平时SDA上升沿结束。系统流程总框图如图3所示。
[0022] 写时序:I2C起始位_>MAG3110写地址(OxlC)_>目标寄存器地址_>写入数据_> 停止位
[0023] 读时序:I2C起始位_>MAG3110写地址(OxlC)_>目标寄存器地址_>重复起始 位->MAG3110读地址(OxlD)->接收数据-> 停止位
[0024] (1)地磁传感器与FPGA的数据传输
[0025] 根据I2C总线协议时序图以及地磁传感器的操作时序图,在FPGA中使用硬件描述 语言建立了一个I2C通行模块,来完成地磁传感器与FPGA磁场测量信息的传输,地磁信号 采集程序流程图如图4所示。具体程序步骤如下:
[0026] 第一步:设置一个计数器,输出周期为IOus的方波作为SCL信号。并设置每个周 期的IOus为下降沿,2. 5us为低电平,5us为上升沿,7. 5us为高电平;
[0027] 第二步:当SCL第一个高电平时,SDA给低电平;
[0028] 第三步:在之后的八个低电平时,给SDA赋MAG3110写地址(OxlC);
[0029] 第四步:在接着的下降沿时,让SDA高阻态输出,结束一次赋值;
[0030] 第五步:在之后的八个低电平时,给SDA赋目标寄存器地址;
[0031] 第六步:在接着的下降沿时,让SDA高阻态输出,结束一次赋值;
[0032] 第七步:判断是写操作还是读操作,写操作:在之后的八个低电平时,给SDA赋数 据,结束读操作:重复起始位,并进入下一步;
[0033] 第八步:当SCL第一个高电平时,SDA给低电平;
[0034] 第九步:在之后的八个低电平时,给SDA赋MAG3110读地址(OxlD)。然后,在接着 的下降沿时,让SDA高阻态输出,结束一次赋值;
[0035] 第十步:在之后的八个高电平时,从SDA读取数据,结束;
[0036] 第H 步:输出结束信号;
[0037] FPGA与地磁传感器的通信方式采用的是I2C方式,根据I2C总线的时序对地磁信 息进行采集。初始化部分,先将MAG3110设为STANDBY模式(CTRL_REG1寄存器低两位00) 配置OSR,0DR(CTRL_REG1寄存器高5位)将MAG3110设为ACTIVE模式(CTRL_REG1寄存器 低两位01),传感器开始转化数据具体程序步骤如下:
[0038] 第一步:写操作允许,对寄存器CTRL_REG1进行赋值0x00 ;
[0039] 第二步:上一步结束后,再对寄存器CTRL_REG1进行赋值0x30 ;
[0040] 第三步:上一步结束后,再对寄存器CTRL_REG1进行赋值0x31 ;
[0041] 数据读取部分,读DR_STATUS (0x00)状态寄存器,如果DR_STATUS&0x08 = 1, 一次转换已经完成,此时可以读取数据;读0UT_X_MSB(0x01)、0UT_X_LSB(0x02)、0UT_Y_ MSB (0x03)、0UT_Y_LSB (0x04)、0UT_Z_MSB (0x05)、0UT_Z_LSB (0x06)寄存器,分别得到 X、Y、 Z三轴十六位的数据;此时转动MAG3110,三轴数据会发生变化。具体程序步骤如下:
[0042] 第一步:读操作允许,读取寄存器DR_STATUS的值;
[0043] 第二步:上一步结束后,判断读取的数据的第四位数据是否为1,是:则进入下一 步。不是:则返回上一步;
[0044] 第三步:设置寄存器0UT_X_MSB (0x01)。把数据存入xData数组的高八位;
[0045] 第四步:设置寄存器0UT_X_LSB(0x02)。把数据存入xData数组的低八位;
[0046] 第五步:设置寄存器0UT_Y_MSB (0x03)。把数据存入yData数组的高八位;
[0047] 第六步:设置寄存器0UT_Y_LSB (0x04)。把数据存入yData数组的低八位;
[0048] 第七步:设置寄存器0UT_Z_MSB (0x05)。把数据存入zData数组的高八位;
[0049] 第八步:设置寄存器0UT_Z_LSB (0x06)。把数据存入zData数组的低八位;
[0050] 第九步:设置X坐标值为xData,y坐标值为yData,z坐标值为zData,输出结束信 号;
[0051] (2)地磁场修正
[0052] 理论上X轴和Y轴测量值的矢量和是一定值,即其运动轨迹是一个圆心位于原点 的规则圆,这样才可以应用公式来求载体的航向。但是,由于在实际使用中,如机房、实验室 等环境下存在多种仪器、电气设备很容易给地磁传感器的测量精度带来影响,从而造成航 向测量不准。结合地磁传感器的产品说明书可知,当受到干扰时地磁场形状图是一个椭圆, 而不是一个圆,且中心也有所偏离,如图5所示。因此并不能根据得到的这个磁场形状来计 算载体航向与北向的夹角,所以要在程序中对于这个椭圆进行修正,使之经过拉伸、平移变 换成图6所示的原点位于圆心的规则圆。以X轴为例具体程序步骤如下:
[0053] 第一步:把X坐标值赋给XMAX和XMIN数组;
[0054] 第二步:判断新的X坐标值与XMAX和XMIN的大小关系,如果大于XMAX,则赋给 XMAX。如果小于XMIN,则赋给XMIN ;并输出XO为XMAX和XMIN的平均值;
[0055] 则X0、YO为X、Y平面的原点,原受干扰的椭圆被修正成了一个圆。由地磁传感器 的原理可知,通过测量出载体在X、Y轴的磁场强度,再应用反三角函数,使用泰勒级数展开 即可求出载体的航向角,由于计算量的限制,这里我选择展开到项。
[0056] 根据泰勒级数在0处展开的公式:

【权利要求】
1. 一种基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,其特 征是:使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据 传给FPGA,经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、 校正,最后将载体的航向角输出显示。
2. 根据权利要求1所述的一种基于硬件语言的航向角指示仪,其特征是:所述的地磁 传感器为MAG3110型三轴地磁传感器模块。
3. 根据权利要求2所述的一种基于硬件语言的航向角指示仪,其特征是:所述的FPGA 与地磁传感器的通信方式采用的是I2C方式,根据I2C总线的时序对地磁信息进行采集。
4. 根据权利要求3所述的一种基于硬件语言的航向角指示仪,其特征是:所述的数码 管为三位共阳数码管,作为航向角指示仪的显示器采用静态显示的方式。
【文档编号】G01C21/08GK104406584SQ201410546130
【公开日】2015年3月11日 申请日期:2014年10月16日 优先权日:2014年10月16日
【发明者】孙华, 吴宗凯, 张岩, 薛晶晶, 李昊俊 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1