LPC2119是Philips公司推出的支持实时仿真和跟踪的ARM7TDMI-S微处理器,嵌入128KB高速Flash存储器。它采用3级流水线技术,取指、译码和执行同时进行,能够并行处理指令,提高CPU运行速度。由于其具有非常小的尺寸和极低的功耗,非常适合小型化应用。片内多达64KB的SRAM,具有较大的缓冲区规模和强大的处理能力。LPC2119内部集成2个CAN控制器、2个32位定时计数器和4个ADC单元电路。
1 硬件结构
控制器LPC2119主要用来产生2路PWM信号以及处理传感器信息,实现对小车的智能控制。本系统采用IR2110作为H桥电路驱动芯片,用4片STP60NE06搭接H桥电路驱动直流电机,并利用光电编码器检测电机转速;采用16路超声传感器系统作为系统的避碰和简单测距;采用光敏传感器实现机器人对光源的感知和寻找;采用碰撞传感器感知碰撞,使机器人能做出急时处理;采用无线通信芯片PTR2000实现机器人与计算机的无线通信。
1.1 电机的PWM控制
IR2110是美国IR(International Rectifier)公司推出的一种双通道、高压、高速的功率器件栅极驱动的单片式集成驱动器。它把驱动高压侧和低压侧MOSFET或IGBT所需的绝大部分功能集成在一个高性能的封装内,外接很少的分立元件即能提供极快的开关速度和极低的功耗。其特点在于:将输入逻辑信号转换成同相位低阻抗输出驱动信号,可驱动同一桥臂上的2路输出,驱动能力强,响应速度快;工作电压较高,可达600V;内设欠压封锁;成本低、易于调试;电路芯片体积小,为DIP14封装。高压侧驱动采用外部自举电容上电,与其他IC驱动电路相比,在设计上大大减少了驱动变压器和电容的数目,降低了产品成本,减小了体积,提高了系统的可靠性。这种适用于驱动功率MOSFET和IGBT的自举式集成电路,在电源变换、电机调速等功率驱动领域中获得了广泛的应用。
LPC2119单片机的PWM功能建立在标准定时器上,它具有32位的定时控制器及预分频控制器、7个匹配控制器,可实现6个单边PWM或3个双边PWM输出,也可以使用这两种类型的混合输出。此系统使用端口PWM0和PWM1输出两路PWM信号,分别控制移动机器人的2个驱动电机。PWM信号经过光电耦合器形成两路相位相差180°的信号加到IR2110的HIN和LIN引脚上,实现对同一桥臂上的两个MOSFET开关的控制,原理如图1所示。
HIN为高电平期间,Q1、Q4导通,在直流电机上加正向工作电压;HIN为低电平期间,LIN端输入高电平,Q2、Q3导通,在直流电机上加反向工作电压。因此电枢上的工作电压是双极性矩形脉冲波形。由于机械惯性的作用,矩形脉冲电压的平均值决定电动机的转向和转速。
1.2 超声传感器系统
为减轻控制器LPC2119的负担,超声传感器系统由Atmel公司的AT89C1051单片机控制。1051单片机是含有一个1KB可编程E2PROM的高性能微控制器,它与工业标准MCS-51的指令和引脚兼容。它为很多嵌入式控制应用提供了一个高度灵活、有效的解决方案。AT89C1051有以下特点:1KB的E2PROM、128B的RAM、15根I/O线、2个16位定时/计数器、5个二级向量中断结构、1个全双向的串行口且内含精密模拟比较器和片内振荡器,具有4.25~5.5V的电压工作范围及24MHz工作频率,同时还具有加密阵列的二级程序存储器加锁、掉电和时钟电路等。此外,AT89C1051还支持两种软件设置的电源节电方式。空闲时,CPU停止,而RAM、定时/计数器、串行口和中断系统继续工作。掉电时,保存RAM的内容,但振荡器停振以禁止芯片其他功能,直到下一次硬件复位。
1051控制每60ms发送一路超声波,检测回波时间,并完成距离的计算。这样16路超声波循环检测一次约为1s,在常温时超声波的速度约为344m/s,可以计算出障碍物的距离,最后将超声波传感器编号及距离信息传送给LPC2119。
超声波发射及接收子系统如图2所示。1051利用P1.0引脚向外发送40kHz的脉冲信号,此信号作为4-16译码器74HC154的使能信号,引脚P1.1~P1.4作为译码信号,分别对应编号0~15的超声波传感器。此信号经过9013放大后推动换能器产生40kHz的超声波信号。
LM567是一片锁相环电路,其5、6脚外接的电阻和电容决定了内部压控振荡器的中心频率f2,f2≈1/1.1RC。其1、2脚分别通过电容器接地,形成输出滤波网络和环路单级低通滤波网络。2脚所接电容决定锁相环路的捕捉带宽:电容值越大,环路带宽越窄。LM567的工作电压为4.75~9V,工作频率从直流到500kHz,静态工作电流约8mA。
超声子系统基本功能为:当接收器接收到超声波回波时,产生交流小信号,此信号经过LM358组成2级放大电路后,幅值达25mV以上。当LM567的3脚输入幅度≥25mV、频率为40kHz的信号时,8脚由高电平变成低电平,此低电平信号被连接到1051的INT0引脚产生中断信号。1051在超声波发送时启动定时器,在INT0中断时关闭定时器,由此可以得到超声波的传播时间,并计算出障碍物距离。
应用本系统对测量范围为30~400cm的平面物体做了多次测量发现,其最大误差为0.5cm,且重复性好。如果加大超声波发射的驱动电流,接收部分的放大电路再加一级,可以使检测距离增大到600cm。
1.3 无线通信子系统
此系统选用微小型、低功耗、19.2kbps的无线收发MODEM芯片PTR2000实现机器人与计算机的无线通信。该芯片的工作频率为国际通用的数传频段433MHz,采用FSK调制,可连接到计算机的RS232接口。系统采用的通信协议如下:
[开始字符] [数据1] [数据2]……[校验和] [结束字符]
将PTR2000的DO、DIN引脚分别与LPC2119的TXD0(13引脚)和RXD0(14引脚)相连,作为串行通信的通道。CS为PTR2000模块的频率选择信号;PWR为模块节能引脚,正常工作为高电平。TXEN是模块发射接收控制,由LPC2119的I/O口控制。PTR2000是收发一体的集成芯片,采用3.3V供电,可以与LPC2119无缝连接。PTR2000作为发射端与PC机相连时,需要通过一个电平转换器(本文为MAX3232)转换成RS-232电平。PLC2119可以通过把输出口置1或清0将无线收发模块PTR2000设置为发送或接收状态;可通过VB的MSComm控件的RTSEnable属性实现对计算机串口的控制。
1.4 光敏传感器子系统
机器人使用的光敏传感器为硫化镉光电管(CDS)。硫化镉光电管的电阻值随着照射的表面光的多少而变化,光线越强,电阻值越小。硫化镉光电管通常也称为光敏电阻。CDS的电阻值对较少的光线就能产生较大的变化,是机器人系统较为常用的一种光敏传感器。在机器人车体上平均分布8个同样的光敏传感器,感知机器人周围的光强变化。通过采集各传感器的输出电压,由软件算法确定机器人的路径,使机器人总是朝光线更强的方向行走,实现对光源的寻找。
将一个精密电阻与CDS器件串联,该电阻起分压作用,将CDS器件的电阻值转换成应对模/数转换器件(ADC)适当的电压值。CDS器件的分压输出给ADC,随后电压值转换为数字值。当更多的光线照在CDS器件上时,其电阻和ADC上输出的电压值都会减小。一般取这个精密电阻的阻值与CDS器件的最大电阻值相等。
2 软件编程
因任务不同,系统的软件设计有所不同。本移动机器人系统的任务是在已知大小且光线较暗的封闭环境中自主寻找光源。
系统软件在启动后先进行系统的自检和初始化,然后进行路径的规划。先横向遍历整个环境,如果发现光源,机器人停止运动,等待命令;如果没有找到光源,再纵向遍历整个环境,如果发现光源,机器人停止运动;如果还是没有找到,就显示出错信息。当超声波子系统发现前方有障碍物或机器人与障碍物发生碰撞时,将产生外部中断,终止程序的运行,控制器LPC2119将收到障碍物距离或碰撞信息,并由此重新规划路径,由此实现机器人的自主运行。
本设计是一个基于ARM7微处理器的车载嵌入式系统,不仅满足了移动机器人控制系统的要求而且为机器人的转型应用提供了良好的技术支持。在此基础上可以加入各种先进的控制算法,实现移动机器人的智能化。