汽车传感器实验报告

2024-05-29

汽车传感器实验报告(通用7篇)

篇1:汽车传感器实验报告

车用传感器很多,判断传感器出现的故障时,不应只考虑传感器本身,而应考虑出现故障的整个电路。因此,在查找故障时,除了检查传感器之外,还要检查线路。插接件以及传感器与电控单元之间的有关电路。下面我们来认识一下汽车上的主要传感器。空气流量传感器

空气流量传感器是将吸入的空气转换成电信号送至电控单元(ECU),作为决定喷油的基本信号之一。根据测量原理不同,可以分为旋转翼片式空气流量传感器(丰田PREVIA旅行车)、卡门涡游式空气流量传感器(丰田凌志LS400轿车)、热线式空气流量传感器(日产千里马车用

VG30E发动机和国产天津三峰客车TJ6481AQ4装用的沃尔沃B230F发动机)和热膜式空气流量传感器四种型式。前两者为体积流量型,后两者为质量流量型。目前主要采用热线式空气流量传感器和热膜式空气流量传感器两种。

进气压力传感器

进气压力传感器可以根据发动机的负荷状态测出进气歧管内的绝对压力,并转换成电信号和转速信号一起送入计算机,作为决定喷油器基本喷油量的依据。国产奥迪100型轿车(V6发动机)、桑塔纳2000型轿车、北京切诺基(25L发动机)、丰田皇冠3.0轿车等均采用这种压力传感器。目前广泛采用的是半导体压敏电阻式进气压力传感器。

节气门位置传感器

节气门位置传感器安装在节气门上,用来检测节气门的开度。它通过杠杆机构与节气门联动,进而反映发动机的不同工况。此传感器可把发动机的不同工况检测后输入电控单元(ECU),从而控制不同的喷油量。它有三种型式:开关触点式节气门位置传感器(桑塔纳2000型轿车和天津三峰客车)、线性可变电阻式节气门位置传感器(北京切诺基)、综合型节气门位置传感器(国产奥迪100型V6发动机)。

曲轴位置传感器

也称曲轴转角传感器,是计算机控制的点火系统中最重要的传感器,其作用是检测上止点信号、曲轴转角信号和发动机转速信号,并将其输入计算机,从而使计算机能按气缸的点火顺序发出最佳点火时刻指令。曲轴位置传感器有三种型式:电磁脉冲式曲轴位置传感器、霍尔效应式曲轴位置传感器(桑塔纳2000型轿车和北京切诺基)、光电效应式曲轴位置传感器。曲轴位置传感器型式不同,其控制方式和控制精度也不同。曲轴位置传感器一般安装于曲轴皮带轮或链轮侧面,有的安装于凸轮轴前端,也有的安装于分电器(桑塔纳2000型轿车)。

爆震传感器

爆震传感器安装在发动机的缸体上,随时监测发动机的爆震情况。目前采用的有共振型和非共振型两大类。

篇2:汽车传感器实验报告

程: 传感器应用

级: 12物联网 姓

名:

号:

指导老师:

酒精传感器实验报告

一、实验名称:酒精传感器

二、实验目的:

1、能够读懂电子产品原理图,了解气敏传感器以及各电子元件的作用。2、能够具备电子产品的焊接技能以及故障分析、判断能力。

三、功能描述:

本设计介绍了一种酒精浓度检测仪的设计方法,主要利用MQ3还原性气体传感器作为酒精气体传感器,通过分压电阻转换为成比例的电压,再利用线性显示驱动LM3914驱动不同颜色的发光二极管和蜂鸣器提示检测得到的酒精浓度大小。根据自动检测系统的组成结构,该酒精浓度检测仪包含酒精气体传感器,信号处理电路和执行指示机构等部分。对于酒精气体传感器,只要是一般性的还原性气体传感器都能够使用。具体的信号传递与结构如下图所示。

四、硬件电路设计:

电路的前端部分MQ3传感器和分压电路按照常规设计即可,执行驱动声光指示的电路需要驱动多个发光管以及一个蜂鸣器,即需要将分压电路得出的电压转换成LED线段显示同时在某点驱动蜂鸣器发声。因此本设计拟采用LED通用电平显示驱动芯片LM3914作为执行机构。

1、MQ-3气敏电阻传感器

本设计采用的是表面电阻控制型气敏传感器MQ-3,该气体传感器的敏感材料是活性很高的金属氧化物半导体,最常用的如SnO2。金属氧化物半导体在空气中被加热到一定温度时,氧原子被吸附在带负电荷的半导体表面,半导体表面的电子会被转移到吸附氧上,氧原子就变成了氧负离子,同时在半导体表面形成一个正的空间电荷层,导致表面势垒升高,从而阻碍电子流动,电阻较大。当N型半导体的表面在高温下遇到离解能力较小(易失去电子)的还原性气体时,气体分子中的电子将向气敏电阻表面转移,使气敏电阻中的自由电子浓度增加,电阻率降低,电阻减小。其应用于家庭、工厂、商业场所的气体泄漏监测装置,防火/安全探测系统。气体泄漏报警器,气体检漏仪。特点:高灵敏度、快速响应恢复、优异的稳定性、长寿命、驱动电路简单、电信号输出强。如下图所示。

酒精传感器实验报告

2、LED通用电平显示驱动芯片LM3914 通用电平显示驱动芯片LM3914片内有10个电压比较器,10个1K欧姆精密电阻串联组成的分压器分别向各电压比较器提供比较基准;直线驱动10个发光二极管(LED)组成的10段“线”或“点”式条图显示器;对被测量的变化反映迅速真实;无阻尼现象;抗干扰能力强。

