超声波回波衰溅理论浓度计设计

发布者:敬亭山人最新更新时间:2014-11-06 来源: 21ic关键字:微控制器  对数放大器  消抖  动态范围  信号处理 手机看文章 扫描二维码
随时随地手机看文章

1 理论分析
   
超声波在悬浮液中传播时,与悬浮粒子相遇的超声波在界面被散射衰减,其余部分入射到粒子内被吸收衰减,接触界面的超声波又受到粘滞衰减,最后到达接收端。各种衰减的机理是很复杂的,但都是由悬浊粒子所引起,并与悬浊粒子的数目成比例,故在一定条件下衰减是和浓度成比例的,测知悬浮液的声衰减系数,就能求出浓度。设液体中有悬浮粒子时的衰减率和接收电压分别为(a0+ax)和E。,液体中没有悬浊粒子时的衰减率和接收电压分别为a0和E0,发射、接收端之间的距离为L,发射电压为Er,则:
    
    根据上述两个公式,悬浊粒子引起的衰减率可由ax=(lnE0-lnEx)/L求得。
    由接收探头接收到的声波幅度将随悬浮液浓度的增加而衰减,声波幅度转换成的电压值也随浓度的增加而衰减,该浓度一电压衰减曲线经过标定后,即可从测量电压得到浓度值。
 

2 硬件设计
   
如图1所示,整个系统以超声波发射和接收电路为核心,采用直接数字频率合成芯片AD9833产生脉冲串,经过功率放大电路驱动超声波换能器,超声波经过悬浊液到达接收换能器,利用92 dB对数放大器AD8307对回波衰减信号进行对数放大,最后由微控制器对数据进行处理得出浓度值。系统还包括键盘、显示、参数存储、开关量输出、继电器输出、电流输出、UART通信等部分。

2.1 主控芯片电路
    本系统以美国Silab的高速混合信号ISP Flash微控制器C8051F021为核心。衰减法超声波浓度计在超声波发射和接收的时序上需要精确的控制,这不仅需要处理器的速度快,而且需要多个定时器;由接收单元返回的是低于2.5 V的电压信号,需要经过精确的A/D采集转换成数字信号传递给CPU处理。C8051F021的特点如下;
    ①高速、流水线结构的8051兼容的CIP-51内核(可达25 MIPS)。
    ②12位的片上SAR ADC,可编程转换速率,最大100 kbps,可编程放大器增益。
    ③4 352字节内部数据RAM,64 KB Flash存储器;可以在系统编程。
    ④5个通用16位计数器、定时器阵列,硬件SMBus、SPI及2个UART串口。
    ⑤功耗低(10 mA@20 MHz),多种节电休眠和停机方式。
2.2 DDS产生超声波发射单元的脉冲串
    直接数字频率合成器(DDS)以“相位”的概念进行频率合成,不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位,还可以产生三角波和方波。本系统采用DDS AD9833作为超声波发射单元的脉冲生成器。AD9833是可编程的,通过高速串口外围接口(SPI),只需要一个外部时钟去产生简单正弦波就可工作。AD9833可以在基于25 MHz的时钟下产生0 Hz~12.5 MHz的波形。
    超声波发射单元的脉冲生成电路如图2所示。DDS的时钟来源于25 MHz有源晶振。AD9833的SPI总线CLK、DATA、CS与微处理器的I/O口通过一片74HC244相连接。74HC244是八同相三态缓冲器,用于增强信号带负载能力。通过微处理的控制,AD9833在VOUT引脚输出需要频率的方波。AD9833的输出与微控制器的选通信号EN在与非门的作用下,在与非门的输出端产生脉冲串,这个脉冲串经过功率放大电路就可以对超声波换能器进行驱动。

2.3 超声回波接收单元的对数放大器
   
