基于ARM和μC/OS-II的車載定位終端的設(shè)計
ARM處理器是Acorn計算機有限公司面向低預(yù)算市場設(shè)計的一款低成本、低功耗、小體積和高性能的32位處理器。憑借著其高效的指令系統(tǒng)和大規(guī)模的寄存器存儲技術(shù),ARM處理器已成為嵌入式產(chǎn)品設(shè)計的首先芯片。
μC/OS—II是美國嵌入式系統(tǒng)專家JeanaJ.Labrosse于1999年推出的一個可移植、可固化、可裁剪的基于優(yōu)先級的搶占式實時多任務(wù)嵌入式操作系統(tǒng),該操作系統(tǒng)于2000年得到了美國聯(lián)邦航空管理局商用航行器認(rèn)證,符合航空無線電技術(shù)委員會標(biāo)準(zhǔn),從而證明該操作系統(tǒng)的穩(wěn)定性與可靠性。
為了達到節(jié)省能源、降低排放的目標(biāo),電子控制技術(shù)在貨車、工程車以及農(nóng)用車的柴油機上得到快速發(fā)展和應(yīng)用。隨著機車電控化技術(shù)發(fā)展,車載定位終端的數(shù)據(jù)采集交互速度以及運行的穩(wěn)定性已成為衡量該設(shè)備的一個重要指標(biāo)。為進一步提升車載定位終端的實時性和穩(wěn)定性,文中設(shè)計了一種基于ARM處理器和μC/OS—II操作系統(tǒng)的車載定位終端。應(yīng)用ARM處理器實現(xiàn)數(shù)據(jù)交互的高速性,應(yīng)用μC/OS—II操作系統(tǒng)解決程序運行的穩(wěn)定性問題。
1 車載終端整體結(jié)構(gòu)及功能介紹
車載定位終端主要由CPU(包括S3C44BOX芯片,2MbyteNorFlash和8MByteSDRAM),GPS衛(wèi)星數(shù)據(jù)接收電路,GPRS無線數(shù)據(jù)上傳電路和CAN控制器及數(shù)據(jù)收發(fā)模塊組成。如圖1所示:來自車載電瓶的+12 V直流電經(jīng)過車載定位終端上的電壓轉(zhuǎn)換電路,轉(zhuǎn)換成+5 V、+4.2 V和+3.3 V的直流電分別向車載定位終端的CAN數(shù)據(jù)收發(fā)模塊、S3C44BOX芯片、GPS衛(wèi)星數(shù)據(jù)接收電路和GPRS無線數(shù)據(jù)傳輸電路供電;CAN數(shù)據(jù)收發(fā)模塊通過CAN總線接收ECU、EGR、TCU等車載控制器發(fā)來的反應(yīng)電控車工況的數(shù)據(jù),CAN總線末端的兩個120歐電阻為阻抗匹配電阻;GPS則實時接收衛(wèi)星數(shù)據(jù)并將這些數(shù)據(jù)按照NMEA-0183協(xié)議輸出給CPU;CPU通過應(yīng)答機制接收CAN數(shù)據(jù)收發(fā)模塊傳來的數(shù)據(jù),通過中斷方式實時接收GPS發(fā)來的數(shù)據(jù)并通過相應(yīng)算法對接收到的衛(wèi)星數(shù)據(jù)進行處理,之后將所有數(shù)據(jù)按照固定的格式進行打包并發(fā)送給GPRS;GPSR接收到相應(yīng)的數(shù)據(jù)包后,通過無線方式實時上傳給監(jiān)控中心。
在車載定位終端的實際應(yīng)用之中,影響數(shù)據(jù)交互速度的主要因素取決于CPU的處理速度,電控車工況信息讀取以及GPS衛(wèi)星數(shù)據(jù)接收的實時性;影響穩(wěn)定性的主要因素是硬件的抗電磁干擾性能及μC/OS—II操作系統(tǒng)對不同優(yōu)先級任務(wù)的合理調(diào)度分配。下文將圍繞CPU電路、GPS衛(wèi)星數(shù)據(jù)接收電路、GPRS無線數(shù)據(jù)上傳電路以及系統(tǒng)軟件等幾個主要影響因素進行闡述和分析。
2 硬件電路的設(shè)計
1)S3C44BOX處理器
S3C44BOX處理器是Samsung公司推出的采用了ARM7TDMI內(nèi)核的16/32位RISC處理器。該處理器擁有豐富的內(nèi)置部件:8KBcache,LED控制器,SDRAM控制器,5通道PWM定制器,PLL倍頻器,IIC總線接口,IIS總線接口,2通道UART,4通道DMA和8通道10位AD轉(zhuǎn)換器。這些部件使得S3C44BOX處理器在保證高性能的同時(最高運行速度達66 MHz),最大限度的降低了設(shè)計開發(fā)的成本。相較于傳統(tǒng)的8位單片機,S3C44BOX處理器可較大程度的提升車載定位終端對數(shù)據(jù)處理速度的需求。
2)GPS抗電磁干擾電路
如圖2,GPS電路的核心器件為GS-89M-J模塊。該模塊采用了最新的MTK3329芯片作為主控芯片,定位精度小于10 m圓周誤差,定位時間在熱啟動模式下僅為1 s。MIC29302BU模塊是一款大電流高穩(wěn)定性的電壓調(diào)節(jié)模塊,主要用于向GS-89M-J模塊提供4.2 V的工作電壓,模塊中的5腳位為可調(diào)輸出引腳,在可調(diào)模式下,該引腳輸出固定的1.25 V的直流電壓,為了保證該模塊能夠提供穩(wěn)定的4.2 V電壓,設(shè)計中使用電阻值分別為43 K和100 K的精密電阻R521X和R525X組成了串聯(lián)電壓提升電路,以實現(xiàn)模塊的輸出引腳輸出4.2 V的直流電壓S3C44BOX通過向該模塊的1引腳(EN端-使能輸出端,高電平有效)輸出高電平或低電平來控制該模塊的工作與否;電容C564、極性電容C562、電阻R550和R551所組成的地分離電路,主要用于將GPS電路和車載終端上的其它電路進行隔離,以防止GPS電路與其它電路因為公共阻抗耦合引起交叉干擾;出于保證車載定位終端運行穩(wěn)定性考慮,通過S3C44BOX芯片的一個通用I/O引腳和三極管Q501、電阻R502、R505、R507組成GS-89M-J復(fù)位控制電路,以確保GS-89M-J在程序跑飛時主控芯片能及時對其進行復(fù)位操作;本設(shè)計中選用的GPS天線的阻抗值為50歐姆,由于GPS信號為1575. 42 MHz的高頻載波信號,在傳輸過程中,容易因傳輸線的特征阻抗與終端阻抗不匹配造成信號反射,為防止該現(xiàn)象發(fā)生,本設(shè)計中用于連接GPS天線和GS-89M-J模塊RF_IN引腳的射頻線的特性阻抗值為50歐姆;GS-89M-J模塊實時接收來自衛(wèi)星的信號同時對其進行解算,并將解算結(jié)果按照NMEA0183協(xié)議打包成GPGGA、GPGSA、GPGSV、GPRMC、GPVTG和GPGLL7幀數(shù)據(jù)輸出給S3C44BOX。S3C44BOX通過串口中斷方式實時接收GS-89M-J發(fā)來的數(shù)據(jù)幀。
3)GPRS抗電磁干擾電路
如圖3,GPRS電路的核心器件是SIM900模塊。SIM900采用省電技術(shù)設(shè)計,在睡眠模式下耗流僅為1.0 mA,同時該模塊嵌入了TCP/IP協(xié)議,提高了用戶應(yīng)用該模塊進行數(shù)據(jù)無線傳輸?shù)拈_發(fā)效率。電路中的NC7WZ07為高速電平轉(zhuǎn)換芯片,通過該芯片可將SIM900輸出的4.2 V串行信號轉(zhuǎn)換為S3C44BOX可接收的3.3 V串行信號,實現(xiàn)SIM900和S3C44BOX的無障礙通信;電路中的MOLEX-91228為SIM卡座,為防止SIM卡受到靜電放電和高頻信號的干擾,此處選用SMF05C對SIM卡進行保護;為防止來自SIM900的特高頻信號在傳至SIM卡時形成信號反射,降低信號質(zhì)量,這里選用22歐的電阻R614和R613對二者進行阻抗匹配;S3C44BOX通過向SIM900的1引腳(PWRKEY引腳-電開關(guān)引腳)發(fā)送脈寬為1 s的高電平,便可控制該模塊的關(guān)閉與打開;S3C44BOX通過向SIM900的14引腳(NRESET引腳-低電平復(fù)位引腳)發(fā)送一個高電平,便可對該模塊進行復(fù)位操作;與GPS電路一樣,GPRS電路中的用于連接GPRS天線與SIM900 RF_ANT引腳的射頻線的特性阻抗為50 Ω;SIM900通過串口接收來自S3C44B OX的數(shù)據(jù)包,并通過GPRS網(wǎng)絡(luò)將數(shù)據(jù)包上傳至監(jiān)控中心。[!--empirenews.page--]
3 系統(tǒng)軟件設(shè)計
為實現(xiàn)車載定位終端數(shù)據(jù)處理的實時性和運行的穩(wěn)定性,確保電控車工況信息讀取任務(wù)和GPS衛(wèi)星數(shù)據(jù)接收任務(wù)能在第一時間內(nèi)完成,本設(shè)計引入了μC/OS—II操作系統(tǒng)。μC/OS—II能夠根據(jù)任務(wù)的優(yōu)先級動態(tài)地切換任務(wù),保證系統(tǒng)對實時性的要求。
如圖4所示為系統(tǒng)主函數(shù)流程圖,系統(tǒng)上電,經(jīng)過對S3C44BOX的時鐘電路以及相關(guān)寄存器配置完成對S3C44BOX的初始化操作,之后調(diào)用OSInit()函數(shù)完成對μC/OS—II的初始化操作,接著系統(tǒng)通過OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8U prio)函數(shù)創(chuàng)建車載定位終端的應(yīng)用任務(wù),最后通過OSStart()函數(shù)調(diào)用任務(wù)調(diào)度函數(shù)OSCtxSw()開始任務(wù)調(diào)度。各應(yīng)用任務(wù)間的同步及數(shù)據(jù)交互通過信號量和消息郵箱來完成。
基于車載定位終端的主要功能,該車載定位終端應(yīng)用程序主要包括3個任務(wù)和2個中斷。分別是電控車工況信息讀取任務(wù)(void VehInf Read_ Task(void*pada)),該任務(wù)主要用來接收來自ECU、EGR等車載控制器傳來的反應(yīng)車輛工作狀況的信息,如:發(fā)動機冷卻液溫度、發(fā)動機潤滑油壓力、發(fā)動機曲軸轉(zhuǎn)速、發(fā)動機凸輪軸轉(zhuǎn)速、廢氣后處理閥門開度等等,由于車載定位終端要同時接收多個車載控制器的數(shù)據(jù),為確保車載定位終端能夠精確識別各車載控制器上傳的數(shù)據(jù),此處采用主叫-應(yīng)答機制實現(xiàn)車載定位終端和各車載控制器間的數(shù)據(jù)通信;GPS衛(wèi)星數(shù)據(jù)處理任務(wù)(void SatDatPro_Task(void*pada))則主要對GS-89M-J模塊傳來的數(shù)據(jù)幀進行篩選并從篩選出來的數(shù)據(jù)幀中提取車輛位置的信息;GPRS數(shù)據(jù)上傳任務(wù)(void DatSend_Task(void*pada))則主要將車輛工況信息和位置信息按照固定數(shù)據(jù)幀格式進行打包并通過SIM900以無線方式上傳給監(jiān)控中心;CAN接收中斷函數(shù)(void_irq CANRev(void))是由CAN收發(fā)器觸發(fā)的,CAN收發(fā)器每接收到一幀來自各車載控制器的數(shù)據(jù)時,中斷即被觸發(fā),該中斷函數(shù)主要將接收到數(shù)據(jù)幀通過消息郵箱傳送給電控車工況信息讀取任務(wù);串口接收中斷函數(shù)(void_irq Seri Rev(void))則主要是在GS-89M-J完成衛(wèi)星信號解算并向S3C44BOX的串口進行數(shù)據(jù)輸出時被觸發(fā)的。
影響車載定位終端實時性的主要因素是對GPS衛(wèi)星數(shù)據(jù)的處理速度,因此車載定位終端中各任務(wù)的優(yōu)先級分配如下表(優(yōu)先級值越小則對應(yīng)的優(yōu)先級越高)。
4 結(jié)束語
文中所設(shè)計的車載定位終端應(yīng)用ARM處理器和μC/OS—II操作系統(tǒng)最大限度地保證了終端數(shù)據(jù)交換的實時性與運行的穩(wěn)定性。經(jīng)證實,該車載定位終端在貨車、工程車、農(nóng)用車等領(lǐng)域擁有廣闊的應(yīng)用前景。