1 引言
在移动机器人超声测距导航系统中,单一的超声波传感器因其发射角等固有的不足难以完成对环境的全面探测。因而在实践中,常常用到大量的超声传感器阵列。
然而,专门针对这种情况设计的数据采集处理平台却很少。同时,在远距离测量时,超声回波信号很微弱并受到了较大噪声干扰。在这种情况下,传统的基于电路方法的超声测距仪很难实现回波的提取,常常造成误判。而已有的基于PC机的数据采集卡却又带来了便携性和适用性差的问题[1]。
本文介绍的基于单片机的数字信号采集处理系统,针对上述情况,采用了八通道设计以适合多超声传感器信号的采集,并引入了数字信号处理算法,通过对超声回波信号的数字处理,可以精确地检测回波,完成高精度测距的任务。另外基于该平台进行的多传感器数据融合处理使得移动机器人可以获得更准确的环境信息,提高了环境感知的能力。
2 系统硬件电路设计
图1 系统结构框图
如图1所示,系统的主要硬件组成包括:前端微弱信号调理模块、A/D转换模块、微控制器模块、存储器模块、串行通讯模块以及扩展模块等。多个超声波换能器获取的回波信号输入系统后,经过各自前端调理电路处理,采样转化为数字信号,然后存放至系统SRAM芯片中。AT89C52单片机从SRAM芯片中读取数据并进行回波提取处理以及多通道融合处理,最后根据需要将处理结果通过RS-232标准接口送往上位PC机。同时,PC机的控制指令也可以通过该接口传送给单片机。
2.1微弱信号调理电路
在一般情况下,超声回波信号十分微弱,转换电信号的幅值也较小,必须采用高增益的放大电路。同时,复杂的工作环境又使得超声回波信号中包含了较多的噪声干扰。因此在设计调理电路时,既要进行信号的放大又要做适当的滤波处理。
由于系统要对多个超声传感器信号进行同步处理,因而设计了八通道并行的调理电路。每一个通道如图2所示。电路采用两级AD公司的高性能、超低失调电压运算放大器OP07串连实现信号的放大,并采用LM741芯片完成低通滤波处理。其中,在信号放大的第二级上设计了两个精密电位器R5和R6,其功能分别用于放大倍数和零点漂移的调整,以适合信号的下一步处理。
图2 微弱信号调理电路
超声回波信号经过调理电路后,八个输出端(通道一至通道八)将依次连接到A/D转换器的八个模拟信号输入端,以完成信号的模数转换处理。
2.2 A/D转换电路
A/D转换电路采用了MAXIM公司推出的8位8通道高速模数转换芯片MAX158[2]。该芯片具有转换速度快、功耗低、精度高等特点。每通道转换时间仅为2.5μs,能够满足移动机器人导航时实时信号处理的要求。
MAX158芯片的外部模拟信号输入端AIN1-AIN8分别连接八路来自信号调理电路的超声回波信号,DB0-DB7端为转换结果的三态数据缓冲输出端,连接AT89C52单片机的八位数据线。 端为片选信号输入端,片选信号来自单片机的P1.4脚。REF+和REF-为参考电压的正负极输入端(分别对应全为1和全为0的输出),连接 +5V标准电压和GND。A0-A2端控制了芯片内部的多路开关。MAX158根据这三个端口的输入信号选择通道,并对此通道模拟量进行跟踪和保持。
MAX158芯片提供了两种不同的工作方式,即MODE0和MODE1。系统采用MODE1流水线读数方式,工作时序如图3所示:一个读信号(置 端和 端为低电平)会启动一个新的转换,并随即取走上一次转换的结果。两个读信号至少间隔2.5μs以保证数据的转换和读取。 端在 端或 端的上升沿转为高电平,并在一次转换过程结束时出现低电平。
2.3 微控制器模块
系统采用的AT89C52型单片机内含8KB的Flash程序存储器、256字节的RAM、具有32根I/O 线、3个可编程定时器[3]。相比其他类型单片机而言,AT89C52单片机具有较多的片内资源, 既保证了数据处理代码的存储空间,又能够在很少外围电路的情况下构成功能完善的信号采集系统。系统部分电路连接如图4所示。
图4 系统部分电路连接图
2.4 存储器模块
由于系统要实时采集多路传感器信号,对数据存储要求较大。因此我们选用了可存储256K*8位信息的DCM8256芯片。DCM系列高速数据不挥发存储器,具有体积小巧,读/写速度快(小于100ns、可达50ns),读/写方式简单的优点,可在-40℃-+85℃温度下可靠工作,并且即使在有特殊干扰的情况下(如强磁场、电源急剧反复波动等),也能达到万无一失保存数据的效果,因而十分适合移动机器人野外作业的需要。
由于AT89C52单片机的最大寻址空间为64K,而DCM8256的空间为256K,因而要对寻址进行扩展。地址扩展的方式有两种,一种方法是DCM8256的低16位地址直接与MPU的地址线相连,而高两位地址由硬件逻辑实现;另一种方法是利用MPU的I/O口进行扩展。第一种方法虽然占用I/O资源较少,但电路复杂,需要额外的硬件。系统采用第二种方法,如图4右半部分所示,将DCM8256芯片的A16端和A17端分别连接到AT89C52单片机的P1.6端和P1.7端,片选信号接到P1.5端上。寻址操作可以通过简单的软件编程来实现。
2.5 串口通讯模块
在移动机器人超声测距导航系统中,超声测距的结果要上传至移动机器人的主处理器,由其控制机器人采取相应的对策;主处理器也要发送指令控制超声数据的采集和处理。因此单片机和主处理器之间的通讯是整个系统不可或缺的一个组成部分。
在我们的系统中,AT89C52单片机为下位机,移动机器人主处理器为上位机,二者通过RS-232串行口接收或上传数据和指令。在此,系统使用了集成电平转换芯片MAX232来进行RS232C/TTL 电平转换。MAX232的引脚11和引脚12直接和AT89C52的TXD、RXD串行口连接,引脚13和引脚14与RS232连接[4]。
另外,由于超声测距系统受环境因素影响较大,在测量时要考虑到环境温度、自身速度等相关信息。对此系统额外采用了扩展模块设计,在电路中集成了温度、速度测量的电气处理模块,方便信息的综合分析。
3 系统软件设计
系统软件主要由单片机处理软件和PC机监控软件两部分组成。
3.1 单片机软件设计
单片机软件主要实现数据的采集和存储、回波的数字处理以及串口通讯等功能。主流程框架如图5所示。根据超声波测距具有的周期性特点,系统通过PC机设定单片机的采集周期。运行一次采集存储子程序即完成一个周期的采集,然后系统调用数据处理子程序进行回波信号的数字处理,并根据串口命令使用通讯子程序将结果发送至PC机。
图5 单片机软件主框架 图6 采集存储子程序流程
在采集存储子程序中,每次模数转换结束时对SRAM频繁的开关操作会占用系统很大的时空开销,影响系统的实时性。对此,系统采用了增设缓冲区的方法。每次A/D转换结束,数据被送往开辟在单片机内部的缓冲区而不是立即写入外存。当八个通道采集完一轮后,再将缓冲区的内容一起写入外部存储器(流程如图6所示)。这样,在保证采样频率一致的前提下有效的提高了系统的实时性。
3.2 PC机软件设计
系统监控软件使用VC++6.0语言开发,它的作用是通过串口命令控制单片机工作,并抽象硬件设计,为移动机器人导航提供环境信息。
应用该软件,可以实现PC机对单片机的参数及命令设定、数据查询、数据存取以及曲线绘制等功能,并可以通过对数据的进一步融合处理,实时获取障碍物的距离、位置等信息,完成当前作业环境的建模,实现环境感知。软件的运行界面如图7所示。
4 小结
图7 软件运行界面
本系统专门针对移动机器人导航时的多超声传感器信息融合应用而设计。经实验证明,系统简单实用、稳定可靠,完全达到设计目的。
本文作者创新点:(1)结合移动机器人多超声测距的实际,设计了多通道的融合处理系统,软硬件简单明了,工作可靠,特别适合多传感器信息融合应用。(2)良好的噪声抑制能力和较高的测量精度。由于超声回波信号十分微弱并含有噪声,S/N较小,抗干扰性不强。以往基于模拟电路设定阈值来判断回波的做法往往会受到噪声信号的干扰而造成误判。本系统使用数字信号处理方法,将超声回波数字处理,减少了误判的概率,解决了高噪声背景下的回波识别问题,增加了系统的可靠性。(3)系统基于单片机设计,电路板设计合理紧凑,使得系统具有良好的便携性,相比于基于PC机的数据采集卡更加适合移动机器人应用。(4)良好的抗干扰能力。通过PCB 板上的一些设计及工控机箱来加强对电磁干扰、电压扰动的适应能力, 能够适应恶劣的工作环境。
参考文献:
[1]曹茂永,王霞.超声测距数字信号采集系统[J].电测与仪表,2000,37(8):26-27
[2]MAXIM.CMOS High-Speed 8-Bit ADCs with Multiplexer and Reference MAX158[Z].1996
[3]王幸之,钟爱琴等.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社2004:20-21
[4]高泽利,李颖.六通道数据采集及处理系统的研制[J].微计算机信息,2005,21(9-1): 94-97