在信号处理领域中,一些信号往往具有很宽的动态范围。比如在雷达、声纳等系统中,需要处理的信号动态范围可达120 dB以上;超声波回波接收器前端的电压也可以从“μV”级到“V”级。宽动态范围往往给应用设计带来很多问题。
    在实际应用中,一般会对所要处理的信号进行非线性压缩。应用最多的就是对数放大器。它使输出信号和输入信号的包络成对数比例。它对信号动态范围的压缩不需要像AGC系统那样提取输入信号的电平来控制增益,其增益与信号的大小成反比,在通信、雷达、超声、电子对抗中有着广泛的应用。[page]
    如图3所示,该方案采用单端输入,有对数零点和斜率调节电路,将对数零点设在-84 dBm,斜率定为大约20 mV/dB。对数放大器后加一级缓冲(AD8031),主要作用有二:一是使接收模块最终输出是低阻抗的,提高抗干扰能力;二是通过这一级的电压增益将对数斜率恢复到25 mV/dB 。设计的对数放大器信号输入范围定为-72 dBm(在50 Ω源阻抗时,-72 dBm相当于振幅为±80 μV的正弦波)到+10 dBm(振幅为±1 V的正弦波),相应的对数输出电压为0.3~2.35 V,对数动态范围82 dB 。该电路做成模块形式,封装在屏蔽罩中。所有引线(地线和输出信号线除外)均通过穿心电容引出,穿心电容的外极接地,以提高屏蔽效果。

3 软件设计
    超声波浓度计软件由信号处理程序、界面程序、控制信号输出程序、通信程序四部分组成,软件总流程如图4所示。信号处理程序实现DDS控制、超声波发射、回波信号A/D采集、信号综合处理等功能,是软件程序的重点。界面程序包括界面显示、参数设置、键盘处理等功能,实现与用户良好的沟通。控制信号输出程序实现了电流信号、继电器信号、开关量的输出,完成了工业现场控制的需要。通信程序按一定的协议送出仪表存储的单次A/D值和综合处理的显示值,供仪器的性能校验使用。

    软件程序的核心由超声波发射(包含DDS脉冲合成)、超声波回波A/D采集程序、信号滤波程序、浓度计算程序构成。
3.1 超声波发射程序、回波A/D采集程序
    本系统选用的DDS是SPI总线的,在串口时钟SCLK的作用下,数据以16位的方式加载到设备上。FSYNC引脚是使能引脚,电平触发方式,低电平有效。进行串行数据传输时,FSYNC引脚必须置低,要注意FSYNC有效到SCLK下降沿的建立时间的最小值。FSYNC置低后,在16个SCLK的下降沿数据被送到DDS的输入移位寄存器,在第16个SCLK的下降沿FSYNC可以被置高,但要注意在SCLK下降沿到FSYNC上升沿的数据保持时间的最小和最大值。当然,也可以在FSYNC为低电平的时候,连续加载多个16位数据,仅在最后一个数据的第16个SCLK的下降沿时将FSYNC置高。最后要注意的是,写数据时SCLK时钟为高低电平脉冲,但是,在FSYNC刚开始变为低时(即将开始写数据时),SCLK必须为高电平。
    通过微控制器的硬件SPI(使用微控制器的3个端口)可以控制DDS输出0 Hz~12.5 MHz的方波。另外使用一个端口和DDS的输出共同作为与非门的输入,这样就可以实现脉冲串的时长控制,开启脉冲串输出的同时对时长计数,依据超声波在矿浆中的传送速度和发射接收传感器的间距就可以判断何时接收超声波回波。利用片内A/D采集超声波回波,便可以对A/D采集到的数字信号进行处理。
3.2 信号滤波程序
   
常用的软件滤波方法很多,包括限幅滤波法、中位值滤波法、算数平均滤波法、递推平均滤波法、中位值平均滤波法、限幅平均滤波法、一阶滞后滤波法、加权递推平均滤波法、消抖滤波法。由于工业现场环境恶劣,采集到的信号没经过处理往往不能直接用,这样就需要对采集到的A/D值进行滤波处理。由于现场的跳变是随机的,所以不能用常规的滤波程序,需要用到限幅滤波法和消抖滤波法的综合方法——限幅消抖滤波法。
    限幅滤波法是根据经验判断,确定两次采样允许的最大偏差值(设为A)。每次检测到新值时判断:如果本次值与上次值之差小于等于A,则本次值有效;如果本次值与上次值之差大于A,则本次值无效,放弃本次值,继续下一次A/D采样。
    消抖滤波法是设置一个滤波计数器,将每次采样值与当前有效值比较:如果采样值等于当前有效值,则计数器清零;如果采样值大于或小于当前有效值,则计数器加1,并判断计数器是否大于等于上限N(溢出)。如果计数器溢出,则将本次值替换当前有效值,并清零计数器。限幅消抖滤波程序能随着现场的跳变做出相应的改变,使信号处理更合理准确。
