《传感器基础及应用.ppt》由会员分享,可在线阅读,更多相关《传感器基础及应用.ppt(42页珍藏版)》请在三一办公上搜索。
1、传感器基础及应用,1 传感器的发展和作用2 什么是传感器3 传感器的分类4 智能传感器构成的单片机系统,1 传感器的发展和作用,传感器是用以代替、补充、延伸人的感觉器官功能而产生 现代传感器是指具有电输出的装置,是随着集成电路技术和半导体应用技术的发展而发展的传感器能将物理量、化学量和生物量等非电信号转换为相应的电信号,如温度、湿度、压力、张力、振动、位置、角度、液面、气体浓度等,转换后电量的表现形式可以是电压、电流、电阻、电容、脉冲波、频率等。,2 什么是传感器,“能够感受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置,通常由敏感元件和转换元件组成”。敏感元件,是指传感器中能直接
2、感受或响应被测量(输入量)的部分;转换元件,是指传感器中能将敏感元件感受的或响应的被探测量转换成适于传输和(或)测量的电信号的部分。,图 1 传感器组成方块图,图1为传感器组成方块图,此图也说明了传感器的基本组成和工作原理。,传感器的灵敏度,传感器的输出量y与输入量x的函数关系式y=g(x)称为变换函数,亦称灵敏度函数,它表示传感器的输入输出特性,对该函数进行微分,得,S称为传感器的灵敏度。理想情况下,变换函数为一元函数,但实际上由于测量对象与被测环境的干扰,y与x不能单值对应。选用转换元件应使干扰对输出量的影响限制在最低水平。,3 传感器的分类,可分为分立式传感器、模拟集成传感器、智能传感器
3、三类。,分立式传感器:只能提供模拟输出,如电压、电流信号或电阻、电容、电感值的变化。一般所产生电量为微弱信号。,模拟集成传感器:将传感器集成在一个芯片上,可完成测量及模拟信号输出功能的专用IC,如AD590、AD592、LM76、LM135等温度传感器。,智能传感器:具有判断和处理信息的能力,可对测量值进行各种修正和误差补偿,同时还带有自诊断、自校准功能,并具有计算机接口,通过串口将数值传送到微控制器。如AD7414、DS18B20等温度传感器。,传感器的其它分类情况,4 智能传感器构成的单片机系统,对于具体使用传感器进行测控系统设计的用户来讲,往往只关心需要被测的非电物理量以及传感器转换后的
4、电量,希望了解某传感器能转换何种参量,其测量范围和测量精度,是有源还是无源,转换后的电参量如何提取、接口电路如何设计等。这里我们将介绍一种智能传感器构成的应用系统。,DS18B20数字温度计的设计,1、功能要求:数字温度计要求测温范围在,误差在 以内,用LED数码管直读显示。2、方案论证:传统的测温元件有热电耦和热电阻,测出的一般是电压,再转换成对应的温度,需要较多的硬件支持,硬件电路和软件设计相对复杂,成本也不低。本设计采用美国DALLAS半导体公司推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为,分辨率最大可达。DS18B20可以直接读出被测温度值,采用3线制与单片机相
5、连,减少了外部硬件电路,具有低成本和易使用的特点。,总体电路结构框图,按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。,3、系统硬件电路的设计,3.1 主控制器-AT89C2051介绍,与AT89S51相比,AT89C2051只有20个引脚,无P0和P2口及P3.6口线。P1.2P1.7提供内部上拉,P1.0和P1.1则需要外部上拉并有第2功能。其余内部功能结构则和MCS-51类似,软件编程环境也完全一样。具体可参考其PDF文档。,单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统可用两节
6、电池供电。,3.2 显示电路,采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.0P3.3口来实现,列驱动用9012三极管。,数码显示管有“静态显示”和“动态显示”两种显示方式,一般采用动态显示方式,利用了“视觉暂留”的现象来实现的。注意:切换时上一位关闭不要低于50us,各位数码管扫描一遍的时间不要超过62ms。,4位数码管静态显示,3.3 温度传感器的工作原理,1、DS18B20的性能特点DS18B20温度传感器是一种改进型智能温度传感器,可直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字读数方式。其性能特点归纳如下:,独特的单线接口仅需要一个端口引脚进行通信
7、多个DS18B20可并联,实现多点组网功能;无需外部器件 可通过数据线供电,电压范围为3.05.5V;零待机功耗 温度以9或12位数字量读出 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度的器件 负电压特性,电源极性接反时,温度计不会烧毁,2、DS18B20的封装形式,DS18B20采用3脚PR-35封装或6脚TSOC封装或8脚SOIC封装等。,3、DS18B20的内部结构,I/O,VDD,64位ROM的位结构如下图所示。,高速暂存RAM包含8字节存储器,其结构如下图所示。,前两个字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新
8、。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。第6、7、8字节保留未用,为全逻辑1。第9字节读出前面8个字节的CRC码,用来检验数据,从而保证通信数据的正确性。,配置寄存器的字节定义及分辨率的设置规定,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。出厂时该位被设置为0,用户不用改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法如下:,转换温度后的数据值格式,当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值以16位带符号扩展的二进制补码形式存储在高速暂存存
9、储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在前,高位在后,数据格式以0.0625/LSB形式表示。温度值格式如下:,LS字节,MS字节,当符号位S=0时,表示测得的温度值为正值,可以直接将二进制数转换为十进制数,当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算其对应的十进制数。,DS18B20温度与测得值对应表,注:1、DS18B20完成温度转换后,把测得的温度值与RAM中TH、TL字节内容作比较,若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。2、在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机
10、根据ROM的前56位来计算CRC值,并与存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。,4、DS18B20测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中隐含着计数门,当其打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器决定,每次测量前,先将-55度所对应的一个基数置入温度寄存器中。,续前页,减法计数器1对低温度系数晶振所产生的脉冲信号进行减法计数,当其预置值减到0
11、时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数。如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外,由于DS18B20的单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。操作协议为:初始化DS18B20(发复位脉冲)-发ROM功能命令-发存储器操作命令-处理数据,5、DS18B20的主要ROM命令,(1)Read
12、ROM33H,该命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS18B20时才能使用这个命令。如果总线上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突。,(2)Match ROM55H,这是一个匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有与64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。,(3)Skip ROM 0CCH,该命令允许总线控制器不用提供64位RO
13、M编码就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号。总线上就会发生数据冲突。,(4)Seach ROM0F0H,当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上所有从机的64位编码。,(5)Alarm Search0ECH,该命令的流程与Search ROM相同。然而只有在最近一次测温后遇到符合报警条件的情况下,DS18B20才会响应该命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报
14、警状态将一直保持,直到再一次测得的温度值不达到报警条件。,(6)Write Scratchpad 4EH,该命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入,继续写入将给配置寄存器赋值。,(7)Read Scratchpad0BEH,该命令读取暂存器的内容。读取将从第1字节开始,一直进行下去,直到第9(CRC)字节读完。如果不想读完所有字节,主控器可以在任何时间发出复位命令来中止读取。,(8)Copy Scratchpad48H,该命令把暂存器的内容拷贝到DS18B20的E2PROM存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命
15、令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E2PROM,DS18B20就会输出一个0,如果拷贝结束,DS18B20将输出1。如果使用寄生电源,总线控制器必须在这条命令发出后立即启动强上拉并最少保持10ms。,(9)Convert T 44H,该命令启动一次温度转换而无需其它数据。温度转换命令被执行后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间间隙,而DS18B20又忙于把暂存器拷贝到E2PROM存储器,DS18B20就会输出一个0,如果拷贝结束,DS18B20将输出1。如果使用寄生电源,总线控制器必须在这条命令发出后立即启动强上拉并最少保持10ms。
16、,(10)Recall E20B8H,该命令把报警触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在该命令发出之后发出读数据间隙,器件会输出温度转换忙的标识:0表示忙,1表示完成。,(11)Read Power Supply0B4H,若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0表示寄生电源,1表示外部电源。,6、温度数据的计算处理方法,从DS18B20读取的二进制数值必须先转换成十进制数值,才能用于字符的显示。因为DS18B20的转换精度为9-12位可选,为了提高精度采用12位。在采用12位转换精
17、度时,温度寄存器里的值是以0.0625为步进,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。十进制值和二进制值之间有很明显的关系,就是把二进制高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节化成十进制后,就是温度值的小数部分。可以采用1位数码管来显示小数,精确到0.1度,小数部分二进制和十进制的近似对应关系如下:,3.4 系统程序的设计,系统程序主要包括C程序主函数、DS18B20复位函数、DS18B20写字节函数、DS18B20读字节函数、温度计算转换函数和显示函数等。,1、主函
18、数其主要功能是初始化并负责温度的读出、处理计算及显示。温度测量每2s进行一次。,数组及全局变量的初始化定义,2、DS18B20复位函数,总线t0时刻发送一复位脉冲(最短为480us的低电平信号),接着在t1时刻释放总线并进入接收状态,DS18B20在总线的上升沿之后等待15-60us,然后在t2时刻发出存在脉冲(低电平持续60-240us),单片机接收到低电平脉冲说明复位成功,否则需重新进行复位操作。,3、DS18B20写字节函数,当主机总线t0时刻从高拉至低电平时就产生写时间间隙。从t0时刻开始15us之内主机应将所需写的位送到总线上,DS18B20在t0后15-60us内对总线电平采样。连
19、续写2位的间隙应大于1us。,4、DS18B20读字节函数,主机总线t0时刻从高拉至低电平时,总线只需保持低电平1-4us,之后在t1时刻将总线拉高产生读时间隙,读时间隙在t1时刻后t2时刻前有效,t2距t0 15us,也就是说t2时刻前主机必须完成读位并在t0后的60-120us内释放总线。连续读2位的间隙应大于1us。,5、温度计算转换函数,温度数据处理程序将12位温度值进行BCD码转换运算,并进行温度值正负的判定。,课后作业,1、根据本课件的智能温度传感器的硬件电路原理图以及提供的C语言程序,请用单片机的汇编语言程序实现之。2、通过网络或图书馆查找LCM1602的资料,修改硬件电路设计,并编写C程序利用该液晶显示控制器实现温度的实时显示。,