专注于武汉中小企业服务解决方案提供商

电脑维修、布线、安防监控、数据恢复、采购、回收

所属分类 > 家电维修 > 正文

基于MCU的室外移动机器人组合导航定位系统 (mcu外设接口有哪些)

编辑:rootadmin
对于在室外环境工作的移动机器人通常使用惯导/卫星组合导航方式。惯性导航*[1]具有完全自主、抗干扰强、隐蔽能力好和输出参数全面等优点,但它的鲁棒性极低,误差会不断随时间累积发散。卫星导航*具有精度高、定位范围广和误差不随时间累积等优点,但其自主性差、易受外界遮挡和干扰、*数据更新频率低等缺点。因此工程上常常将两者互补结合使用,组成卫星/惯性组合导航*。本文以低功耗MSPF为核心,设计了能够同时实现卫星导航(GNSS)*、惯性测量单元(IMU)、气压高度等导航信息的高速采集与高速合路传输,并进行初步导航定位信息融合的导航*,即可为室外移动机器人提供直接的导航服务,也可作为高精度组合导航*的原始测量信息高速采集*。*设计的关键是利用单片机有限的接口资源实现了多传感器信息并行采集,设计了有效的数据同步方法,解决了气压传感器数据手册疏漏导致的无法接入问题,给出了机器人组合定位的基本方法。*充分利用了MSPF单片机的能力,具有结构简单、低功耗、对传感器具有普适性等优点。1总体设计本*由电源、气压计接口、IMU接口、GNSS*接口、SPI转UART模块及MSPF构成。*组成如图1所示。组合导航*的功能实现分为IMU数据接收与解析、GNSS数据接收与解析、气压计数据接收与解析、组合导航解算以及数据输出五个部分。IMU数据接收与解析功能用来获取导航解算中需要的加速度和角速度信息;GNSS数据接收与解析功能用来获取导航解算中需要的位置和速度信息(松耦合组合)或者GNSS伪距和伪距率(紧耦合组合);气压计数据接收与解析功能用来获取高度信息;组合导航解算功能为*核心,用来进行组合导航解算;数据的输出包括原始数据包的整合输出和解算结果的输出。