利用10个发光二极管作为输入端电平变化的显示,输入端电平信号可以是通过各类传感器和变换电路而探测的各种物理量,如电压、电流、温度、湿度、亮度、响度、音频、距离、磁场强度、重量等等。用它做成的电平显示器,既醒目、直观,又方便、实用,并且能反映瞬间变化的信号,用途十分广泛。例如,在电路设计制作中,它既可以通过探头和处理电路实现温度控制和显示,用于烘箱、冰箱、空调、热塑封机等设备上,也可以通过分压变换电路实现电压高低的直观显示,用于仪器、仪表、音响及办公设备上。

核心电路采用了塑封双列直插的18脚LED点条显示驱动集成电路LM3914,电路构成及管脚功能如下图所示。LM3914内部含有10个相同的电压比较器,它们的输出端可以分别直接驱动外接的10只发光二极管(VDl—VDl0)作条状显示,也可以实现点状显示。它们的反相输入端并联在一起,并通过一个缓冲器接到输入端5脚。而10个同相输入端分别接到由10个精密电阻串联而成的多级分压器上。而这个分压器的两端在内部没有与其它电路或公共端相连,而是直接由6、4脚引出,通常将之称为悬浮式,这样使得应用电路的设计更加灵活和方便。

以一个分辨率为0.125V的10级线性电压表为例说明其工作原理。这个电压表的最大量程为1.25V,将9、11脚相连,设定为点状显示,这样比较省电。分压器就用内部基准电压源,6、7脚相连,4、8脚相连并接地,则分压器每个1k电阻上的压降为0.125V,因此最下面的一个比较器1同相输入端的电位为0.125V,比较器2同相输入端电位为0.25V,依此类推,最上面的一个比较器10基准电压设定为1.25V。当5脚输入电压小于0.125V时,10个LED都不发光,3

酒精传感器实验报告

当输入电压大于0.125V但小于0.25V时,比较器1反相输入端电位高于同相输入端,则比较器1输出低电位,使VD1发光;当输入电压大于0.25V但小于0.375V时,则VD2发光;依此类推,当输入1.25V电压时,VDl0发光。以上是用10个LED作0-1.25V十级显示,每级0.125V;若将6脚外接10V标准电压源,4脚接地。可以作0-10V十级显示的电压表,若将6脚接10V,4脚接5V电压,少比3脚电源电压VCC低2V。

3、电路及工作原理分析

本设计采用5V电源供电,前端是MQ-3型酒精气体浓度传感器,利用电阻分压电路将酒精浓度由电阻量转化为电压量,在通过驱动芯片LM3914按照电压大小驱动输出相应的发光管,当到达一定阈值时蜂鸣器被触发,发出报警声。调试时通过电位器RP调节测量的灵敏度。具体的电路原理如下图所示。

酒精传感器实验报告

4、PCB制版

酒精传感器实验报告

酒精传感器实验报告

五、功能调试:

1、检查电源回路

在通电之前,用数字万用表的二极管通断档测量电源正负接入点之间的电阻,应该成高阻态。如果出现短路现象,应立即排查,防止通电烧元件的事故。同时,目测IC的正负电源是否接反。当一切正常后方可通电调试。

2、电压直接调节

本设计主要是通过电阻分压电路测量酒精气体浓度变化的,而LM3914也是根据输入电压的大小决定点亮LED的数量的,因此可以先调试传感器之后的电路时是否正常。使用稳压电源的一组5V使系统通电后,将可调稳压电源的另一组输出调至0.2V左右,其电源正通过一个1K的电阻接入图中的A点,其电源负与系统电源负短接。再调节电源从0.2V-5V,观察输出LED和蜂鸣器的变化。正确的变化应该是,LED1-LED9挨个被点亮,在LED5和LED6被点亮之间蜂鸣器将发出声音,并一直持续。

如果没有一个LED被点亮,可能是LM3914的周边电路没有配合好,或者是电路某点有开路;如果是最终有几个红色LED未被点亮,可能是电位器RP的阻值偏小,调大一些再试;蜂鸣器未发出声响,可能原因是后面的发生电路开路,或者三极管烧坏。

3、酒精液体校准

按照传感器的使用要求,先通电将传感器预热。然后使用乙醇液体作为酒精气体的散发源,先使用50%的乙醇水溶液,再根据具体情况调节乙醇含量,最终得到200ppm的酒精调试系统。

4、电位器调节灵敏度

调试完成,根据具体的需要调节电位器RP,控制系统测试的灵敏度,要注意传感器的电阻参数

篇3:汽车氧传感器故障浅析

1 氧传感器的结构和工作原理

发动机燃烧后所产生的有害废气主要有三种:一氧化碳、碳氢化合物、氮氧化合物。氧传感器的功用是通过监测排气中氧离子的含量来反馈给电控发动机的ECU, 通过ECU对各个参数如冷却液温度, 进气温度, 发动机转速, 负荷, 爆震等情况进行综合分析后进行计算给出合适的混合气的空燃比。

