超声波测距具有迅速、方便、且计算简单,测量精度高等诸多特点,因此在倒车雷达、测距仪、移动机器人和农产品无损检测等广泛应用。声纳(Sonar)是声音导航测距(Sound Navigation and Ranging),广泛用于对水下目标进行探测、定位、跟踪、通信和导航等。在此,介绍采用SensComp公司600系列高灵敏声纳传感器和SliconLabrary公司单片机C8051F040设计测量系统。该系统设置有键盘和LCD人机操作界面,可提供RS 232和控制器局域网(CAN)两种总线输出,方便实际应用。
1 声纳传感器及测距原理
SensComp 600系列声纳传感器实物照片如图1所示,它整合了6500测距模块和600系列超声波探头,探头中心频率50 kHz,具有极好的接收灵敏度。触发方式可选内部触发(触发频率5 Hz)或外部触发,I/O接口均兼容TTL逻辑电平,正常工作电压范围为6~24 VDC。与其他超声波传感器相比,其声波强度的中部明显大于旁瓣的强度,波束角度15°。
超声波测距的原理是测出声波从发射点至目标物体往返传输所需的时间,在一定环境下声波的传输速率是不变的。根据式(1)的超声波测距数学式可测算得到距离。
式(1)中:D为声波发射点与目标物体的距离,(单位为m);t为声波往返发射点和目标物体的时间。式(2)中:c0为声波,在0℃时,空气中的传播速度为331.4 m/s;T为绝对温度。
SensComp 600系列声纳传感器有两个基本的操作模式:单回波模式和多回波模式。在单回波模式下。输入引脚INIT电平跳变为高电平时传感器触发发送超声波,然后等待发送的声波信号返回,最后返回的信号被放大,并且在输出引脚ECHO输出高电平。从引脚INIT变为高电平到ECHO跳变为高电平的时间即为声波从传感器至障碍物往返所用的时间。若要重复测量只需按上述循环操作。多回波模式即一次触发多次接收返回的声波信号。在此模式下,当收到返回信号后,将输入引脚BLNK输入持续长于0.44 ms的高电平即可将引脚ECHO变为低电平,接收到下一次回波信号时ECHO又将输出高电平。SensComp 600系列超声波传感器应用于测距时采用单回波模式就能满足要求。
2 系统硬件设计
该测量系统采用美国SliconLabrary公司单片机C8051F040作中央处理器。C8051Fxxx系列单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,可与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。C8051F040采用高速、流水线结构CIP-51内核(可达25 MIPS),可以使用标准803x/805x的汇编器和编译器进行软件开发,具有强大的功能。如100 kS/s的12位ADC、控制器局域网控制器(CAN),6个捕捉/比较模块的可编程计数器/定时器阵列、温度传感器、可实现硬件的SPI,SMBus/I2C和两个UART串行接口、64 KB可在系统编程的FLASH存储器等。其片内JTAG调试电路允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试,该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。因此选用此单片机完全能满足设计要求。设计中运用C8051F040的定时器捕捉功能检测声波传输时间,ADC采集片内温度传感器对声速校正,并有键盘和LCD人机作操作界面,FLASH存储相关设置,同时测量数据通过RS 232和控制器局域网(CAN)两种总线输出。硬件结构图如图2所示。C8051F040具有6个定时器捕捉模块,此硬件设计还能扩展至少5个超声波传感器,以实现更多功能。
3 系统软件设计
系统的软件由主程序、定时器2中断程序以及PCA捕捉中断程序组成。主程序主要完成系统的初始化,并从FLASH读入以前的设置参数。图3(a)为定时器2中断程序流程图和PCA捕捉中断程序流程图。定时器2中断频率为10 Hz,中断中读取按键值、CAN总线输入值和串口UART0输入值,若这些值与之前的设置不同,则将写入FLASH中保存。之后程序根据当前的超声波传输时间和环境温度计算出此次测量距离,并发送至CAN总线和UART0,且在LCD上显示。PCA捕捉中断程序,流程图如图3(b)所示,主要任务是完成超声波传输时间检测,PCA设置为上升沿捕捉模式。在超声波传感器引脚INIT上升沿起,PCA开始计时,当PCA的引脚跳变为高电平时,即传感器ECHO变为高电平时计时结束。若超过一定时间仍未收到回波,则放弃本次测量,重新触发下次测量。