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