陳子建++戴慶達++王文博++陳宇++朱紅++李伙全++曾祥華
摘 要:文中實現了一種基于AT89C51單片機和DS18B20溫度傳感器的汽車輪胎防爆系統,無線收發數傳模塊PTR8000用于無線通信。系統分為發送端和接收端兩部分,發送端通過DS18B20傳感器采集汽車輪胎溫度并將溫度值傳送給發送端單片機,發送端單片機經PTR8000模塊將溫度值通過無線方式傳送給接收端單片機,接收端單片機將溫度值在1602液晶上實時顯示,當汽車輪胎溫度高于預警溫度時,蜂鳴器發出報警聲音,此外,接收端通過RS-232接口與計算機通信,將汽車輪胎溫度值傳輸到駕駛室的PC機。系統基于Keil 2編程,采用C語言編寫程序。
關鍵詞:無線傳輸;AT89C51;DS18B20;PTR8000;輪胎防爆
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2017)09-00-05
0 引 言
隨著經濟社會的飛速發展,汽車已成為生活中不可或缺的一種交通工具,已和人們的生活融為一體。隨著汽車數量的不斷增加,各種交通事故也層出不窮。據美國汽車工程師協會的調查統計表明,70%的交通事故是由輪胎故障引發的,尤其在高速行駛的情況下。當汽車行駛時,如果輪胎爆炸或自燃,必定會造成嚴重的車禍,后果不堪設想。汽車輪胎的溫度過高,會導致輪胎內氣體壓強增大,引發胎爆的危險。
隨著計算機技術、電子技術和通信技術在生活中的不斷發展和應用,人類社會已進入了信息時代,自動化、智能化處理信息的能力不斷提高,并在生產、生活的各個領域中得到了廣泛應用。物聯網是在互聯網、移動通信網等通信網絡的基礎上,利用具有感知、通信與計算能力的智能物體自動獲取物理世界的各種信息,將所有獨立尋址的物理對象聯接起來,實現全面感知、可靠傳輸、智能處理,構建人與物、物與物相連的智能信息系統。物聯網的主要特征包括全面感知、可靠傳輸、智能處理。本文設計了一種無線汽車輪胎防爆系統,該系統利用溫度傳感器實時采集汽車輪胎溫度,并通過無線傳輸方式將實時采集到的溫度值發送到駕駛室終端,當汽車溫度較高時,向駕駛人員發出預警信息,從而有效避免胎爆事故的發生。
1 系統方案
1.1 系統設計
本設計分為發送端和接收端兩部分。發送端包括溫度采集模塊和無線發射模塊,接收端包括無線接收模塊和顯示模塊。發送端和接收端的通信依靠低功耗近距離無線收發模塊進行。系統硬件由溫度傳感器、單片機、無線收發模塊、蜂鳴器、液晶顯示屏、電源及電阻、電容等分立器件組成,焊接在兩塊小型印刷電路板上。
系統軟件設計和硬件設計相對應,也分為發送部分和接收部分。其中,發送部分包括溫度采集程序和無線發射程序,接收部分包括無線接收程序和顯示驅動程序。系統整體框圖如圖1所示。
1.2 工作原理
將發送端的電路板固定在汽車輪轂上,使發送端溫度傳感器成功采集輪胎溫度數據,通過1-Wire線傳送給單片機,單片機通過模擬SPI口將溫度值傳送給無線發送模塊,然后無線發送模塊將溫度值通過433 MHz電磁波的形式發送給接收端的無線接收模塊。接收端的無線接收模塊接收到數據后同樣通過模擬的SPI口送給接收端的單片機,然后單片機根據采集到的溫度值驅動液晶顯示屏顯示溫度值,并根據設定的車胎預警溫度值驅動蜂鳴器工作,蜂鳴器和液晶顯示器放置在汽車駕駛室內,實現對輪胎溫度的實時預警。
2 系統的硬件部分
2.1 硬件原理
2.1.1 AT89C51單片機
AT89C51是美國ATMEL公司生產的一種帶4KB Flash存儲器的低電壓、高性能CMOS 8位51內核單片機,性價比高,適用于各種控制領域。AT89C51單片機與MCS-51內核兼容;采用三級程序存儲器鎖定;擁有128 B內部RAM;32個可編程I/O口;兩個16位可編程定時器/計數器;5個中斷源;1個可編程串行口。
AT89C51單片機的存儲器采用“哈佛結構”,物理結構上分為4個存儲空間,即片內程序存儲器、片外程序存儲器、片內數據存儲器和片外數據存儲器。邏輯結構上,AT89C51有3個存儲空間,即片內外統一編址的64 KB程序存儲器地址空間(用16位地址)、片內數據存儲器地址空間(尋址范圍00H~FFH)、64 KB片外數據存儲器地址空間。
2.1.2 DS18B20溫度傳感器
DS18B20是美國Dallas半導體公司推出的集成數字化溫度傳感器,它可直接將被測溫度轉換為串行數字信號,供微處理器處理,同時還具有微型化、功耗低、高性能、抗干擾能力強等優點。
DS18B20溫度傳感器采用單總線技術,與AT89C51通信只需一根引腳,節省了單片機的硬件資源;直接輸出溫度值(二進制補碼),無需外部電路處理;每個器件片內ROM都存有一個唯一的64位序列號;測量溫度范圍為-55~125℃,測量精度為±0.5℃,非常適合于汽車輪胎的溫度測量;溫度測量分辨率為9~12位,默認為12位,用戶可自行選擇;由數據線提供電源,支持3~5 V的電源電壓,使設計更為靈活方便。
DS18B20采用單總線技術(1-Wire),即只用單根信號線既可傳輸時鐘信號,又可傳輸數據,且數據傳輸是雙向的,故須遵循嚴格的協議。單線協議由復位脈沖、應答脈沖、寫0、寫1、讀0和讀1這幾種信號類型組成。在這些信號中,除應答脈沖外,其他均由主機發起,并且所有的命令和數據都是字節的低位在前。
需要注意的是,所有的讀/寫時序都必須在60 μs以上,且每兩個獨立的時序之間至少需要1 μs的恢復時間。
DS18B20輸出的溫度值以16位帶符號位擴展的二進制補碼形式表示,存放在暫存器的第1、2字節。9位的溫度分辨率為0.5℃,10位為0.25℃,11位為0.125℃,12位為0.062 5℃。溫度轉換時間與位數有關,9位為93.75 ms,12位為750 ms。endprint
DS18B20的所有操作均從初始化開始。另外有5條ROM指令和6條存儲器指令。我們主要用到以下三條指令:
(1)跳過ROM命令(CCH):允許單片機跳過ROM序列號檢測而直接對寄存器進行操作,以節省時間。但該指令不能用于多片DS18B20的系統。
(2)溫度轉換命令(44H):啟動溫度轉換。如果在此命令后主機產生讀時隙,那么只要溫度轉換正在進行,主機就會收到‘0;如果溫度轉換完成,主機就會收到‘1。
(3)讀暫存器命令(BEH):此命令用于讀取暫存器內容,從第1字節開始,直到讀完第9字節。
2.1.3 無線收發數傳模塊PTR8000
無線收發模塊PTR8000(nRF905無線收發模塊)是在Nordic VLSI公司最新封裝改版的nRF905無線通信芯片的基礎上,經優化設計的近距離無線模塊。其專為點對多點無線通信設計,內置數據協議和CRC校驗,無亂碼輸出,工作于免許可證使用的全球開放ISM頻段(433 MHz),具有高性能、低功耗,接收靈敏度高,抗干擾性強,集成度高,通信穩定等優點,是目前主流的無線收發應用。PTR8000模塊包括430/868/915 MHz高性能嵌入式無線模塊,多頻道多頻段;采用1.9~3.6 V低電壓工作,待機功耗僅為2 μA;超小體積,內置環行天線,性能穩定且不受外界影響,對電源不敏感;最大發射功率為+10 dBm,高抗干擾GFSK調制,可跳頻,數據速率為50 Kb/s ,擁有獨特的載波監測輸出、地址匹配輸出、數據就緒輸出;內置完整的通信協議和CRC,只需通過SPI 接口即可完成所有的無線收發傳輸,無線通信如同SPI 通信一樣方便。
圖2所示為PTR8000的用戶接口,該接口由10個數字輸入/輸出(I/O口) 組成,按照工作分工可分為三組。
(1)模式控制
該接口由TRX_CE、TX_EN、PWR組成,控制PTR8000的四種工作模式分別為掉電和SPI編程模式、待機和SPI編程模式、發射模式、接收模式。各種模式的控制模式見表1所列。
掉電模式下的功耗約為2.5 μA,此時所有電路關閉,進入最省電狀態;待機模式下的功耗約為40 μA,此時發射/接收電路關閉,只有SPI接口工作;在掉電和待機模式下PTR8000均不能接收發射數據,但可以進行配置。
(2)SPI接口
PTR8000模塊內置一個SPI接口,通過其與主設備通信。SPI接口由SCK、MISO、MOSI以及CSN信號線組成。在配置模式下,單片機通過SPI接口配置PTR8000 的工作參數;在發射/接收模式下,單片機通過SPI接口發送和接收數據。
(3)狀態輸出接口
該接口提供載波檢測輸出CD、地址匹配輸出AM、數據就緒輸出DR。
PTR8000模塊的SPI配置方法如下:
當CSN為低時,SPI接口開始等待一條指令,任何一條新指令均由CSN由高到低轉換開始。
SPI串行接口指令包括寫配置寄存器指令W_CONFIG(WC)、讀配置寄存器指令R_CONFIG(RC)、寫TX有效數據指令W_TX_PAYLOAD(WTP)、讀TX有效數據R_TX_PAYLOAD(RTP)、寫TX地址指令W_TX_ADDRESS(WTA)、讀TX地址指令R_TX_ADDRESS(RTA)、讀RX有效數據指令R_RX_PAYLOAD(RRP)。
2.1.4 LCD1602液晶模塊
LCD1602是一種工業字符型液晶,是顯示字母、數字、符號等的點陣型液晶模塊,具有體積小、使用方便、價格低廉、耗功低、穩定性高等特點。
2.2 硬件電路模塊設計
2.2.1 溫度采集模塊硬件電路設計
因為DS18B20是單總線器件,只有一根信號線,外加一根電源線和一根地線,所以接線比較簡單,如圖3所示。
2.2.2 無線收發模塊硬件電路設計
無線收發模塊包括發送和接收兩部分。
PTR8000有14根引腳,除去1根電源線和2根地線,TX_EN、TRX_EN、PWR三根引腳用于模式控制,CSN、SCK、MOSI、MISO四根引腳屬于SPI接口,CD、AM、DR用于狀態輸出。
圖4所示為發送端PTR8000和單片機的連接圖,圖中P1接頭的1~14引腳分別對應PTR8000模塊的1~14引腳,其中,Pin1是電源引腳,接一個簡單的分壓電路,輸入1.9~3.6V電壓,如圖5所示。
2.2.3 RS-232接口模塊
添加RS-232接口的目的在于將接收端獲取的汽車輪胎溫度信息傳送到汽車駕駛室的PC機終端。RS-232接口模塊主要包括一塊MAX232芯片和一個RS-232插口。MAX232芯片是美國半導體公司美信(MAXIM)專門為計算機RS-232標準串口設計的單電源電平轉換芯片,使用+5 V單電源供電。RS-232C標準電平采用了負邏輯,其中,+3~+15 V為邏輯 ‘0,-3~-15 V為邏輯‘1。這種較大的輸入輸出擺幅及差分信號的通信方式有助于提高接口模塊的抗干擾能力。
AT89C51與PC機通過串口通信時,盡管單片機有串行通信功能,但單片機提供的信號電平和RS-232C的標準電平不一致,因此需要通過MAX232接口芯片進行電平轉換。
2.3 電路原理框圖
系統原理圖如圖7所示,包括發送和接收兩部分。發送部分包括溫度采集模塊和無線發送模塊。接收部分包括無線接收模塊、顯示模塊和RS-232接口模塊。
3 系統的軟件部分
系統的軟件部分用于輪胎防爆的溫度采集系統程序設計,主要包括溫度采集、PTR8000無線通信和主程序三部分。無線通信部分又分為發送和接收兩部分。系統接收部分原理圖如圖8所示。endprint
3.1 溫度采集模塊部分的程序設計
魚和熊掌不可兼得,硬件電路簡單也意味著軟件設計比較復雜。因為采用單總線技術,所以DS18B20對通信時序的要求非常嚴格,溫度采集模塊的狀態轉換圖如圖9所示。
DS18B20的程序由三個基本的小程序模塊組成,它們是3個自定義函數,分別為復位函數void ow_reset(void);向單總線寫1個字節函數void write_byte(uchar val);從單總線上讀一個字節函數uchar read_byte(void) 。自定義read_temp()函數調用復位、讀字節、寫字節3個函數,按照圖9的流程讀出溫度。
write_byte函數經單總線向DS18B20寫一個字節命令或數據,一個寫周期只寫1位,8個周期寫1個字節。寫時序嚴格按照DS18B20的初始化時序和讀/寫時序來寫0和1的時序,每個寫周期先輸出15 μs的低電平。若要寫1,則輸出60 μs的高電平;若要寫0,則輸出60 μs的低電平。
read_byte函數經單總線從DS18B20讀1個字節數據。一個讀周期只讀1位,8個周期讀1個字節。同樣,讀1位的時序也嚴格按照DS18B20的初始化時序和讀/寫時序進行。先拉低信號線15 μs,然后釋放。若信號線為高,則讀出1;若信號線為低,則讀出0。
借助read_temp函數完成整個讀溫度流程。先初始化DS18B20,然后寫跳過ROM命令(CCH),寫溫度轉換命令(44H),然后等待溫度轉換完成。寫跳過ROM命令(CCH)和讀暫存器命令后,讀出溫度值。由于DS18B20輸出的溫度值是以二進制補碼的形式存放,因此需要對其進行轉換。
此外,溫度采集部分的程序中還包括端口定義和一個延時函數。
3.2 無線發送模塊編程
PTR8000和單片機通信需借助一個SPI接口,由于AT89C51沒有內置SPI接口,所以需要用軟件模擬。在發送模式中,PTR8000自動產生前導碼和CRC校驗碼,數據準備就緒(DR),信號通知AT89C51數據傳輸已完成。此舉不僅降低了單片機存儲器的要求,同時也縮短了軟件開發時間。
PTR8000的數據發送可以分為確定數據和地址、確定發送模式、數據發送和發送完成四個步驟。
上電后,單片機首先配置PTR8000模塊,然后進入發射模式,進行溫度數據的發送。
配置模式和發射模式的設置通過TRX_CE、TX_EN、PWR信號線完成。
發射模式的工作流程如下:
(1)接收節點的地址 (TX-address)和有效數據(TX-payload) 通過SPI 接口傳送給PTR8000;
(2)AT89C51設置TRX_CE和TX_EN為高來啟動傳輸;
(3)PTR8000發送數據(無需單片機干預);
(4)如果AUTO_RETRAN被設置成高,PTR8000將連續發送數據包,直到TRX_CE被設置成低電平;
(5)當TRX_CE被設置成低時,PTR8000結束數據傳輸,并將自己設置成待機模式。
因此,發送模塊的PTR8000 C語言文件包含4個基本的函數:
(1)void ini_system(void):進入配置模式,初始化PTR8000;
(2)void setmode():設置發送模式,使PTR8000進入發送模式;
(3)void Spiwrite(uchar dat):通過SPI寫一個字節;
(4)void Txpacket(void):將接收節點的地址和數據傳給PTR8000,并發送。此外,還包括管腳配置和一個延時函數。
void Spiwrite(uchar dat) 函數嚴格按照PTR8000模塊的SPI寫時序編寫,每個寫周期寫1位數據,8個周期寫一個字節。
void Txpacket(void) 函數中先寫4個字節的接收地址,然后寫3個字節的發送數據。
3.3 無線接收模塊編程
在接收模式中,AT89C51單片機與PTR8000的通信同樣要借助一個軟件模擬的SPI接口。由于PTR8000自動去掉數據或地址的前導碼和CRC校驗碼,所以當地址匹配(AM)信號和數據準備就緒(DR)信號通知AT89C51一個有效的地址和數據包已經各自接收完成時,單片機即可通過模擬的SPI接口讀取接收的溫度數據。同樣,此舉不僅降低了單片機存儲器的要求,也縮短了軟件開發時間。
上電后,接收端的單片機首先配置PTR8000模塊,然后進入接收模式,等待發送端的PTR8000模塊將溫度數據傳送過來。
PTR8000的接收模式工作流程如下:
(1)設置TRX_CE為高、TX_EN為低,進入接收模式;
(2)650 μs后,PTR8000開始監測空中的信息;
(3)當PTR8000發現和接收頻率相同的載波時,載波檢測(CD)被置高;
(4)當PTR8000接收到有效的地址時,地址匹配(AM)被置高;
(5)當PTR8000接收到有效的數據包時,數據準備就緒(DR)被置高;
(6)89C51可以以合適的速率通過模擬的SPI接口讀出有效數據;
(7)當所有的有效數據被讀出后,PTR8000將AM和DR置低。
接收模式的PTR8000程序由延時函數delay、初始化函數ini_system、模式設置函數setmode、讀1字節函數Spiread、寫1字節函數Spiwrite以及接收數據包函數Rxpacket組成。
延時函數void delay(uint x) 用以實現讀寫時序;寫1個字節函數void Spiwrite(uchar dat) 和讀1個字節函數uchar Spiread (void) 應嚴格遵守PTR8000 SPI接口的讀寫時序,每個讀寫周期讀寫1位數據,8個周期讀寫一個字節;初始化函數void ini_system(void) 完成PTR8000的寫配置,并進入接收模式;接收數據包函數void Rxpacket(void) 需要調用Spiwrite和Spiread函數,完成數據包的讀入,數據包為4 B,保存在Rxbuf數組中。此外,程序還包括管腳配置和常用指令的聲明。endprint
3.4 主函數
主函數同樣分為發送部分主函數和接收部分主函數。發送部分主函數的工作流程如下:
(1)配置溫度傳感器DS18B20;
(2)配置無線模塊PTR8000;
(3)從DS18B20中讀取溫度,并轉換;
(4)將溫度值用PTR8000發送出去;
(5)回到(3)。
接收部分主函數的工作流程:
(1)配置液晶模塊LCD1602;
(2)配置無線模塊PTR8000;
(3)等待發送端發送溫度數據;
(4)從PTR8000讀取溫度值;
(5)將溫度值顯示在LCD1602上,并驅動蜂鳴器;
(6)回到(3)。
4 結 語
本文提出了一種基于PTR8000的輪胎防爆系統設計方案。先對方案中用于輪胎防爆的溫度采集預警系統的總體設計進行了介紹,同時對系統中所要用到的主要器件進行了介紹,然后對系統的硬件設計分模塊進行了分析,并重點設計了輪胎防爆系統的軟件部分。編程基于Keil 2,采用C語言,主要分為主程序、溫度采集和PTR8000無線通信三部分。
本文研究的重點在于汽車駕駛的安全性,目前70%左右的交通事故的原因是輪胎故障,本設計通過傳感器檢測輪胎行駛時的溫度,當輪胎的溫度數值超出警戒值時,緊急報警,使得駕駛員實時正確的了解輪胎情況,避免由于輪胎爆炸引發的交通事故,保證駕駛員及乘客的安全。該技術的推行能有效避免由于輪胎爆炸而引發的交通事故,提高行車安全系數,具有良好的社會效益。
參考文獻
[1]王宏偉.32位和8位單片機的無線傳感器網絡系統[J].單片機與嵌入式系統應用,2014(7):32-34.
[2]曾小寶,宋銳.基于單片機無線智能防火報警器的設計[J].中國電子商務,2012(8):109.
[3]劉燦,王文煒,龍祖強,等.汽車輪胎壓力監測系統的實現[J].電子測試,2011(5):10-13.
[4]李敏,趙繼印,陳興文,等.汽車輪胎爆胎預警系統綜述[J].大連民族學院學報,2011,13(5):454-457.
[5]蔣強,張小英.基于PTR8000射頻模塊的火警探測器的實現[J].自動化儀表,2008,29(4):26-28.
[6]李瑤,王保帥.基于MSP430F449單片機的數據通信與顯示系統設計[J].物聯網技術,2017,7(1):39-41.
[7]張鋒.基于DS18B20的溫度測控系統設計[J].物聯網技術,2014,4(6):19-21.
[8]熊陽.汽車輪胎自動供電高溫防爆無線監測系統[J].技術與市場,2011,18(8):110.endprint