整理分享基于MCU的室外移动机器人组合导航定位系统 (mcu外设接口有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

内容相关其他词:mcu外围电路,mcu外设接口有哪些,mcu常用外设,基于mcu控制模块的流程图,mcu装置,基于mcu控制模块的流程图,mcu常用外设,mcu常用外设,内容如对您有帮助,希望把内容链接给更多的朋友!

图1*组成结构图本文所使用的惯*件和GNSS*都是RS-电平的UART接口,具有通用性,用户可根据成本考虑不同精度的设备。气压计选用美国MEAS公司生产的MS-BA,已经固化在电路中。2硬件电路设计2.1微*接口整个组合导航定位*需要三个UART接口和两个SPI接口。其中两个UART接口由单片机自带的UART资源提供,另外一个UART接口由GPIO模拟SPI通过MAXE芯片转化得到;两个SPI接口由GPIO模拟得到。另外需要一个外部中断引脚捕获秒脉冲信号(PPS)、一个外部中断引脚捕获MAXE中断信号。MSPF管脚资源分配如表1所示。

2.2电源电路本*供电需求为3.3V供电,因此采用AMS稳压芯片,接入5V电源即可输出3.3V稳定电压,可提供1A电流,满足*供电需求。电路设计如图2所示。

图2电源电路2.3IMU器件及GNSS*接口电路IMU器件及GNSS*都采用UART接口方式接入,采用RS协议。因此可使用单片机上自带的两个UART接口,但是需要进行TTL电平与RS电平转换。这里采用常见的MAX芯片,电路设计如图3所示。

图3IMU及GNSS接口电路2.4气压计MS-BA接口电路MS-BA[3]是由MEAS公司生产的数字压力传感器,分辨率达cm。芯片内部包含一个高线性的压力传感器和一个内部工厂标定系数的超低功耗位ΔΣ型ADC。该款芯片有SPI和I2C两种接口方式,通过芯片的PS引脚配置了选择不同的接口方式(PS置低时,采用SPI工作模式;PS置高时,采用I2C工作模式)。本文所阐述的定位*将气压计配置为SPI工作模式。MS-BA与微*间的接口电路设计如图4所示。基于MCU的室外移动机器人组合导航定位系统 (mcu外设接口有哪些)

图4MS-BA接口电路MS-BA的控制命令包括复位命令、温度ADC命令、气压ADC命令、ADC读取命令、PROM读取命令。控制命令如表2所示。控制命令通过SDI口移位输入,响应结果从SDO移位输出。输入的电平判定在时钟信号的上升沿,输出的电平判定在时钟信号的下降沿。输出的气压值可以进行温度补偿,需要利用芯片内部PROM中的系数来补偿。ADC读取命令输入之后,输出位ADC结果;PROM读取命令输入之后,输出位补偿系数。

下面是读取ADC的C语言代码:CSN_OFF_MS();//CS置低SPI_WRITE_8BIT(CMD);//SDI移入8位CMDdelay_ms();//延时msCSN_ON_MS();//CS置高CSN_OFF_MS();//CS置低SPI_WRITE_8BIT(0x);//SDI移入8位0xresult=SPI_READ_BIT();//SDO移出位CSN_ON_MS();//CS置高下面是读取PROM的C语言代码:CSN_OFF_MS();//CS置低SPI_WRITE_8BIT(CMD);//SDI移入8位CMDresult=SPI_READ_BIT();//SDO移出位CSN_ON_MS();//CS置高结合器件的使用手册及手册疏漏的地方,使用MS-BA时需要注意:1、温度和气压ADC命令发送之后,芯片内部需要一定的时间进行采样转换,具体时间与过采样率(OSR)有关,最大需求时间为ms,因此本文采用的延时时间为ms;2、片选信号CS的下降沿到时钟SCLK信号的第一个上升沿至少要有ns的时间延迟,否则命令无*确写入芯片;3、8位的ADC读取命令之后,必须保持CS片选信号持续为低,再产生位时钟信号输入,将位的ADC结果读取出来(即一个命令字为8位,但实际需要个连续的时钟周期才能完整读取ADC结果);4、对于PROM读取命令同ADC读取命令,一共需要个连续的时钟周期完成,其中8位命令字输入,位数据读出。5、对于所有从SDO移位输出数据的同时,都需要SDI输入端保持低电平。2.5SPI转UART电路由于MSPF的片上UART资源都被IMU器件和GNSS*占用,因此需要扩充一个UART接口才能满足定位*与PC机间的通信。为此将MSPF上的GPIO模拟SPI,再通过MAXE芯片转成UART接口。MAXE是MAXIM公司推出的全功能收发器,内部包含UART和RS电平转换两个*的部分。UART部分包括兼容于SPI的串行接口、可编程波特率发生器、发送移位寄存器、接收移位寄存器、8字长的FIFO以及4种可*中断发生器;RS部分包括电泵电容、硬件关断(SHDN管脚),具有±kV静电保护作用。它可以选择1.MHz或3.MHz两种晶振作为外部晶振,芯片能够工作在bps~kbps波特率,本文使用的是3.MHz晶振。MAXE与MSPF连接电路如图5。

图5SPI转UART电路MAXE的控制命令分为写配置命令、读配置命令、写数据命令以及读数据命令四种。本文写入芯片的配置命令是0xE,8bit数据长度、使能FIFO、发送中断使能、波特率bps。数据的写入需要在每个字节前面加上0x,例如若要发送字节0x,则需要从DIN端移位输入0x。下面是连续发送n个字节的C语言代码:SPI_WRITE_BIT(0xE);//写配置命令delay_ms();//延时msSPI_WRITE_BIT(0x+DATA1);//发送第1个数据DATA1delay_ns();//延时nsSPI_WRITE_BIT(0x+DATA2);//发送第2个数据DATA2……delay_ns();//延时nsSPI_WRITE_BIT(0x+DATAn);//发送第n个数据DATAn使用MAXE时需要注意:1、片选信号CS的下降沿到时钟SCLK信号的第一个上升沿至少要有ns的时间延迟;2、芯片判定片选信号CS失效时,需要CS管脚保持高电平的时间至少为ns。因此当需要连续发送数据时,两个写数据命令之间至少需要ns,建议间隔ns;3、写配置命令需要晶振工作稳定,因此可以在写配置命令后再读配置,直到写入和读出的配置数据相应位相同时才保证芯片按需求配置完毕。3软件设计3.1GPIO模拟SPI实现方法使用GPIO模拟SPI,对选定的IO口进行时序上的电平*作,模拟出SPI时序。本文将SPI的电平*作采用宏定义的方式,可参考表3中的源代码。

程序按照SPI逻辑关系使用上述的宏定义,可以在选定的IO端口产生SPI信号,并且可以灵活的控制每个CS有效期间的时钟数。使用GPIO模拟的SPI具有*作直观、灵活可变等优点。相比较模拟得到的SPI,*上自带的SPI接口基本不占用*资源,发送和接收的移位、时钟信号的产生都交由内部SPI模块处理。而GPIO模拟的SPI需要*不断对IO进行*作,因此会占用*处理时间。时钟信号也因对电平*作消耗机器周期,导致时钟信号速度有限。3.2数据的采集和故障维修IMU和GNSS*的数据会主动发送到单片机的UART接口,本文采用中断接收的方式接收数据,将每次到来的一个字节循环存储在指定的存储区;气压计需要单片机查询式获取高度信息。因此当需求IMU或者GNSS信息的时候,需要在存储区内扫描数据,扫描依据是设备发送一帧数据的协议(帧头、帧尾、CRC等),再根据协议获取相应物理量的数值;当需要高度信息的时候,需要单片机对气压计发送控制字获取信息。在对IMU和GNSS信息扫描时需要一个变量ptr保存有效数据的首*在存储区内的偏移*,为了不重复使用已用数据,需要在利用完信息后,*这一帧有效数据的帧头帧尾。另外需要注意,使用循环存储数据和扫描取用这种方式,需要数据的处理速度比数据的接收速度快,否则旧数据会被新数据覆盖。3.3高度计算方法高度信息的获取需要通过MS-BA获取的气压信息转换得到。对这款气压计的*作,需要先在芯片内部的PROM获取C1~C6六个参数,再获取温度ADC结果D1和气压ADC结果D2,最后利用官方提供的计算公式计算得到带补偿的气压值。气压值获取的软件流程图如图6。

图6高度计算流程图按照气压计的用户手册中提供的计算公式,最后可以计算得到一个经过温度补偿的标准气压值,单位mbar。高度信息的获取还需要将气压值经过函数关系转换。高度h和标准大气P之间有如下函数关系:

Th=.K,是g0对应高度下的温度下限值;β=-6.5K/km,是温度的垂直变化率;H=0m,是g0对应的高度;Ph=Pa,是g0对应高度下的气压下限值;R=.m2/(K●s2),是气体常数;g0=9.m/s2,是海平面重力加速度。在气压与高度的关系转换中,本文采用分段线性化的方法拟合它们的非线性关系。在不同气压值区间内,线性化公式得到h=a●P+b,取得不同的线性参数a、b,参考表4。

3.4组合导航的时间对准进行组合导航滤波解算时,从IMU和GNSS*接收到的数据在时间上应该是同步的,因为如果在一个数据融合点上,进入Kalman滤波器的来自两个子*中的数据来自不同的时间点,会给滤波计算带来误差,同时也会给校正计算带来影响。GNSS*输出的导航数据都带有精确的时间标签,而从IMU输出的数据只有一个相对时间标签。以GNSS*的时间标签作为时间基准,分析时间差的组成。*时间示意图如图7所示。

图7*时钟示意图3.4.1时间差分析当一个GNSS数据(1Hz)到来时,*产生一个秒脉冲信号(PPS),用于时间对准。GNSS*本身存在数据时延:*整个计算过程会产生一个解算时间延迟△t1、从卫星导航*和惯导*输出的数据分别经过McBSP和RS-数据接口输入导航解算处理器会产生一定的传输延迟△t2。因此在PPS信号前的△t1+△t2时刻才是当前接收到的GNSS数据帧的真实时刻。IMU数据处理时间相对于递推时间来说很小,可以忽略。另外PPS脉冲信号和惯性测量信号之间的时间差△τ,它描述GNSS绝对时间和IMU相对时间之间的关系,使得GNSS和IMU统一在同一个时间标准下。3.4.2处理思想根据总时间差△T=△t1+△t2+△τ,找到IMU数据对应的插值时刻。通过时间△T就可以获得对准时间点与最近的两个惯性采集时刻,其后对时间同步点两侧时间点上,即图中t(k-1)和t(k)时间点的惯性数据进行线性插值运算,就可以获得了惯导数据和GNSS*数据在同一时间点上的同步化测量数据。3.4.3实施方法GNSS*解算时间△t1由*提供。传输时间△t2通常为一个固定时间,使用示波器分别测量GNSS*发送时间和导航解算电路的接收时间,再将两个时间作差即可获得。△τ的获取需要开启MSPF的计时器和外部中断,通过中断计时的方式获得。具体方法是:通过将PPS信号接入导航处理器的外部中断接口,采用边沿触发方式触发中断事件的发生。中断事件启动计时器工作。当通过串口中断方式接收到IMU数据时,读取计时器的值,即可得到IMU数据相对于PPS的延迟时间△τ。结论本文基于MSPF单片机设计的室外移动机器人组合导航定位*,通过接口的扩展使得该款定位*能够接入IMU、GNSS*、气压计三路信息,完成初步导航定位服务功能,同时可作为多路数据采集设备,将多路数据整合到一路高速输出接口,用于进一步的高精度导航解算。该*根据使用者的需求不同,可接入不同成本和精度的设备,只要满足RS-协议即可。笔者将其实际运用,整个*充分利用该款单片机的资源,结构简单、功耗低、适用范围广,不仅可作为初步导航定位服务的设备,还可作为多路数据采集设备。本文来自互联网收集整理,由家电维修技术小编精心转载,更多相关文章请到维修交流:汤梓红

标签: mcu外设接口有哪些


本文链接地址:https://www.iopcc.com/jiadian/92680.html转载请保留说明!

上一篇:10个MCU常用的基础知识,收藏了! (mcu基础)

下一篇:超高频发射电路图详解 (超高频发射电路图)

推荐内容:

海尔燃气壁挂炉故障代码 (海尔燃气壁挂炉01故障该怎么去解决?)

海尔燃气壁挂炉故障代码 (海尔燃气壁挂炉01故障该怎么去解决?)

排烟故障堵塞,风压开关损坏缺水故障压力过低洗浴NTC故障、损坏供暖NTC故障、损坏 ...

爱仕达AI-F2159C电磁炉进水后不开机的维修 (爱仕达ai-f2025e使用说明)

爱仕达AI-F2159C电磁炉进水后不开机的维修 (爱仕达ai-f2025e使用说明)

达AI-FC电磁炉说进水不开机了,拆机看大吃一惊全是面粉,先清除面粉测量板子保险炸了功率管穿了,电源周围有水渍 ...

wifi穿墙模式怎么设(家里的wifi怎样设置穿墙模式) (wifi穿墙模式怎么设置视频迅捷)

wifi穿墙模式怎么设(家里的wifi怎样设置穿墙模式) (wifi穿墙模式怎么设置视频迅捷)

由器怎么设置路由器亮红灯哪种故障路由器登录入口和光猫的区别路由器怎么重启路由器怎么连接路由器桥接教程详 ...

修理彩电时巧用信号注入法 (彩电维修免费教学视频)

修理彩电时巧用信号注入法 (彩电维修免费教学视频)

但是有种方法可能行的通,最适合在维修点上,很多时候有修好的电视放在那儿,可以将其作为信号发生器用,根据 ...

华为手机数据怎样迁移到苹果手机上?一招教你搞定 (华为手机数据怎么转移到oppo手机)

华为手机数据怎样迁移到苹果手机上?一招教你搞定 (华为手机数据怎么转移到oppo手机)

招教你搞定换*是一个麻烦的事情,更何况是换成与原来不同*的*。那么,怎么将华为*上的数据迁移到苹果定位器上呢 ...

红米Note5开始推送mlUl11,你升级系统了吗? (红米note5推送miui12)

红米Note5开始推送mlUl11,你升级系统了吗? (红米note5推送miui12)

水桶机的一代经典,三段式机身,采用5.英寸FHD+:9全面屏,采用骁龙处理器,纳米制作工艺,比骁龙图像处理要强 ...

360浏览器如何修改主页 (360浏览器如何修改保存的密码)

360浏览器如何修改主页 (360浏览器如何修改保存的密码)

一款不错的软件,但是很多小伙伴不喜欢的主页,那么如何修改这个主页呢,其实我们只需要打开,点击设置,在里 ...

Win10电脑频繁蓝屏如何维修?Win10电脑频繁蓝屏的怎么修理 (window10电脑老是蓝屏)

Win10电脑频繁蓝屏如何维修?Win10电脑频繁蓝屏的怎么修理 (window10电脑老是蓝屏)

用久了以后都会出现各种各样的问题!最近有小伙伴反映在使用Win*的过程中遇到了电脑频繁蓝屏重启的故障,那么我 ...

小白装机大师怎么使用 (小白装机大师win10)

小白装机大师怎么使用 (小白装机大师win10)

一键重装软件也是层出不穷,其中小白装机*就目前热门的一款软件一键重装软件工具,那么,小白装机*怎么使用呢? ...

Win10开始菜单打不开如何维修?Win10开始菜单打不开的怎么修理 (Win10开始菜单打开后在哪里可以看到)

Win10开始菜单打不开如何维修?Win10开始菜单打不开的怎么修理 (Win10开始菜单打开后在哪里可以看到)

始菜单来进行关机或者其它*作,但最近有不少小伙伴在点击的时候却发现开始菜单无法打开,那么我们要是遇到这种 ...

Copyright © 2023 武汉电脑维修 All Rights Reserved.

鄂ICP备2023003026号

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢!邮箱: opceo@qq.com