徐鈺琨,趙傳偉
(1.山東科技職業學院 電氣工程系,濰坊 261053;2.福田雷沃國際重工股份有限公司,濰坊 261206)
在當下的工程機械產品中,為了滿足按揭銷售與租賃業務的需求,主流遠程監控系統主要集中在GPS定位及鎖車兩大功能上[1~3]。隨著市場需求的變化,遠程監控系統除上述功能外,還要滿足運行工況數據化,故障檢測遠程化等要求。而柴油發動機作為工程機械產品的動力源,它的性能好壞直接關系到整機效率的高低。因此,遠程監控發動機的各項參數(轉速、壓力、溫度、耗油量、電瓶電壓等)以及故障代碼具有極其重要的意義。本文根據產品開發的需要,結合目前遠程監控終端系統的新要求,開發了一套基于ARM的發動機遠程監控終端系統。此系統采用的主控制器是基于ARM Cortex-M3內核的STM32系列微處理器。此處理器具備外圍接口豐富,支持串口和CAN,功耗低等特點。在系統設計完成后,通過實際的產品測試表明:該系統在線率穩定,可靠性高,能夠滿足整機設備制造商對于產品遠程監控的需求,并比同類產品具備價格優勢。
系統主要由三部分組成:發動機模塊,GPRS模塊和GPS模塊。具體的系統模塊框圖如圖1所示。

圖1 系統模塊框圖
1)發動機模塊:STM32通過CAN總線與發動機自帶的控制器進行通訊,獲取各種參數或故障代碼,其通訊協議為SAE J1939協議。
2)GPRS模塊:STM32通過串口與其進行信息交換。一方面微處理器將采集到的發動機各項參數和GPS信息經過處理后發送到GPRS模塊,此模塊將這些數據上傳到遠程的服務器;另一方面,GPRS模塊接收到服務器下傳的控制信息后,也可經過串口與STM32進行通訊,控制發動機的部分參數。其通訊采用標準的AT指令。
3)GPS模塊:將定位信息通過串口傳送到STM32。其采用標準的GPS數據格式。
由于工程機械產品的工作環境比較惡劣,因此遠程監控終端系統需要有較高的穩定性和可靠性,另外當整機不工作時,遠程監控終端系統的能耗要低,便于延長待機時間,保證數據的及時上傳。因此,本系統中選取STM32F103CBT6微處理器作為主控制芯片。它的電源管理系統比較可靠,可根據電源的變化選擇三種低功耗模式。此處理器的封裝形式為LQFP48,通訊接口比較豐富,具有3個串口,1個CAN接口,滿足系統對于各模塊的通訊要求。另外體積較小,便于集成[4]。
GPRS模塊的主芯片采用華為的GTM900-C,它具備EGSM900和GSM1800兩個頻段;接收靈敏度小于-106dBm;標準SIM卡接口(1.8或3V);GSC射頻天線連接器;短消息業務支持MO和MT點對點和小區廣播短消息模式,支持TEXT和PDU GPRS數據業務;GPRS CLASS 10編碼方式CS1,CS2,CS3,CS4,最高速率可達85.6Kbit/s,支持PBCCH內嵌TCP/IP協議[5]。
GPS模塊的主芯片采用GARMINGPS25LP,其采用全密封方式,其位置精度小于15m,速度精度小于0.1m/s,性價比較高[6]。
發動機模塊電路的主體是CAN接口電路,如圖2所示。在此電路中采用型號為TJA1050的CAN總線收發器。此收發器通過它的兩個有差動接收和發送能力的總線終端可以連接到柴油發動機的CAN線回路中,從而使STM32F103CBT6微處理器和發動機自帶的控制器進行通訊。