用二氧化锆或二氧化钛这种材料做成的氧传感器, 如图 (1) 它能够很好的感知发动机尾气中氧的浓度并把它转化为电信号, 因此, 在电控发动机的闭环控制系统中, 都安装了一只或二只氧传感器, 一般的, 氧传感器的位置越靠近燃烧室, 燃油控制的精度就越高, 这多数是由尾气的流动速度, 排气管道的长度和传感器的反应速度所决定。氧传感器的工作中有三个较为重要的参数;最高信号电压、最底信号电压、混合气由浓到稀时信号的响应时间, 这三个参数中有一个不符合规定, 氧传感器就必须更换。正常情况下 (冷却液温度90℃) 发动机中低负荷运行时, 查看氧传感器的数据流中电压值的变化频率为10秒钟内至少在8次以上。氧传感器输出的电压在0.3~1.2 V范围快速变化, 其中怠速及慢加速时氧传感器输出的电压会偏向高的一端, 在中等负荷或2000转以上固定转速时氧传感器输出的电压会偏向低的一端。特别要注意的是许多电控系统为配合排放控制对ECU的控制进行了一定的设定 (发动机处于开环工作状态) , 如发动机在冷却液温度较低时不检测氧传感器;启动发动机时不检测氧传感器;急加速 (或超车) 时不检测氧传感器;因此, 在维修检测时不要引起误判。

2 氧传感器常见故障

许多氧传感器的故障与发动机的工作状态或某些元件的工作有关, 如氧传感器的输出电压持续偏低, 反映为混合气偏稀, 有可能是由进气系统出现漏气, 空气流量计损坏, 个别喷油器堵塞或不喷油;如氧传感器的输出电压持续偏高, 反映为混合气偏浓, 有可能是由于空气滤清器过脏、空气流量计损坏, 少数喷油器漏油或关闭不严;因油品不符合要求造成的氧传感器故障:油品的质量问题会造成氧传感器“中毒”现象, 用解码器查看氧传感器的数据流可以看到电压输出的变化十分缓慢, 一旦氧传感器的表面被严重污染会造成氧传感器检测不到正常的氧的浓度, 同时ECU不能获得正确的反馈, 从而给出不正确的空燃比浓度 (极浓) , 这种情况往往引起排气消声器被炸, 同时遭到损坏的还有三元催化器。由点火系引起的氧传感器故障, 因为点火系工作中的点火过早、点火过迟、缺火也会造成氧传感器的高温损坏或性能的降低。ECU与氧传感器之间的线路出现问题而不正常, 这种情况多出现在事故车或老旧车型, 多数时候需更换线束总成。氧传感器本身的问题, 氧传感器的正常工作温度为300℃-500℃加上工作时排气管尾气的持续高温环境非常恶劣, 通常有3线或4线的氧传感器其内部有大功率的加热电阻工作到一定时间容易被烧毁, 过高的温度也容易使锆或钛材料失效。

3 案例

一桑塔纳2000GSI行驶120000 km后出现怠速非常不稳, 加速迟缓, 动力下降。在冷起动后或重新热起动后的开环控制期间情况稍好, 但反馈控制系统进入闭环控制, 工作就明显恶化。

在冷却液温度90℃以上, 用解码器查看发动机工作时的氧传感器数据流电压在2500 r/min时比正常值低得多, 约0.3~0.4 V且变化幅度很小, 再试其他工况电压均偏低。

分析:由于从数据流的直观表面看好像是氧传感器本身的问题, 但是从氧传感器工作的特点, “电压值的变化频率为10秒钟内至少在8次以上及正常工作温度为300℃~500℃。”可以判断氧传感器正常这些都可以从数据流内容查看, 从氧传感器数据流电压在2500 r/min时比正常值低得多, 约0.3~0.4 V且变化幅度很小, 再试其他工况电压均偏低的情况初步判断混合气偏稀。

检查与排除:熄火查看发动机的进气系统, 空气流量计的线路连接及曲轴箱通风系统均正常, 发动机起动后查看故障码为第2缸失火 (缺缸) , 进一步检查点火系正常, 检查喷油器时发现该喷油器通断电时无反应, 更换喷油器后启动, 各数据流参数正常。

通过以上过程我们可以看出, 汽车氧传感器故障故障是属于较为复杂的汽车故障分析时必须综合各种因素加以考虑, 犹其像上述案例更是要对氧传感器的材料结构、工作特点、正常的工作温度有较深入的了解, 并熟练运用现代化的诊断工具如示波器、解码仪进行分析判断才能真正找到问题所在。

摘要:氧传感器可以检测发动机尾气中氧的含量, 从而间接反映混合气的空燃比。氧传感器装在汽车排气管道内, 用它来检测废气中的氧含量。因而可根据氧传感器所得到的信号, 反馈到控制系统, 来微调燃料的喷射量, 使A/F控制在最佳状态, 既大大地降低了排污量, 又节省了能源。所以在电子控制燃油喷射系统中广泛使用氧传感器。本文主要介绍氧传感器的类型、工作原理及故障浅析。

关键词:氧传感器,故障,工作原理

参考文献

[1]张子波.汽车故障诊断技术[M].北京:机械工业出版社, 2005.

[2]张民编.大众捷达维修手册[M].一汽—大众有限公司, 2003.

篇4:汽车水温传感器故障检修

关键词:水温传感器;作用;原理;故障;检修

温度是反映发动机工作状况的重要参数,在汽车上水温传感器通常安装在缸盖出水管附近,其监测的是从水套中流出的“热水”温度。汽车用水温传感器是热敏电阻型,采用负热敏电阻(NTC)作为主要元件,壳体多为铜质(导热性能良好),导线通过接线插座与发动机电脑相连,见图1、图2(a)。当水温发生改变时,负热敏电阻的阻值随之呈现线性变化,见图2(b),进而改变了水温传感器所在的监控电路的总电阻和电流,当总电流发生改变时电脑内部串联固定电阻两端的电压将会呈现线性变化,即输出信号。它的供电电压是由控制单元提供的5V电源,返回控制单元的输出信号为1.3V-3.8V的线性变化信号。

