网站首页  词典首页

请输入您要查询的论文:

 

标题 浅析IIC及其在电子罗盘上的应用
范文

    郑传尧

    摘要:STM32模拟IIC,实现与QMC5883L电子罗盘通信,经过数学计算得到最终数据并显示在LCD屏上的指定位置,通过数值判断方向,实现简单指南针的功能。

    关键词:STM32;电子罗盘;IIC;软件模拟

    中图分类号:TP391? ? ? ? 文献标识码:A? ? ? ? 文章编号:1009-3044(2019)03-0218-03

    人机交互(HMI)已经独立为一门学科。人机界面(HCI)指出,HCI是人与计算机之间传递、交换信息的媒介和对话接口。手机是人机交互的完美体现。从古代的司南到近代的实体指南针,再到手机界面上的虚拟指南针,在这个过程中,指南针赋予时代发展的意义重大。电子罗盘在虚拟指南针实现上起到了信息采集者的作用。信息采集完后需要信息运输者进行传输,IIC总线起到了信息运输者的作用。在运输过程中为了保证运输效率,正确率,必须对传输过程制定约束, IIC总线协议起到约束的作用。只有保证信息采集者、信息运输者能够正常运作,才能实现数据最后的视觉呈现。

    1 IIC介绍

    物理结构上,SDA和SCL构成IIC的通信线路,其中SDA为数据线,提供数据传输,SCL为时钟线,提供传输时钟。连接在IIC总线上的设备,既可以作为数据发送端,同时也可以作为数据接收端。当主控器为Master时,被控器为Slave时,并联在总线上,他们各自都有唯一的地址,这些地址就是打开IIC总线上连接设备大门的钥匙。在信息传输过程中,连接在IIC总线上的每一个器件都可作为Master、Slave使用,也可作为发送端、接收端使用。CPU发出的控制信号分为地址码和数据码两个部分:地址码用来选址,数据码是通信的内容,这样各个器件的控制电路虽然挂在同一条总线上,却彼此独立。图1为IIC总线设备连接硬件结构图。

    图2为IIC总线时序图,从图中得知IIC总线在传送数据的过程中共有三种类型信号,分别是:开始信号(START)、应答信号(ACK)和结束信号(STOP)。SCL为高电平时,SDA由高电平跳变为低电平,这个过程定义为开始信号;Master(Slave)在接收到8位数据后,将发送数据的Slave(Master)发出特定的低电平脉冲(ACK=0),表示已接收到數据,这个过程定义为应答信号;SCL为高电平时,SDA由低电平调变为高电平,这个过程定义为结束信号。在进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,另外IIC总线协议规定,每传送一个字节数据(含地址及命令字)后都要有一个应答信号,已确定数据传送是否被对方收到。

    2电子罗盘介绍

    电子罗盘,别名数字指南针,它是利用地磁场来定北极的装置。与传统指针式相比,它功耗低,体积小,精度高,最重要的是它的输出信号通过处理后生成的数字信号可以用来实现机械控制。

    2.1 QMC5883L介绍

    QMC5883L是一款高精度三轴AMR(AMR:全称Anisotropic Magnetoresistance,各向异性磁电阻)传感器,采用7位寻址(写地址: 0x1a,读地址:0x1b)自带温控补偿功能保证信号输出的稳定性。它凭借其优异的性能,可以被广泛应用于无人机、高精度工业和汽车电子领域。

    QMC5883L有两种操作模式,分别是Standby Mode和Continuous Mode,通过寄存器(09H)的模式位控制。当传感器处于Standby Mode,传感器本身很少功能被激活,功耗低,并且在这种模式下没有磁力计测量,内部时钟也停止,当传感器处于Continous Mode(模式位:01)下,磁传感器连续进行测量并将测量数据放入数据输出寄存器中。

    2.2 QMC5883L模式设置介绍

    如图3IIC写操作顺序图,可以理解Master执行写操作设置Slave为Continous Mode的流程。首先Master发送START信号后紧接着发送8位2进制信号(Slave地址+R/W模式位),等待Slave发出的ACK,收到ACK后证明Master与从机已经建立好通信,紧接着Master又发送8位2进制数来选择需要设置从机某一个寄存器的地址(这里寄存器地址位0x09),收到Slave发出的ACK后,Master马上发送所选择Slave寄存器需要设置的内容,收到Slave发出的ACK后,Master发送STOP信号,断开与Slave的通信,此时Slave的工作模式已经被设置好了。

    如图4IIC读操作顺序图,可以理解Master读取地址0x00H~0x07H内容的流程。首先通过写操作确定读取内容的首地址为0x00H,接下来通过IIC总线设置模块为读模式,每接收一个8位数据,Master产生一个ACK,直到接收到0x07H内容后发送NACK信号,紧接着发送STOP信号完成读取操作。

    3单片机模拟IIC通信

    在这里选择软件模拟IIC的最大好处就是便移植,任何一个单片机,只要有IO口,这段代码就可以很好的移植过去。相比较而言,硬件IIC每换一款MCU,就得重新编码,移植麻烦。

    本次采用设备为正点原子STM32F7开发板、QMC5883L电子罗盘、12V电源适配器、TFTLCD屏、杜邦线。

    3.1结构设计

    图5为所选开发板的部分IO外设资源分布图(开发板和裸机不能相提并论,开发板IO已经资源分配好,乱用会导致意外错误产生)。本次设计需要使用开发板的PH4(SCL)和PH5(SDA)这两个GPIO口。表1为QMC5883L的IO资源分配表,以此来确定开发板与电子罗盘的硬件连接方式。从表1得知QMC5883L的SCL与SDA的序号分别位1号和16号,即在硬件连接的时候,PH4与1号相连,PH5与16号相连,2号口与11号口分别与开发板上的VDD(3.3V)与GND相连。LCD屏直接与STM32F7开发板对应的接口相连。

    3.2原理实现

    此处通过代码来分析STM32模拟IIC通信和QMC5883交流系统实现的过程。以下均为封装好的函数体,分别定义起始信号函数为void IIC_Start(void);结束信号函数为void IIC_Stop(void);产生应答信号函数为void IIC_Ack(void);不产生应答信号函数为void NAck(void);发送一个字节函数为void IIC_Send_Byte(u8 tad);接收一个字节函数为u8 IIC_Read_Byte(void)。

    QMC5883L电子罗盘必须进行初始化操作才能正常使用,初始化操作中包含设置电子罗盘为ContinousMode的过程,其他配置内容均按照用户手册来书写。根据图3写操作顺序图,调用定义好的函数,完成初始化操作

    完成QMC5883L初始化操作后,紧接着就是实现STM32获取QMC5883L传回来数据。通过QMC5883L数据手册得知我们需要的数据连续存放在0x00H~0x05H这6个地址中。首先通过写操作设置QMC5883L设置读取的起始地址为0x00H,然后通过IIC总线设置QMC5883L为读模式,读取起始地址为0x00H的内容。

    完成以上步骤QMC5883L采集得数据已经存放在QMCBUF这个数组里面,这些数据是原始数据,不可以拿来直接使用,需要做数学处理。得到最后的Angle_XY、Angle_XZ、Angel_YZ这个三个变量是我们可以直接使用的。

    3.3结论

    通过与手机指南针对比,当Angle_XY的结果为0.000000或者360.000000时,QMC5883L上的X轴指向正南方;当Angle_XY的结果为90.000000时,X轴指向正西方;当Angle_XY的结果为180.000000时,X轴指向正北方;当Angle_XY的结果为270.000000时,X轴指向正东方。通过这个结果得出,QMC5883L是顺时针计数的。

    QMC5883L是各向异性磁电阻传感器,易受周围磁场干扰,所以使用之前需要做参数校准。

    4拓展应用

    QMC5883L和GPS联合使用可以实现低速设备的简单定位导航功能。

    理念介绍:以电子罗盘X轴指向为低速设备的初始前进方向,得到一个初始的Angle_XY值,利用GPS模块得到低速设备当前点A的经纬度,和目的点B的经纬度联合使用,通过数学计算算出A、B两点与正南方的夹角[Θ],然后算出[Θ]与Angle_XY的差值[Δ]。我们只需要判断[Δ]的值是否为0,若为0说明低速设备朝向是目的点方向。通过这种方式,低速设备可以主动巡航到目标点。

    5结束语

    文章介绍了IIC总线的物理结构和通信协议,并实现了STM32与QMC5883L电子罗盘的通信,得出IIC通信占用的IO资源少,操作方便的结论。IIC总线协议是实现IIC总线传输的必要条件,把器件的地址当成器件的标识符是保证传输正确率的前提。IIC只是众多通信方式的其中一种,另外如SPI通信、CAN通信、无线通信、蓝牙通信等等在我们的日常生活中都可以碰得到,它们利用各自优势服务于物联网,丰富了人类物质精神需求,推进人机交互的发展。

    参考文献:

    [1] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2012:178-192.

    [2] 张洋,左忠凯,刘军.STM32F7原理与应用:HAL库版.上[M].北京:北京航空航天大學出版社,2017:465-484.

    【通联编辑:唐一东】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/22 22:44:16