分享

如何DIY一个属于你的超声波测距传感器一:硬件设计

 网文草堂 2012-08-26

 

如何DIY一个属于你的超声波测距传感器一:硬件设计  

2009-02-09 20:07:44|  分类: 单片机 |  标签: |字号 订阅

下一篇:如何DIY一个属于你的超声波测距传感器二:焊接调试 
一、背景
四年多前,我曾尝试自己制作一个超声波测距传感器。
当时是想为 LEGO 的 RCX 配套,因为我是Semia 的技术支持,那时RCX 还没有配置任何测距传感器。由于可查阅的资料有限,且不详细,最后以失败告终 ? (也许在网络搜索上我属于“菜鸟”)。
为了达到目的,只好选用了 Sharp 公司的 GP2D12。但自制超声波测距传感器的愿望一直没被遗忘。一是觉得超声波用于测距从原理上讲应该效果不错(GP2D12的测距范围太小,只有 10 — 80 cm);二是市售成品不够灵活,为了适应它还得做转换接口,费力耗财。
前段时间协助一个单位搞项目,涉及到超声波测距;有幸的是解剖了一款进口的超声波测距传感器 —— SensComp公司的6500,使我对相关原理和技术有了比较透彻的了解。
本想项目结束后立刻动手设计一个自己的传感器,后因忙于“圆梦小车”耽搁了。
现在圆梦小车已初具雏形,可以腾出一点时间,而且小车也需要一些传感器与之配套,便着手实现了这个夙愿。

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

基于嵌入之梦工作室的宗旨 —— 为学习单片机的大学生服务,将设计和制作的细节与大家分享,希望能有助于读者做出属于你自己的超声波传感器,也让和我有类似想法的人不至于再次失望于网络。

二、需求分析
能在测距范围上弥补 GP2D12 的不足,将距离延伸到 80cm以外;
可以提供给大学生和爱好者 DIY,具有学习功能;
方便自己随时修改程序,使学习的作用得以充分发挥;
成品具有一定的使用价值,可方便的应用于小车等需要测距的装置上。

三、概要设计
总体设计参照 SensComp公司(www.senscomp.com)6500测距模块,其核心是两片专用的超声波测距IC:TL851和TL852。
TL852是一片专门设计用于超声波接收、放大、检测的芯片,集成了可变增益、选频放大器,可通过四根控制线变换11级增益,对于检测超声波信号十分有效。
TL851 与TL852 配套,它可实现超声波发射及控制TL852的增益变换,通过定时控制增益,使TL852的增益与回波时间相匹配,一方面提高了检测的灵敏度,同时减小了干扰。
如果不能随时间变换增益,为增加检测距离,就需要加大灵敏度;而开始时灵敏度就很高,无疑会收到一些不想要的信号。(6500测距模块的相关资料及芯片资料见附件)
解剖此模块时,对TL852的功能十分感兴趣,当初我制作时就是“栽”在这个环节;而TL851的功能基本属数字控制范畴,输出还需要配合单片机才能得到结果,接口也不是十分灵活,笔者认为完全可以用单片机替代。
所以,本次设计的主要改变就是用单片机替换6500模块的TL851。
单片机还是选用圆梦小车所用的STC12系列,一是考虑是51兼容,符合国内多数教材;二是下载程序方便。此次选用的是 STC12LE4052(4K FlashROM,256 RAM)。考虑体积因素,选择了SOP20封装。
从6500模块解剖中还有一个收获就是搞清了超声波发射的驱动细节。
以往资料上多数是直接用门电路驱动,最多接一级三极管放大。我第一次试制时就发现功率无法增加,导致测距范围有限。仔细看超声波发射器的要求:大多需要10V以上驱动,而且是正弦波信号。压电陶瓷(超声波发射器多为此材料制造)功率增加只有通过提高电压,在单5V供电下无法实现,而增加12V供电又不实用。
6500模块驱动是通过变压器升压的,并且通过电容匹配,使次级与发射器构成谐振回路,这样既提高了驱动电压,又使得波形接近正弦波。
6500模块工作是收发一体模式,所以其接收回路自然也是谐振回路,一方面增加了灵敏度,同时还排除了其它频率波的干扰,因为只对谐振频率敏感。
为了便于初学者理解,本次设计改为收、发分体模式,发送回路借鉴6500模块,接收回路使用电感与接收器构成谐振回路。

