唐慧强,徐昊德,刘 佳
(南京信息工程大学信息与控制学院,江苏南京 210044)
基于ARM11的长距离高精度超声波测距仪
唐慧强,徐昊德,刘 佳
(南京信息工程大学信息与控制学院,江苏南京 210044)
设计了一种基于S3C6410的高精度超声波测距仪。给出了一种高精度测距的方法,通过将回波信号数字化处理来求取接收波形的起始位置。设计了信号发射电路、接收信号放大滤波电路、A/D转换电路及ARM系统的检测电路。利用MATLAB仿真,并用C语言实际编程,基于WinCE6.0操作系统设计了模数转换等底层驱动和应用软件系统。实验表明测距仪一致性较好,不一致性约为0.19 mm。
超声波;测距仪;嵌入式;WinCE6.0;MATLAB;流接口驱动
超声波测距以其可靠性高、性价比高等优点被广泛应用于工业生产、智能小车,智能机器人、汽车倒车雷达等的检测中。目前长距离时差法超声波测距的方法大多采用包络或阈值检测[1],测量精度一般;也有采用小波分析方法的,其处理复杂,不易实用化[2]。本设计充分利用S3C6410处理器的快速运算处理能力,采用数字化方案,以取得高精度。
系统的原理如图1所示,通过测算出超声波发射到接收反射信号的时间t以及在空气中的传播速度c来测量距离。当超声波探头到反射物的距离d远大于超声波探头之间的距离时,超声波传播距离L近似等于2d。则所测距离d如式(1)所示:
(1)
图1 系统原理框图
超声波在空气中的传播速度与环境温度T有关,可表示为式(2):
(2)
式中:c为超声波在空气中传播速度,m/s;T为环境温度,℃。
通过高精度温度传感器测出环境温度就能确定超声波传播速度。
超声波接收信号是一串连续的波形,对于频率为40 kHz的超声波,其周期为25 μs。在对接收信号量化时,如采样频率为1 MHz,则两个采样点的间隔时间为1 s。如常温下空气中声速340 m/s,则检测分辨率可以达到0.17 mm。但需准确找到接收波形的第一个周期起始位置才能保证高精度,而接收波形的第一个周期信号非常微弱,与噪声叠加后不易辨识,为此采用了数字滤波、找最大峰值、拟合正弦信号的方法[3]来确定第一个周期信号。处理信号的过程如图2所示。
由图2可以看出,在开始的位置干扰信号较强,这是直接接收发射信号的结果,造成约17 cm的盲区,导致在近距离时测量结果不够准确。
图2 ADC采集信号
A/D转换后的数字信号序列需要经过数字滤波滤去噪声。现采用无限冲激响应(IIR)数字滤波器来设计椭圆带通滤波器,相比巴特沃斯或切比雪夫滤波器能获得更陡峭衰减曲线,即在阶数相同的情况下,椭圆滤波器能获得更窄的带宽和较小的阻带波动。为保证滤波后信号不发生相移,在对数字信号x首次滤波后,倒序后再滤波,最后再倒序以恢复原始顺序,由此实现对x的零相移数字滤波处理。对采集到的数字信号进行带宽20~60 kHz滤波后,在序列B中找到最大峰值所对应的位置,从该波形的左侧过零点开始,逐周期利用正弦信号拟合,并验证拟合的显著性,从而准确判断出反射信号的起始位置。图3是其拟合信号的起始位置。经过实际信号的反复试验,都能准确判别出反射信号的起始位置。
图3 滤波后的正弦拟合信号起始位置
系统硬件电路包括信号发射电路、信号接收放大电路和A/D转换电路等。选取40 kHz的超声波换能器作为发射和接收传感器。选取主频为533 MHz的S3C6410ARM芯片作为处理器。
3.1 信号发射电路设计
信号发射电路如图4所示,当输入高电平时,场效应管Q1截止,Q2导通,输出低电平;当输入低电平时,Q1导通,Q2截止,输出高电平。由ARM发送的12.5 μs的低电平脉冲经过Q1、Q2组成的开关电路后转换成高电平脉冲,再经过变压器升压约100倍后,把5 V的低压脉冲升压到500 V并加载到超声波发射换能器上。在高压脉冲的激励下,发射换能器产生振动发射一串超声波。
图4 信号发射电路
3.2 接收电路设计
接收放大电路如图5所示,接收换能器收到反射回来的超声波后,将其转化为电压信号。由于信号较弱,需要放大处理。放大电路由3个OP37运算放大器组成,OP37是低噪声、高速精密运放,转换速率达到17 V/μs,带宽达到63 MHz。本设计采用了OP37同相放大器进行放大,并加入直流偏置方便A/D转换。在放大的同时进行滤波处理,在前一运放前加入一阶低通滤波器,在后一运放前加一个一阶高通滤波器。
图5 接收电路设计
3.3 模数转换电路
模数转换电路如图6所示。ADC采用TLC5510A,是8位半闪速结构模数转换器,满量程输入范围是0~4 V。模数转换器由S3C6410 ARM处理器直接控制并接收数据。采用1MHz的采样频率,ADC的CLK由S3C6410的PWM0发送的1MHz方波信号驱动。
3.4 温度补偿
温度补偿[4]部分采用高精度温度传感器HM-T1,在-40~80 ℃范围内,其准确度达到了0.02 ℃。测量距离为10 m时,常温时因温度检测误差产生的时间差为1.1 μs,即距离误差约0.19 mm。温度测量模块通过RS232串口通信,通信方式采用全双工异步串行通信,只需TXD,RXD和GND3根线便可实现。
图6 模数转换电路
4.1 驱动程序设计
由于应用程序中不能进行底层硬件的直接控制[5],因此编写了基于WinCE6.0的数据采集流驱动,其流程图如图7所示。
图7 数据采集驱动程序流程图
驱动初始化包括寄存器虚拟地址空间申请、初始化PWM、初始化TLC5510A设置、防止驱动多次打开全局变量设置。接到应用程序发送的采样命令后,由定时器0的PWM功能发送A/D采样所需的时钟信号,并启动A/D转换,一次性读取一批数据并存入存储器中。S3C6410提供频率为66 MHz的PCLK为定时器分频,通过设置寄存器TCFG0和TCFG1的值来确定定时器时钟频率,如式(3)所示:
(3)
其中prescalervalue取值范围0~255,用TCFG0配置,dividervalue取值范围是1,2,4,8,16,TCLK,用TCFG1配置。TCNTBx寄存器和TCMPBx寄存器分别用来初始化定时器PWM的周期和占空比。
4.2 应用程序设计
应用程序主要任务是通过调用API函数[6],读取底层驱动的A/D转换数据,利用C语言进行WinCE下的软件编程,实现数据采集、信号处理、温度补偿,最后取得被测距离,并显示结果。
测距仪每隔0.1 s发送1次脉冲信号,连续将9次的结果显示在屏幕上,移动反射面重复多次上述过程,记录了4组数据,所测距离的结果如表1所示。可见,其测量的一致性较高,约0.19 mm的不一致性。如果采用多次平均算法,则可以进一步提高检测精度。
表1 测距结果 mm
本设计提出的高精度长距离测距的方法,通过将回波信号数字化处理来确定接收波形的初始位置,并利用ARM11处理器的高速处理能力,进行软件编程,完成了一种较长距离的高精度测距仪。达到了相位差法的微距测量精度,读数稳定可靠,可满足长距离的高精度测量要求。
[1] 陈建,孙晓颖,林琳,等.一种高精度超声波到达时刻的检测方法.仪器仪表学报,2012,33(11):2422-2428.
[2] 张兴红,张慧,陈锡侯,等.一种精密测量超声波传输时间的方法.北京理工大学学报,2011,31(6):717-721.
[3] TANG H Q,HUANG W Y,LI P,et al.Ultrasonic wind velocity measurement based on DSP.Journal of South east University (English Edition),2005,21(1):20-23.
[4] 行鸿彦,武向娟,吕文华,等.自动气象站数据采集器温度通道的环境温度补偿.仪器仪表学报,2012,33(8):1868-1875.
[5] 何顶新,叶刚,徐金榜,等.基于WinCE的CAN总线设备驱动研究.华中科技大学学报(自然科学版),2007,35(9):104-106.
[6] 竺乐庆,张三元,幸锐,等.基于ARM与WinCE的掌纹鉴别系统.仪器仪表学报,2009,30(12):2624-2628.
High Precision Ultrasonic Distance Measuring Instrument Based on ARM11
TANG Hui-qiang,XU Hao-de,LIU Jia
(School of Information&Control,Nanjing University of Information Science &Technology,Nanjing 210044,China)
A high precision ultrasonic distance measuring instrument based on S3C6410 was designed.The starting point of the echo signals was calculated by digital signal processing.The signal transmitting,receiving,amplifying,filtering,A/D converter circuit and ARM system were designed.By MATLAB simulation,and C language programming,the underlying driver of ADC in WinCE6.0 operating system and applications were programmed to achieve high precision distance measurement with the result of 0.19mm.
ultrasonic;distance measuring instrument;embedded system;WinCE6.0;MATLAB;interface driver
刘全顺(1989—),硕士研究生,主要从事光电信息获取与处理方向的研究。E-mail:275292835@qq.com
国家重大科学仪器设备开发专项项目(2012YQ170003-5);江苏省产学研前瞻性项目(BY2012029)
2015-01-03 收修改稿日期:2015-08-02
TP368.1
A
1002-1841(2015)10-0035-03