無(wú)線傳輸在加油控制系統(tǒng)的應(yīng)用
張根源,劉子龍
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海200093)
摘要針對(duì)傳統(tǒng)加油系統(tǒng)存在布線復(fù)雜、成本高和設(shè)備分散等問(wèn)題,設(shè)計(jì)了一種基于STM32控制器和nRF24L01無(wú)線收發(fā)模塊的無(wú)線加油控制系統(tǒng)。該系統(tǒng)分為主站和從站兩部分,從站采集儲(chǔ)油桶的液位、油泵供油的壓力等參數(shù),主站實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)顯示及與上位機(jī)的通信。主/從機(jī)通過(guò)采用一主多從星型模式組建的無(wú)線通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。測(cè)試結(jié)果表明,該系統(tǒng)工作穩(wěn)定性較高,能可靠地實(shí)現(xiàn)近距離點(diǎn)對(duì)多點(diǎn)無(wú)線通信。
關(guān)鍵詞STM32;無(wú)線傳輸;星型模式
收稿日期:2015-04-19
作者簡(jiǎn)介:張根源(1989—),男,碩士研究生。研究方向:嵌入式系統(tǒng)與機(jī)器人視覺。E-mail:sh_zgy@163.com
doi:10.16180/j.cnki.issn1007-7820.2015.12.034
中圖分類號(hào)TN926文獻(xiàn)標(biāo)識(shí)碼A
Application of Wireless Transmission in Fuel Control System
ZHANG Genyuan,LIU Zilong
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractA wireless refueling controlling system based on STM32 controller and nRF24L01 wireless radio frequency transmission module is proposed for the complex wiring,high cost and scattered equipment of traditional refueling system.The system can be divided into master station (for real-time display and communication with the PC) and slave stations (for measuring parameters of oil pressure and liquid level).Master/slave stations set up wireless communication network by using Star-shaped pattern for data transmission.The test results indicate that the system works stably and realizes reliable short range point-to-multipoint wireless communication.
KeywordsSTM32;wireless transmission;star-shaped pattern
傳統(tǒng)的加油系統(tǒng)存在布線復(fù)雜、設(shè)備分散、油壓不穩(wěn)等缺點(diǎn),且維護(hù)成本高。本文采用STM32最小系統(tǒng)和NRF24L01無(wú)線收發(fā)模塊設(shè)計(jì)了一種無(wú)線傳輸加油控制系統(tǒng)。該系統(tǒng)通過(guò)對(duì)加油過(guò)程的實(shí)時(shí)監(jiān)控,降低了成本、提高了系統(tǒng)的安全性和可靠性。
基于NRF24L01芯片的無(wú)線傳輸具有高性能、低功耗等特點(diǎn),短距離傳輸成本低,維護(hù)簡(jiǎn)單,其在室內(nèi)監(jiān)控中的使用性能穩(wěn)定可靠。因此,本文采用Nordic公司的nRF24L01無(wú)線收發(fā)芯片,實(shí)現(xiàn)一對(duì)多無(wú)線通信的應(yīng)用設(shè)計(jì)[1]。
1系統(tǒng)總體結(jié)構(gòu)及功能
基于STM32控制器和nRF24L01的無(wú)線加油監(jiān)控系統(tǒng)主要包括STM32最小系統(tǒng)構(gòu)成的主從站、開關(guān)量采集模塊、無(wú)線通信模塊及上位機(jī)人機(jī)交互模塊,如圖1所示。
圖1 系統(tǒng)模塊圖
系統(tǒng)主要由主機(jī)系統(tǒng)和從機(jī)系統(tǒng)兩部分構(gòu)成。主機(jī)系統(tǒng)放置在控制室,采用nRF24l01無(wú)線收發(fā)模塊獲取從機(jī)系統(tǒng)采集的信息,并利用液晶觸控面板進(jìn)行實(shí)時(shí)監(jiān)控油泵、流量表及油桶液位,當(dāng)油壓或液位超過(guò)設(shè)定值時(shí)自動(dòng)報(bào)警。主站通過(guò)RS232轉(zhuǎn)USB接口芯片實(shí)現(xiàn)PC與STM32之間的通信[2]。PC可視化軟件對(duì)系統(tǒng)故障信息進(jìn)行存儲(chǔ),以便進(jìn)行故障查詢及處理。
從機(jī)系統(tǒng)作為終端節(jié)點(diǎn)安裝在各個(gè)設(shè)備上,由油壓傳感器和油液位傳感器對(duì)現(xiàn)場(chǎng)壓力及液位進(jìn)行實(shí)時(shí)測(cè)量,從機(jī)將采集的數(shù)據(jù)通過(guò)nRF24L01無(wú)線收發(fā)模塊發(fā)送至主機(jī)系統(tǒng)實(shí)時(shí)顯示在液晶觸摸屏上。
2系統(tǒng)硬件設(shè)計(jì)
2.1主/從機(jī)系統(tǒng)硬件設(shè)計(jì)
主/從機(jī)模塊都采用STM32控制器的最小系統(tǒng)來(lái)實(shí)現(xiàn)指令的發(fā)送和數(shù)據(jù)的收發(fā),其中從機(jī)采用低功耗芯片。主機(jī)模塊的主要子模塊為:液晶觸控面板模塊、無(wú)線收發(fā)模塊、RS-232通信模塊;從機(jī)模塊的子模塊有:外界模塊、繼電器、無(wú)線傳輸模塊等,如圖2所示。
(1)STM32控制器。該芯片最高工作頻率達(dá)72 MHz,且集成了豐富的內(nèi)部資源,如2個(gè)SPI總線接口、3個(gè)UART接口,2個(gè)12位ADC、128 kB Flash等,有利于簡(jiǎn)化外圍電路設(shè)計(jì),提高可靠性[3]。
(2)液晶觸控面板模塊(主機(jī))。該模塊用于實(shí)時(shí)監(jiān)控系統(tǒng)和下達(dá)控制命令,采用迪文科技公司的工業(yè)串口控制面板,該屏幕采用串口實(shí)現(xiàn)數(shù)據(jù)傳輸[4]。
(3)繼電器模塊(從機(jī))。利用STM32輸出的電信號(hào)通過(guò)驅(qū)動(dòng)電路控制繼電器中的電磁線圈的開閉,從而控制加油泵的閉合與開路。
(4)電源模塊(從機(jī))。從機(jī)采用電池供電方式。為了可靠的穩(wěn)定電壓,選用三段可調(diào)穩(wěn)壓器集成DC-DC變換器LM317,其的輸出電壓范圍1.2~37 V,負(fù)載電流1.5 A,完全滿足從機(jī)電路板的供電要求。
(5)外界模塊(從機(jī))。該模塊設(shè)計(jì)相應(yīng)的驅(qū)動(dòng)電路及信號(hào)處理電路,分別實(shí)現(xiàn)與壓力傳感器及液位傳感器的連接[5-6]。
圖2 主/從機(jī)模塊結(jié)構(gòu)圖
2.2nRF24L01無(wú)線收發(fā)模塊
nRF24L01無(wú)線收發(fā)一體芯片工作在2.4 GHz自由頻段,能夠在全球無(wú)線市場(chǎng)暢通無(wú)阻。nRF2401支持多點(diǎn)間通信,最高傳 輸速率可達(dá)1 Mbit·s-1,工作電壓為119~316 V,有125個(gè)頻道可供選擇,可滿足多頻及跳頻需要,主要工作參數(shù)大都可通過(guò)芯片狀態(tài)字由用戶根據(jù)需要自行配置。因此,易于實(shí)現(xiàn)一主多從通信網(wǎng)絡(luò)的組建[7]。
微控制器可通過(guò)設(shè)置nRF24L01的CE,CS和PWR_UP這3個(gè)引腳的狀態(tài)來(lái)選擇其同坐模式,具體設(shè)置如表1所示。
表1 nRF24L01的工作模式
STM32控制器與nRF24L01接口電路如圖3所示。STM32的PC6,PC7,PC8分別與nRF24L01的PWR_UP,CE,CS接口相連,實(shí)現(xiàn)對(duì)傳輸模塊的工作模式選擇。STM32的PA4-PA7分別與nRF24L01的CSN,SCK,MISO,MOSI相連,實(shí)現(xiàn)SPI通信數(shù)據(jù)和命令的傳輸。STM32的PC9-PC11分別與nRF24L01的VCC,GND,IRQ相連,其中IRQ用于數(shù)據(jù)發(fā)送或接受完成的標(biāo)志[8-9]。
圖3 STM32與nRF24L01接口電路
3系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)采用模塊化設(shè)計(jì)分為主機(jī)系統(tǒng)模塊、從機(jī)系統(tǒng)模塊和無(wú)線傳輸模塊3部分。
3.1主控制器程序設(shè)計(jì)
主機(jī)系統(tǒng)的功能是組建無(wú)線同信網(wǎng)絡(luò)、管理從機(jī)、數(shù)據(jù)收發(fā)及實(shí)時(shí)顯示各個(gè)設(shè)備的狀態(tài)信息,并與上位機(jī)相互通信。因此,主站始終處于活躍的工作狀態(tài),時(shí)刻收發(fā)無(wú)線數(shù)據(jù)和顯示系統(tǒng)狀態(tài),其具體程序流程如圖4所示。
圖4 主機(jī)系統(tǒng)程序流程圖
3.2從機(jī)程序設(shè)計(jì)
從機(jī)系統(tǒng)上電后能自動(dòng)搜索附近的網(wǎng)絡(luò)節(jié)點(diǎn),并與主機(jī)建立無(wú)線通信;若沒有檢測(cè)到網(wǎng)絡(luò)節(jié)點(diǎn),其將周性地繼續(xù)搜索。當(dāng)成功與主機(jī)連接后,主機(jī)會(huì)自動(dòng)為該從機(jī)編號(hào),與其他從機(jī)區(qū)分。從機(jī)的主要功能是通過(guò)傳感器采集數(shù)據(jù)及接受控制指令對(duì)繼電器進(jìn)行控制。
因從機(jī)是由電池供電,考慮到傳感器數(shù)據(jù)采集對(duì)能耗的要求,所以不能一直不停地采集數(shù)據(jù)。因此,本系統(tǒng)為傳感器設(shè)計(jì)了周期采集和睡眠兩種模式。當(dāng)系統(tǒng)組建網(wǎng)絡(luò)成功后,從機(jī)接收到主機(jī)的設(shè)置睡眠時(shí)間和采集次數(shù)N,此后從機(jī)系統(tǒng)將按照設(shè)定時(shí)間間隔和采集次數(shù)來(lái)工作,從而使得能耗大幅降低[10],其軟件流程如圖5所示。
圖5 從站程序流圖
3.3無(wú)線接收模塊
系統(tǒng)采用STM32自帶的SPI端口與無(wú)線收發(fā)模塊組建一主多從通信網(wǎng)絡(luò)。常見的點(diǎn)對(duì)多點(diǎn)通信系統(tǒng)多采用環(huán)型和星型兩種模式,其中環(huán)型主要用于傳輸距離較遠(yuǎn)且實(shí)時(shí)要求不高的場(chǎng)合;而星型系統(tǒng)則特別適用于近距離條件下實(shí)時(shí)性要求較高的場(chǎng)合。因此分系統(tǒng)采用星型模式[11]。
圖6 星型系統(tǒng)示意圖
由于系統(tǒng)選擇了nRF24L01的ShockBurstTM收發(fā)模式,且主/從站中的數(shù)據(jù)接受工作全部通過(guò)中斷函數(shù)處理,以提高系統(tǒng)的實(shí)時(shí)性。STM32的SPI收發(fā)一個(gè)字節(jié)程序源碼如下
U8 SPI_NRF_RW (U8 data) {
While (SPI2SR.BIT.TXE==RESET);
/* 當(dāng) SPI發(fā)送緩沖器非空時(shí)等待 */
SPI2DR.BIT.DR=data;
/*通過(guò)SPI2發(fā)送一個(gè)字節(jié)數(shù)據(jù)*/
While (SPI2SR.BIT.RXNE==RESET);
/* 當(dāng)SPI接收緩沖器為空時(shí)等待 */
return SPI2DR.BIT.DR;
/*Return the byte read from the SPI bus */
}
4系統(tǒng)測(cè)試
無(wú)線數(shù)據(jù)傳輸在系統(tǒng)中應(yīng)用的關(guān)鍵問(wèn)題是傳輸過(guò)程的穩(wěn)定性和可靠性,本文針對(duì)此作了對(duì)比性實(shí)驗(yàn)。主要是根據(jù)從機(jī)系統(tǒng)采集的數(shù)據(jù),與經(jīng)過(guò)無(wú)線模塊后主機(jī)接收到的數(shù)據(jù)值進(jìn)行比較,進(jìn)而獲得的平均誤差率來(lái)評(píng)價(jià)無(wú)線傳輸模塊性能。表2和表3的數(shù)據(jù)是在主機(jī)模塊與各從機(jī)的無(wú)線傳輸距離為30 m以內(nèi)采集。
表2 從機(jī)采集數(shù)據(jù)表
表3 主機(jī)實(shí)際顯示數(shù)據(jù)表
表2和表3只列出了油泵壓力、油桶液位和油量表計(jì)量數(shù)值各19個(gè)數(shù)據(jù)值,實(shí)際各項(xiàng)測(cè)得100個(gè)數(shù)據(jù)。根據(jù)以式(1)可求得實(shí)測(cè)數(shù)據(jù)傳輸誤差率e
(1)
其中,測(cè)試數(shù)據(jù)總數(shù)N=300,錯(cuò)誤數(shù)目Ne是指主機(jī)與從機(jī)不相等的數(shù)據(jù)個(gè)數(shù)。將數(shù)據(jù)代入上式并計(jì)算可得誤差率e=0.007,結(jié)果接近于零。因此,本系統(tǒng)的無(wú)線傳輸在30 m內(nèi)具有比較高的可靠性。
對(duì)系統(tǒng)還采取人工方式進(jìn)行了系統(tǒng)運(yùn)行的可靠性測(cè)試、油泵繼電器開關(guān)測(cè)試,以及流量表電池使用時(shí)間測(cè)試等,測(cè)試結(jié)果如表4所示。
表4 系統(tǒng)硬件測(cè)試數(shù)據(jù)
5結(jié)束語(yǔ)
本設(shè)計(jì)利用STM32控制芯片和nRF24L01通信芯片設(shè)計(jì)的一主多從無(wú)線加油系統(tǒng),功能強(qiáng),體積小。對(duì)系統(tǒng)測(cè)試后,得到結(jié)論:(1)無(wú)線接收模塊的應(yīng)用,無(wú)需現(xiàn)場(chǎng)布線,安裝方便;(2)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,可靠性好;(3)故障數(shù)據(jù)便于保存在上位機(jī)數(shù)據(jù)庫(kù),供日后查詢和處理;(4)有助于提高工作效率,節(jié)省時(shí)間。
參考文獻(xiàn)
[1]張明.基于nRF2401的無(wú)線數(shù)據(jù)通信[D].南京:南京理工大學(xué),2005.
[2]李朝青.PC機(jī)與單片機(jī)&DSP數(shù)據(jù)通信技術(shù)編選[M].北京:北京航天航空大學(xué)出版社,2004.
[3]意法半導(dǎo)體(中國(guó))投資有限公司.STM32F103中文教程及參考手冊(cè)[M].日內(nèi)瓦:意法半導(dǎo)體(中國(guó))投資有限公司,2009.
[4]迪文科技有限公司.DGUS屏開發(fā)指南_Ver4.0[M].北京:北京迪文科技有限公司,2014.
[5]季力.基于STM32芯片的電參數(shù)測(cè)量與數(shù)據(jù)傳輸[J].自動(dòng)化與儀器儀表,2010(3):137-139
[6]張旭.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子測(cè)量技術(shù)報(bào),2010(11):90-93.
[7]Nordic.nRF2401 single chip 2.4GHz transceiver product specification 2thed[M].Denmark:Nordic Corporation,2007.
[8]李輝,宋詩(shī),周建江.基于ARM和NRF24L01的無(wú)線數(shù)據(jù)傳輸系統(tǒng)[J].國(guó)外電子元器件,2008(12):44-46.
[9]王永虹,徐煒,郝立平.STM32系列ARM Con tex-M3微控制器原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[10]Ergern S C,Varaiya P T.DMA scheduling algorithms for wireless sensor networks[J].Wireless Networks,2010,16(4):985-997.
[11]黃智偉.無(wú)線通信集成電路[M].北京:航空航天大學(xué)出版社,2007.