高建樹,趙寶增
(中國民航大學(xué)航空自動化學(xué)院,天津300300)
飛機除冰車是對飛機進行除冰的機場特種車輛。機身表面的冰層會增加飛機在空中的運動阻力,造成飛機失速、機翼變形等故障,因而飛機在起飛前必須進行除冰[1]。在機場運行中,為了更加有效地使用除冰車,調(diào)度系統(tǒng)應(yīng)運而生。目前市場上廣泛存在以GPS為主的車輛調(diào)度系統(tǒng),然而隨著我國北斗二代(BD2)技術(shù)的逐漸成熟,北斗定位技術(shù)必將在民航等領(lǐng)域取代GPS成為定位導(dǎo)航技術(shù)的主流,因而對于北斗定位技術(shù)的研發(fā)具有極大的科研意義。本文中提出的除冰車定位技術(shù),以BD2定位技術(shù)為前提,充分考慮了除冰車本身的特殊性,研制了一種適用于除冰車的調(diào)度管理系統(tǒng),以提高除冰車的運行效率。
系統(tǒng)主要由處理器模塊、定位模塊、檢測模塊、無線傳輸模塊、電源模塊五部分組成。處理器模塊主要由ARM處理器、SDRAM、NAND FLASH、復(fù)位電路組成。NAND FALSH用于存儲系統(tǒng)代碼,SDRAM提供系統(tǒng)運行的內(nèi)存空間,ARM處理器采用SAMSUNG公司的ARM9系列S3C2440A。S3C2440A基于ARM920T內(nèi)核,價格低,功耗小,適于應(yīng)用型設(shè)備的開發(fā)[2]。
定位模塊UM220用于接收除冰車的定位信息數(shù)據(jù),CR-606檢測模塊完成對除冰車油位及除冰液液位數(shù)據(jù)的采集,無線傳輸模塊GTM900B則用于將采集到的數(shù)據(jù)傳送到上位機,供管理人員參考。電源模塊主要負(fù)責(zé)各模塊的電能供給。系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
傳感器殼體與感應(yīng)電極之間有電容量的變化,將這個變化量經(jīng)電路轉(zhuǎn)換后以4~20mA標(biāo)準(zhǔn)信號輸出。但由于處理器A/D模塊輸入范圍為0~3.3V的電壓信號,因此需將傳感器的輸出信號進行轉(zhuǎn)換,轉(zhuǎn)換原理圖如圖2所示。
圖2 油位檢測轉(zhuǎn)換電路
信號轉(zhuǎn)換電路基于運算放大器原理,采用TI公司的OP07D進行設(shè)計。OP07D為一款精密、超低失調(diào)、低功耗的電壓放大器,且支持單電源供電。圖中R1為250Ω精密電阻,U1為電壓跟隨器用于將4~20mA的電流信號轉(zhuǎn)變?yōu)?~5V的電壓信號。如當(dāng)Ii為4mA時,Vi1為1 V,Vo1=Av·Vi1,當(dāng)Ii為20mA時,可得Vo1為5V[3]。
U2為調(diào)零、增益電路,負(fù)責(zé)將1~5V的信號轉(zhuǎn)變?yōu)?~3.3V的處理器A/D標(biāo)準(zhǔn)信號。其中,Vi2為調(diào)零電壓,R3=R4=400Ω、R5=R6=400Ω,R6/R3=R5/R4當(dāng)由式(1)可得當(dāng)Vo1為1V時,輸出Vo2為0V,當(dāng)Vo1為5V時,輸出Vo2為3.3V。
系統(tǒng)采用和芯星通公司的UM220作為定位模塊。UM220為雙模塊、高性能的GNSS芯片,定位精度3m,具有NMEA0183導(dǎo)航電文格式,支持GPS與BD的協(xié)同定位及GPS或BD的單獨定位。
UM220通過串口與處理器連接,硬件連接原理圖如圖3所示。J1端為外接天線端口,外接有源GPS/BD天線,天線與芯片間的L1、C9、C10組成饋電線路,L1防止電源對BD/GPS信道影響,C10用于隔離同軸線中的直流信號,避免芯片損壞。
引腳VBAT外接后備電池,在斷電的情況下,由后備電池進行供電,使模塊保存星歷信息,保證在短時間內(nèi)再次啟動時,能夠快速定位。串口RXD1、TXD1分別與S3C2440A的TXD1、RXD1相連,實現(xiàn)UM220與處理器之間的數(shù)據(jù)傳遞[4]。
圖3 UM220硬件原理圖
無線傳輸部分采用華為公司的GTM900B模塊。GTM900B是一款三頻段GSM/GPRS無線模塊,支持標(biāo)準(zhǔn)的AT命令,內(nèi)嵌TCP/IP協(xié)議,推薦工作電壓為4V。
GTM900B的串口0與S3C2440A的串口2相連接,但由于S3C2440A的串口2在Linux系統(tǒng)下默認(rèn)為紅外接口,故需先調(diào)試內(nèi)核,將S3C2440A的串口2改為普通串口后才能使用。GTM900B的電路原理圖如圖4所示。
圖4 GTM900B電路原理圖
PWON為GPRS模塊開/關(guān)機控制引腳,在GPRS模塊上電后,引腳必須維持至少10ms的低電平,模塊才能工作。系統(tǒng)采用RC電路完成GPRS模塊的上電自啟動功能。D1用于斷電后將C4兩端的電壓釋放掉,以備下次啟動。SIM引腳與SIM卡相連接,SIM_VCC與SIM_GND負(fù)責(zé)給SIM卡供電,SIM_DATA用于在SIM卡與GPRS模塊之間進行數(shù)據(jù)的傳輸,SIM_CLK提供讀寫SIM卡的參考時鐘。模塊通過LPG引腳輸出信號來反應(yīng)模塊的工作狀態(tài)。如模塊啟動時,LPG引腳持續(xù)輸出高電平,當(dāng)模塊發(fā)送數(shù)據(jù)時,發(fā)送周期為125ms,高電平持續(xù)93.59ms的方波信號,系統(tǒng)通過Q1的通斷,控制LED0的閃滅頻率,從而反應(yīng)模塊的工作狀態(tài)[5]。
系統(tǒng)軟件以Linux載體進行開發(fā),主要包括Linux系統(tǒng)制作、應(yīng)用程序編寫、圖形界面設(shè)計。系統(tǒng)主程序框架如圖5所示。
圖5 系統(tǒng)主程序框圖
Linux系統(tǒng)開發(fā)主要包括bootloader制作、Linux內(nèi)核裁剪、字符設(shè)備驅(qū)動的添加及根文件系統(tǒng)的制作[6]。
系統(tǒng)采用u-boot-1.1.6源碼制作bootloader,主要完成對于硬件的初始化及運行代碼的搬移工作,在u-boot的設(shè)計中,需使用軟浮點交叉編譯器進行編譯;內(nèi)核以Linux-2.6.31源碼為基礎(chǔ)進行裁剪編譯,添加對于NAND FLASH、LCD等硬件及Yaffes2文件系統(tǒng)的支持,并添加DS18B20及A/D驅(qū)動程序;根文件系統(tǒng)采用Yaffes2文件系統(tǒng)進行制作,Yaffes2文件系統(tǒng)為專門針對NAND FLASH所設(shè)計的文件系統(tǒng)。
應(yīng)用程序主要實現(xiàn)TCP/IP連接及數(shù)據(jù)采集與發(fā)送。應(yīng)用程序流程框圖如圖6所示。
程序采用多線程技術(shù)實現(xiàn)對于數(shù)據(jù)的采集與發(fā)送。在車載端上電后S3C2440A通過向串口發(fā)送AT指令實現(xiàn)車載端與上位機的連接。在連接成功后,線程啟動開始工作。
程序定義一個全局變量buf[] ,用于存儲、發(fā)送采集到的數(shù)據(jù),并利用多線程技術(shù)實現(xiàn)對于buf[] 的操作,通過信號量實現(xiàn)對于數(shù)據(jù)采集與發(fā)送的同步操作。首先初始化兩個信號量:sem1和sem2。代碼如下:
程序首先對sem1、sem2進行P操作,此時sem1=0,sem2<0,數(shù)據(jù)采集線程執(zhí)行,對數(shù)據(jù)進行采集并放入全局變量buf[] 中,而后對sem2進行V操作sem2=0,數(shù)據(jù)發(fā)送線程執(zhí)行,將數(shù)據(jù)發(fā)送至上位機,并對sem1進行V操作,sem1變?yōu)?,此時重復(fù)執(zhí)行之前的步驟對數(shù)據(jù)進行采集與發(fā)送。通過對線程的PV操作實現(xiàn)數(shù)據(jù)采集線程與發(fā)送線程對全局變量buf[] 的順序訪問。
但由于GTM900B是以ASCII碼的形式發(fā)送數(shù)據(jù),因而在數(shù)據(jù)傳輸前需對數(shù)據(jù)進行格式轉(zhuǎn)化。數(shù)據(jù)轉(zhuǎn)換程序如下:
*g為待轉(zhuǎn)換的字符串指針,buf為轉(zhuǎn)換后的字符串[7]。
圖6 應(yīng)用程序流程框圖
圖形界面主要用于油位及除冰液液位等參數(shù)的虛擬儀表顯示,界面顯示圖如圖7所示。界面采用Linux系統(tǒng)下的Qtcreator進行開發(fā),圖中Olevel儀表顯示除冰車的油位,Llevel顯示除冰液的液位,Tem顯示除冰液的溫度,報警燈主要實現(xiàn)油量快耗盡時的報警功能。圖形界面的設(shè)計,可以減少系統(tǒng)的硬件成本,且顯示界面可根據(jù)需求增加相應(yīng)的功能,便于后期的擴展。界面儀表通過信號與槽的形式實現(xiàn)與硬件的交互,如溫度顯示函數(shù)為[8]:
圖7 Qt圖形界面設(shè)計
在項目設(shè)計中以S3C2440A處理器為核心,采用我國自主研制的北斗技術(shù)實現(xiàn)對于除冰車的定位操作,并在車載終端實現(xiàn)了對于除冰車油位、除冰液參數(shù)的實時顯示,并將參數(shù)連同定位信息一同傳輸至上位機,實現(xiàn)對于除冰車更加合理化的調(diào)度。
[1] 夏建滿,徐赫男.飛機除冰車技術(shù)現(xiàn)狀[J] .專用汽車,2010(2):1-3.
[2] 張豪,楊春燕.汪筱陽.S3C2440A芯片及應(yīng)用[J] .電子設(shè)計共工程,2011(12):1-5.
[3] 石飛飛,馬晨.基于OP07和LTC1543溫度采集模塊的設(shè)計[J] .電子設(shè)計工程,2010(12):1-3.
[4] 李新,包劍,劉卉.車載GPS終端的設(shè)計與實現(xiàn)[J] .遼寧工程大學(xué)學(xué)報,2004(S1).
[5] 王春波.GPS/GPRS車載終端的設(shè)計與實現(xiàn)[D] .成都:電子科技大學(xué),2008:2-30.
[6] 劉崢嶸,張志超,徐振山.嵌入式Linux應(yīng)用開發(fā)詳解[M] .北京:機械工業(yè)出版社,2004.
[7] 穆煜.嵌入式應(yīng)用程序設(shè)計[M] .北京:郵電大學(xué)出版社,2011.
[8] 王瑞民,趙祥模,惠飛,等.基于嵌入式Linux與Qt的汽車虛擬儀表設(shè)計[J] .現(xiàn)代電子技術(shù),2012(6):1-4.