跳至主要内容

【转】传感器的基本知识

一、传感器的定义

国家标准GB7665-87对传感器下的定义是:"能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成"。传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。

二、传感器的分类

目前对传感器尚无一个统一的分类方法,但比较常用的有如下三种:
1、按传感器的物理量分类,可分为位移、力、速度、温度、流量、气体成份等传感器
2、按传感器工作原理分类,可分为电阻、电容、电感、电压、霍尔、光电、光栅、热电偶等传感器。
3、按传感器输出信号的性质分类,可分为:输出为开关量("1"和"0"或"开"和"关")的开关型传感器;输出为模拟型传感器;输出为脉冲或代码的数字型传感器。

三、传感器的静态特性

传感器的静态特性是指对静态的输入信号,传感器的输出量与输入量之间所具有相互关系。因为这时输入量和输出量都和时间无关,所以它们之间的关系,即传感器的静态特性可用一个不含时间变量的代数方程,或以输入量作横坐标,把与其对应的输出量作纵坐标而画出的特性曲线来描述。表征传感器静态特性的主要参数有:线性度、灵敏度、分辨力和迟滞等。

四、传感器的动态特性

所谓动态特性,是指传感器在输入变化时,它的输出的特性。在实际工作中,传感器的动态特性常用它对某些标准输入信号的响应来表示。这是因为传感器对标准输入信号的响应容易用实验方法求得,并且它对标准输入信号的响应与它对任意输入信号的响应之间存在一定的关系,往往知道了前者就能推定后者。最常用的标准输入信号有阶跃信号和正弦信号两种,所以传感器的动态特性也常用阶跃响应和频率响应来表示。

五、传感器的线性度

通常情况下,传感器的实际静态特性输出是条曲线而非直线。在实际工作中,为使仪表具有均匀刻度的读数,常用一条拟合直线近似地代表实际的特性曲线、线性度(非线性误差)就是这个近似程度的一个性能指标。
拟合直线的选取有多种方法。如将零输入和满量程输出点相连的理论直线作为拟合直线;或将与特性曲线上各点偏差的平方和为最小的理论直线作为拟合直线,此拟合直线称为最小二乘法拟合直线。

六、传感器的灵敏度

灵敏度是指传感器在稳态工作情况下输出量变化△y对输入量变化△x的比值。

它是输出一输入特性曲线的斜率。如果传感器的输出和输入之间显线性关系,则灵敏度S是一个常数。否则,它将随输入量的变化而变化。
灵敏度的量纲是输出、输入量的量纲之比。例如,某位移传感器,在位移变化1mm时,输出电压变化为200mV,则其灵敏度应表示为200mV/mm。
当传感器的输出、输入量的量纲相同时,灵敏度可理解为放大倍数。
提高灵敏度,可得到较高的测量精度。但灵敏度愈高,测量范围愈窄,稳定性也往往愈差。

七、传感器的分辨力

分辨力是指传感器可能感受到的被测量的最小变化的能力。也就是说,如果输入量从某一非零值缓慢地变化。当输入变化值未超过某一数值时,传感器的输出不会发生变化,即传感器对此输入量的变化是分辨不出来的。只有当输入量的变化超过分辨力时,其输出才会发生变化。
通常传感器在满量程范围内各点的分辨力并不相同,因此常用满量程中能使输出量产生阶跃变化的输入量中的最大变化值作为衡量分辨力的指标。上述指标若用满量程的百分比表示,则称为分辨率。

八、电阻式传感器

电阻式传感器是将被测量,如位移、形变、力、加速度、湿度、温度等这些物理量转换式成电阻值这样的一种器件。主要有电阻应变式、压阻式、热电阻、热敏、气敏、湿敏等电阻式传感器件。

九、电阻应变式传感器

传感器中的电阻应变片具有金属的应变效应,即在外力作用下产生机械形变,从而使电阻值随之发生相应的变化。电阻应变片主要有金属和半导体两类,金属应变片有金属丝式、箔式、薄膜式之分。半导体应变片具有灵敏度高(通常是丝式、箔式的几十倍)、横向效应小等优点。

十、压阻式传感器

压阻式传感器是根据半导体材料的压阻效应在半导体材料的基片上经扩散电阻而制成的器件。其基片可直接作为测量传感元件,扩散电阻在基片内接成电桥形式。当基片受到外力作用而产生形变时,各电阻值将发生变化,电桥就会产生相应的不平衡输出。

用作压阻式传感器的基片(或称膜片)材料主要为硅片和锗片,硅片为敏感 材料而制成的硅压阻传感器越来越受到人们的重视,尤其是以测量压力和速度的固态压阻式传感器应用最为普遍。

十一、热电阻传感器

热电阻传感器主要是利用电阻值随温度变化而变化这一特性来测量温度及与温度有关的参数。在温度检测精度要求比较高的场合,这种传感器比较适用。目前较为广泛的热电阻材料为铂、铜、镍等,它们具有电阻温度系数大、线性好、性能稳定、使用温度范围宽、加工容易等特点。用于测量-200℃~+500℃范围内的温度。

十二、传感器的迟滞特性

