H8/300L超声波测距仪(原文出处:第1页-第15页)介绍该应用说明介绍了一种使用H8/38024 SLP MCU的测距仪。
由单片机产生40KHz 方波,通过超声波传感器发射出去。
反射的超声波被另外一个传感器接收。
有效距离为6cm到200cm。
1.理论1.1概况在这篇应用说明中,H8/38024F微处理器是作为目标设备被使用的。
由于简单的可移植性,超声波测距仪使用的软件为C语言。
超声波是频率高于可听音的一切高于20kHz的声波。
用于医疗诊断和影像的超声波,频率延长和超过了10兆赫兹,高的频率有短的波长,这使得超声波从物体反射回来更容易。
不幸的是,极高的频率难以产生和测量。
对超声波的检测与测量主要是通过压电式接收机进行的。
超音波普遍应用于防盗系统、运动探测器和车载测距仪。
其他应用包括医疗诊断(人体成像),清洁(去除油脂和污垢),流量计(利用多普勒效应),非破坏性试验(检测材料缺陷),焊接等各个方面。
1.2软件实施距离的计算要测量超声波传感器接收到回波的时间。
理想的被测对象应该有一个大的面积而且不吸收超声波。
在这个应用说明中使用了38024f的CPU电路板。
图1展示超声波测距仪的工作原理,tmofh (脚63 )是用来传送0.5ms的40kHz的超声波,irq0 ( pin72 ) 是用来探测反射波的。
发送超声波后,计时器C开始追踪Timer Counter C (TCC)的计数数目,以计算物体的距离。
图1.测距仪工作原理1.2.1 发射超声波定时器F是一个具有内置式输出比较功能16位计数器,它还可以用来作为两个独立的8位定时器FH和FL,这里,定时器F是作为两个独立的8位定时器使用。
计时器的FL被初始化为产生中断,而FH在比较匹配发生时触发了tmofh的输出电平。
表1 计时器F的时钟选择对于为定时器的FL,选定内部时钟ø/32。
输出比较寄存器FL装载数据初值为H’FF 。
因此,外部定时器每1.67msec 产生一个中断,计算如下:/2ø晶振频率=,计时器FL 内部时钟周期=322⨯晶振频率=64MHz 8304.9=153.6kHz 中断周期=256kHz6.1531⨯=1.67msec 每隔65msec 开始发射一次超声波,计时器FL 须中断近39次( 65msec / 1.67msec = 39 ),才开始传送。
表2 功能选择FH 产生40kHz 的超声波信号,当计数FH (TCFH)的值达到输出比较寄存器FH(OCRFH)的值时,TMOFH 被触发,输出比较寄存器FH 的值如下计算。
FH 内部时钟选择为ø/4。
计时器FH 内部时钟周期=421⨯晶振频率=MHz8304.98=0.814μsec ,对于40kHz 信号,TMOFH 需要每12.5μs 触发一次:(1/40kHz)/2输出比较寄存器FH(OCRFH):OCRFH=sec814.0sec 5.12μμ=15.36≈15 因此, 0CRFH 装载H'0F 。
.软件的延时是用来在把63管脚转换成I/O 口P32以停止发送之前,发送0.5ms 的超声波的。
表2 显示了模式寄存器3的端口设置,选择管脚的功能为I/O 口或者TMOFH 输出口。
1.2.2 定时器C 初始化发送完超声波后,定时器C 打开,对超声波的回波时间进行计时。
定时器C 被设置为自动重载,随ø/64的内部时钟向上计时。
表3显示了定时器模式寄存器C 的设置。
需要设置如下。
表3 定时器模式寄存器设置定时器装载寄存器(TLC)之后被装载为H'00,从0开始计时。
计时器C被中断使能,中断使能寄存器中IENTC=1。
如果计时器C(TCC)中的计数值达到H’FF,下一个时钟输入将引起溢出,产生中断。
在计时器C中断溢出子程序中,OVERFLOW_COUNT会保持对溢出数量的跟踪而递增。
当反射回波被接收到时,IRQ0的电压值降低,产生IRQ0中断。
通过对TMC2 ~ TMC0 设置“1“,就没有外部时钟能使计数器增加,计时器被暂停。
之后TCC的值被读取并用于距离计算。
1.2.3 距离计算选择Timer as ø/64,作为内部时钟,距离如下计算:对于计时器C ,1count=6421 晶振频率=MHz8304.9128=13.02μsec 声速=343m/sec=34300cm/sec ,因此,传播1cmde 时间=1sec/34300cm=29.15μsec 通过跟踪计数器的值和计时器C (TCC )中的溢出次数,物体的距离可以被计算。
举例,计数为55,有一次溢出中断,总计时器=(1×256)+55=311,接收回波的总时间(单位为μsec )=311×13=4043,传感器与物体的距离=2924043=69.7≈70cm ,除以2是因为超声波的反射(传播距离是物体距离的两倍)。
1.3 硬件实施超声波测距仪的电路在第4章给出。
超声波发射和接收的详细电路在下几章讨论。
1.3.1 发射电路发射电路由几个非门和两个晶体管构成。
第一个非门输出超声波的低电平。
三极管是用来驱动CMOS 变频器的。
两个非门并联在一起以增加发射能力。
传感器正负电极的信号的相角反转180°。
电压比之使用一个非门输入(有正负峰-峰值)高两倍。
图3 发射电路1.3.2接收电路接收电路包括两部分,即信号放大电路和检测电路。
图4 信号放大电路接收到超声波信号后,信号被放大1000倍。
第一级将原始信号放大100(40dB)倍,第二级的增益为10倍(20dB)。
图5 信号检测电路经过信号放大电路后,信号还要经过一个整流检测电路。
该电路由两个1CV5二极管组成。
整流的信号经过三极管。
当无信号时,输出是3.3V(高电平)。
当有信号时,输出降为0V(低电平)。
输出送给H8/38024的IRQ0管脚以便在单片机检测到下降沿时产生中断。
1.3.3 电源需要三种电源测距仪电路板•9V输入电压——对于LM833•3.3V——对于非门74LS04和三极管BC54738024 CPU电路板•5V输入电压——提供给CPU电路板•3.3V——提供给单片机用户必须提供给测距仪电路板9V输入电压,给CPU电路板提供5V输入电压。
1.3.4 超声波传感器在本文中选用Nippon Ceramic公司的超声波发射器(T40-16)和接收器(R40-16)。
T表示发射,R表示接收,40表示传感器的谐振频率40kHz。
超声波传感器的主要特性如下:2.操作38024F CPU电路板按如下的电路连接到超声波测距电路上。
图6 单片机设置与超声波测距仪TMOFH输出超声波产生信号,必须连接到测距仪的TX管脚。
检测信号连接到IRQ0。
因此,分别把38024F CPU电路板上的3脚和12脚连接到超声波测距仪的TX 和RX管脚。
2.1高级终端设置完成硬件设置后,用户还要配置高级终端窗口以显示MCU的探测距离。
COM 端口设置必须根据UART协议和程序中使用的的波特率设定,如图7。
从开始菜单按钮,到Programs(程序)> Accessories(附件)> Communications (通信)> HyperTerminal(高级终端),在高级终端窗口中的文件中选择属性,并且点击Configure(配置),更改端口设置。
图7 PC高级终端设计2.2结果首先,用FD把程序写入单片机。
然后在用户模式中按复位键运行程序。
观察CPU电路板上的LED D1 连续闪烁,指示超声波正在被发射。
通过在传感器前放置一个不吸收超声波的较大物体,用户能够在超级终端窗口看到探测距离,如图9所示。
每次探测(IRQ0产生中断时),在超级中断窗口显示一个小圆点。
在检测到5次相似的读数后,读数被取平均值,距离被计算出来并显示。
本超声波测距仪只能检测6cm到200cm的距离。
图8 在PC HyperTerminal中的结果显示2.3局限2.3.1传感器间的距离设计一个超声波测距仪主要考虑超声波传感器之间的位置。
如果接收超声波传感器是放置在远离发射超声波传感器的地方,它将无法侦测到十分接近的物体。
下面有说明。
图9 对传感器不同距离的说明对于物体1,在较远的情况下,放置接收超声波传感器无论在位置A还是B ,都不会成为一个问题,因为反射超声波将能达到两传感器.但是对于物体2,如果超声波传感器是放置位B, 传感器不会检测超声反映,因为它太远。
在短距离应用中(如微型鼠标),传感器将要放置彼此接近或应稍面对对方.。
本应用说明中,两传感器被放置在距离为3.5cm左右的位置。
2.3.2实际距离测量超声波测距仪通过把接收到回波的时间取半计算距离,然而,实际距离是垂直于超声波传感器的距离。
对近物体,这个误差会较明显,但对远物体,这个误差就微不足道了,如图10 。
- 11 -- 12 -图10 实际距离说明用户可使用下列公式计算出距离来纠正这一错误:两传感器之间的距离)(测量距离实际距离⨯-=212 2.3.3 死区超声波传感器有盲区,使他们无法侦测到目标。
这是传感面与传感最低射程之间的距离。
日本陶瓷公司超声波传感器的死区实验确定为约1厘米。
2.3.4 可测范围最小检测范围取决于死区、单片机响应的局限性,还有电路的布线。
由于距离是通过计时器C 的计数计算出的,准确的取决于计时器C 的开始与结束时间。
另一个限制存在于单片机对中断处理的延时上。
最小与最大探测距离实验定为6cm 和200cm 。
因此程序中需要偏置数据(距离+ 5 )。
用户应该实验决定他们电路的最小探测距离,并给与相应的数值偏置。
最大探测范围是由LM833运算放大器的输入电压决定的。
放大振幅随输入电压的减小而减小,所以,最大探测距离也会减小。
对于本测距电路,LM833运算放大器的最低输入电压为+5V 。
这是由两个二极管的压降决定的。
如果电压低于5V,将没有足够的电压去打开三极管Q3了。
通过减少Lm833运算放大器输入电压到5V,最大探测距离降为150cm。
- 13 -。