之所以单片机采用3.3V供电,是为了增加一级稳压,以降低发射超声波带来的电源干扰,提高可靠性。

因为上述需求的第二条和第四条略有冲突,考虑到实用价值,偏向了第四条。设计上为了体积合适,采用了部分表面安装(SMD)器件,但是一些调试时可能需要改变参数以及一些可能损坏的器件选用了直插式,以方便读者优化或观察改变器件参数的效果。

采用UART口输出数据、设置参数。因为UART口可以使用中断模式,读取软件开销较小,且UART是目前MCU中配置最普遍的,虽说会占用一个串口,但是现在多串口MCU越来越多,特别是ARM系列,如ST的STM32系列就有2 – 3个UART口。

四、详细设计
设计分硬件和软件两部分,本篇重点介绍硬件设计,软件留待下一篇详述。
4.1 硬件设计
超声波传感器由以下部分构成:

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘 
图1 工作原理框图
框图中,单片机为核心控制部分,根据设定的工作方式,产生40kHz方波,经过驱动电路驱动超声波发生器发出一簇信号。单片机此时开始计时。
接收回路为谐振回路,将收到的微弱回波信号检出,送信号放大电路放大,收到产生脉冲输出送单片机中断端,单片机收到中断信号后停止计时,计算出距离值,保存等待读出或直接经UART送出。接收过程中,单片机定时控制放大电路的增益,逐渐提高,以适应距离越远越弱的回波信号。
核心器件为STC12LE4052、TL852、16mm超声波收、发器。
采用5V供电,因为5V是最常见的工作电压,便于日后将传感器应用于装置中。
为了减小干扰,选用了3.3V供电的单片机,使用目前常用的1117-3.3三端稳压器将5V降到3.3V,减小电源扰动的影响,增加可靠性。
下面分步介绍各个部分的电路原理。
首先是超声波发射部分。

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

图2 超声波发射驱动电路
图中,Send_Ctrl、Cut_Off端由STC12LE4052控制。此单片机的I/O口可设置为推挽输出模式(这是经典51不具备的),拉电流、灌电流均可达20mA,保证了D882有足够的驱动能力和快速的通断性能。
变压器的次级电感与发射器(发射器为容性,一般为2400p左右)构成谐振回路,好处是提高了发射效率,但副作用是发射后的余波时间较长,导致近距离的回波被淹没。所以电路中设计了2种余波抑制电路。一个是R6,通过增加谐振回路的损耗加速余波结束,这种方式不需要控制,但由于同时也消耗了发射的功率,所以阻值不能太小,导致衰减效果不明显(此部分读者可自行试验)。
另一个电路由R4、R5、P1构成,由单片机控制,在发射完脉冲后将P1导通,强制短路变压器初级,快速消耗掉谐振能量,达到消除余波的目的,电阻R5越小,效果越好,但带来的问题是:如控制失灵,会导致短路,烧坏P1或N1。
所以在电路中设计了一个跳线器,在软件没有调试好之前断开,避免无谓的损耗。
变压器升压比设计为20倍,实际输出电压约为 50V峰值。
控制部分采用MCU,如下图所示:

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

