李彥君,張瀟丹,劉佳林,楚 杰
(山東科技大學(xué)電氣信息系,濟(jì)南 250031)
胎壓監(jiān)測(cè)預(yù)警系統(tǒng)(TPMS)的主要功能包括胎壓數(shù)據(jù)的采集和處理,數(shù)據(jù)的發(fā)送和接受,對(duì)數(shù)據(jù)進(jìn)行分析和響應(yīng),在此基礎(chǔ)上,加入顯示屏幕和報(bào)警系統(tǒng),聲光報(bào)警系統(tǒng)也可以在搭載PWM技術(shù)后進(jìn)一步優(yōu)化,將蜂鳴器單純刺耳的聲音變得能夠易于人們的接受。按鍵使駕駛員和系統(tǒng)能進(jìn)行有效的交互。隨著科學(xué)技術(shù)的發(fā)展,單一的有線數(shù)據(jù)傳送方式已經(jīng)不能再符合生活需要,特別是在汽車駕駛系統(tǒng)當(dāng)中,必須選擇無線傳輸?shù)姆绞剑@樣的傳輸?shù)姆绞?,就一定需要上位機(jī)和下位機(jī)兩套主控板,兩塊嵌入式的微處理器分別搭載不同的模塊,在輪胎模塊上,搭載傳感器來實(shí)時(shí)地采集數(shù)據(jù),通過高頻發(fā)送模塊將所采集的數(shù)據(jù)傳輸?shù)奖O(jiān)視器模塊上面,監(jiān)視器模塊上面搭載高頻接收模塊,顯示模塊和鍵盤等能夠?qū)崿F(xiàn)與人的良好交互,加入聲光報(bào)警系統(tǒng)后,提醒的方式會(huì)更加的智能化,該系統(tǒng)廣泛的應(yīng)用到生活中,會(huì)大大的減少由于爆胎而引發(fā)的致殘致死的交通事故,給人們的出行提升安全保障。胎壓傳感器采用MPXY8020a芯片,無線傳輸采用低功耗的NRF24L01,聲光報(bào)警采用傳統(tǒng)的LED和蜂鳴器就可實(shí)現(xiàn)。
本文設(shè)計(jì)的胎壓監(jiān)測(cè)預(yù)警系統(tǒng)中,MCU采用了兩塊stm32f103系列的單片機(jī),分別作為下位主控機(jī)和上位主控機(jī)。采用MPXY8020a胎壓傳感器連接到下位主控機(jī),來采集實(shí)時(shí)的胎壓狀況,再通過無線發(fā)送和接受模塊NRF24L01,將胎壓傳感器采集的數(shù)據(jù)傳送到上位主控機(jī)當(dāng)中,將所采集的數(shù)據(jù)顯示到LCD顯示屏幕上,并在上位主控機(jī)設(shè)置胎壓閾值,達(dá)到后觸發(fā)LED和蜂鳴器實(shí)現(xiàn)預(yù)警的功能。
圖1 整體硬件系統(tǒng)設(shè)計(jì)方案
從物聯(lián)網(wǎng)角度的感知層,網(wǎng)絡(luò)層和應(yīng)用層來看,本系統(tǒng)的感知層主要是依靠MPXY8020a傳感器的胎壓采集和溫度采集,網(wǎng)絡(luò)層主要是依靠nrf24l01的無線通信來進(jìn)行數(shù)據(jù)傳輸,應(yīng)用層是將收集到的胎壓溫度數(shù)據(jù)通過運(yùn)算、比較來進(jìn)行顯示和警示駕駛員。
原理:MPXY8020A 是理想的胎壓監(jiān)測(cè)傳感器,它集成了壓力傳感裝置、SPI的數(shù)據(jù)接口、DAC轉(zhuǎn)換器、模擬值比較電路、待機(jī)喚醒電路等相關(guān)的配置。它能夠在 0kPa~637kPa壓力和-40℃~125℃溫度的有效區(qū)間內(nèi)正常工作。采集方式是利用逐次逼近法完成,如果猜測(cè)值太小,結(jié)果寄存器的最低位置“1”,如果猜測(cè)值太大,則結(jié)果寄存器的最低位置“0”,用新的猜測(cè)值繼續(xù)逼近,直到得到最終結(jié)果。利用胎壓傳感器來采集實(shí)時(shí)的輪胎氣壓或溫度數(shù)據(jù),是整套系統(tǒng)的根基。
原理:NRF24L01是一款工作在2.4-2.5GHz世界通用ISM頻段的單片收發(fā)芯片,無線收發(fā)器包括:頻率發(fā)生器 增強(qiáng)型 SchockBurstTM 模式控制器、功率放大器、晶體放大器、調(diào)制器、解調(diào)器、輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置極低的電流消耗,當(dāng)工作在發(fā)射模式下發(fā)射功率為6dBm時(shí)電流消耗為9.0mA 接受模式為12.3mA掉電模式和待機(jī)模式下電流消耗模式更低。NRF24L01無線通信模塊能夠把系統(tǒng)中,上下位機(jī)之間互相的通信和數(shù)據(jù)的傳輸就是利用它來完成。
原理:要實(shí)現(xiàn)LCD屏幕與開發(fā)板的互聯(lián)需要將屏幕對(duì)應(yīng)的管腳與開發(fā)板相對(duì)應(yīng),2.8寸 TFTLCD采用16位80并口,連接時(shí)需要將DB1~DB8,DB10~DB17,總是按順序連接MCU的D0~D15。在管腳連接好之后,還需要調(diào)用相應(yīng)的初始化函數(shù)對(duì)屏幕進(jìn)行初始化,之后才能對(duì)屏幕進(jìn)行設(shè)置顯示等操作。一般采用ILI9341 驅(qū)動(dòng)時(shí)序?qū)ζ聊贿M(jìn)行初始化。該屏幕采用RGB565格式,可以顯示65536色。通過真彩LCD顯示屏,講錯(cuò)采集的數(shù)據(jù)進(jìn)行顯示,成為系統(tǒng)與駕駛員之間交互的橋梁。
MPXY8020A 胎壓模塊:
VDD和VSS引腳:在VDD與VSS兩個(gè)引腳之間,通常接1個(gè)0.1uF的電容進(jìn)行電源濾波。
OUT引腳:是一個(gè)輸出管腳,在采樣值高于電壓比較器的極限值時(shí),輸出1;反之輸出0。比較器的數(shù)值儲(chǔ)存到芯片的8位DAC寄存器。
RST引腳:是一個(gè)輸出管腳,一般設(shè)置在高電平狀態(tài);當(dāng)10級(jí)的數(shù)據(jù)分頻器產(chǎn)生數(shù)據(jù)的溢出時(shí),管腳的狀態(tài)就會(huì)被設(shè)置成為低電平。
S0和S1引腳:是一對(duì)輸入的管腳,選擇芯片的模式和狀態(tài)。
DATA引腳:是一個(gè)輸入管腳,電位比較器的極限值設(shè)置,DATA引腳為串行數(shù)據(jù)輸入引腳。
CLK引腳:是一個(gè)輸入管腳,來提供SPI的時(shí)鐘信號(hào)。當(dāng)MPXY8020A寫數(shù)據(jù)時(shí),在CLK引腳信號(hào)的上升沿,串行數(shù)據(jù)從DATA引腳按時(shí)序送到片內(nèi)移位寄存器,在CLK引腳信號(hào)的第8個(gè)下降沿,數(shù)據(jù)被送到片內(nèi)D/A寄存器。
NRF24L01無線通信模塊:
SCK:由芯片控制的SPI時(shí)鐘線。
CSN:模塊的片選線,CSN在低電平下芯片會(huì)工作。
MOSI:模塊的Master output slave input數(shù)據(jù)線。
MISO:模塊的Master input slave output數(shù)據(jù)線。
CE:模塊選擇模式。
IRQ:給予模塊相關(guān)的中斷信號(hào)。
配置寄存器來定義和使能NRF24L01所有的配置字,通過SPI口訪問這些配置寄存器。
TFTLCD顯示模塊:
TFTLCD顯示屏的管腳特性有:LCD_CS是作為為LCD顯示屏的片選處理信號(hào),LCD_WR是作為LCD的寫入寄存器處理信號(hào),LCD_RD是作為LCD的讀入寄存器的處理信號(hào),DB[17:1]是作為16位雙向數(shù)據(jù)總線。LCD_RST是用作LCD顯示屏硬復(fù)位的信號(hào),LCD_RS是用作命令/數(shù)據(jù)的標(biāo)志(0是命令,1是數(shù)據(jù)),BL_CTR控制背光的數(shù)字信號(hào),T_MISO/T_MOSI/T_PEN/T_CS/T_CLK是作為觸摸的接觸信號(hào)。
在程序當(dāng)中是定義相關(guān)的變量和對(duì)所用到的功能函數(shù)和配置函數(shù)的初始化,在此之后檢查相應(yīng)的硬件是否正常工作。由這樣的思路將程序分為發(fā)送部分和接收部分的兩大塊,在發(fā)送部分中初始化MPXY8020a傳感器和NRF24L01的配置,并計(jì)算壓力值,對(duì)數(shù)據(jù)進(jìn)行發(fā)送實(shí)現(xiàn)這樣的過程,在接收部分當(dāng)中,對(duì)按鍵,無線模塊和聲光報(bào)警還有LCD顯示屏進(jìn)行相關(guān)初始化配置,并判斷所按鍵值,來進(jìn)行相應(yīng)的界面顯示,以此來實(shí)現(xiàn)與系統(tǒng)的人機(jī)交互功能,判斷數(shù)據(jù)是否達(dá)到所設(shè)的閾值,來判斷是否觸發(fā)聲光報(bào)警模塊。主程序模塊如圖2所示:
圖2 主程序配置流程
MPXY8020A胎壓傳感器:
該傳感器利用模數(shù)轉(zhuǎn)換器將采集到的模擬量轉(zhuǎn)變?yōu)閿?shù)字量,利用串行通信SPI將所采集到的數(shù)據(jù)傳到上位主控芯片上。通過GPIO的配置可以改變本傳感器的工作模式,當(dāng)處于壓力測(cè)試工作狀態(tài)時(shí),壓力信號(hào)的測(cè)量是通過傳感器的壓力電容信號(hào)轉(zhuǎn)化來實(shí)現(xiàn)的。所以,在進(jìn)行編程的時(shí)候,對(duì)本模塊應(yīng)先配置到初始化模式,通過閱讀使用手冊(cè),推薦進(jìn)行數(shù)據(jù)采集時(shí)延時(shí)500us,這樣采集到的數(shù)據(jù)誤差是最小的,可以避免因時(shí)間原因?qū)е伦x出的數(shù)據(jù)不準(zhǔn)確。
NRF24L01無線模塊:
該模塊的工作模式主要有四種:收發(fā)模式、配置模式、空閑模式和關(guān)機(jī)模式。將采集到的胎壓數(shù)據(jù)信息放置到緩沖區(qū)內(nèi),并將數(shù)值進(jìn)行取百位,十位和個(gè)位,將其變?yōu)樽址灰环胖玫骄彌_變量數(shù)組內(nèi),經(jīng)過TX包一位一位發(fā)送,在接收端,通過RX包一位一位接收,當(dāng)傳輸結(jié)束時(shí),在最后一位加上結(jié)束位標(biāo)識(shí)傳輸結(jié)束,經(jīng)過測(cè)試此種方式可以實(shí)現(xiàn)無線傳輸數(shù)據(jù)。
TFTLCD顯示模塊:該顯示屏幕與微控制器之間是通過一些列的專屬指令來進(jìn)行GRAM的讀和寫操作,具體指令如下:所有的ILI9341指令都是8位的,僅在處于讀寫GRAM的時(shí)候是16位。讀取LCD控制器的ID是通過0XD3指令是。所以即使屏幕的型號(hào)不同也沒有關(guān)系,通過這樣的指令可以修改型號(hào)ID,大大增強(qiáng)了微控制器對(duì)于屏幕型號(hào)的兼容性。0X36指令可以控制ILI9341存儲(chǔ)器中的讀寫方向,是存儲(chǔ)訪問控制指令,在連續(xù)寫GRAM的同時(shí)可以借助此指令來控制指針GRAM的增長方向,從而控制屏幕所處的顯示方式,在讀模式時(shí),采用了同樣的控制增長的方式。在默然條件以從左到右,從上到下的掃描方式來控制X坐標(biāo),0X2A指令是列地址設(shè)置指令。同樣在默認(rèn)條件下在從左到右,從上到下的掃描方式來控制設(shè)置Y坐標(biāo),0X2B指令是頁地址設(shè)置指令。0X2C指令是寫GRAM的指令,在設(shè)置該指令以后就可以為LCD的GRAM里面寫入顏色數(shù)據(jù)。同時(shí)該指令還可以支持連續(xù)寫,通過地址自增的方式實(shí)現(xiàn)連續(xù)填充。0X2E該指令是讀GRAM指令,可以用于讀取ILI9341的顯存(GRAM),與0x2c指令一樣,該執(zhí)行也可以通過地址自增的方式來連續(xù)讀取GRAM中的數(shù)據(jù)。
在完成系統(tǒng)設(shè)計(jì)后,經(jīng)過單獨(dú)模塊測(cè)試和系統(tǒng)整體調(diào)試,能夠?qū)崿F(xiàn)胎壓監(jiān)測(cè)和預(yù)警功能。本系統(tǒng)的設(shè)計(jì)不局限于胎壓監(jiān)測(cè),還可搭建倒車預(yù)警,車速預(yù)警,測(cè)量車距等實(shí)用功能,實(shí)用性和商業(yè)價(jià)值將更高。
[1]周斌,李文印,蘭淑梅.MPXY8020A輪胎壓力傳感器的SPI接口技術(shù)[J].儀表技術(shù),2004(04).
[2]郭靖.汽車胎壓監(jiān)測(cè)系統(tǒng)的開發(fā)設(shè)計(jì)[J].數(shù)碼世界,2017(03).
[3]張鑒,戚昊琛,楊文華,黃正峰,胡智文.一種用于胎壓監(jiān)測(cè)的MEMS壓力傳感器設(shè)計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2015(10).