一、水温传感器的作用及故障现象

水温传感器是发动机电控系统中比较重要的一个传感器,其性能的好坏影响着发动机启动、暖机以及其他稳定工况。简单来说,水温传感器影响喷油量和点火提前角。

(1) 影响喷油量。例如在启动工况,发动机的喷油量主要是由水温传感器的信号来决定的,在一定的范围内,水温越低则喷油量越多。通常,当水温传感器出现故障时,往往冷车起动时显示的还是热车时的温度信号,ECU得不到提供过浓混合气的信号,只能供给发动机较稀薄的混合气(热车时的信号),所以发动机冷车不易起动。在暖机工况中,如果水温传感器发生故障,向电脑提供了发动机低温信号的话,则会引起发动机油耗过高。在稳定工况,水温传感器故障可能还会引起加速困难、高温断火、消声器冒黑烟且发出“突突”声等。(2) 影响点火提前角。水温传感器的作用是把冷却水温度转换为电信号,输入

ECU修正点火提前角,低温时增大点火提前角,高温时,为防止爆燃,推迟。因此,当水温传感器发生故障时,可能会导致发动机运转抖动不平稳、有爆燃异响,导致发动机磨损严重。

二、水温传感器故障症状

当水温传感器出现上述故障现象时,通常会形成故障码进入自诊断系统。表现为:发动机启动后发动机电控系统故障指示灯常亮,用解码器读取故障码显示为水温传感器故障。这个水温传感器故障的故障点可能是水温传感器元件失效、也可能是水温传感器到电脑的连接线路有问题、还可能是电脑内部的控制电路有问题。此外,还有一种情况,就是故障与发动机电控没有直接的关系,比如水垢等杂质过多导致水温传感器测量不准,属于非电控机械故障。需要说明的是,传感器是一种汽车电路上的电子原器件,如果这个器件坏了,修复的余地不大,只有换了。

当有水温传感器故障码或者怀疑水温传感器故障时,需要使用检测工具与设备对传感器技能型故障检测与排除,方法如下:(1)电阻检测。首先选用万用表电阻挡,根据测试条件选用合适量程,一般选用在KΩ档,连接万用表与水温传感器,并将水温传感器放置在一水盆中,盆中有水及温度表,盆外有加热装置,徐徐加热水盆中的水,观测水温表与万用表显示,水温表与万用表上读数应与检测条件与标准参数表中相符。如不符,说明水温传感器有故障。(2)电路测试。电路测试可分为测线路电压与水温传感器的电压,电路电压的测试为断开传感器的插头,打开点火开关,用万用表直接测量电路侧的电压约为5V。连接好线路,测量不同温度下的电压为0.5V~2.5V,万用表上读数应与检测条件与标准参数表中相符。(3)波形测试。用示波器探头连接水温传感器回路作为测量点,随温度升高电压变化的波形,与正常的对应波形比较,以此判定传感器的好坏,见图3。

篇5:汽车传感器实验报告

一、实验目的:了解压电传感器的测量振动的原理和方法。

二、基本原理:压电式传感器由惯性质量块和受压的压电片等组成。(观察实验用压电加速度计结构)工作时传感器感受与试件相同频率的振动,质量块便有正比于加速度的交变力作用在晶片上,由于压电效应,压电晶片上产生正比于运动加速度的表面电荷。

三、需用器件与单元:振动台、压电传感器、检波、移相、低通滤波器模板、压电式传感器实验模板。双踪示波器。

四、实验步骤:

1、压电传感器装在振动台面上。

2、将低频振荡器信号接入到台面三源板振动源的激励源插孔。

3、将压电传感器输出两端插入到压电传感器实验模板两输入端,与传感器外壳相连的接线端接地,另一端接R1。将压电传感器实验模板电路输出端Vo1,接R6。将压电传感器实验模板电路输出端V02,接入低通滤波器输入端Vi,低通滤波器输出V0与示波器相连。

3、合上主控箱电源开关,调节低频振荡器的频率和幅度旋钮使振动台振动,观察示波器波形。

4、改变低频振荡器的频率,观察输出波形变化。

光纤式传感器测量振动实验

一、实训目的: 了解光纤传感器动态位移性能。

二、实训仪器: 光纤位移传感器、光纤位移传感器实验模块、振动源、低频振荡器、通信接口(含上位机 软件)。

三、相关原理: 利用光纤位移传感器的位移特性和其较高的频率响应,用合适的测量电路即可测量振动。

四、实训内容与操作步骤

1、光纤位移传感器安装如图所示,光纤探头对准振动平台的反射面,并避开振动平台中间孔。

2、根据“光纤传感器位移特性试验”的结果,找出线性段的中点,通过调节安装支架高度将光纤探头与振动台台面的距离调整在线性段中点(大致目测)。

3、参考“光纤传感器位移特性试验”的实验连线,Vo1与低通滤波器中的Vi相接,低通输出Vo接到示波器。

4、将低频振荡器的幅度输出旋转到零,低频信号输入到振动模块中的低频输入。

篇6:无线传感网实验报告

无线传感器网络 实验报告

学院:

班级: 学号: 姓名:

时间: 指导老师:

第一章 基础实验

了解环境

1.1 实验目的

安装 IAR 开发环境。CC2530 工程文件创建及配置。源代码创建,编译及下载。1.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境,TI 公司的烧写软件。

1.3 实验内容