圖2 CAN接口電路
TJA1050的3號端口為電源端,采用5V電壓;1號、4號端口分別連接STM32F103CBT6的CAN發送端口(33號引腳)和CAN接收端口(32號引腳);8號端口為工作模式選擇端口,其連接到地可進入高速模式(正常工作模式),總線輸出的信號有固定的斜率,可以盡快的速度節能型切換,滿足最大的位速率和最大的總線長度,而且其循環延遲最小;7號和6號端口對應CANH和CANL,為了滿足發動機CAN總線網路的要求,在兩個端口間采用120歐的終端匹配電阻。
GPRS模塊與STM32F103CBT6連接如圖3所示。GTM900-C是華為公司生產的GPRS模塊,它由電源管理單元、串口處理單元、SIM卡處理單元、射頻收發單元等組成。其15號端口(IGT)可實現開關機功能,與微處理器的PA4端口相連,由微處理器進行控制;17號~21號端口為串口,為TTL電平信號,可直接與微處理器的1號串口連接;25號~28號端口為SIM卡的接口,與標準的SIM卡模塊連接;29號端口為模塊接地端口,此端口必須和SIM卡模塊的SIMGND相連,保證兩者的電平一致。31號端口為復位端口,與微處理器的PA5端口相連接,此端口低電平有效,從而實現對整個模塊的復位。

圖3 GTM900C與STM32F103CBT6連接電路圖
GPS模塊主要采用GRMIN公司的GPS25LP,它只需要一個12針的引腳與系統相連,如圖4所示。其中,TXD1和RXD1為串口的通訊端口,為5V的邏輯電平,可直接與STM32F103CBT6的串口1(PA9和PA10端口)相連;端口10為電源端口,采用5V供電。為了保證其工作穩定性,通常在端口10和端口8之間加一個10MF的保持電容。

圖4 GPS25LP接線圖
軟件設計的調試環境采用RealView MDK,它是ARM公司專門針對嵌入式處理開發的一套軟件,具有完善的設備調試和軟件仿真功能。STM32F103CBT6本身帶有的大量固件庫函數,可以提高代碼質量,縮短開發周期。在本系統中,重點使用flash、DCC、CAN、USART等固件庫。
軟件框架采用主函數和中斷函數的結構。其中,在主函數中對各種功能模塊進行初始化,并實現簡單的數據存儲和數據計算;中斷函數主要實現CAN、USART兩大模塊的數據接收和發送。中斷的優先級依次為CAN、USART2、USART1。
為了提高數據傳輸的實時性,如上所述,CAN報文的接收采用中斷方式。因此,在主函數的CAN初始化過程中應該通過調用STM32固件庫函數voidCAN_IT-Config來開啟CAN1的中斷,在接收時通過判斷其標志位來確定是否產生的中斷,以此進入中斷函數對收到的報文進行處理。即:在接收一個報文時,其標識符首先與配置在標識符列表模式下的過濾器相比較,若匹配,報文就被存放到相關聯的FIFO中,并且所匹配的過濾器的序號被存入過濾器匹配序號中。若不匹配,報文標識符立即再與配置在屏蔽位模式下的過濾器進行比較,如果報文標識符與過濾器中的任何標識符都不匹配,那么硬件就丟棄該報文,且不會對軟件有任何打擾。數據接收模塊流程如圖5所示。

圖5 CAN數據接收流程

圖6 GPS數據接收流程
由于柴油發動機采用J1939協議規定的數據格式進行數據傳輸,因此STM32通過CAN中斷接收到報文后,必須對數據進行解析。J1939協議是美國汽車工程師協會(Society of Automotive Engineers,簡稱SAE)發布的以CAN 2.0B協議為基礎的車輛網絡串行通訊和控制協議。它是目前車輛應用最廣泛的協議之一,有9個子標準,其中J1939-71標準中對發動機各個參數的地址、名稱、數據格式以及發送優先級等做了詳細的定義。它采用PDU(Protocol Data Unit協議數據單元)傳送信息,每個PDU相當于CAN協議中的一幀。由于每個CAN幀最多可傳輸8個字節數據,因此PDU的傳輸具有很高的實時性。PDU是由29位標識符和8個字節數據組成的[7]。現以J1939中對發動機溫度的定義(如表1所示)進行數據解析說明。
如果計算發動機冷卻液溫度,按照J1939協議中的要求,計算公式為:發動機冷卻液溫度=原始數×分辨率+偏移量。假如此時字節1的原始數為7Dh(說明:h為十六進制,b為二進制,d為十進制),則7Dh =125d。查對應分辨率表格為1oC/位,偏移量為-40oC。因此,發動機冷卻液溫度=125×1-40=85oC。按照此思路,便可以從J1939協議的應用層中解析出發動機的轉速、機油壓力、水溫、燃油量等各種參數[8]。

