|
引言
移动机器人的安全避障问题一直是该项研究的基本问题,目前解决此问题的基本方法是采用多路超声波传感器通过适当的安装角度达到获取多路测量信息的目的。对于多路超声波传感器的扩展,一般是在机器人系统控制核心之上进行。这样做的缺点在于,超声波传感器的扩展占用了大量的系统硬件资源,另外大量的测量信息的处理也浪费了系统软件资源。针对这一问题,笔者采用CAN总线扩展多路超声波传感器的作法。这种作法有几个优点:
首先,CAN总线具有良好的传输防错设计,保证了数据通信的可靠性;其次,多路超声波传感器的设计可由CAN总线智能节点实现,大大节省了系统硬件资源和软件资源;第三,由于CAN总线对于网络内的节点数在理论上不受限制,所以随着对移动机器人研究的不断深入,对于整个机器人系统的总体设计可以灵活地在CAN总线上进一步开发。本文介绍的CAN总线智能节点的设计以Philips公司的P87C591作为超声波传感器的控制核心。由于P87C591具有片上自带的CAN控制器并且为CAN的应用提供了许多专用的硬件功能,因此又将它作为了系统的CAN总线控制器,大大节省了主控系统的资源。CAN总线的收发器采用TJA1040。系统总体结构框图如图1所示。
机器人系统控制核心由ARM实现。其主要功能是处理需要复杂计算的信息,将经过处理的信息再送回CAN总线,并对整个网络进行管理。超声波智能节点控制系统的主要功能就是判断障碍物位置,将对移动机器人前进方向有阻碍的障碍物信息通过CAN总线传回主控系统,由主控系统作出相应处理并进行避障动作。本文将着重介绍超声波智能节点控制系统。
1超声波智能节点控制系统的硬件设计
超声波智能节点控制系统的硬件电路如图2所示。P87C591是51系列单片机,对于大部分熟悉51单片机的使用者来说它的使用方法十分简单。下面分别介绍各个组成部分。
1.1控制部分
超声波传感器的控制部分采用Philips半导体公司生产的P87C591。它是一个单片8位高性能微控制器,具有片内CAN控制器,是从80C51微控制器家族派生出来的。它采用了强大的80C51指令集,并成功地包括了Philips半导体公司SJA1000CAN控制器的PeliCAN功能;全静态内核提供了扩展的节电方式;振荡器可停止和恢复而不会丢失数据;改进的1∶1内部时钟预分频器在12MHz外部时钟速率时,实现500ns指令周期;内部具有的16KB内部程序存储器完全满足本系统要求。
作为系统控制核心,P87C591担负两个主要任务。其一是作为超声波传感器的控制核心,在其普通I/O口上扩展了超声波传感器的接收和发射部分电路,利用单片机软件功能产生40kHz信号并通过驱动放大发射出去,再利用接收部分电路进行接收。另外可以对其余口线继续进行超声波传感器的扩展,实现多个超声波传感器系统的设计。其二是利用P87C591的片内CAN控制器实现与CAN总线的连接。这样的设计改变了过去在机器人控制核心上进行超声波测距系统的设计,不但将超声波检测与处理的工作转移到了单片机上,大大节省了机器人控制核心的系统资源,还将CAN总线智能节点的大部分控制工作也转移到了单片机上,节省了硬件资源,同时CAN总线的采用大大提升了系统的抗干扰能力,使机器人控制系统更加稳定地工作。
1.2超声波传感器发射部分
超声波传感器发射部分硬件电路如图3所示。
LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。它是一个三级放大电路。
本部分硬件电路相对简单,主要就是利用LM386的驱动放大功能将单片机产生的40kHz方波放大输出。因为在智能超声波节点控制系统中单片机的工作相对较少,为节省硬件,不妨将40kHz方波的产生这部分工作交由单片机的定时器来完成,这样只需十分简单的硬件电路即可完成。UST1为超声波发射头。
1.3超声波传感器接收部分
超声波传感器接收部分的硬件电路如图4所示。
电路采用集成电路CX20106A。这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距超声波频率40kHz较为接近,可以利用它作为超声波检测电路。实验证明,其具有很高的灵敏度和较强的抗干扰能力。适当改变C1的大小,可改变接收电路的灵敏度和抗干扰能力。R1和C1控制CX20106A内部的放大增益,R2控制带通滤波器的中心频率。一般取R1=4.7Ω,C1=1μF。其余元件按图4取值。US_R1为超声波接收头,当收到超声波时产生一个下降沿,接到单片机的外部中断INT0上。
当超声波接收头接收到40kHz方波信号时,将会将此信号通过CX20106A驱动放大送入单片机的外部中断0口。单片机在得到外部中断0的中断请求后,会转入外部中断0的中断服务程序进行处理,在移动机器人的避障工作中,可以在中断服务程序设定需要单片机处理的最短距离,比如0.5m。对于距离大于0.5m的障碍物,可以不做处理直接跳出中断服务程序;对于距离小于或等于0.5m的障碍物信息,则在中断服务程序中进行处理并通过CAN总线上报机器人系统控制核心,由机器人系统控制核心发出命令指导机器人的避障动作。对于多超声波传感器系统,每一个超声波传感器在判断到对机器人行动有障碍物时可分别在其中断服务程序中对障碍物信息进行简单处理,上报给机器人系统控制核心的信息可以相对简单,只需机器人系统控制核心控制机器人的实际动作,比如左转30°,而不必机器人系统控制核心再次进行计算,这样