1、安装 IAR 集成开发环境

IAR 集成开发环境安装文件所在光盘目录:物联网光盘工具CD-EW8051-7601

2、ZIBGEE 硬件连接

安装完 IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的 20 芯 JTAG 口连接到 ZX2530A 型 CC2530 节点板上,USB 连接到 PC 机上,RS-232 串口线一端连接 ZX2530A 型 CC2530 节点板,另一端连接 PC 机串口。

3、创建并配置 CC2530 的工程文件 IAR 是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR 中的每一个 Project,都可以拥有自己的配置,具体包括 Device 类型、堆/栈、Linker、Debugger 等。(1)新建 Workspace 和 Project 首先新建文件夹 ledtest。打开 IAR,选择主菜单 File-> New-> Workspace 建立新的工作区域。

选择 Project-> Create New Project-> Empty Project,点击 OK,把此工程文件保存到文件夹 ledtest 中,命名为:ledtest.ewp(如下图)。

(2)配置 Ledtest 工程

选择菜单 Project->Options...打开如下工程配置对话框

选择项 General Options,配置 Target 如下 Device:CC2530;

(3)Stack/Heap 设置:XDATA stack size:0x1FF

(4)Debugger 设置:

Driver:Texas Instruments(本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选 Simulator)

至此,针对本实验的 IAR 配置基本结束.4、编写程序代码并添加至工程

选择菜单 File->New->File 创建一个文件,选择 File->Save 保存为 main.c 将 main.c 加入到 ledtest 工程,将实验代码输入

然后选择 Project->Rebuild All 编译工程

编译好后,选择 Project->Download and debug 下载并调试程序 下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。

到此,程序已经下载到了 cc2530 芯片的 flash 内,按下 ZX2530A 上的复位按钮可看到程序的运行效果。

LED 实验 2.1 实验目的

通过 I/O 控制小灯闪烁的过程。

在 ZX2530A 型 CC2530 节点板上运行自己的程序。2.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境。2.3 实验结果

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。

2.在文件夹“基础实验2 LED”下打开工程 led,编译工程,并下载到 CC2530 节点板。3.观察 LED 的闪烁情况。

4.修改延时函数,可以改变 LED 小灯的闪烁间隔时间。

5.重新编译,并下载程序到 CC2530 节点板,观察 LED 的闪烁情况。

答:增加延时就会发现小灯闪烁的频率降低了。

串口实验 3.1 实验目的

本次实验将会学习如果使用串口实现与 PC 机的通讯。(实验中需要 PC 机与开发板之间使用RS232 交叉串口连接线)。

能正确配置 CC2530 的串口。3.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机,交叉串口线一根。

软件:PC 机操作系统 WinXP,IAR 集成开发环境、串口调试助手。3.3 实验结果

CC2530 能与上位机通过串口正常通信

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,用串口线正确连接上位机和 ZX2530A 型板,使能通过串口交换数据。

2.在文件夹“基础实验5 uart”下打开工程 uart,编译工程,并下载到 CC2530 节点板。

3.通过上位机上的串口调试助手,发送数据到 cc2530,然后检查 cc2530 回送给上位机的数据。

3.4 实验总结

通过这次实验,让我对无线传感器网络有了进一步的了解。在无线的世界,感觉一切都是那么神奇,二一切又是那么理所当然,记得小时候常常想,那些无线好神秘,画面,声音等怎么可以从一方到达另一方而可以完全不接触。虽然今天做的实验都是很小很简单的,比起显示中那些绚丽的感觉没什么值得赞扬的,但对于我来说,这个更有魅力,那些绚丽的我是以仰望的视角来对待,而这次我能深入它的原理去真正接触它,以平视来看待它。

第二章 射频实验

点对点射频通信实验 1 实验目的

在 ZX2530A 型 CC2530 节点板上运行相应实验程序。熟悉通过射频通信的基本方法。练习使用状态机实现收发功能。2 实验内容

接收节点上电后进行初始化,然后通过指令 ISRXON 开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到 TXFIFO 中,再调用指令 ISTXONCCA 通过射频前端发送数据。3 实验设备及工具

硬件:ZX2530A 型 CC2530 节点板 2 块、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、串口监控程序。4 实验原理

发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到 pc 在串口调试助手中显示出来。如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。以下为发送节点程序流程图:

以下为接收节点流程图: 实验步骤

1.打开光盘“无线射频实验2.点对点通信”双击 p2p.eww 打开本实验工程文件。2.打开 main.c 文件下面对一些定义进行介绍 RF_CHANNEL 此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。但同一组实验中两个节点需要保证在同一信道,才能正确通信。

PAN_ID 个域网 ID 标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。SEND_ADDR 发送节点的地址 RECV_ADDR 接收节点的地址

NODE_TYPE 节点类型:0 接收节点,1:发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。

3.修改 NODE_TYPE 的值为 0,并编译下载到节点板。此节以下称为接收节点。

4.修改 NODE_TYPE 的值为 1,并编译下载到另外一个节点板。此节点板以下称为发送节点。

5.将接收节点的串口与 pc 的串口相连,并在 pc 端打开串口调试助手,配置波特率为 115200。

6.先将接收节点上电,然后将发送节点上电。7.从串口调试助手观察接收节点收到的数据。

8.修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。9.修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。6 实验数据分析及结论

发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发送数据的最大长度为 125(加上发送的据长度和校验,实际发送的数据长度为 128 字节)。7 实验心得

这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。第三章 ZStack组网实验

多点自组织组网实验 1 实验目的