表1 發動機溫度參數定義格式
如前所述,GPS模塊主要采用GRMIN公司的GPS25LP。GPS模塊會每秒鐘發出數據包,數據包遵循NMEA-0183協議,協議中有準確的經緯度信息。通過數據解析,數據傳輸通常有GPGGA和GPRMC兩種格式。為了減少GPS模塊的數據傳輸負擔,通常采用GPRMC格式。
GPS數據接收流程如圖6所示。STM32利用中斷模式接收GPS25LP傳來的數據,然后判斷是否為GPRMC格式,如果格式正確,則開始接收數據并存在緩存中。當數據全部接收完畢,退出中斷程序。部分程序如下:

GTM900C與STM32之間通過USART2進行數據傳輸,程序中采用常用的AT指令。但在數據發送之間,需要對GPRS模塊初始化。所謂的初始化就是GTM900C建立TCP鏈接的過程,通常由眾多的AT命令子程序組成。具體的流程圖如圖7所示。
首先是驗證GTM900C是否正常,通過AT指令進行測試來實現。如果測試成功,為了減少無用的返回字符串,要對其執行“關回顯”的命令。回顯的意思是給它發條指令它會原封不動的回發一條已發的指令,“關回顯”可以使串口專心監測GTM900C實際返回的參數。
其次是判斷SIM卡是否插入,檢查信號強度以及網絡注冊狀態等。這是為GTM900C建立TCP鏈接做準備。因為只有在網絡已經注冊完畢的狀態下,GTM900C才能建立TCP鏈接,而建立的快慢與信號強度有關。
最后是通過配置APN,進入TCP/IP功能和建立TCP鏈接。如果對具有固定IP地址服務器來說,GTM900C按照以上三個步驟即可。而對于非固定IP地址的服務器,還需要經過域名解析獲得服務器的IP地址,然后才能建立TCP鏈接。

圖7 GPRS模塊初始化的程序流程圖
遠程監控系統設計完成后,在福田雷沃重工的FR630D旋挖鉆機產品上進行測試。一是可靠性測試,讓裝有此終端(如圖8所示)的5臺整機分別連續工作200小時,監控其運行情況,通過PC端的監控軟件可以看到發動機的參數可實時顯示。二是功能性測試,測試GTM900C與服務器之間的連接,通過設置TCP的地址,讓GPRS的發送數據與服務器建立連接,然后通過服務器將所有數據用圖文表現出來,體現可讀性。如圖9所示。

圖8 遠程監控終端

圖9 PC端監控顯示界面
本論文通過對發動機遠程監控的終端系統進行設計,滿足了當下整機產品對于此系統的要求。硬件方面,基于STM32的終端系統,通過實驗可以看出,在功耗和可靠性方面有著高性價比。軟件部分,通過STM32豐富的固件庫函數,可以提高軟件質量,縮短開發周期。整個系統的設計與實現對整機廠提出的運行工況數據化,故障檢測遠程化有著積極地作用。在后續的研究中,要對GPRS信號的穩定性進一步研究,提高系統在線率。
[1]王興剛,李來平.GPS遠程監控系統在旋挖鉆機上的應用[J].探礦工程.2008,35(10),30-32.
[2]宋祥獻,王經聰,史繼松.挖掘機的全球衛星定位遠程監控系統[J].工程機械與維修.2011,10,190-191.
[3]鄧小星,喻壽益.多功能工程機械遠數據采集與傳輸終端的設計[J].機電技術.2010,33(2),2-5.
[4]ST Microelectronics ,STM32F103XB Datasheet[M].ST Microelectronics,2012.
[5]華為技術有限公司.GTM900-C無線模塊產品概述[M].華為技術有限公司,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.