《超声波测距传感器(硬件篇)》由会员分享,可在线阅读,更多相关《超声波测距传感器(硬件篇)(32页珍藏版)》请在金锄头文库上搜索。
1、超声波测距传感器DIY自制一个由你掌控的超声波测距传感器(硬件篇)一、背景四年多前,我曾尝试自己制作一个超声波测距传感器。当时是想为LEGO的RCX配套,因为我是Semia的技术支持,那时 RCX还没有配置 任何测距传感器。由于可查阅的资料有限,且不详细,最后以失败告终/ (也许在网络搜索上我属于“菜鸟”)。为了达到目的,只好选用了Sharp公司的GP2D12。但自制超声波测距传感器的愿望一直没被遗忘。一是觉得超声波用于测距从原理上讲应该效果不错(的测距范围太小,GP2D12只有10 80 cm );二是市售成品不够灵活,为了适应它还得做转换接口,费力耗财。前段时间协助一个单位搞项目,涉及到超
2、声波测距;有幸的是解剖了一款进口的超声波测距传感器一一SensComp公司的6500,使我对相关原理和技术有了比较透彻的了解。本想项目结束后立刻动手设计一个自己的传感器,后因忙于“圆梦小车”耽搁了。现在圆梦小车已初具雏形,可以腾出一点时间,而且小车也需要一些传感器与之配套,便 着手实现了这个夙愿。基于嵌入之梦工作室的宗旨一一为学习单片机的大学生服务,将设计和制作的细节与大 家分享,希望能有助于读者做出属于你自己的超声波传感器,也让和我有类似想法的人不至于 再次失望于网络。二、需求分析? 能在测距范围上弥补 GP2D12的不足,将距离延伸到80cm以外;? 可以提供给大学生和爱好者DIY,具有学
3、习功能;? 方便自己随时修改程序,使学习的作用得以充分发挥;? 成品具有一定的使用价值,可方便的应用于小车等需要测距的装置上。三、概要设计总体设计参照 SensComp 公司( 65)0测距模块,其核心是两片专用的超声波测距 IC : TL851和TL852。TL852是一片专门设计用于超声波接收、放大、检测的芯片,集成了可变增益、选频放大器,可通过四根控制线变换 11级增益,对于检测超声波信号十分有效。TL851与TL852配套,它可实现超声波发射及控制TL852的增益变换,通过定时控制增益,使TL852的增益与回波时间相匹配,一方面提高了检测的灵敏度,同时减小了干扰。如果不能随时间变换增益
4、,为增加检测距离,就需要加大灵敏度;而开始时灵敏度就很高,无疑会收到一些不想要的信号。(测距模块的相关资料及芯片资料见附件)解剖此模块时,对TL852的功能十分感兴趣,当初我制作时就是“栽”在这个环节;而TL851的功能基本属数字控制范畴,输出还需要配合单片机才能得到结果,接口也不是十分灵 活,笔者认为完全可以用单片机替代。所以,本次设计的主要改变就是用单片机替换6500模块的TL851 。单片机还是选用圆梦小车所用的STC12系列,一是考虑是51兼容,符合国内多数教材;二是下载程序方便。此次选用的是STC12LE4052( 4K FlashROM , 256 RAM )。考虑体积因素,选择了
5、 SOP20封装。从6500模块解剖中还有一个收获就是搞清了超声波发射的驱动细节。以往资料上多数是直接用门电路驱动,最多接一级三极管放大。我第一次试制时就发现功率无法增加,导致测距范围有限。仔细看超声波发射器的要求:大多需要10V以上驱动,而且是正弦波信号。压电陶瓷(超声波发射器多为此材料制造)功率增加只有通过提高电压,在单5V供电下无法实现,而增加 12V供电又不实用。6500模块驱动是通过变压器升压的,并且通过电容匹配,使次级与发射器构成谐振回路,这样既提高了驱动电压,又使得波形接近正弦波。6500模块工作是收发一体模式,所以其接收回路自然也是谐振回路,一方面增加了灵敏度,同时还排除了其它
6、频率波的干扰,因为只对谐振频率敏感。为了便于初学者理解,本次设计改为收、发分体模式,发送回路借鉴6500模块,接收回路使用电感与接收器构成谐振回路。之所以单片机采用3.3V供电,是为了增加一级稳压,以降低发射超声波带来的电源干扰,提高可靠性。因为上述需求的第二条和第四条略有冲突,考虑到实用价值,偏向了第四条。设计上为了体积合适,采用了部分表面安装(SMD)器件,但是一些调试时可能需要改变参数以及一些可能损坏的器件选用了直插式,以方便读者优化或观察改变器件参数的效果。采用UART 口输出数据、设置参数。因为 UART 口可以使用中断模式,读取软件开销较小,且UART是目前MCU中配置最普遍的,虽
7、说会占用一个串口,但是现在多串口MCU越来越多,特别是 ARM系列,女口 ST的STM32系列就有2 - 个 UART 口。四、详细设计设计分硬件和软件两部分,本篇重点介绍硬件设计,软件留待下一篇详述。4.1硬件设计超声波传感器由以下部分构成:超声波发射器超声波接收器第#页共26页超声波测距传感器DIY第#页共26页超声波测距传感器DIY图1工作原理框图40kHz方波,经过驱动电路框图中,单片机为核心控制部分,根据设定的工作方式,产生驱动超声波发生器发出一簇信号。单片机此时开始计时。接收回路为谐振回路,将收到的微弱回波信号检出,送信号放大电路放大,收到产生脉冲 输出送单片机中断端,单片机收到中
8、断信号后停止计时,计算出距离值,保存等待读出或直接 经UART送出。接收过程中,单片机定时控制放大电路的增益,逐渐提高,以适应距离越远越 弱的回波信号。核心器件为STC12LE4052、TL852、1超声波收、发器。采用5V供电,因为5V是最常见的工作电压,便于日后将传感器应用于装置中。为了减小干扰,选用了 3.3V供电的单片机,使用目前常用的1117-3.3三端稳压器将5V降到3.3V ,减小电源扰动的影响,增加可靠性。下面分步介绍各个部分的电路原理。首先是超声波发射部分。(C7,(:劭徹昭罚载电容*迖刮讷久)-R6 Jr于鏡小余披时阿)图2 超声波发射驱动电路图中, Send_Ctrl 、
9、Cu端由f STC12LE4052控制。此单片机的I/O 口可设置为推挽输 出模式(这是经典 51不具备的),拉电流、灌电流均可达 20mA,保证了 D882有足够的驱动 能力和快速的通断性能。变压器的次级电感与发射器(发射器为容性,一般为 2400p左右)构成谐振回路,好处是 提高了发射效率,但副作用是发射后的余波时间较长,导致近距离的回波被淹没。所以电路中 设计了 2种余波抑制电路。一个是 R6,通过增加谐振回路的损耗加速余波结束,这种方式不需 要控制,但由于同时也消耗了发射的功率,所以阻值不能太小,导致衰减效果不明显(此部分 读者可自行试验)。另一个电路由R4、R5、F构成,由单片机控制
10、,在发射完脉冲后将 P1导通,强制短路 变压器初级,快速消耗掉谐振能量,达到消除余波的目的,电阻R5越小,效果越好,但带来的问题是:如控制失灵,会导致短路,烧坏 P1或N1。所以在电路中设计了一个跳线器,在软件没有调试好之前断开,避免无谓的损耗。变压器升压比设计为 20倍,实际输出电压约为 50V峰值。控制部分采用MCU,如下图所示:GCA12GCB13GCC14GCD151517IS19RXD7TXDim a-PH POCEXOP57ri. jtj.i vP13.di jl石匚i rj j ECTTOP 弭P15-MOSIDJTl P33PL6MTSO1NI0P32Pl 7 SCLX陞鑿TP
11、30KXDP31/TXD sXTAL2p XTAL1oU2STC12LE40S211WbrkDiiii9cut or&Send Ctrl7Ulcraln6SOUT1RST45XIhQh22.1184CiBp图3单片机控制电路STC12LE4052为一种改进型的51兼容单片机,指令集及主要架构与经典51相同,硬件资源略有增加:1)增设了 2通道PCA (可编程计数器阵列),弥补了经典 51定时器功能“偏弱”的缺 陷。2)I/O 口改进为可设置方式,支持:51准双向、高阻输入、输出、推挽输出 四种模式,简化了外部硬件设计。3)硬件SPI接口,本设计中暂未使用,但 PCB上引出了,有兴趣者可尝试之。
12、4)指令速度大大提高了,将原来的12时钟为一个机器周期改进为2 -个时钟周期,指令速度平均提高为原来的 8倍左右。5)计时时钟保留12分频模式,新增了 2分频模式,提高了计时精度。后两点对于超声波测距应用有益,指令速度快可减少响应延时的不确定,计时精度高可提高分辨率。MCU端口资源分配如下:P10 -P13控制TL852增益,设置为 0C输出,85内部有上拉电阻(见图5)P14 -P17保留P30(RXD)、P31( TX UART 通讯P32(INTO - 接SOUT端,作为超声波发射时的852输出抑制,置为OC输出。P33(INT1 超声波接收输入,设置为输入P34产生超声波发射方波,设置
13、为推挽输出模式P3.5控制P1,用于衰减余波,设置为 OC输出模式P37工作指示灯,设置为 OC输出模式关于P32控制SOUT端的作用,请阅读 TL851资料、C10为广微调负载电容达到谐振)图4接收回路和信号放大、检出电路这个电路是超声波测距的核心。因为产生波形和计时都容易解决,而准确的检测出回波信号才是决定传感器是否成功的关键。为便于理解上图,将TL852的内部原理框图列出:hjnErtlonal block dlagiramii *帥.Pte订QJ甲G1OUTccGCDGUNGADXUNGW77【4 Gi_-8. CC . Aa b.D图5TL852内部功能框图4中的R7、R8为运放读者
14、可对照TL852数据手册分析其工作原理。从图中可以看出,图的输入、反馈电阻,通过改变两者比值可方便的改变灵敏度,故将R7、R8设计为直插器件。*剧用腐牛-讐卸ir HitIV)图6 TL852输出信号处理电路图6所示电路是为了将TL852的输出转换为单片机需要的中断信号,构成了一级同A目跟随器,是为了隔离后级对C14积分电路的影响。构成一个比较器,理解此部分可参阅下面的TL851框图。Fl LTXTM1XTALiINITBiNIHBLNKRf COND图7TL851内部功能框图图中,8脚应接在SOUT上,1.2基准电压等效于图 6中的2个1N4148串联,因为硅PN结的正向压降为0.6V。第9脚ECHO输出相当于图6中的U4B的第7脚输出。BLNK、BINH端子都是为了抑制发送时的信号,此部分在本设计中由单片机完成,单片机的P32 口置为OC输出,就是为了替代图中接在 8脚和3脚之间的三极管,实现对积分电容C14放电,为测量做准备。如读者希望进一步了解