测距具有迅速、方便、且计算简单,测量精度高等诸多特点,因此在倒车雷达、测距仪、移动机器人和农产品无损检测等广泛应用。声纳(Sonar)是声音导航测距(Sound Navigation and Ranging),广泛用于对水下目标进行探测、定位、跟踪、通信和导航等。在此,介绍采用SensComp公司600系列高灵敏声纳和SlonLabrary公司C8051F040设计测量系统。该系统设置有键盘和LCD人机操作界面,可提供RS 232和控制器局域网()两种总线输出,方便实际应用。
1 声纳传感器及测距原理
SensComp 600系列声纳传感器实物照片如图1所示,它整合了6500测距模块和600系列超声波探头,探头中心50 k,具有极好的接收灵敏度。触发方式可选内部触发(触发频率5 Hz)或外部触发,I/O接口均兼容TTL逻辑,正常工作范围为6~24 VDC。与其他超声波传感器相比,其声波强度的中部明显大于旁瓣的强度,波束角度15°。
超声波测距的原理是测出声波从发射点至目标物体往返传输所需的时间,在一定环境下声波的传输速率是不变的。根据式(1)的超声波测距数学式可测算得到距离。
式(1)中:D为声波发射点与目标物体的距离,(单位为m);t为声波往返发射点和目标物体的时间。式(2)中:c0为声波,在0℃时,空气中的传播速度为331.4 m/s;T为{jd1}温度。
SensComp 600系列声纳传感器有两个基本的操作模式:单回波模式和多回波模式。在单回波模式下。输入引脚INIT电平跳变为高电平时传感器触发发送超声波,然后等待发送的声波信号返回,{zh1}返回的信号被放大,并且在输出引脚ECHO输出高电平。从引脚INIT变为高电平到ECHO跳变为高电平的时间即为声波从传感器至障碍物往返所用的时间。若要重复测量只需按上述循环操作。多回波模式即一次触发多次接收返回的声波信号。在此模式下,当收到返回信号后,将输入引脚BLNK输入持续长于0.44 ms的高电平即可将引脚ECHO变为低电平,接收到下一次回波信号时ECHO又将输出高电平。SensComp 600系列超声波传感器应用于测距时采用单回波模式就能满足要求。
2 系统硬件设计
该测量系统采用美国SliconLabrary公司单片机C8051F040作中央处理器。C8051Fxxx系列单片机是xx集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,可与MCS-51指令集xx兼容。除了具有标准8052的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。C8051F040采用高速、流水线结构CIP-51内核(可达25 MIPS),可以使用标准803x/805x的汇编器和编译器进行软件开发,具有强大的功能。如100 kS/s的12位ADC、控制器局域网控制器(CAN),6个捕捉/比较模块的可编程计数器/定时器阵列、温度传感器、可实现硬件的SPI,SMBus/I2C和两个UART串行接口、64 KB可在系统编程的FLASH等。其片内调试允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试,该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG调试时,所有的模拟和数字外设都可全功能运行。因此选用此单片机xx能满足设计要求。设计中运用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变为高电平时计时结束。若超过一定时间仍未收到回波,则放弃本次测量,重新触发下次测量。
4 系统调试及精度测量试验
4.1 系统调试
调试采用Tektronix Tds3034B四通道彩色数字示波器中的两个通道,检测出传感器INIT和ECHO两引脚波形跳变,如图4所示。可由两电平跳变之间的时间与单片机检测时间对比,检查捕捉计时程序是否准确。系统所测数据由CAN总线发出,调试时通过USB转CAN接口在电脑上接收到的数据,示波器检测到CAN总线上波形,如图5所示。
4.2 测量精度试验
为标定系统测量精度,用200 cm×100 cm×2 cm硬平木板作障碍物进行测量,并用钢卷尺测量实际距离。系统测量量程为15~1 070 cm。在45~500 cm范围内进行了误差分析试验,其结果如图6所示。由此可得测量系统的{zd0}误差为2.34 cm,平均误差为0.49 cm。
5 结 语
在此,采用SensComp 600声纳传感器和单片机C8051F040设计实现了声纳测距,系统所需硬件少,测量量程为15~1 070 cm。在45~500 cm范围内,{zd0}误差为2.34 cm。系统除用于测距外,还可用于障碍物检测、倾斜角度测量、车辆定位与导航和液位测量、农业物料检测等领域应用。 不足之处是单片机C8051F040功能非常多,但在此系统中未充分应用,因此还能利用C8051F040设计更多的功能,来以扩充该系统;此外,该系统的测量误差相对较大,可以在程序中进行误差补偿等处理,使系统测量精度更高。