本发明专利技术属于系统导航领域,具体涉及一种基于硬件描述语言的航向角指示仪。基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据传给FPGA,经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。航向角指示仪实现了对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。
【技术实现步骤摘要】
一种基于硬件语言的航向角指示仪
本专利技术属于系统导航领域,具体涉及一种基于硬件描述语言的航向角指示仪。
技术介绍
航向角是载体导航最重要的参数之一,在船舶载体上提供操纵指示和执行相应的 任务,就必须用到精确的航向角指示。同样,对任何移动载体来说,精确可靠的航向角对载 体的运行均是非常必要。地球磁场比较稳定,如果利用好这个资源,利用地磁传感器测量载 体在地磁场的各个信号分量,再通过数值计算、误差校正,可以计算出载体的航向角,从而 提高载体的导航精度和导航性能。
技术实现思路
本专利技术的目的在于提供一种基于硬件描述语言的航向角指示仪。 本专利技术的目的是这样实现的: 基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,使用 FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据传给FPGA, 经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、校正,最后 将载体的航向角输出显示。 地磁传感器为MAG3110型三轴地磁传感器模块。 FPGA与地磁传感器的通信方式采用的是I2C方式,根据I2C总线的时序对地磁信 息进行采集。 数码管为三位共阳数码管,作为航向角指示仪的显示器采用静态显示的方式。 本专利技术的有益效果在于:航向角指示仪实现了对地磁传感器所采集信号的计算、 校正,最后将载体的航向角输出显示。 【附图说明】 图1航向角指示仪总体设计框图; 图2 I2C时序图; 图3系统流程总框图; 图4地磁信号采集流程图; 图5未修正地磁场形状不意图; 图6修正后的地磁场示意图; 图7数据处理程序流程图; 【具体实施方式】 下面结合附图对本专利技术做进一步描述。 本专利技术是基于硬件语言(Verilog语言)的航向角指示仪,包括:地磁传感器、FPGA 控制器、数码管。其特征是使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过 I2C总线把接收数据传给FPGA,经过FPGA进行数据处理,经数据处理后实现了对地磁传感 器所采集信号的计算、校正,最后将载体的航向角输出显示及实现各部分的Verilog程序。 利用硬件描述语言(Verilog语言)对地磁传感器测得的载体磁场数据进行数值 计算、误差校正,最后给出载体的航向角。航向角指示仪主要由FPGA控制板、地磁传感器模 块和数码管显示模块组成。使用FPGA作为控制器,地磁传感器接收到载体所在位置的地磁 数据,通过I2C总线把接收数据送给FPGA,经过FPGA进行数据处理,经数据处理后实现了 对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。航向角指示仪总体 设计框图如图1所示。 航向角指示仪的控制器使用的是自主设计的FPGA核心板,其核心为CYCLONE III 系列的EP3C40Q240C8N。选择的地磁传感器为Freescale公司的MAG3110微小型三轴地磁 传感器模块。 MAG3110为三轴地磁传感器能敏感来自三个方向的地磁信息,它采用标准I2C总 线协议,任何带I2C总线的微处理器,都可以轻松的访问它并接收其采集到的磁场数据。图 2是其I2C总线的时序,SCL高电平时SDA下降沿代表有效数据开始,然后每个SCL的高电 平读取SDA的数据,最后在SCL高电平时SDA上升沿结束。系统流程总框图如图3所示。 写时序:I2C起始位_>MAG3110写地址(OxlC)_>目标寄存器地址_>写入数据_> 停止位 读时序:I2C起始位_>MAG3110写地址(OxlC)_>目标寄存器地址_>重复起始 位->MAG3110读地址(OxlD)->接收数据-> 停止位 (1)地磁传感器与FPGA的数据传输 根据I2C总线协议时序图以及地磁传感器的操作时序图,在FPGA中使用硬件描述 语言建立了一个I2C通行模块,来完成地磁传感器与FPGA磁场测量信息的传输,地磁信号 采集程序流程图如图4所示。具体程序步骤如下: 第一步:设置一个计数器,输出周期为IOus的方波作为SCL信号。并设置每个周 期的IOus为下降沿,2. 5us为低电平,5us为上升沿,7. 5us为高电平; 第二步:当SCL第一个高电平时,SDA给低电平; 第三步:在之后的八个低电平时,给SDA赋MAG3110写地址(OxlC); 第四步:在接着的下降沿时,让SDA高阻态输出,结束一次赋值; 第五步:在之后的八个低电平时,给SDA赋目标寄存器地址; 第六步:在接着的下降沿时,让SDA高阻态输出,结束一次赋值; 第七步:判断是写操作还是读操作,写操作:在之后的八个低电平时,给SDA赋数 据,结束读操作:重复起始位,并进入下一步; 第八步:当SCL第一个高电平时,SDA给低电平; 第九步:在之后的八个低电平时,给SDA赋MAG3110读地址(OxlD)。然后,在接着 的下降沿时,让SDA高阻态输出,结束一次赋值; 第十步:在之后的八个高电平时,从SDA读取数据,结束; 第H 步:输出结束信号; FPGA与地磁传感器的通信方式采用的是I2C方式,根据I2C总线的时序对地磁信 息进行采集。初始化部分,先将MAG3110设为STANDBY模式(CTRL_REG1寄存器低两位00) 配置OSR,0DR(CTRL_REG1寄存器高5位)将MAG3110设为ACTIVE模式(CTRL_REG1寄存器 低两位01),传感器开始转化数据具体程序步骤如下: 第一步:写操作允许,对寄存器CTRL_REG1进行赋值0x00 ; 第二步:上一步结束后,再对寄存器CTRL_REG1进行赋值0x30 ; 第三步:上一步结束后,再对寄存器CTRL_REG1进行赋值0x31 ; 数据读取部分,读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,三轴数据会发生变化。具体程序步骤如下: 第一步:读操作允许,读取寄存器DR_STATUS的值; 第二步:上一步结束后,判断读取的数据的第四位数据是否为1,是:则进入下一 步。不是:则返回上一步; 第三步:设置寄存器0UT_X_MSB (0x01)。把数据存入xData数组的高八位; 第四步:设置寄存器0UT_X_LSB(0x02)。把数据存入xData数组的低八位; 第五步:设置寄存器0UT_Y_MSB (0x03)。把数据存入yData数组的高八位; 第六步:设置寄存器0UT_Y_LSB (0x04)。把数据存入yData数组的低八位; 第七步:设置寄存器0UT_Z_MSB (0x05)。把数据存入zData数组本文档来自技高网...
【技术保护点】
一种基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,其特征是:使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据传给FPGA,经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、校正,最后将载体的航向角输出显示。
【技术特征摘要】
1. 一种基于硬件语言的航向角指示仪,包括:地磁传感器、FPGA控制器、数码管,其特 征是:使用FPGA作为控制器,地磁传感器接收到载体的地磁数据,通过I2C总线把接收数据 传给FPGA,经过FPGA进行数据处理,经数据处理后实现对地磁传感器所采集信号的计算、 校正,最后将载体的航向角输出显示。2. 根据权利要求1所述的一种基于硬件语言的航向角指示仪,其特征是:...
【专利技术属性】
技术研发人员:孙华,吴宗凯,张岩,薛晶晶,李昊俊,
申请(专利权)人:哈尔滨工程大学,
类型:发明
国别省市:黑龙江;23
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。