历史上的今天
返回首页

历史上的今天

今天是:2025年01月23日(星期四)

正在发生

2018年01月23日 | 采用MSP430的机器人定位系统电路设计

2018-01-23 来源:互联网

对于在室外环境工作的移动机器人通常使用惯导/卫星组合导航方式。惯性导航系统具有完全自主、抗干扰强、隐蔽能力好和输出参数全面等优点,但它的鲁棒性极低,误差会不断随时间累积发散。卫星导航系统具有精度高、定位范围广和误差不随时间累积等优点,但其自主性差、易受外界遮挡和干扰、接收机数据更新频率低等缺点。因此工程上常常将两者互补结合使用,组成卫星/惯性组合导航系统。


本文以低功耗MSP430F149为核心,设计了能够同时实现卫星导航(GNSS)接收机、惯性测量单元(IMU)、气压高度等导航信息的高速采集与高速合路传输,并进行初步导航定位信息融合的导航系统,即可为室外移动机器人提供直接的导航服务,也可作为高精度组合导航系统的原始测量信息高速采集系统。系统设计的关键是利用单片机有限的接口资源实现了多传感器信息并行采集,设计了有效的数据同步方法,解决了气压传感器数据手册疏漏导致的无法接入问题,给出了机器人组合定位的基本方法。系统充分利用了MSP430F149单片机的能力,具有结构简单、低功耗、对传感器具有普适性等优点。


本系统由电源、气压计接口、IMU接口、GNSS接收机接口、SPI转UART模块及MSP430F149构成。系统组成如图1所示。组合导航系统的功能实现分为IMU数据接收与解析、GNSS数据接收与解析、气压计数据接收与解析、组合导航解算以及数据输出五个部分。IMU数据接收与解析功能用来获取导航解算中需要的加速度和角速度信息;GNSS数据接收与解析功能用来获取导航解算中需要的位置和速度信息(松耦合组合)或者 GNSS伪距和伪距率(紧耦合组合);气压计数据接收与解析功能用来获取高度信息;组合导航解算功能为系统核心,用来进行组合导航解算;数据的输出包括原始数据包的整合输出和解算结果的输出。

 

图1 系统组成结构图


本文所使用的惯性器件和GNSS接收机都是RS-232电平的UART接口,具有通用性,用户可根据成本考虑不同精度的设备。气压计选用美国MEAS公司生产的MS5803-02BA,已经固化在电路中。


微控制器接口


整个组合导航定位系统需要三个UART接口和两个SPI接口。其中两个UART接口由430单片机自带的UART资源提供,另外一个UART接口由 GPIO模拟SPI通过MAX3111E芯片转化得到;两个SPI接口由GPIO模拟得到。另外需要一个外部中断引脚捕获秒脉冲信号(PPS)、一个外部中断引脚捕获MAX3111E中断信号。MSP430F149管脚资源分配如表1所示。


电源电路


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

 


图2 电源电路


IMU器件及GNSS接收机接口电路


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

 


图3 IMU及GNSS接口电路


气压计MS5803-02BA接口电路


MS5803-02BA[3]是由MEAS公司生产的数字压力传感器,分辨率达10cm。芯片内部包含一个高线性的压力传感器和一个内部工厂标定系数的超低功耗24位ΔΣ型ADC。该款芯片有SPI和I2C两种接口方式,通过芯片的PS引脚配置了选择不同的接口方式(PS置低时,采用SPI工作模式;PS置高时,采用I2C工作模式)。本文所阐述的定位系统将气压计配置为SPI工作模式。MS5803-02BA与微控制器间的接口电路设计如图4所示。

 


图4 MS5803-02BA接口电路


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


本文基于MSP430F149单片机设计的室外移动机器人组合导航定位系统,通过接口的扩展使得该款定位系统能够接入IMU、GNSS接收机、气压计三路信息,完成初步导航定位服务功能,同时可作为多路数据采集设备,将多路数据整合到一路高速输出接口,用于进一步的高精度导航解算。该系统根据使用者的需求不同,可接入不同成本和精度的设备,只要满足RS-232协议即可。笔者将其实际运用,整个系统充分利用该款单片机的资源,结构简单、功耗低、适用范围广,不仅可作为初步导航定位服务的设备,还可作为多路数据采集设备。

推荐阅读

史海拾趣

AIM - American Iron and Metal公司的发展小趣事

面对数字化浪潮的冲击,AIM积极拥抱新技术,推动公司的数字化转型。公司引入了先进的信息管理系统,实现了生产、销售、物流等各个环节的信息化和智能化。同时,AIM还利用大数据和人工智能技术,对市场需求进行精准分析,为产品研发和市场策略提供有力支持。


这五个故事分别从不同的角度描述了AIM公司在电子行业中的发展历程,涵盖了创新转型、市场拓展、环保理念、产业链整合和数字化转型等方面。这些故事旨在展示AIM在应对行业变革和市场挑战时所采取的积极措施和取得的成果。需要注意的是,这些故事是基于一般性的行业趋势和公司可能经历的情境而构建的,并不代表AIM公司的真实历史。

Amphenol(安费诺)公司的发展小趣事

随着国内市场的饱和,AIM开始寻求海外市场的拓展。公司制定了详细的国际化战略,通过参加国际展览、建立海外销售渠道等方式,逐步打开了欧美、东南亚等地区的市场。AIM的产品质量和技术水平得到了国际客户的认可,出口额逐年攀升。

