已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黑龙江工程学院本科生毕业设计 I 本科学生毕业设计 基于单片机的汽车轮胎胎压监测系统的设计与实现 系部名称 : 汽车与交通工程学院 专业班级 : 车辆工程 07-8 班 学生姓名 : 指导教师 : 职 称 : 副教授 黑 龙 江 工 程 学 院 二一一年六月 黑龙江工程学院本科生毕业设计 II 摘 要 随着社会经济和科学技术的发展,公路交通已经成为关系国民经济命脉和社会、经济发展的重大系统,但随之而来的交通事故给人 的生命安全和经济发展造成了重大损失。爆胎是引起交通事故的主要原因,保持标准的车胎气压行驶是防止爆胎的关键,胎压检测系统 (TPMS)是由此应运而生的一项汽车安全防范系统。胎压检测系统主要用于汽车行驶过程中对汽车胎压与温度的实时检测,当出现异常状态时进行报警,从而保障驾乘者的行车安全。本课题研究的目的是开发一种用于机动车辆上的无线胎压检测系统。 本文提出了一种基于无线技术的胎压检测系统方案,给出了系统总体结构框图,阐述了系统硬件电路和各模块软件的设计方法。硬件设计综合运用了检测技术、单片机技术及无线通信技术,其 中发射模块能实时检测、处理轮胎的压力和温度参数,并运用无线方式将处理后的数据传输到接收模块;接收模块能校验数据并显示结果,用以告知驾驶员各个轮胎的情况。软件设计包括发射模块和接收模块两部分,具体为发射模块和接收模块的初始化、数据测量及处理,发射及接收程序。 关键词 :胎压检测系统;无线通信技术;传感器;射频收发; C 语言 黑龙江工程学院本科生毕业设计 III ABSTRACT With the socio economic and science and technology development, road traffic has become the major system of the national economy and the social, economic development,however,traffic accidents following resulted in significant losses about the lives and safety of people and economic development Puncture is the main cause of traffic accidents, keep driving in standards tire pressure is the key to prevent puncture, Tire pressure detection system(TPMS)which bom as a car security system Tire pressure monitoring system is mainly used for real-time tire pressure and temperature monitoring in the process of driving to protect the occupants of the driving safety when the abnormal state of alarm The purpose of this research is to develop a wireless RF transmission tire pressure monitoring system which used in motor vehicle This paper proposed a wireless technology based on the fire pressure monitoring systems programs, gave the overall system design block diagram and explain the system hardware circuit design and software design of the modules Hardware circuit mainly uses sensor detection technology,single-chip technology and wireless communication technology,transmitter module can detect, deal with the tire pressure and temperature parameters real time, and transmitted data processed to the receiver module use the way of wireless Receiver module cail calibration data and display the result to inform the driver of the situation of all tires Software design contains transmitter module and receiver module,specific for transmitter module and receiver module initialization, data measurement and processing, send and receive procedures Key words: tire pressure monitoring system, wireless communication technology sensor,anti-jamming, RF transceiver, C language 黑龙江工程学院本科生毕业设计 目 录 摘 要 . II ABSTRACT . III 第 1 章 绪 论 . 1 1.1 选题的背景 . 1 1.2 课题的目的及意义 . 3 1.3 课题主要工作 . 4 第 2 章 系统整体方案设计 . 5 2.1 系统设计要求 . 5 2.2 系统设计方案 . 5 2.2.2 发射模块 . 6 2.2.2 接收模块 . 6 2.3 元器件选择 . 6 2.4 关键技术研究 . 7 2.4.1 频率选择 . 7 2.4.2 信号 编码方式 . 7 2.4.3 轮胎定位技术 . 8 2.5 本章小结 . 8 第 3 章 发射模块的设计 . 9 3.1 传感器单元的硬件电路设计 . 9 3.1.1 DS18B20 工作方式 . 9 3.1.2 ADC0809 工作方式 . 10 3.1.3 DS18B20 温度检测程序 . 13 3.2 发射单元的硬件电路设计 . 16 3.2.1 发射单元控制电路 . 16 黑龙江工程学院本科生毕业设计 3.2.2 发射单元发射电路 . 18 3.3 发射模块的软件设计 . 18 3.3.1 编程工具选用 . 18 3.3.2 编程语言及开发软件的选用 . 18 3.3.3 通信协议 . 19 3.3.4 软件设计 . 20 3.4 本章小结 . 25 第 4 章 接收模块的设计 . 26 4.1 接收模块的硬件电路设计 . 26 4.1.1 射频接收单元的硬件电路设计 . 26 4.1.2 射频接收单元工作方式 . 28 4.1.3 显示报警单元电路设计 . 34 4.1.4 蜂鸣器报警单元电路设计 . 34 4.1.5 电源单元设计 . 35 4.2 接收模块的软件设计 . 35 4.3 本章小结 . 39 第 5 章 系统 测试 . 40 5.1 概述 . 40 5.2 信号实时传输显示测试 . 40 5.3 温度超过预警值报警测试 . 41 5.4 模拟压力超过预警值报警测试 . 42 5.5 模拟压力和温度超过预警值报警测试 . 42 5.6 本章小结 . 43 结 论 . 44 参考文献 . 45 致 谢 . 46 黑龙江工程学院本科生毕业设计 1 第 1 章 绪 论 1.1 选题的背景 本世纪初,由于凡世通 (Firestone)轮胎的质量问题,造成了超过 100 人死亡和 400人受伤,此事引起了业界和美国政府的高度关注,普利斯通、凡世通公司被迫收回 650万只轮胎。据美国汽车工程师学会最近的调查,美国每年有 26 万交通事故是由于轮胎压力低或渗漏造成的,此外,每年 75的轮胎故障是出于轮胎渗 漏或充气不足引起的。由于每年造成巨大的经济损失,美国政府要求汽车制造 商加速发展胎压检测系统 (Tire Pressure Monitoring System, 简称 TPMS),以减少轮胎事故的发生。 近年来汽车电子产品得到了飞速发展,并已经形成了独立的汽 车电子产业。汽车轮胎压力监视系统是一项集先进传感器技术、无线通讯技术、信息处理实时测控技术、嵌入式系统应用技术等于一体的高新技术汽车电子产品。 TPMS 实时的对汽车轮胎气压进行自动监测,对轮胎漏气,低气压,气压过高及温度过高等轮胎状况进行预警,以保障汽车行驶安全。 目前 TPMS 主要有两种实现方式:直接 TPMS 和间接 TPMS。间接 TPMS 是与车辆的防抱死系统 (ABS)一起使用的。 ABS 采用车轮转速传感器测量每个车轮的转速。当一个轮胎的气压减小时,滚动半径就减小,而车轮的旋转速度就相应地加快。指示灯会提示司机,有 一个轮胎处于低压状态。但是,间接 TPMS 有一定的局限性。第一是指示灯无法指出是哪个轮胎处于低压状态。第二,当同一车轴或同一侧的两个轮胎都处于低压状态时,它无法检测出究竟是哪个轮胎充气不足。第三,如果所有四个轮胎都处于低压状态,该系统不会发现这一故障。另外,气压不足时轮胎直径的减少和气压的降低非常微小。对于薄胎来说, 69kPa 的压降只会使轮胎直径减小 1 m m 。这种压降不符合美国的最终判定规则所规定的 25%原则,采用间接方法进行检测在很大程度上依赖于轮胎和负载因子。直接 TPMS 采用固定在每个车轮中的压力传感 器直接测量每个轮胎的气压。然后,这些传感器会通过发送器将胎压数据发送到中央接收器进行分析,分析结果将被传送至安装在车内的显示器上。显示器的类型和当今大多数车辆上装配的简单的胎压指示器不同,它可以显示每个轮胎的实际气压,甚至还包括备用轮胎的气压。因此,直接 TPMS 可以连接至显示器,告诉司机哪个轮胎充气不足。由于直接 TPMS 可直接测量每个轮胎的气压,因此当任何一个或几个轮胎处于低压状态时,它们都会被检测出来,当车辆的所有四个轮胎都处于低压状态时也可以检测到。直接黑龙江工程学院本科生毕业设计 2 TPMS 也可检测到较小的压降。有些系统甚至可以检测 到 7 kPa 的压降。 国外对于 TPMS 系统的研究起步较早, 20 世纪 70 年代末欧洲的一些发达国家就开始对轮胎气压监测系统进行研究。英国 Lucas 公司早在 1981 年就推出了驾驶室设置接受器和每个车轮均有传感器的装置模型。随后, C RK 公司和 Marketing 公司也相继开发出了自己的产品,基本结构是由传感器、信号发生器和接收器三部分组成,传感器安装在轮辋上,直接检测轮胎的内压。德国 Doduco 公司研制的 Primac 系统,可以同时监测轮胎的压力和温度。德国 Wabeo 公司和 Bosch 公司在 1989 年推出了利用ABS(制动防抱死系统 )传感器监测轮胎压力的新装置。 wabCO 系统由一个 3 2 通道的控制阀和一个与轮胎气门嘴相接的气缸组成,当轮胎气压变化时,气缸活塞使 ABS 传感器信号发生变化,与 ABS 共用一个电子控制单元。 Bosch 公司的汽车轮胎压力监测系统由装在轮辋上的压力传感器、带有显示器的电子部件和高频收发机三部分组成,与 ABS 一起工作,已经开始成批量的装载汽车上。英国 S P 公司研制的 DWS 系统 (漏气报警系统 ),可以把轮胎压力降低的信号通知驾驶员,系统利用 ABS 传感器测量轮胎的滚动半径,通过计算程序监测轮胎气压。 国外因立 法较早,其开发生产的 TPMS 已经相当成熟,能够经受 5 7 万公里的使用测试。主要生产商有加拿大斯马轮胎设备 (SmarTire Systems)公司,固特异轮胎橡胶公司,米其林集团公司,诺基亚轮胎公司,日本横滨公司等。现在国外的 TPMS 的研发重点在于开发无源的 TPMS,如采用 SAW 这类无源器件的频率变化来监测轮胎压力的变化。日本阿尔卑斯电气公司开发的不需电池的汽车轮胎气压监测系统最近通过有关试验验证,符合欧洲及美国的电磁波相关法律规定,今后将以行驶条件及轮胎种类等因素的影响为中心进行评测,计划在欧美、日本等地进 行实地试验, 2004 年 8 月开始提供样品, 2006 年投入批量生产。 国内对于 TPMS 的研究起步较晚,只是近几年才开始进行研究。最新的中华人民共和国国家标准“机动车运行安全技术条件”中的安全防护装置条款中规定:“车长大于 6m 的长途客车和旅游客车、最大设计总质量大于 12000kg 的载货汽车和载货牵引车应安装轮胎压力报警装置;有关部分机动车应安装轮胎压力报警装置的要求,自本标准发布之日起第 25 个月开始对新注册车实施”。可见我国政府已经开始重视汽车轮胎气压监测设备的发展和应用。 现在国内有许多汽车配件商开始代理销售国 外的 TPMS 系统。在上海和重庆及广东等地有几家公司开始投入生产并销售 TPMS,典型产品如:上海泰好电子科技有限公司的“泰好”牌 TPMS-204 型汽车轮胎压力监测器,重庆三信电子有限公司的TPMS S1R4A 轮胎压力监测显示系统,福州东球金口哨轮胎防爆有限公司的“金口黑龙江工程学院本科生毕业设计 3 哨汽车轮胎漏气报警哨”,上海保隆工贸有限公司的“迪吉泰”轮胎气压监测系统,佛山市安力信科技有限公司“泰杰”牌 TPM 系列轮胎气压监测系统等。 吉林大学、北京理工大学、郑州大学、清华大学、上海交通大学、哈尔滨工业大学等高校都有学者对直接型 TPMS 相 关技术进行理论研究,设计出了一系列方案,也有一些监测报警装置申报了专利。但是,国内厂家生产的 TPMS 基本是靠引进国外公司轮胎压力监测系统开发平台及生产线,核心技术都掌握在国外厂家手中,基本没有自主知识产权可言。目前国内的 TPMS 系统问题不少:安装繁琐、影响美观、整车厂难以配装;不能设定标准胎压,无法保障轮胎合理使用:射频效率、编码纠错性能差、在恶劣环境下漏报严重;能耗较高,不能达到 TPMS 系统应有的使用寿命要求;成本高昂,检测范围小,产品通用性不高。 TPMS 在中国的研究刚刚开始起步。高校及科研院所方面,吉林 大学孙宏伟对现有 F 费 scale 方案进行了研究,提出了针对 Ftcaale 传感器MPXY8020A 的温度补偿算法;合肥工业大学沈俊峰提出了以 SPl2 传感器, PICl6F683处理器,以及 T5754 射频发射器构成的轮胎压力检测方案;燕山大学张启中通过分析轮速传感器脉冲数相对差值的影响因素和影响规律,提出了基于脉冲数互比法气压异常报警系纠”;浙江大学,屯子科技大学,中国科学院上海微系统与信息技术研究所等也有学者对 TPMS 进行了类似的理论研列”。 1.2 课题的目的及意义 目的:随着世界经济的不断发展,基础投资的不断 加大,以及公路设施的改善和高速公路里程的迅速增加,公路交通的平均车速有了很大提高。但同时交通事故尤其是爆胎事故、追尾事故也相应增加,给人民的生命财产造成重大损失。交通安全已成为国家和个人越来越关注的重点。 在汽车的高速行驶中,轮胎故障是所有驾驶者最为担心和最难预防的,也是突发性交通事故发生的重要原因。在高速公路上行驶时一旦爆胎,驾驶员思想准备不充分极易造成车辆侧滑和不规则翻滚,轻则撞护栏,重则与其他行使车辆发生碰撞甚至车毁人亡,后果不堪设想。 据统计,轮胎爆胎的原因有: ( 1)轮胎压力过高; ( 2)轮胎漏气 ; ( 3)轮胎温度异常升高; ( 4)轮胎松动、掉胎。 而追尾事故的主要原因有: ( 1)前方车辆爆胎失控; 黑龙江工程学院本科生毕业设计 4 ( 2)视线不好,看不清前方车辆的刹车信号; ( 3)不能提前获知前方有事故车辆。 因此实时监测轮胎气压和温度的变化,保持汽车在标准的轮胎气压下行驶是防止爆胎的关键。汽车轮胎压力监测系 (TPMS)的主要作用就是在汽车行驶时,对轮胎气压进行实时自动监测,对轮胎漏气和低气压进行报警,是驾车者、乘车人的生命安全保障预警系统。安装轮胎压力监测系统能有效地防止轮胎在非正常气压下长时间行驶,提高汽车的主动安全性。 意义 :保持正常的轮胎气压,不仅可以延长轮胎的使用寿命,减小滚动阻力,还可减少油耗,提高车辆的使用经济性,而且可以大大提高汽车的行驶安全性。汽车轮胎压力监测系统是驾车者、乘车人的生命安全保障预警系统,将是一个永恒的主题,必将成为未来汽车必备的主动安全保障系统之一。汽车电子技术的不断发展使汽车上安装了越来越多的传感器,这将促进 TPMS 的发展,使其技术更加成熟,性能更加稳定,并且它的模块将向高度集成化、单一化、无线无源化方面发展。 1.3 课题主要工作 课题的主要任务就是研究并设计一个无线胎压检测系统,实现胎压变化信 息的实时采集和传送,以达到汽车司机能够在第一时间掌握汽车轮胎压力变化的要求,并做出相应的反应,从而避免事故的发生。 课题主要工作有以下几点: ( 1)对系统的关键技术进行研究并提出整体设计框架。 ( 2)传感器、单片机及显示元件、报警元件的选取并连接电路。 ( 3)进行监测模块、显示模块、报警模块及其主模块的程序编写。 ( 4)将软件和硬件组装并测试 。 黑龙江工程学院本科生毕业设计 5 第 2 章 系统整体方案设计 基于汽车轮胎安全使用的要求,胎压检测系统综合运用传感器检测技术、单片机技术及无线通信技术来设计。该系统能检测轮胎温 度和压力波动情况,并对检测数据进行分析和实时处理。 2.1 系统设计要求 本系统采用直接式胎压检测系统。它以锂离子电池为电源,通过埋于轮胎罩的传感器来直接测量轮胎的压力和温度,并经无线调制发射到安装在驾驶台的接收模块上。发射模块处于轮胎的封闭状态中,体积要小;另外由于在轮胎中更换器件很不方便且系统必须长时间工作,故而要求功耗低。 工作中轮胎状态为当轮胎压力高于标准值 (小型车为 275kpa)1 2 倍时,因轮胎与地面接触的面积减少,单位压力增高,使轮胎胎面的中部磨损增加。 通过试验证明: ,一般认为气压提高 25%, 轮胎寿命将会降低 15% 20%;气压降低 25%,寿命大约降低30%。一般轿车的轮胎正常气压值在 210kPa 左右,多座位商务车在 240kPa 左右为宜。此外,汽车轮胎温度越高,轮胎的强度越低,变形越大 (一般不能超过 80 ,当温度达到 95 时,轮胎的情况非常危险 ),每升高 1 ,轮胎磨损就增加 2%,行驶速度每增加一倍,轮胎行驶里程将降低 50%。因此, 本系统告警值设定为胎压 158KPa和 262KPa,温度小于 80 。 2.2 系统设计方案 根据系统功能及技术要求,系统方案的总体框图如图 2.1 所示: 图 2.1 系统 方案的总体框图 黑龙江工程学院本科生毕业设计 6 系统由置入轮胎内的发射模块和安装汽车驾驶台上的接收模块组成。发射模块每检测一次压力,都会判断此轮胎是否出现异常;如果判断出现异常情况,则形成一帧数据并进行发射。接收模块判断是否接收到完整的数据帧,如准确无误,则点亮和轮胎对应的 LED 指示灯。 2.2.2 发射模块 发射模块包括传感器单元、微处理器和射频单元。传感器单元定时采集轮胎内压力、温度数值。微处理器 (简称 MCU)和射频单元集成在同一芯片内,微处理器读取来自传感器的数据,进行处理并通过射频单元发射出去。发射模块的框图如图 2 2 所示。 图 2.2 发射模块框图 2.2.2 接收模块 接收模块完成信号的接收、校验和处理,并通过 LED 指示灯显示报警。接收模块的框图如图 2 3 所示。 图 2.3 接收模块框图 信号接收电路将由轮胎发射出来的射频信号放大解调后,将数字信号送给微处理器串行接口。微处理器再进行译码,从数据流中提取各轮胎号、压力值以及温度值,然后做出相应的处理。显示报警部分主要包括 LED 指示灯。 2.3 元器件选择 无线胎压检测系统开发所需的元器件主要包含传感器、 MCU、射频收发芯片、电池几个部分。 ()传感器 本系 统选用 DS18B20 温度传感器 , DS18B20 的温度检测与数字数据输出全集成黑龙江工程学院本科生毕业设计 7 于一个芯片之上,从而抗干扰力更强。 ()单片机 本系统 选用 STC98C52 系列,它是一种高性能的 8 位单片机系列,具有速度快、功能强、功耗低、价格低等特点并且自带看门狗复位,非法指令码检测复位和非法地址检测复位等系统保护特性。发射模块的 MCU 选用 STC89C51。 ()射频收发芯片 接收和发射芯片的选择主要从芯片的接收灵敏度以及性价比两方面考虑。本系统选用 2RF24L01B 射频收发芯片。 2.4 关键技术研究 2.4.1 频率选择 在众多的无线通 讯频段中,由于 ISM 频段 (工业,科学,医学频带 )属于公共频段,使用者无需申请频段许可证,这给用户带来了很多的方便,因此当今大部分无线传输所使用的操作频率一般都选择处于 ISM 频段的频率。而对采用 无线技术的应用来讲,通常又采用属于 ISM 频段中的 LPRD(Low Power RadioDevice)频段作为操作频率,此频段有两个频率范围,分别为: 433 05MHz 434 790 MHz 和 868 MHz 870 MHzi 眩l。在本系统中采用的工作频率设置为 433 92 MHz。 2.4.2 信号编码方式 在本文设 计的胎压检测系统中,数据以 9600bps 的速率发送,信源编码方 式采用曼彻斯特编码。曼彻斯特编码以数字信号来描述就是:在每个比特周期, 取值在周期中间点进行高低电平间的转换。如图 2.4 所示,一个数字 0 被描述为周期前一半为低电平,后一半为高电平;而数字 1 则是先高后低。 图 2.4 曼彻斯特编码示例 FSK 又称频移键控,是指以信号频率在两个值之间的偏移来描述数字 l 和数字 0信号。在本系统中,数字 l 具有较低的频率,而数字 0 则具有较高 的频率。也就是说,黑龙江工程学院本科生毕业设计 8 如果载波频率是 433 92MHz,总体频率偏移,数字 1 就是 (433 92)MHz,而数字 0 是(433 92)MHz。图 2 5 是 FSK 调制的曼彻斯特编码信号波形示意图。 图 2.5 FSK调制的曼彻斯特编码信号波形示意图 2.4.3 轮胎定位技术 胎压检测系统中的轮胎定位是指系统接收各个轮胎发射模块发出的信号并进行识别,然后判定是哪个轮胎发出信号的过程。各轮胎发射模块中的传感器把胎压的变化传递给 MCU,由 MCU 处理并加上该模块的识别 ID 编码 (用于区分各轮胎发射模块的编码,然后通过发射芯片进行调制并发射出去。接收模块接收并进行解调,恢复原始数据,通过读取原始数据的 ID 编码,当 接收到的信息中的轮胎内压力或温度出现异常时,MCU 将发出报警信号,驾驶员根据对应轮胎的 LED 报警灯,便可及时地对该轮胎进行处理,确保汽车行驶安全。 2.5 本章小结 本章对整个系统的大体框架进行了确定,包括本系统的使用数据,系统的工作流程,元器件的选择和关键技术的的研究。这一章是整个系统的关键,是下面要进行工作的思路和方向。 黑龙江工程学院本科生毕业设计 9 第 3 章 发射模块的设计 发射模块主要由传感器单元、发射单元组成。传感器单元测得压力和温度, 通过发射单元按照一定算法处理后发射出去。发射模块的软件设计分为数据采集和数据 处理发射两部分。 3.1 传感器单元的硬件电路设计 3.1.1 DS18B20 工作方式 温度传感器的种类众多, DS18B20 有着 超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强 的优点。 DS18B20 工作原理及应用: DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。 18B20 共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放 DS18B20ID 编码,其前 8 位是单线系列编码( DS18B20 的编码是 19H),后面 48 位是芯片唯一的序列号,最后 8 位是以上 56 的位的 CRC 码(冗余校验)。数据在出产时设置不由用户更改。 DS18B20 共 64 位 ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失, DS18B20 共 9个字节 RAM,每个字节为 8 位。第 1、 2 个字节是温度转换后的数据值信息,第 3、 4个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第 5 个字节则是用户第 3 个 EEPROM 的镜像。第 6、 7、 8 个字节为计数寄存器,是为了让用户得到更高的温度分辨 率而设计的,同样也是内部温度转换、计算的暂存单元。第 9 个字节为前 8 个字节的 CRC 码。 EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据, DS18B20 共 3 位 EEPROM,并在RAM 都存在镜像,以方便用户操作。 黑龙江工程学院本科生毕业设计 10 图 3.1 DS18B20 3.1.2 ADC0809 工作方式 ADC0809 是带有 8 位 A/D 转换器、 8 路多路开关以及微处理机兼容的控制逻辑的CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。 ( 1) ADC0809 的内部逻辑结构 由下图可 知, ADC0809 由一个 8 路模拟开关、一个地址锁存与译码器、一个 A/D转换器和一个三态输出锁存器组成。多路开关可选通 8 个模拟通道,允许 8 路模拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存 A/D 转换完的数字量,当 OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。 ( 2) ADC0809 引脚结构 ADC0809 各脚功能如下: D7-D0: 8 位数字量输出引脚。 IN0-IN7: 8 位模拟量输入引脚。 VCC: +5V 工作电压。 GND: 地。 REF( +) :参考电压正端。 REF( -): 参考电压负端 。 START: A/D 转换启动信号输入端。 黑龙江工程学院本科生毕业设计 11 ALE: 地址锁存允许信号输入端。 图 3.2 ADC0809 内部逻辑结构 (以上两种信号用于启动 A/D 转 换) . EOC: 转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE: 输出允许控制端,用以打开三态数据输出锁存器。 CLK: 时钟信号输入端(一般为 500KHz)。 A、 B、 C:地址输入线。 图 3.3 ADC0809 引脚结构 黑龙江工程学院本科生毕业设计 12 ADC0809 对输入模拟量要求:信号单极性,电压范围是 0 5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线: 4 条 ALE 为地址锁存允许输入线,高电平有效。当 ALE 线为高电平时,地址锁存与译码器将 A, B, C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。 A, B 和 C 为地址输入 线,用于选通 IN0 IN7 上的一路模拟量输入。 数字量输出及控制线: 11 条 ST 为转换启动信号。当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/D 转换;在转换期间, ST 应保持低电平。 EOC 为转换结束信号。当 EOC 为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。 OE 为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。 OE 1,输出转换得到的数据; OE 0,输出数据线呈高阻状态。 D7 D0 为数字量输出线。 CLK 为时钟输入信号线。因 ADC0809 的内部没有时钟电路,所需时钟信号 必须由外界提供,通常使用频率为 500KHZ, VREF(), VREF() 为参考电压输入。 ( 3) ADC0809 应用电路原理图 图 3.4 ADC0809 应用电路原理图 黑龙江工程学院本科生毕业设计 13 3.1.3 DS18B20 温度检测程序 *-FileInfo- * File name: DS18B20.c * Last modified Date: 2009-09-3 * Last Version: 1.0 * Descriptions: * Created by: * Created date: 2009-09-3 * Version: 1.0 * Descriptions: The original version * Modified by: * Modified date: * Version: * Descriptions: #includeinclude.h * Name: delayb() * Function: 延时程序 void delayb(int count) /delay unsigned int i; while(count) i=200; while(i0) i-; count-; * Name: dsreset() * Function: DS18B20 初始化程序 void dsreset(void) /DS18B20 初始化 unsigned int i; 黑龙江工程学院本科生毕业设计 14 DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-; * Name: tmpreadbit() * Function: DS18B20 读取位程序 bit tmpreadbit(void) / 读一位 unsigned int i; bit dat; DS=0;i+; /小延时一下 DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat); * Name: tmpread() * Function: DS18B20 读取字节程序 unsigned char tmpread(void) /读一个字节 unsigned char i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在 最前面,这样刚好 /一个字节在DAT 里 return(dat); /将一个字节数据返回 * Name: tmpwritebyte() * Function: D 写一个字节到 DS18B20 里的程序 黑龙江工程学院本科生毕业设计 15 void tmpwritebyte(uchar dat) /写一个字节到 DS18B20 里 unsigned int i; uchar j; bit testb; for(j=1;j1; if(testb) / 写 1 部分 DS=0; i+;i+; DS=1; i=8;while(i0) i-; else DS=0; /写 0 部分 i=8;while(i0)i-; DS=1; i+;i+; * Name: tmpchange() * Function: 发送温度转换命令的程序 void tmpchange(void) /发送温度转换命令 dsreset(); /初始化 DS18B20 delayb(1); /延时 tmpwritebyte(0xcc); / 跳过序列号命令 tmpwritebyte(0x44); /发送温度转换命令 * Name: tmp() 黑龙江工程学院本科生毕业设计 16 * Function: 获得温度的程序 int tmp() /获得温度 int temp; float tt; unsigned char a,b; dsreset(); delayb(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); /发送读取数据命令 a=tmpread(); /连续读两个字节数据 b=tmpread(); temp=b; temp0;n-) _nop_(); /*NRF24L01 初始化 void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道 0 自动 ACK 应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道 0 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为 32 字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); / 设 置 发 射 速 率 为1MHZ,发射功率为最大值 0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ 收发完成中断响应, 16 位 CRC,主发送 /*函数 : uint SPI_RW(uint uchar) /*功能 : NRF24L01 的 SPI 写时序 unsigned char SPI_RW(unsigned char uchar1) 黑龙江工程学院本科生毕业设计 23 unsigned char bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uchar1 & 0x80); / output uchar, MSB to MOSI uchar1 = (uchar1 1); / shift next bit into MSB. SCK = 1; / Set SCK high. uchar1 |= MISO; / capture current MISO bit SCK = 0; / .then set SCK low again return(uchar1); / return read uchar /*函数 : uchar SPI_Read(uchar reg) /*功能 : NRF24L01 的 SPI 时序 unsigned char SPI_Read(unsigned char reg) unsigned char reg_val; CSN = 0; / CSN low, initialize SPI communication. SPI_RW(reg); / Select register to read from. reg_val = SPI_RW(0); / .then read registervalue CSN = 1; / CSN high, terminate SPI communication return(reg_val); / return register value /*功 能: NRF24L01 读写寄存器函数 unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value) unsigned char status; CSN = 0; / CSN low, init SPI transaction status = SPI_RW(reg); / select register SPI_RW(value); / .and write value to it. CSN = 1; / CSN high again return(status); / return nRF24L01 status uchar /*函数 : uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) /*功能 : 用于读数据, reg:为寄存器地址, pBuf:为待读出数据地址, uchars:读出数据的个数 unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) unsigned char status,uchar_ctr; CSN = 0; / Set CSN low, init SPI tranaction 黑龙江工程学院本科生毕业设计 24 status = SPI_RW(reg); / Select register to write to and read status uchar for(uchar_ctr=0;uchar_ctruchars;uchar_ctr+) pBufuchar_ctr = SPI_RW(0); / CSN = 1; return(status); / return nRF24L01 status uchar /*函数 : uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) /*功能 : 用于写数据:为寄存器地址, pBuf:为待写入数据地址, uchars:写入数据的个数 unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) unsigned char status,uchar_ctr; CSN = 0; /SPI 使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctr0;n-) _nop_(); /*NRF24L01 初始化 void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道 0 自动 ACK 应答允许 黑龙江工程学院本科生毕业设计 31 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道 0,如果需要多频道可以参考 Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为 32 字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); / 设 置 发 射 速 率 为1MHZ,发射功率为最大值 0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ 收发完成中断响应, 16 位 CRC,主发送 /*函数: uint SPI_RW(uint uchar) /*功能: NRF24L01 的 SPI 写时序 unsigned char SPI_RW(unsigned char uchar1) unsigned char bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uchar1 & 0x80); / output uchar, MSB to MOSI uchar1 = (uchar1 1); / shift next bit into MSB. SCK = 1; / Set SCK high. uchar1 |= MISO; / capture current MISO bit SCK = 0; / .then set SCK low again return(uchar1); / return read uchar /*函数: uchar SPI_Read(uchar reg) /*功能: NRF24L01 的 SPI 时序 unsigned char SPI_Read(unsigned char reg) unsigned char reg_val; CSN = 0; / CSN low, initialize SPI communication. SPI_RW(reg); / Select register to read from. reg_val = SPI_RW(0); / .then read registervalue CSN = 1; / CSN high, terminate SPI communication return(reg_val); / return register value /*功能: NRF24L01 读写寄存器函数 黑龙江工程学院本科生毕业设计 32 unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value) unsigned char status; CSN = 0; / CSN low, init SPI transaction status = SPI_RW(reg); / select register SPI_RW(value); / .and write value to it. CSN = 1; / CSN high again return(status); / return nRF24L01 status uchar /*函数: uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) /*功能 : 用于读数据, reg:为寄存器地址, pBuf:为待读出数据地址, uchars:读出数据的个数 unsigned char SPI_Read_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) unsigned char status,uchar_ctr; CSN = 0; / Set CSN low, init SPI tranaction status = SPI_RW(reg); / Select register to write to and read status uchar for(uchar_ctr=0;uchar_ctruchars;uchar_ctr+) pBufuchar_ctr = SPI_RW(0); / CSN = 1; return(status); / return nRF24L01 status uchar /*函数: uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) /*功能 : 用于写数据:为寄存器地址, pBuf:为待写入数据地址, uchars:写入数据的个数 unsigned char SPI_Write_Buf(unsigned char reg, unsigned char *pBuf, unsigned char uchars) unsigned char status,uchar_ctr; CSN = 0; /SPI 使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctr 0; i-) for(j = 200; j 0; j-); void bell(void) int i,j; for(i=50,j=60;i0;i-) BELL=1; while(-j0);/delay_ms(20); BELL=0; while(-j0);/delay_ms(20); 黑龙江工程学院本科生毕业设计 37 void reset (void) (void (code *) (void) 0x0000) (); * Name: display_num() * Function: 数码管显示函数 void display_num2(uint num) unsigned int i,LedNumVal; unsigned int LedOut10; LedNumVal=num; LedOut4=Disp_TabLedNumVal%10000/1000; /千位 LedOut5=Disp_TabLedNumVal%1000/100; /|0x80; /百位带小点 LedOut6=Disp_TabLedNumVal%100/10|0x80; /十位 LedOut7=Disp_TabLedNumVal%10; /个位 for( i=0; i9; i+) P0 = LedOuti; P2 = dispbiti; /使用查表法进行位选 delayy(100);/ 100 /扫描间隔时间 太长会数码管会有闪烁感 * Name: display_num() * Function: 数码管显示函数 void display_num1(uint num) unsigned int i,LedNumVal; unsigned int LedOut10; LedNumVal=num; LedOut0=Disp_TabLedNumVal%10000/1000; /千位 LedOut1=Disp_TabLedNumVal%1000/100|0x80; /百位带小数点 LedOut2=Disp_TabLedNumVal%100/10; /|0x80; 十位 LedOut3=Disp_TabLedNumVal%10; /个位 for( i=0; i180)break; tt=50; if(kk1405)|(kk2265) while(-ii0) bell(); display_num1(kk1); display_num2(kk2); while(tt-0) display_num1(kk1); display_num2(kk2); if(RxBuf0=flag20) i=3; if(i=3)&(RxBuf0!=flag20)&(RxBuf0!=flag10) kk2=RxBuf0; BELL=1; if(kk2150)&(kk2405)|(kk2265) while(-ii0) 黑龙江工程学院本科生毕业设计 39 bell(); display_num1(kk1); display_num2(kk2); while(tt-0) display_num1(kk1); display_num2(kk2); * 函数名称 : main() * 函数功能 : 主函数 * 入口参数 : 无 * 出口参数 : 无 void main() init_NRF24L01(); BELL=1; while(1) wireless_display(); 4.3 本章小结 本章内容完成了对本系统的真正实现,包括对压力和温度的实时监测和显示,并且准确的通过 LED 灯和蜂鸣器进行报警,系统的最终实现靠的是每一个步骤和过程的准确,做好每一个细节才是最重要的。 黑龙江工程学院本科生毕业设计 40 第 5 章 系统测试 5.1 概述 本系统在系统软件研制的整个过程中都要进行测试,以保证整个系统的精度和可靠性。系统设计完成后,将下载好程序的电路板:发射模块和接受模块分别接通电源,通过温度传感器和模拟压力的电位计实时采集信号并通过发射接受芯片传输到接收模块,信号通过单片机处理在显示器上显示数据,当数据达到预设值是通过报警灯和蜂鸣器进行报警。通过改变温度和电位计数值来测试系统的精确度和稳定性。 5.2 信号实时传输显示测试 本系统设计之初是模拟实车上应用的 TPMS 系统的成熟产品,如图 5.1: 图 5.1实车上使用的 TPMS产 品 发射单元通过锂电池供电,锂电池有体积小,供电时间长,抵抗恶劣环境强的优点。本课题是模拟该产品制作出来的简单实物,所以通过外接电源供电。 发射模块接通电源,打开开关,发射模块开始工作,这是会发现红色指示灯开始有规律频闪,这说明发射模块工作正常,指示灯每闪烁一次代表发射一次信号。 接受模块接通电源,打开开关,这是工作指示灯亮起, LED 显示器出现数字,说明接受模块工作正常。这是 LED 显示器左边 4 个单元显示压力数值,右边 4 个单元显示温度数值如图 5.2 所示: 黑龙江工程学院本科生毕业设计 41 图 5.2接收模块 LED显示 如图所示 LED 显示器 上分别显示压力 394kPa,温度 27.4 ,数值都在预设范围之内,没有报警现象,说明发射、接受和 LED 显示没有问题。 5.3 温度超过预警值报警测试 本系统设计之初是模拟 TPMS 产品的实际功能,温度达到 80 时系统报警,为了测试时方便操作,模拟系统设定达到 29 时报警。 实验时可以通过手指给温度传感器加热,观察显示器,数值会逐渐增加直到超过29 ,报警指示灯亮起,蜂鸣器开始报警。 图 5.3接收模块 LED显示 黑龙江工程学院本科生毕业设计 42 如图 5.3 所示,显示器显示模拟压力数值 393kPa,没有超过预警值;显示温度数值 31.6 ,超 出预警值,系统正常报警,当温度超出预警指示报警测试成功。 5.4 模拟压力超过预警值报警测试 本系统设计之初是模拟 TPMS 产品的实际功能,胎压达到 262kPa 时系统报警,为了测试时方便操作,模拟系统设定达到 405kPa 时报警。 测试开始,调节电位计旋钮,使显示器度数逐渐增加,直到度数超过 405kPa,报警灯亮起,蜂鸣器报警,如图 5.4 所示: 图 5.4接收模块 LED显示 如图 5.4 所示,显示器显示模拟压力数值为 407kPa,超出预警值 ;显示温度数值26.9 ,没有超出预警值;系统正常报警,模拟压力超出预警值 测试成功。 5.5 模拟压力和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《计算物理》课程教学大纲
- 黑龙江省牡丹江市2024-2025学年高三上学期期中考试生物试题含答案
- 2024年出售农民自建房合同范本
- 2024年代理服务简单版合同范本
- 2024年承接山地运输合同范本
- 福建省部分达标学校2024-2025学年高一上学期11月期中考试 物理(含解析)
- 东南交通大学规划
- 医院收费室主任述职报告
- 冬季七防知识培训
- 医院保洁人员培训内容
- 第一、二单元复习课件 2024-2025学年统编版七年级历史上册
- 食品加工机械 食材净化清洗设备 编制说明
- 2024年黑龙江省哈尔滨市中考数学试卷
- 2024中国铁塔集团湖南分公司招聘24人高频考题难、易错点模拟试题(共500题)附带答案详解
- 2024年保安员资格考试模拟练习题及答案
- 2024年秋新北师大版一年级上册数学教学课件 4.8 挖红薯
- 中华联合保险集团股份有限公司行测笔试题库2024
- 2024版离婚起诉书范本
- 高中英语英汉互译集中训练题350题(含答案)
- AQ 1119-2023 煤矿井下人员定位系统技术条件
- 《古人谈读书》教学课件2(第二课时)
评论
0/150
提交评论