3.3 浓度计算程序
   
浓度计算程序中包含浓度曲线拟合和温度补偿两部分。
    曲线拟合是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。浓度曲线拟合经过多次的试验校正,采用了2条一次曲线和1条二次曲线,确保浓度的最大程度拟合。同时由于现场不同环境的需要,设置了一些拟合参数,以便于随时调整。
    温度变化给超声波传感器实际测量带来误差,表现在微控制器对超声波回波A/D采集上产生非线性变化。为了解决这个问题,必须进行温度补偿,找出它们之间的关系,建立相应的数学模型。本系统用拟合法求出各温度时的传感器静态输出特性的拟合多项式,将各个拟合参数b0,b1,b2,…,bk写入程序,对微控制器片上A/D采集到的超声波回波数据进行温度补偿,即由输入温度和A/D值查找和计算相应的补偿后的正确值,确保浓度数据的正确性。
 

结 语
    本文讨论了超声波浓度计的实现方法及应用的主要技术,发射电路采用DDS,接收电路采用对数放大器,经工程实践证明,这些方法都是可行的。但由于自身电路的局限和工业现场的环境干扰,该产品的精度还有待提高。

关键字:微控制器  对数放大器  消抖  动态范围  信号处理 引用地址:超声波回波衰溅理论浓度计设计

上一篇:基于ADC0809和51单片机的多路数据采集系统设计方案
下一篇:串行通信口接收与发送程序

推荐阅读最新更新时间:2024-03-16 13:45

单片机实现喷油泵转速和提前角的高精度测量
1引言 喷油提前角是指发动机在运转中,喷油嘴向气缸开始喷油的瞬时(以喷油嘴针阀升起为标志)到活塞行至上止点时的曲轴转角。在使用中用供油提前角来代替。由于柴油机喷油泵凸轮驱动装置的磨损,提前角会发生变化。另外,发动机气缸套、活塞磨损或曲轴、连杆瓦在镗修或更换后,也会使提前角偏离正常燃烧所要求的值。因此,发动机在使用中,喷油提前角需要经常检查或调整。高精度测量提前角的值是准确调整的关键。本文介绍的用单片机测量提前角的方法,具有测量精度高、范围宽、简单的特点。 2测量原理 在试验台电机的主轴上和喷油泵分别固定一个光电传感器,光脉冲由光电电路转换成电脉冲,分别用N1和N2表示。8051单片机定时/计数器0设置为工作方式2,
[单片机]
<font color='red'>单片机</font>实现喷油泵转速和提前角的高精度测量
PIC单片机在MPLAB-IDE中使用HitechC编译器
PIC单片机的C语言使用(一) 在MPLAB-IDE中使用HitechC编译器 一、装入编译器: 1、启动MPLAB-IDE,如下图所示选择Project-》Install Language Tool 2、在弹出的安装语言工具对话框里“Language Suite”选项现在显示的是Microchip,点击后面的箭头来选择语言。 我使用的工具是HI-TECH PICCME,所以选择为“HI-TECH PICC”。 3、接下来在“Tool Name”里选择编译器组件的调用路径,这里有“PICC Compiler”(C编译器)、“PICC Assembler”(汇编器)和“PICC Linker”(链接器)3项都需要设置。
[单片机]
PIC<font color='red'>单片机</font>在MPLAB-IDE中使用HitechC编译器
89c51单片机编程环境布置
第一步,使用Professional 的isis7连接模拟电路 第二步,根据电路引脚的使用情况,用keil uVision4编写调试源程序 第三步,代码调试无误,回到isis7中,将代码下载到模拟硬件中。运行查看。 具体做法:右击单片机AT89c51,选择最底下的Add/Remove source files,出现下图: 其中Code Generation Tool从下拉列表选择ASEM51,source code filename调整目录选择自己的源码,点击ok即可完成软件下载到硬件。 第四步:运行,查看效果。单击左下角三角图标:
[单片机]
基于单片机的EMS液晶显示触摸屏设计方案
   0 引 言   电动车一直以清洁环保而备受关注,加上能源危机加剧、油价不断上涨,电动车也越来越受到用户的青睐。电动车一般采用锂电池供电,由多个单体电池串联成电池组作为动力电源。但由于各个串联单体电池特性不能保证完全一致,因此相同的电流下充电放电速度也会不同,如果不进行均衡干预,电池寿命会大大缩短,因此需要实时监控各个单体电池的状态、总电压、总电流,根据状态适时进行电池充放电均衡,并且充放电均衡时,均衡状态也要实时进行检测,所以就有了电动车电池能量管理系统(EMS)。实践证明EMS可以有效延长电动车电池使用寿命,是电动车中十分重要的管理系统。   EMS主要包括:信息采集模块、充放电均衡模块、信息集中处理模块以及显示模块。