理解 zigbee 协议及相关知识。

在 ZX2530A 型 CC2530 节点板上实现自组织的组网。在 ZStack 协议栈中实现单播通信。2 实验内容

先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从 PC 上的串口监控程序查看组网情况。发送数据格式为(16 进制): FF 源节点(16bit)父节点(16bit)节点编号 ID(8bit)例如 FF 4B 00 00 00 01,表示 01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。3 实验设备及工具

硬件:DZ2530 型 CC2530 节点板、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、ZTOOL 程序。4 实验原理

程序执行的流程图如图 5-4 所示,在进行一系列的初始化操作后程序就进入事件轮询状态。

对于终端节点,若没有事件发生且定义了编译选项 POWER_SAVING,则节点进入休眠状态。

协调器是 Zigbee 三种设备中最重要的一种。它负责网络的建立,包括信道选择,确定唯一的PAN 地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。Z-Stack 中打开编译选项 ZDO_COORDINATOR,也就是在 IAR 开发环境中选择协调器,然后编译出的文件就能启动协调器。具体工作流程是:操作系统初始化函数 osal_start_system 调用ZDAppInit 初 始 化 函 数,ZDAppInit 调 用 ZDOInitDevice 函 数,ZDOInitDevice 调 用

ZDApp_NetworkInit 函数,在此函数中设置 ZDO_NETWORK_INIT 事件,在 ZDApp_event_loop 任务中对其进行处理。由 第 一 步 先 调 用 ZDO_StartDevice 启动网络中的设备,再调用NLME_NetworkFormationRequest 函数进行组网,这一部分涉及网络层细节,无法看到源代 码,在库中处理。ZDO_NetworkFormationConfirmCB 和 nwk_Status 函数有申请结果的处理。如果成功则 ZDO_NetworkFormationConfirmCB 先执行,不成功则 nwk_Status 先执行。接着,在ZDO_NetworkFormationConfirmCB 函数中会设置 ZDO_NETWORK_START 事件。由于第三步,ZDApp_event_loop 任务中会处理 ZDO_NETWORK_START 事件,调用 ZDApp_NetworkStartEvt 函数,此函数会返回申请的结果。如果不成功能量阈值会按ENERGY_SCAN_INCREMENT 增加,并将App_event_loop 任务中的事件 ID 置为 ZDO_NETWORK_INIT 然后跳回第二步执行;如果成功则设置 ZDO_STATE_CHANGE_EVT 事件让 ZDApp_event_loop 任务处理。对 于 终 端 或 路 由 节 点,调 用 ZDO_StartDevice 后 将 调 用 函 数 NLME_NetworkDiscoveryRequest 进行信道扫描启动发现网络的过程,这一部分涉及网络层 细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest函数执行的结果将会返回到函数ZDO_NetworkDiscoveryConfirmCB 中,该 函 数 将 会 返 回 选 择 的 网 络,并 设 置 事 件ZDO_NWK_DISC_CNF,在 ZDApp_ProcessOSALMsg 中对该事件进行处理,调用 NLME_JoinRequest加入指定的网络,若加入失败,则重新初始化网络,若加入成功则调用 ZDApp_ProcessNetworkJoin函数设置 ZDO_STATE_CHANGE_EVT,在对该事件的处理过程 中将调用ZDO_UpdateNwkStatus函数,此函数会向用户自定义任务发送事件 ZDO_STATE_CHANGE。本实验在 Zstack 的事例代码 simpleApp 修改而来。首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在 AF 层中注册,所以每个任务都要初始化然后才会进入 OSAL 系统循环。在 Z-Stack 流程图中,上层的初始 化集中在 OSAL 初始化(osal_init_system)函数中。包括了存储空间、定时器、电源管理和 各任务初始化。其中用户任务初始化的流程如下:

用户任务初始化流程图

任务 ID(taskID)的分配是 OSAL 要求的,为后续调用事件函数、定时器函数提供了参数。网络状态在启动的时候需要指定,之后才能触发 ZDO_STATE_CHANGE 事件,确定设备的类型。目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。之后设置应 用 对 象 的 属 性,这 是 非 常 关 键 的。由 于 涉 及 很 多 参 数,Z-Stack 专 门 设 计 SimpleDescriptionFormat_t 这一结构来方便设置,其中的成员如下: EndPoint,该节点应用的端点,值在 1-240 之间,用来接收数据。AppProfId,该域是确定这个端点支持的应用 profile 标识符,从 Zigbee 联盟获取具体的 标识符。AppNumInClusters,指示这个端点所支持的输入簇的数目。pAppInClusterList,指向输入簇标识符列表的指针。AppNumOutClusters,指示这个端点所支持的输出簇的数目。pAppOutClusterList,指向输出簇标识符列表的指针。

