徐鈺琨,趙傳偉
(1.山東科技職業(yè)學(xué)院 電氣工程系,濰坊 261053;2.福田雷沃國(guó)際重工股份有限公司,濰坊 261206)
在當(dāng)下的工程機(jī)械產(chǎn)品中,為了滿足按揭銷售與租賃業(yè)務(wù)的需求,主流遠(yuǎn)程監(jiān)控系統(tǒng)主要集中在GPS定位及鎖車兩大功能上[1~3]。隨著市場(chǎng)需求的變化,遠(yuǎn)程監(jiān)控系統(tǒng)除上述功能外,還要滿足運(yùn)行工況數(shù)據(jù)化,故障檢測(cè)遠(yuǎn)程化等要求。而柴油發(fā)動(dòng)機(jī)作為工程機(jī)械產(chǎn)品的動(dòng)力源,它的性能好壞直接關(guān)系到整機(jī)效率的高低。因此,遠(yuǎn)程監(jiān)控發(fā)動(dòng)機(jī)的各項(xiàng)參數(shù)(轉(zhuǎn)速、壓力、溫度、耗油量、電瓶電壓等)以及故障代碼具有極其重要的意義。本文根據(jù)產(chǎn)品開發(fā)的需要,結(jié)合目前遠(yuǎn)程監(jiān)控終端系統(tǒng)的新要求,開發(fā)了一套基于ARM的發(fā)動(dòng)機(jī)遠(yuǎn)程監(jiān)控終端系統(tǒng)。此系統(tǒng)采用的主控制器是基于ARM Cortex-M3內(nèi)核的STM32系列微處理器。此處理器具備外圍接口豐富,支持串口和CAN,功耗低等特點(diǎn)。在系統(tǒng)設(shè)計(jì)完成后,通過實(shí)際的產(chǎn)品測(cè)試表明:該系統(tǒng)在線率穩(wěn)定,可靠性高,能夠滿足整機(jī)設(shè)備制造商對(duì)于產(chǎn)品遠(yuǎn)程監(jiān)控的需求,并比同類產(chǎn)品具備價(jià)格優(yōu)勢(shì)。
系統(tǒng)主要由三部分組成:發(fā)動(dòng)機(jī)模塊,GPRS模塊和GPS模塊。具體的系統(tǒng)模塊框圖如圖1所示。
圖1 系統(tǒng)模塊框圖
1)發(fā)動(dòng)機(jī)模塊:STM32通過CAN總線與發(fā)動(dòng)機(jī)自帶的控制器進(jìn)行通訊,獲取各種參數(shù)或故障代碼,其通訊協(xié)議為SAE J1939協(xié)議。
2)GPRS模塊:STM32通過串口與其進(jìn)行信息交換。一方面微處理器將采集到的發(fā)動(dòng)機(jī)各項(xiàng)參數(shù)和GPS信息經(jīng)過處理后發(fā)送到GPRS模塊,此模塊將這些數(shù)據(jù)上傳到遠(yuǎn)程的服務(wù)器;另一方面,GPRS模塊接收到服務(wù)器下傳的控制信息后,也可經(jīng)過串口與STM32進(jìn)行通訊,控制發(fā)動(dòng)機(jī)的部分參數(shù)。其通訊采用標(biāo)準(zhǔn)的AT指令。
3)GPS模塊:將定位信息通過串口傳送到STM32。其采用標(biāo)準(zhǔn)的GPS數(shù)據(jù)格式。
由于工程機(jī)械產(chǎn)品的工作環(huán)境比較惡劣,因此遠(yuǎn)程監(jiān)控終端系統(tǒng)需要有較高的穩(wěn)定性和可靠性,另外當(dāng)整機(jī)不工作時(shí),遠(yuǎn)程監(jiān)控終端系統(tǒng)的能耗要低,便于延長(zhǎng)待機(jī)時(shí)間,保證數(shù)據(jù)的及時(shí)上傳。因此,本系統(tǒng)中選取STM32F103CBT6微處理器作為主控制芯片。它的電源管理系統(tǒng)比較可靠,可根據(jù)電源的變化選擇三種低功耗模式。此處理器的封裝形式為L(zhǎng)QFP48,通訊接口比較豐富,具有3個(gè)串口,1個(gè)CAN接口,滿足系統(tǒng)對(duì)于各模塊的通訊要求。另外體積較小,便于集成[4]。
GPRS模塊的主芯片采用華為的GTM900-C,它具備EGSM900和GSM1800兩個(gè)頻段;接收靈敏度小于-106dBm;標(biāo)準(zhǔn)SIM卡接口(1.8或3V);GSC射頻天線連接器;短消息業(yè)務(wù)支持MO和MT點(diǎn)對(duì)點(diǎn)和小區(qū)廣播短消息模式,支持TEXT和PDU GPRS數(shù)據(jù)業(yè)務(wù);GPRS CLASS 10編碼方式CS1,CS2,CS3,CS4,最高速率可達(dá)85.6Kbit/s,支持PBCCH內(nèi)嵌TCP/IP協(xié)議[5]。
GPS模塊的主芯片采用GARMINGPS25LP,其采用全密封方式,其位置精度小于15m,速度精度小于0.1m/s,性價(jià)比較高[6]。
發(fā)動(dòng)機(jī)模塊電路的主體是CAN接口電路,如圖2所示。在此電路中采用型號(hào)為TJA1050的CAN總線收發(fā)器。此收發(fā)器通過它的兩個(gè)有差動(dòng)接收和發(fā)送能力的總線終端可以連接到柴油發(fā)動(dòng)機(jī)的CAN線回路中,從而使STM32F103CBT6微處理器和發(fā)動(dòng)機(jī)自帶的控制器進(jìn)行通訊。
圖2 CAN接口電路
TJA1050的3號(hào)端口為電源端,采用5V電壓;1號(hào)、4號(hào)端口分別連接STM32F103CBT6的CAN發(fā)送端口(33號(hào)引腳)和CAN接收端口(32號(hào)引腳);8號(hào)端口為工作模式選擇端口,其連接到地可進(jìn)入高速模式(正常工作模式),總線輸出的信號(hào)有固定的斜率,可以盡快的速度節(jié)能型切換,滿足最大的位速率和最大的總線長(zhǎng)度,而且其循環(huán)延遲最?。?號(hào)和6號(hào)端口對(duì)應(yīng)CANH和CANL,為了滿足發(fā)動(dòng)機(jī)CAN總線網(wǎng)路的要求,在兩個(gè)端口間采用120歐的終端匹配電阻。
GPRS模塊與STM32F103CBT6連接如圖3所示。GTM900-C是華為公司生產(chǎn)的GPRS模塊,它由電源管理單元、串口處理單元、SIM卡處理單元、射頻收發(fā)單元等組成。其15號(hào)端口(IGT)可實(shí)現(xiàn)開關(guān)機(jī)功能,與微處理器的PA4端口相連,由微處理器進(jìn)行控制;17號(hào)~21號(hào)端口為串口,為TTL電平信號(hào),可直接與微處理器的1號(hào)串口連接;25號(hào)~28號(hào)端口為SIM卡的接口,與標(biāo)準(zhǔn)的SIM卡模塊連接;29號(hào)端口為模塊接地端口,此端口必須和SIM卡模塊的SIMGND相連,保證兩者的電平一致。31號(hào)端口為復(fù)位端口,與微處理器的PA5端口相連接,此端口低電平有效,從而實(shí)現(xiàn)對(duì)整個(gè)模塊的復(fù)位。
圖3 GTM900C與STM32F103CBT6連接電路圖
GPS模塊主要采用GRMIN公司的GPS25LP,它只需要一個(gè)12針的引腳與系統(tǒng)相連,如圖4所示。其中,TXD1和RXD1為串口的通訊端口,為5V的邏輯電平,可直接與STM32F103CBT6的串口1(PA9和PA10端口)相連;端口10為電源端口,采用5V供電。為了保證其工作穩(wěn)定性,通常在端口10和端口8之間加一個(gè)10MF的保持電容。
圖4 GPS25LP接線圖
軟件設(shè)計(jì)的調(diào)試環(huán)境采用RealView MDK,它是ARM公司專門針對(duì)嵌入式處理開發(fā)的一套軟件,具有完善的設(shè)備調(diào)試和軟件仿真功能。STM32F103CBT6本身帶有的大量固件庫函數(shù),可以提高代碼質(zhì)量,縮短開發(fā)周期。在本系統(tǒng)中,重點(diǎn)使用flash、DCC、CAN、USART等固件庫。
軟件框架采用主函數(shù)和中斷函數(shù)的結(jié)構(gòu)。其中,在主函數(shù)中對(duì)各種功能模塊進(jìn)行初始化,并實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)計(jì)算;中斷函數(shù)主要實(shí)現(xiàn)CAN、USART兩大模塊的數(shù)據(jù)接收和發(fā)送。中斷的優(yōu)先級(jí)依次為CAN、USART2、USART1。
為了提高數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,如上所述,CAN報(bào)文的接收采用中斷方式。因此,在主函數(shù)的CAN初始化過程中應(yīng)該通過調(diào)用STM32固件庫函數(shù)voidCAN_IT-Config來開啟CAN1的中斷,在接收時(shí)通過判斷其標(biāo)志位來確定是否產(chǎn)生的中斷,以此進(jìn)入中斷函數(shù)對(duì)收到的報(bào)文進(jìn)行處理。即:在接收一個(gè)報(bào)文時(shí),其標(biāo)識(shí)符首先與配置在標(biāo)識(shí)符列表模式下的過濾器相比較,若匹配,報(bào)文就被存放到相關(guān)聯(lián)的FIFO中,并且所匹配的過濾器的序號(hào)被存入過濾器匹配序號(hào)中。若不匹配,報(bào)文標(biāo)識(shí)符立即再與配置在屏蔽位模式下的過濾器進(jìn)行比較,如果報(bào)文標(biāo)識(shí)符與過濾器中的任何標(biāo)識(shí)符都不匹配,那么硬件就丟棄該報(bào)文,且不會(huì)對(duì)軟件有任何打擾。數(shù)據(jù)接收模塊流程如圖5所示。
圖5 CAN數(shù)據(jù)接收流程
圖6 GPS數(shù)據(jù)接收流程
由于柴油發(fā)動(dòng)機(jī)采用J1939協(xié)議規(guī)定的數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸,因此STM32通過CAN中斷接收到報(bào)文后,必須對(duì)數(shù)據(jù)進(jìn)行解析。J1939協(xié)議是美國(guó)汽車工程師協(xié)會(huì)(Society of Automotive Engineers,簡(jiǎn)稱SAE)發(fā)布的以CAN 2.0B協(xié)議為基礎(chǔ)的車輛網(wǎng)絡(luò)串行通訊和控制協(xié)議。它是目前車輛應(yīng)用最廣泛的協(xié)議之一,有9個(gè)子標(biāo)準(zhǔn),其中J1939-71標(biāo)準(zhǔn)中對(duì)發(fā)動(dòng)機(jī)各個(gè)參數(shù)的地址、名稱、數(shù)據(jù)格式以及發(fā)送優(yōu)先級(jí)等做了詳細(xì)的定義。它采用PDU(Protocol Data Unit協(xié)議數(shù)據(jù)單元)傳送信息,每個(gè)PDU相當(dāng)于CAN協(xié)議中的一幀。由于每個(gè)CAN幀最多可傳輸8個(gè)字節(jié)數(shù)據(jù),因此PDU的傳輸具有很高的實(shí)時(shí)性。PDU是由29位標(biāo)識(shí)符和8個(gè)字節(jié)數(shù)據(jù)組成的[7]?,F(xiàn)以J1939中對(duì)發(fā)動(dòng)機(jī)溫度的定義(如表1所示)進(jìn)行數(shù)據(jù)解析說明。
如果計(jì)算發(fā)動(dòng)機(jī)冷卻液溫度,按照J(rèn)1939協(xié)議中的要求,計(jì)算公式為:發(fā)動(dòng)機(jī)冷卻液溫度=原始數(shù)×分辨率+偏移量。假如此時(shí)字節(jié)1的原始數(shù)為7Dh(說明:h為十六進(jìn)制,b為二進(jìn)制,d為十進(jìn)制),則7Dh =125d。查對(duì)應(yīng)分辨率表格為1oC/位,偏移量為-40oC。因此,發(fā)動(dòng)機(jī)冷卻液溫度=125×1-40=85oC。按照此思路,便可以從J1939協(xié)議的應(yīng)用層中解析出發(fā)動(dòng)機(jī)的轉(zhuǎn)速、機(jī)油壓力、水溫、燃油量等各種參數(shù)[8]。
表1 發(fā)動(dòng)機(jī)溫度參數(shù)定義格式
如前所述,GPS模塊主要采用GRMIN公司的GPS25LP。GPS模塊會(huì)每秒鐘發(fā)出數(shù)據(jù)包,數(shù)據(jù)包遵循NMEA-0183協(xié)議,協(xié)議中有準(zhǔn)確的經(jīng)緯度信息。通過數(shù)據(jù)解析,數(shù)據(jù)傳輸通常有GPGGA和GPRMC兩種格式。為了減少GPS模塊的數(shù)據(jù)傳輸負(fù)擔(dān),通常采用GPRMC格式。
GPS數(shù)據(jù)接收流程如圖6所示。STM32利用中斷模式接收GPS25LP傳來的數(shù)據(jù),然后判斷是否為GPRMC格式,如果格式正確,則開始接收數(shù)據(jù)并存在緩存中。當(dāng)數(shù)據(jù)全部接收完畢,退出中斷程序。部分程序如下:
GTM900C與STM32之間通過USART2進(jìn)行數(shù)據(jù)傳輸,程序中采用常用的AT指令。但在數(shù)據(jù)發(fā)送之間,需要對(duì)GPRS模塊初始化。所謂的初始化就是GTM900C建立TCP鏈接的過程,通常由眾多的AT命令子程序組成。具體的流程圖如圖7所示。
首先是驗(yàn)證GTM900C是否正常,通過AT指令進(jìn)行測(cè)試來實(shí)現(xiàn)。如果測(cè)試成功,為了減少無用的返回字符串,要對(duì)其執(zhí)行“關(guān)回顯”的命令?;仫@的意思是給它發(fā)條指令它會(huì)原封不動(dòng)的回發(fā)一條已發(fā)的指令,“關(guān)回顯”可以使串口專心監(jiān)測(cè)GTM900C實(shí)際返回的參數(shù)。
其次是判斷SIM卡是否插入,檢查信號(hào)強(qiáng)度以及網(wǎng)絡(luò)注冊(cè)狀態(tài)等。這是為GTM900C建立TCP鏈接做準(zhǔn)備。因?yàn)橹挥性诰W(wǎng)絡(luò)已經(jīng)注冊(cè)完畢的狀態(tài)下,GTM900C才能建立TCP鏈接,而建立的快慢與信號(hào)強(qiáng)度有關(guān)。
最后是通過配置APN,進(jìn)入TCP/IP功能和建立TCP鏈接。如果對(duì)具有固定IP地址服務(wù)器來說,GTM900C按照以上三個(gè)步驟即可。而對(duì)于非固定IP地址的服務(wù)器,還需要經(jīng)過域名解析獲得服務(wù)器的IP地址,然后才能建立TCP鏈接。
圖7 GPRS模塊初始化的程序流程圖
遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)完成后,在福田雷沃重工的FR630D旋挖鉆機(jī)產(chǎn)品上進(jìn)行測(cè)試。一是可靠性測(cè)試,讓裝有此終端(如圖8所示)的5臺(tái)整機(jī)分別連續(xù)工作200小時(shí),監(jiān)控其運(yùn)行情況,通過PC端的監(jiān)控軟件可以看到發(fā)動(dòng)機(jī)的參數(shù)可實(shí)時(shí)顯示。二是功能性測(cè)試,測(cè)試GTM900C與服務(wù)器之間的連接,通過設(shè)置TCP的地址,讓GPRS的發(fā)送數(shù)據(jù)與服務(wù)器建立連接,然后通過服務(wù)器將所有數(shù)據(jù)用圖文表現(xiàn)出來,體現(xiàn)可讀性。如圖9所示。
圖8 遠(yuǎn)程監(jiān)控終端
圖9 PC端監(jiān)控顯示界面
本論文通過對(duì)發(fā)動(dòng)機(jī)遠(yuǎn)程監(jiān)控的終端系統(tǒng)進(jìn)行設(shè)計(jì),滿足了當(dāng)下整機(jī)產(chǎn)品對(duì)于此系統(tǒng)的要求。硬件方面,基于STM32的終端系統(tǒng),通過實(shí)驗(yàn)可以看出,在功耗和可靠性方面有著高性價(jià)比。軟件部分,通過STM32豐富的固件庫函數(shù),可以提高軟件質(zhì)量,縮短開發(fā)周期。整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)對(duì)整機(jī)廠提出的運(yùn)行工況數(shù)據(jù)化,故障檢測(cè)遠(yuǎn)程化有著積極地作用。在后續(xù)的研究中,要對(duì)GPRS信號(hào)的穩(wěn)定性進(jìn)一步研究,提高系統(tǒng)在線率。
[1]王興剛,李來平.GPS遠(yuǎn)程監(jiān)控系統(tǒng)在旋挖鉆機(jī)上的應(yīng)用[J].探礦工程.2008,35(10),30-32.
[2]宋祥獻(xiàn),王經(jīng)聰,史繼松.挖掘機(jī)的全球衛(wèi)星定位遠(yuǎn)程監(jiān)控系統(tǒng)[J].工程機(jī)械與維修.2011,10,190-191.
[3]鄧小星,喻壽益.多功能工程機(jī)械遠(yuǎn)數(shù)據(jù)采集與傳輸終端的設(shè)計(jì)[J].機(jī)電技術(shù).2010,33(2),2-5.
[4]ST Microelectronics ,STM32F103XB Datasheet[M].ST Microelectronics,2012.
[5]華為技術(shù)有限公司.GTM900-C無線模塊產(chǎn)品概述[M].華為技術(shù)有限公司,2009.
[6]GARMIN.GPS25LP series GPS sensor boards technical specification[M].USA:GARMIN,2005.
[7]Society of Automotive Engineers.SAE J1939 standards collection,recommended practice for a serial control and communication vehicle network[S].2003.
[8]SAE,SAE J1939-71.Vehicle application layer–J1939-71(through1999)[S].USA:SAE J1939 Committee Draft,1994:5-98.