[单片机]
基于<font color='red'>单片机</font>的EMS液晶显示触摸屏设计方案
基于MSP430单片机的智能小车设计
1 系统的总体结构框图 该系统主要由MSP430控制器,超声波避障模块,电机驱动,测速,语音模块,温度模块,小车的机械运动部分采用四轮差速转向式结构,前2个轮是驱动轮,分别由电机控制其运动,后两轮为随动轮。采用MSP430F2274单片机作为主控制单元,小车装有超声波模块来负责探测障碍物,做出避障决策。在小车的驱动轮上装有光电编码器对小车进行测速。为消除温度对测距的影响,使用温度传感器模块时刻检测小车周围的温度情况并修正。在小车上装配语音播报功能模块,能知道小车的位置和运行状态,总体结构框图如图1所示。 图1 系统的总体框图 2 智能小车的硬件设计 2.1 主控芯片 该设计是以MSP430F2274单片机
[单片机]
基于MSP430<font color='red'>单片机</font>的智能小车设计
51单片机-数码管&LED
1.同时点亮猜想 在本章第一节里说过要想点亮数码管,那么我们第一章学过的LED小灯就没有机会点亮了,硬件上的确是这样。 不过我们软件上还是可以实现让一个数码管和一盏LED小灯同时点亮的,大家还记得我们之前举过一个这样的例子吗? #include reg52.h sbit LED2 = P0^0; sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; sbit ENLED = P1^4; sbit ADDR3 = P1^3; void main() { ADDR3 = 1;//使能三八译码器 ENLED = 0;// ADDR2 =
[单片机]
小容量单片机系统的C语言程序结构
引 言:   2002年初,笔者着手写一个IC卡预付费电表的工作程序,该电表使用Philips公司的8位51扩展型单片机87LPC764,要求实现很多功能,包括熄显示、负荷计算与控制、指示闪烁以及电表各种参数的查询等,总之,要使用时间的单元很多。笔者当时使用ASM51完成了这个程序的编写,完成后的程序量是2KB多一点。后来,由于种种原因,这个程序并没有真正使用,只是作了一些改动之后用在一个老化设备上进行计时与负荷计算。约一年后,笔者又重新改写了这些代码。 1 系统的改进   可以说,这个用ASM51实现的代码是没有什么组织性可言的,要什么功能就加入什么功能,弄得程序的结构非常松散,其实这也是导致笔者最终决定重新改写这些代
[单片机]
51单片机在智能压力传感器设计中的应用
在现代科技领域中,传感器技术的地位越来越重要。本文主要论述了51单片机在智能压力传感器设计中的应用,以及对其发展的影响。研究的重点是智能压力传感器本身的稳定性,结合51单片机和压力传感器,对压力感器本身抗干扰能力有了改善的作用,也对压力传感器的智能化和标准化有了促进作用。   引言   对目前所有兼容lntel 8031指令系统的单片机,统l称为51单片机。控制系统传统的设计思想和设计方法,因51单片机的应用从根本上得到了改变。现在正在用单片机通过软件的方法,来实现采用硬件电路实现的大部分控制功能,智能化的数字计算控制、模糊控制和自适应控制可通过单片机来实现,从而改变自动控制中的PID调节。压力传感器,英文名称是press
[工业控制]
51<font color='red'>单片机</font>在智能压力传感器设计中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved