硅谷杂志:基于μC/OS实时系统的超声波测距系统的设计 |
2012-12-08 12:35 作者:李晓东 邹雨霏 白杨 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
硅谷网12月8日文 据《硅谷》2012年第18期刊文,本设计是以ATmega16单片机为核心,以UC/OS实时操作系统为软件平台的的低成本、高精度、微型化数字显示的超声波测距系统,实现对前方物体距离的测量。利用超声波传感器对前方物体进行感应,实现无接触式测量,单片机对超声波传感器发射和接收的超声波信号进行分析和处理,并采用DS18B20对系统进行温度补偿,最后将结果显示出来。此系统具有抗干扰能力强、实时性好,经过系统扩展和升级后有很好的应用前景。
0前言
随着科学技术的快速发展,超声波将在测距中的应用越来越广,超声波测距系统作为一种新型的实用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。
超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,因此被广泛应用于距离的测试中。使用超声波检测往往更快速,方便,计算简单,易于做到实时控制,并且在测量精度方面能达到工业使用的要求,测量时与被测物体无需直接接触等优点使其具有广泛的实际应用价值。
目前国内一般是用专用集成电路设计超声波测距仪,但是成本高,没有显示,操作使用不方便,拓展不灵活。基于以上缺点设计了基于ATmega16的超声波测距系统,可广泛应用于生活、生产等各个领域。
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。
ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与运算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
1超声波测距原理
图1超声波测距原理图
超声波是一种频率在20KHz以上的机械波,在空气中的传播速度约为340m/s(20°C时)。超声波可由超声波传感器产生,常用的超声波传感器两大类:一类是采用电气方式产生超声波,一类是用机械方式产生超声波,目前较为常用的是压电式超声波传感器。由于超声波具有易于定向发射,方向性好,强度好控制,对色彩、光照度不敏感,反射率高等特点,因此被广泛应用于无损探伤,距离测量、距离开关、汽车倒车防撞、智能机器人等领域。
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。
式中:c-超声波波速:t-从发射出超声波到接收到回波所用的时间。
由于超声波属于声波范围,其波速c与温度有关,经过测量得出超声波与温度的关系,如表1所示。
表1声速与温度关系表
温度/℃ 声速/(米/秒)
-30 311
-20 319
-15 322
0 336
10 340
25 345
30 350
100 397
将测量的速度数据域温度数据进行一阶拟合得出:
式中:T-当地温度。
2系统设计
本系统采用ATmega16为主控制器,超声波发射和接收电路中都对相应信号进行放大和整形,以保证测量结果尽可能精确。用动态扫描法实现LED数字显示,另外设计温度测量电路测量当时的空气温度,单片机以测量的温度对超声波的传播速度进行调整,使测量精度能够达到要。系统整体结构包括超声波发射电路,超声波接收电路,单片机电路,显示电路和温度补偿电路等几部分模块组成。
UCOS_Ⅱ是一个源代码公开的实时操作系统,它是用ANSIC写成的,所以可移植性非常强。在系统开发中,由于把实时操作系统UCOS_Ⅱ移植到了ATmega16单片机上。
超声波测距仪系统框图如图1所示。
图1系统设计框图
利用单片机定时器由PD5端口发送40KHz的方波信号,用9012三极管作为驱动放大使得超声波发生器产生超声波。
超声波接收电路主要有CX20106A和一些常用元件构成,CX20106A是一款应用广泛的红外线检波接收的专用芯片,其具有功能强、性能优越、外围接口简单、成本低等优点。CX20106A内部有前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成,对接收探头收到的信号进行放大、滤波等处理,其总放大增益80db。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。
本系统中选择温度芯片DS18B20作为温度传感器。DS18B20测量温度范围为-55~125℃,精度为±0.5℃。
3软件设计
近十年来嵌入式操作系统(RTOS)得到了飞速发展,各种流行的微处理器(MCU)8位、16位和32位均可以很容易的得到多种嵌入式实时系统(专业化公司有美国WinCE,WindRiver等,自由软件有μC/OS-II及uClinux等等)的支持。8位、16位MCU以面向硬实时控制为主,32位以面向手机和信息处理和多媒体处理为主,在这些方面Linux正逐渐成为嵌入式操作系统的主流。嵌入式实时操作系统不仅具有微型化、高实时性等基本特征,而且还将向高可靠性、自适应性、支持多CPU核、构件组件化的方向发展。客观世界对嵌入式智能化、装置轻、低功耗、高可靠性的永无止境的要求,使得近千种嵌入式微处理体系结构和几十种实时多任务操作系统并存于世。嵌入式技术也将与时俱进,不断创新。而像μC/OS-II这样的优秀的自由免费的嵌入式操作系统,为了最大限度的满足可移植性的要求,绝大部分代码用C语言写成,只有一少部分用到汇编语言。但对于嵌入式系统这样的专用性很强的系统来说,必须针对嵌入式系统内核本身裁剪,改写μC/OS-II的部分代码,以实现μC/OS-II在不同MCU平台上的移植。
使用ATmega16单片机进行检测数据处理,对定时器1进行初始值设定,然后利用OCR寄存器进行输出比较匹配,最后对输入捕捉寄存器进行设置,利用输入捕捉功能计数并最终计算的出距离,其测距功能初始化程序如下:
voidtimerone_init(void)
{TCCR1B=0x03;
TCNT1H=0x44;
TCNT1L=0x22;
ICR1H=0x07;
ICR1L=0xD0;
OCR1AH=0x03;
OCR1AL=0xD0;
OCR1BH=0x03;
OCR1BL=0x30;
TCCR1A=0x00;
TCCR1B=0xC2;
voidinit_devices(void)
{CLI();
port_init();
timer1_init();
lcd_init();
MCUCR=0x00;
GICR=0x00;
TIMSK=0x20;
SEI();}
4总结
基于ATmega16和μC/OS-II的超声波测距系统利用LCD显示,电路简单,人机显示友好,通讯能力强,可扩展性好,具有良好的实际应用价值。该系统可运用于机器人智能行走和导航,在航天电子行业也有一定的应用领域.可配合其他模块实现多功能测量,同时在显示输入上可扩展触摸屏功能。
|
|
|
|
【对“硅谷杂志:基于μC/OS实时系统的超声波测距系统的设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|