本实验 profile 标识符采用默认设置,输入输出簇设置为相同 MY_PROFILE_ID,设 置完成后,调用 afRegister 函数将应用信息在 AF 层中注册,使设备知晓该应用的存在,初 始化完毕。一旦初始化完成,在进入 OSAL 轮询后 zb_HandleOsalEvent 一有事件被触发,就会得到及时的处理。事件号是一个以宏定义描述的数字。系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。ZDO_CB_MSG 事件是处理 ZDO 的响应,KEY_CHANGE 事件 处理按键(针对 TI 官方的开发板),AF_DATA_CONFIRM_CMD 则是作为发送一个数据包 后的确认,AF_INCOMING_MSG_CMD是接收到一个数据包会产生的事件,协调器在收到 该事件后调用函数 p2p_test_MessageMSGCB,将接收到的数据通过 HalUARTWrite 向串口 打印输出。ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点 则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用 NLME_GetShortAddr()获得)、父节点短地址(16bit,调用 NLME_GetCoordShortAddr())、节点编号 ID(8bit,为长地址的最低字节,调用 NLME_GetExtAddr()获得,在启动节点前应先用 RFProgrammer 将非 0XFFFFFFFFFFFFFFFF 的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件 MY_REPORT_EVT中 发 送 数 据 并 启 动 定 时 器 来 触 发 下 一 次 的 MY_REPORT_EVT 事件,实现周期性的发送数据(发送数据的周期由宏定义 REPORT_DELAY 确定)。5 实验步骤

1.打开工程文件夹协议栈实验2.多点自组网ProjectszstackSamplesSimpleAppCC2530DB下的工程文件 SimpleApp.eww。2.选择工程

编译,生成协调器代码,并下载到 ZX2530A 开发板。此节点为协调器节点。3.选择工程

编译,生成终端节点代码,并下载到 ZX2530 开发板。此节点为终端节点。4.选择工程

编译,生成路由器节点代码,并下载到 ZX2530 开发板,此节点为路由器节点。5.用串口线将协调器节点与 pc 连接起来,在 pc 端打开 ZTOOL 程序。(ZTOOL 程序在 zstack 安装后自动安装)6.开启 ZX2530A 型 CC2530 节点板电源。7.在 ZTOOL 程序中观察组网结果。6 实验数据分析及结论

由接收数据的 DebugString 可以看出图中有两个节点加入了网了,其中一个节点的 DEVID 是21,网络地址:4f07,父节点地址是 0 即协调器。另外一个节点的 DEVID 是 11,网络地址:A6F7,父节点地址是 4f07 即上一节点。实验中可以试着改变不同节点的位置,然后通过 ZTOOL 看看组网结果有什么不同。7 实验心得

这次实验感觉比原来的更有趣,可以在手机上看到无线连接的组网,所以和同学们很有兴趣,虽然只有几个分支,但是几个的通信还是可以清晰可见的。同时也让我们看到了大型android手机的模样,以前都是看成品,这次看的是半成品,感觉很有意思。在组网的过程中,遇到了一些问题,刚开始不知道如何解决,就问同学和老师,有的是线的问题,由于实验器材本身的问题,导致一些松动之类的,但最后实验总算是顺利的完成了。在这感谢帮助我的同学和老师。第四章 传感器网络综合实验

Zigbee 节点控制程序设计 1.1 协调器节点工程

SimpleCoordinator 即协调器工程,如下图

协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。1.2 人体红外传感器节点工程

SimpleInfrared 即人体红外传感器工程,如下图

人体红外传感器节点应用控制代码可参考工程目录 App 下 SimpleInfrared.c 1.3 超声波距离传感器节点工程 SimpleDistanceSensor 即超声波距离传感器工程,如下图

超声波距离传感器节点实现代码可参考工程目录 App 下

SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。

1.4 湿度传感器节点工程

SimpleHumiditySensor 即湿度传感器节点工程,如下图

湿度传感器应用控制代码可参考工程目录 App 下SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件

平台控制操作 2.1 启动程序

1)安装好程序后,打开 android 应用程序面板,找到图标 点击进入程序。

2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee 网关地址为本机 IP 地址,即 127.0.0.1。

3)如果你的 zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统‘菜单’按键,会出现如下菜单,选择‘设置’菜单,可以设置默认的 zigbee 网关。如下图:

4)设置好网关后,下次启动程序就不用再次设置了。2.2 搜索网络

如果 zigbee 网关设置好,通过菜单选择‘搜索网络’就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。如果 zigbee 网络上还有其它节点,可以在网络 TOP 图上一起显示出来。如下,是一个zigbee 网络 TOP 图:

图中共有 7 个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为 58229的灯光设备带有路由功能,属路由器节点,它下面有两个子节点,分别为人体传感器和温度传感器。2.3 传感器节点操作

通过搜索到的 zigbee 网络 TOP 图,可以了解整个 zigbee 网络的节点分布情况。通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。

下图为温度传感器的监控界面:

其它界面读者可以自行实验,并且去了解。

实验心得

篇7:汽车加油问题实验报告

用贪心算法解决汽车加油次数最少问题。

二、实验目的:

一辆汽车加满油后,可行使n千米。旅途中有若干个加油站。若要使沿途加油次数最少,设计一个有效算法,对于给定的n和k个加油站位置,指出应在哪些加油站停靠加油才能使加油次数最少。输入数据中,第一行有2个正整数,分别表示汽车加满油后可行驶n千米,且旅途中有k个加油站。接下来的1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。输出为最少的加油次数,如果无法到达目的地,则输出“No Solution”。

实验提示:

把两加油站的距离放在数组中,a[1..k]表示从起始位置开始跑,经过k个加油站,a[i]表示第i-1个加油站到第i个加油站的距离。汽车在运行的过程中如果能跑到下一个站则不加油,否则要加油。

输入数据示例 7 7 1 2 3 4 5 1 6 6 输出数据 4。

三、使用的策略:

贪心算法、回溯算法等。

四、实验内容:

(一)问题描述

一辆汽车加满油后可以行驶N千米。旅途中有若干个加油站。指出若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。

给出N,并以数组的形式给出加油站的个数及相邻距离,指出若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。要求:算法执行的速度越快越好。