迟滞特性表征传感器在正向(输入量增大)和反向(输入量减小)行程间输出-一输入特性曲线不一致的程度,通常用这两条曲线之间的最大差值△MAX与满量程输出F・S的百分比表示。

迟滞可由传感器内部元件存在能量的吸收造成。

评论

此博客中的热门博文

【转】嵌入式开发中使用DDD进行调试

 在嵌入式程序开发过程中,程序员要进行大量的调试,以此验证程序的正确性,修改潜在的错误。调试器对于程序员来说是不可或缺的必备工具。在Linux环境中,有很多调试工具和调试辅助工具,例如GDB、XXGDB、RHIDE、XWPE、GVD和DDD等。其中,DDD是命令行调试器的图形前端,除了一般的程序调试功能以外,还具有交互式图形数据显示的功能。它在嵌入式应用开发中也十分出色。本文主要讲述DDD(Data Display Debugger)的使用方法。      1.认识DDD     GNU DDD是命令行调试程序,如GDB、DBX、WDB、Ladebug、JDB、XDB、Perl Debugger或Python Debugger的可视化图形前端。它特有的图形数据显示功能(Graphical Data Display)可以把数据结构按照图形的方式显示出来。DDD最初源于1990年Andreas Zeller编写的VSL结构化语言,后来经过一些程序员的努力,演化成今天的模样。DDD的功能非常强大,可以调试用C\C++、Ada、 Fortran、Pascal、Modula-2和Modula-3编写的程序;可以超文本方式浏览源代码;能够进行断点设置、回溯调试和历史纪录编辑;具有程序在终端运行的仿真窗口,并在远程主机上进行调试的能力;图形数据显示功能(Graphical Data Display)是创建该调试器的初衷之一,能够显示各种数据结构之间的关系,并将数据结构以图形化形式显示;具有GDB/DBX/XDB的命令行界面,包括完全的文本编辑、历史纪录、搜寻引擎。     DDD是开源软件,用户可以去 http://www.cs.tubs.de/softech/ddd/ 下载.rpm格式的DDD源码文件。      图1显示的是DDD的主窗口。它主要由选单栏、工具条、数据窗口、源文件窗口、机器码窗口、控制台和命令工具窗口等几部分组成。其中,数据窗口用于观察复杂的数据结构,在删除数据之后,显示仍然有效;源文件窗口显示源代码、断点和当前执行到达的位置,选择该窗口中的"Display"项,可以显示任意表达式的值;机...

【转】cs8900网卡的移植至基于linux2.6内核的s3c2410平台

cs8900网卡的移植至基于linux2.6内核的s3c2410平台(转) 2008-03-11 20:58 硬件环境:SBC-2410X开发板(CPU:S3C2410X) 内核版本:2.6.11.1 运行环境:Debian2.6.8 交叉编译环境:gcc-3.3.4-glibc-2.3.3 第一部分 网卡CS8900A驱动程序的移植 一、从网上将Linux内核源代码下载到本机上,并将其解压: #tar jxf linux-2.6.11.1.tar.bz2 二、打开内核顶层目录中的Makefile文件,这个文件中需要修改的内容包括以下两个方面。 (1)指定目标平台。 移植前:         ARCH?= $(SUBARCH) 移植后: ARCH            :=arm (2)指定交叉编译器。 移植前: CROSS_COMPILE ?= 移植后: CROSS_COMPILE   :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu- 注:这里假设编译器就放在本机的那个目录下。 三、添加驱动程序源代码,这涉及到以下几个方面。(1)、从网上下载了cs8900.c和cs8900.h两个针对2.6.7的内核的驱动程序源代码,将其放在drivers/net/arm/目录下面。 #cp cs8900.c ./drivers/net/arm/ #cp cs8900.h ./drivers/net/arm/ 并在cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句: __raw_writel(0x2211d110,S3C2410_BWSCON); __raw_writel(0x1f7c,S3C2410_BANKCON3); 注:其原因在"第二部分"解释。 (2)、修改drivers/net/arm/目录下的Kconfig文件,在最后添加如...

【转】函数指针和指针函数

【函数指针】        在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。 1.函数指针定义 函数类型 (*指针变量名)(形参列表); "函数类型"说明函数的返回类型,由于"()"的优先级高于"*",所以指针变量名外的括号必不可少,后面的"形参列表"表示指针变量指向的函数所带的参数列表。 例如: int (*f)(int x); double (*ptr)(double x); 在定义函数指针时请注意:     函数指针和它指向的函数的参数个数和类型都应该是―致的; 函数指针的类型和函数的返回值类型也必须是一致的。 2.函数指针的赋值 函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。 例如, int func(int x);   /* 声明一个函数 */ int (*f) (int x);    /* 声明一个函数指针 */ f=func;            /* 将func函数的首地址赋给指针f */ 赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。 3.通过函数指针调用函数 函数指针是通过函数名及有关参数进行调用的。 与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则*p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则*pf就等价于它所指的变量f。同样地,*f是指向函数func(x)的指针,则*f就代表它所指向的函数func。所以在执行了f=func;之后,(*f)和func代表同一函数。 由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。现在我们就讨论如何用函数指针调用函数,它应执行下面三步: 首先,要说明函数指针变量。 例如:int (*f)...