基于單片機的汽車輪胎胎壓監測系統的設計與實現說明書_第1頁
基于單片機的汽車輪胎胎壓監測系統的設計與實現說明書_第2頁
基于單片機的汽車輪胎胎壓監測系統的設計與實現說明書_第3頁
基于單片機的汽車輪胎胎壓監測系統的設計與實現說明書_第4頁
基于單片機的汽車輪胎胎壓監測系統的設計與實現說明書_第5頁
已閱讀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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論