新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 如何设计基于FPGA的虚拟现实定位系统?

如何设计基于FPGA的虚拟现实定位系统?

作者: 时间:2018-08-06 来源:网络 收藏

本文引用地址:https://www.eepw.com.cn/article/201808/385562.htm


3.2 ADXL345数据采集模块设计

ADXL345在虚拟场景系统中用于测量倾斜角,它的时钟驱动也是一系列的I2 C驱动时钟周期.本模块的设计也是针对于ADXL345的时钟驱动和对应的数据读取所进行的.倾斜角的寄存器内容的获取是整个模块的主要内容.

在实际的场景系统中主要用到了X、Y、Z 三个方向上的偏移寄存器,用于测量中修正原始位置的测量误差.对于数据采集速率则是由寄存器OX2C即寄存器BW_RATE的CH0-CH3所控制.对于 三维重力加速度传感器而言,主要的初始化也是通过常见的I2 C总线与 进行通信,在数据获取方面集中在X、Y、Z 三个重力方向上的寄存器数据.其时序图如图5 所示,代码编写过程中与HMC5883L共用总线同时都受的控制,属于系统控制的从端.同样的,三维重力加速度传感器也需要根据测量需求去输入初 始化寄存器的配置.然后对需要读取的寄存器数据位进行总线读取,并存入到配置好的8bit寄存器保存好打包传往上位机进行数据分析.(点击可查看大图)


3.3 场景数据分析

在地磁的测量过程中需要对数据进行必要分析才能得到对应的方位角度.


由HMC5883L 和ADX345传感器我们可以得到地磁场在空间三个轴上的分量磁场大小分别为Hx、Hy、Hz以及加速度传感器测量俯仰角φ 和横滚角θ.


式中Ax、Ay、Az是重力加速度传感器三个方向上测量得到的加速度值.在特定的公式计算下可以大致得到目前物体所处的顺时针方位角a为


以上是初步估计出来得到方位角参数,计算中不可忽略的还有HMC5800L还受到外部磁性干扰,其中较为突出的是硬磁效应和软磁效应[8~9]一般而言 对于硬磁效应,我们采取的方法是将物体至于场景中旋转360°,然后经过多次的采样得到X、Y、Z 坐标的最大值Xmax、Ymax、Zmax和最小值Xmin、Ymin、Zmin然后对于硬磁效应来说就是偏移量为


硬磁效应只需要使用测试的数据值加上off 的偏移值便可,而对于软磁效应,补偿的方法比较复杂,一般可以使用公式进行适当的估算,项目中初步使用式(12)进行补偿.其中Xr为真实的无干扰的坐标 值,a为其干扰系数,一般软磁干扰就需要大量的数据去得到a 的值.一般情况下可以采取特定的角度进行数据采样,然后根据数据的


实际值Xr和对应无干扰的值Xc进行运算,求出a的这个系数的值便可.

3.4 以太网通讯模块设计

LAN8700是SMSC公司的一款以太网物理层芯片.

LAN8700由编码器/解码器.扰码器/解扰器.波形整形器.输出驱动器.自适应均衡双绞线接收器.时钟数据恢复功能模块组成.

模块编程中定义了UDP_User_int模块来实现数据打包的详细过程,另外MAC的物理层通信由MAC_top模块来实现,包括PHY的初始 化.时钟的控制.发生数据的控制.MII接口的控制.接收数据控制,寄存器的控制等,都定义了UDP_TOP顶层模块来实现FPGA与它们的接口顺利传输 数据.以太网驱动模块实现的RTL门级结构图如图7所示.


其中ip_local和mac_local是本地IP和MAC地址;每组E_RXD和E_TXD都是4个32位数据,E_RXD是接收MAC层的数 据,E_TXD是发送给MAC层的数据;每组send_zb_value都是64个32位数据,打包成了UDP包,send_zb_value是发送至以 太网的UDP包,同时定义了send_en来作为发送数据的使能信号;E_COL和E_CRS分别是冲突检测和载波侦听信号,他们的作用是用来控制着 UDP包的正确发送.

4 结语

设计中使用了HMC5883L芯片对物体的方位角进行测定,使用辅助芯片ADXL345来判定倾斜角和物体翻滚姿态,使得物体在虚拟场景中的实际情况更为 精准.利用FPGA对数据的高速处理能力将采集到的场景定位内容迅速分析处理并且通过以太网控制芯片发往局域网中的上位机中,最终在上位机实现虚拟场景的 变动.整套硬件系统能够稳定的工作在研发的项目之中,工作性能良好.能耗低,精度可达1°以内的范围.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