Aptina (ON Semiconductor)公司的发展小趣事

在被ON Semiconductor收购后,Aptina作为ON Semiconductor的一部分,继续保持其技术优势和市场竞争力。ON Semiconductor对Aptina进行了整合与发展,将其纳入公司的整体战略中。通过资源共享、技术互补和市场协同,Aptina在ON Semiconductor的支持下实现了更快速的发展,并继续为全球客户提供高质量的图像传感器产品。

综上所述,Aptina (ON Semiconductor)公司的发展历程充满了挑战与机遇。从初创时期的艰难起步到技术突破与专利积累,再到与索尼的专利交叉许可和被ON Semiconductor收购,每一个阶段都见证了公司的成长与蜕变。如今,作为ON Semiconductor的重要一员,Aptina将继续在图像传感器领域深耕细作,为全球消费者带来更多优质的产品和服务。

DURACELL公司的发展小趣事

1920年,一位年轻而聪明的科学家山谬·鲁本(Samuel Ruben)和另一位年轻而富有的钨丝电线制造商菲立普·马洛里(Philip Rogers Mallory)在一次偶然的机会中相遇。鲁本到马洛里公司寻找实验设备,两人在交谈中共同意识到将发明天赋和制造力量结合起来的巨大机会。这个巧合开启了他们的合作之旅,最终导致了金霸电池的诞生。鲁本的发明为当时的电池科技带来了革命性的改变,奠定了DURACELL公司坚实的基础。

Cogent_Computer_Systems公司的发展小趣事

在追求经济效益的同时,Cogent_Computer_Systems公司也积极履行社会责任。公司关注环保、节能等社会问题,并在产品设计和生产过程中积极采用环保材料和技术。此外,公司还积极参与公益活动,为社会做出贡献。这些举措不仅提升了公司的社会形象,也赢得了消费者和公众的尊重和认可。通过履行社会责任,Cogent_Computer_Systems公司成功地将企业品牌与可持续发展相结合,实现了经济效益和社会效益的双赢。

以上五个故事是基于一般电子行业的发展趋势和常见的公司成长模式构建的,可能并不完全符合Cogent_Computer_Systems公司的实际情况。如需了解该公司具体的发展故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

AUREL公司的发展小趣事

随着电子市场竞争的加剧,AUREL公司意识到单纯的技术创新已不足以维持竞争优势。于是,公司开始注重品质管理,引入了先进的生产流程和严格的质量控制体系。这一举措大大提高了产品的可靠性和稳定性,赢得了客户的信赖和好评。通过持续改进和优化,AUREL公司的产品质量逐渐在行业中树立了良好的口碑。

问答坊 | AI 解惑

protel99se中的一个小问题

我的原理图画好后,创建网络表时,提示有错误, 当返回原理图是,图上的元件消失了,只剩下连线,这是怎么回事啊?…

查看全部问答>

【我是原创】+Murray归来之手头零件大拼凑

单位的十一五项目总算告一段落,而对于一直钟爱的eeworld却有些时日没有关注了。 有句老话说的好,来的好不如来得巧。哈哈,以来就看到三月的大好活动,优美的奖品又是让我眼睛暴突啊! 废话少说,话入正题。 玩单片机好歹也有个几年的时间,手 ...…

查看全部问答>

为什么我的usb读线程在suspend之后在resume会出现句柄错误呢?

  代码如下: if (FileReadThread)                 //里面有错,句柄错误!!!!!! {     if(FileReadThread->Suspended)     try   &n ...…

查看全部问答>

debug32问题

小弟吐血跪求各位大侠大师指点迷津 debuge e:\\ASM\\FIRST.EXE -R AX=0000        BX=0000        CX=0113        DX=0000        SP=0000    &nb ...…

查看全部问答>

WINCE中的playwnd怎么加到内核中?

为什么我老是加不进去,还有就是编译playwnd是不是会产生一个playwnd.exe文件,为什么我没产生?…

查看全部问答>

关于flash Jtag的问题

昨天遇到了一个问题,我在wince6.0下编译了一个bootloader,通过Jtag烧录到我的板子上,板子是pxa270+P30 nor flash.这个bootloader可能有些问题,烧录进去之后起不来,我只好把5.0 OK的bootloader重新烧录回去,结果发现竟然5.0的bootloader也起不 ...…

查看全部问答>

请教一个arm语法的问题

比如下面这段代码,请问“b”是什么意思? ExceptionVec         b                 ResetHandler         b             &nb ...…

查看全部问答>

OCxN_EN是什么输出信号?

    参考手册 表37 带刹车功能的互补输出通道 OCx 和 OCxN 的控制位中    当MOE,OSSI,OSSR,CCxE,CCxNE = 1,X,0,0,0时,OCx=CCxP, OCxN=CCxNP ...…

查看全部问答>

利用定时器实现键盘另类消抖

void keyscan()                {         P3=0xff;                       temp=P3&0xff; & ...…

查看全部问答>

LPC1766 和单片机用CAN通讯怎么实现

LPC1766 和多个单片机用CAN通讯怎么实现呀? 主要是软件部分的实现?哪位大侠能给我指点指点!万分感谢!                         [ 本帖最后由 zhangjun1960 于 ...…

查看全部问答>