图 3 单片机控制电路
STC12LE4052为一种改进型的51兼容单片机,指令集及主要架构与经典51相同,硬件资源略有增加:
1) 增设了2通道PCA(可编程计数器阵列),弥补了经典51定时器功能“偏弱”的缺陷。
2) I/O口改进为可设置方式,支持:51准双向、高阻输入、OC输出、推挽输出 四种模式,简化了外部硬件设计。
3) 硬件SPI接口,本设计中暂未使用,但PCB上引出了,有兴趣者可尝试之。
4) 指令速度大大提高了,将原来的12时钟为一个机器周期改进为 2 – 3个时钟周期,指令速度平均提高为原来的8倍左右。
5) 计时时钟保留12分频模式,新增了2分频模式,提高了计时精度。
后两点对于超声波测距应用有益,指令速度快可减少响应延时的不确定,计时精度高可提高分辨率。
MCU端口资源分配如下:
P10 - P13 —— 控制TL852增益,设置为OC输出,852内部有上拉电阻(见图5)
P14 - P17 —— 保留
P30(RXD)、P31(TXD) —— UART通讯
P32(INT0) —— 接SOUT端,作为超声波发射时的852输出抑制,置为OC输出。
P33(INT1) —— 超声波接收输入,设置为输入
P34 —— 产生超声波发射方波,设置为推挽输出模式
P3.5 —— 控制P1,用于衰减余波,设置为OC输出模式
P37 —— 工作指示灯,设置为OC输出模式
关于P32控制 SOUT端的作用,请阅读TL851资料。

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

图 4 接收回路和信号放大、检出电路
这个电路是超声波测距的核心。因为产生波形和计时都容易解决,而准确的检测出回波信号才是决定传感器是否成功的关键。为便于理解上图,将TL852 的内部原理框图列出:

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

图 5 TL852 内部功能框图
读者可对照TL852 数据手册分析其工作原理。从图中可以看出,图4中的R7、R8为运放的输入、反馈电阻,通过改变两者比值可方便的改变灵敏度,故将R7、R8设计为直插器件。

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘screen.width-333)this.width=screen.width-333" border=0>

如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘

图 7 TL851内部功能框图
图中,8脚应接在SOUT上,1.2V基准电压等效于图6中的2个1N4148串联,因为硅PN结的正向压降为0.6V。第9脚ECHO输出相当于图6中的U4B的第7脚输出。BLNK、BINH端子都是为了抑制发送时的信号,此部分在本设计中由单片机完成,单片机的P32口置为OC输出,就是为了替代图中接在8脚和3脚之间的三极管,实现对积分电容C14放电,为测量做准备。
如读者希望进一步了解这部分的工作原理,可对照6500模块的原理图和TL851、TL852 数据手册仔细研读。
4.2 器件选择和PCB设计
单片机前面已说明。TL852选用SOP16封装的,否则体积太大。
运放U4 选用LMV358,SOP8封装。LMV358为低电压满幅输出运放,额定工作电压为2.7 — 5V,读者可对照LM358资料看两者的差别,因为单片机的工作电压为3.3V,所以选用LMV358,虽然成本略高,但性能得到保证。
超声波收、发器选用Φ16mm的,期望发射功率略大,测量距离可以远些。谐振频率为40kHz,国内基本上都是此频率。
因为超声波收、发器的电容值偏差较大,如读者希望精确匹配电感以提高性能,可能需要自己根据实测的电容量手工绕制,所以电感选用了8X10的工字磁芯,而变压器采用EE16,体积都比较大,便于手工绕制;读者如需优化性能,或体验其影响,可尝试自己制作,从而更好的掌握超声波测距的原理,为日后设计正式产品打下基础。
对外连接的端子采用XH-4A四芯插座,一根电源、一根地线、2根UART收发线,这样可方便的与其它设备连接,既给传感器供电,又可与传感器通讯,获取数据。
PCB设计尺寸约为 42X43 mm,设置了2个安装孔,孔距和GP2D12相同,便于替换原来使用GP2D12的场合。
PCB板图如下:
如何DIY一个属于你的超声波测距传感器一:硬件设计 - 风枝惊鹊 - 我的地盘
电路图
eb77c7ed022da36a93a2ac8b1740869c.zip (45.59 KB)
参考资料:
1、TI公司TL852数据手册
2、TI公司Tl851数据手册
3、SensComp公司6500测距模块数据手册
4、TI公司LMV358数据手册
5、TI公司LM358数据手册
6、STC12C5410AD单片机数据手册(STC12系列全部包含在内)
请继续等待硬件篇设计第二部分:焊接以及软件部分。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多