(二)问题分析(前提行驶前车里加满油)对于这个问题我们有以下几种情况:设加油次数为k,每个加油站间距离为a[i];i=0,1,2,3„„n 1.始点到终点的距离小于N,则加油次数k=0; 2.始点到终点的距离大于N,A 加油站间的距离相等,即a[i]=a[j]=L=N,则加油次数最少k=n; B 加油站间的距离相等,即a[i]=a[j]=L>N,则不可能到达终点;

C 加油站间的距离相等,即a[i]=a[j]=L

D 加油站间的距离不相等,即a[i]!=a[j],则加油次数k通过以下算法求解。

(三)算法描述 1.贪心算法解决方案

 贪心算法的基本思想

该题目求加油最少次数,即求最优解的问题,可分成几个步骤,一般来说,每个步骤的最优解不一定是整个问题的最优解,然而对于有些问题,局部贪心可以得到全局的最优解。贪心算法将问题的求解过程看作是一系列选择,从问题的某一个初始解出发,向给定目标推进。推进的每一阶段不是依据某一个固定的递推式,而是在每一个阶段都看上去是一个最优的决策(在一定的标准下)。不断地将问题实例归纳为更小的相似的子问题,并期望做出的局部最优的选择产生一个全局得最优解。

 贪心算法的适用的问题

贪心算法适用的问题必须满足两个属性:

(1)贪心性质:整体的最优解可通过一系列局部最优解达到,并且每次的选择可以依赖以前做出的选择,但不能依赖于以后的选择。

(2)最优子结构:问题的整体最优解包含着它的子问题的最优解。 贪心算法的基本步骤

(1)分解:将原问题分解为若干相互独立的阶段。(2)解决:对于每一个阶段求局部的最优解。(3)合并:将各个阶段的解合并为原问题的解。[问题分析] 由于汽车是由始向终点方向开的,我们最大的麻烦就是不知道在哪个加油站加油可以使我们既可以到达终点又可以使我们加油次数最少。

提出问题是解决的开始.为了着手解决遇到的困难,取得最优方案。我们可以假设不到万不得已我们不加油,即除非我们油箱里的油不足以开到下一个加油站,我们才加一次油。在局部找到一个最优的解。却每加一次油我们可以看作是一个新的起点,用相同的递归方法进行下去。最终将各个阶段的最优解合并为原问题的解得到我们原问题的求解。

加油站贪心算法设计(C):

include include

int add(int b[ ],int m,int n){ //求一个从m到n的数列的和

int sb;for(int i=m;i

int Tanxin(int a[n], int N)//a[n]表示加油站的个数,N为加满油能行驶的最远距离

{

int b[n];//若在a[i]加油站加油,则b[i]为1,否则为0

int m=0;

if(a[i]>N)return ERROR;//如果某相邻的两个加油站间的距离大于N,则不能到达终点

if(add(a[i], 0, n)

{ //如果这段距离小于N,则不需要加油

b[i]=0;

return add(b[i],0,n);

}

if(a[i]==a[j]&&a[i]==N)

{ //如果每相邻的两个加油站间的距离都是N,则每个加油站都需要加油

b[i]=1;

return add(b[i],0,n);

} if(a[i]==a[j]&&a[i]

{ //如果每相邻的两个加油站间的距离相等且都小于N

if(add(a[i],m,k)< N && add(a[i],m,k+1)> N)

{

b[k]=1;

m+=k;

}

return add(b[i],0,n);

}

if(a[i]!=a[j])

{ //如果每相邻的两个加油站间的距离不相等且都小于N

if(add(a[i],m,k)< N && add(a[i],m,k+1)> N)

{

b[k]=1;

m+=k;

}

return add(b[i],0,n);

} viod main(){

int a[ ];

scanf(“%d”,a);

scanf(“/n”);

scanf(“/d”,&N);

Tanxin(a[ ],0,n);} 贪心算法正确性证明:  贪心选择性质

所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。对于一个具体的问题,要确定它是否具有贪心性质,我们必须证明每一步所作的贪心选择最终导致问题的一个整体最优解。该题设在加满油后可行驶的N千米这段路程上任取两个加油站A、B,且A距离始点比B距离始点近,则若在B加油不能到达终点那么在A加油一定不能到达终点,如图:

由图知:因为m+N

当一个问题大的最优解包含着它的子问题的最优解时,称该问题具有最优子结构性质。由于(b[1],b[2],„„b[n])是这段路程加油次数最少的一个满足贪心选择性质的最优解,则易知若在第一个加油站加油时,b[1]=1,则(b[2],b[3],„„b[n])是从 a[2]到a[n]这段路程上加油次数最少且这段路程上的加油站个数为(a[2],a[3],„„a[n])的最优解,即每次汽车中剩下的油不能在行驶到下一个加油站时我们才在这个加油站加一次油,每个过程从加油开始行驶到再次加油满足贪心且每一次加油后相当于与起点具有相同的条件,每个过程都是相同且独立,也就是说加油次数最少具有最优子结构性质。贪心算法时间复杂度分析

由于若想知道该在哪个加油站加油就必须遍历所有的加油站,且不需要重复遍历,所以时间复杂度为O(n)。

五、实验心得:

在贪心算法中,每次做出的选择仅在当前的状态下做出的最好的选择,即局部最优选择。然后再去解做出这个选择后产生的相应的子问题。不是每个问题用贪心算法都可以一定得到最优解,除非该问题具有贪心选择性质(所求问题的整体最优解可以通过一系列局部最优的选择而得到)和最优子结构性质。

上一篇:农业现代化发展的问题下一篇:中班四月工作总结