• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ARM9的車載智能顯示終端設(shè)計(jì)與應(yīng)用

      2010-05-04 03:39:02丁國(guó)君王立德
      鐵道機(jī)車車輛 2010年2期
      關(guān)鍵詞:驅(qū)動(dòng)程序機(jī)車應(yīng)用程序

      馬 釗,嚴(yán) 祥,丁國(guó)君,王立德

      (北京交通大學(xué) 電氣工程學(xué)院,北京100044)

      目前大部分舊型車和部分運(yùn)行車輛還沒有安裝機(jī)車通信網(wǎng)絡(luò)和故障檢測(cè)智能顯示系統(tǒng),駕駛員所能獲取的機(jī)車運(yùn)行信息內(nèi)容較少,行車故障也無法記錄,給列車安全運(yùn)行帶來了隱患。因此,對(duì)其進(jìn)行智能化,現(xiàn)代化的技術(shù)改造是必要的。目前國(guó)內(nèi)機(jī)車行業(yè)使用的智能顯示單元主要有以下兩種,即基于DSP+CPLD(顯示驅(qū)動(dòng))的顯示終端和基于X86架構(gòu)工業(yè)PC機(jī)的顯示終端[1]。這兩種顯示系統(tǒng)開發(fā)較容易,但易受振動(dòng)、灰塵、潮濕、高溫以及其他環(huán)境問題的影響,電能消耗量大,運(yùn)行不穩(wěn)定,升級(jí)困難,容易出現(xiàn)故障和數(shù)據(jù)丟失。這些機(jī)車需要一套高性價(jià)比且安全穩(wěn)定的列車故障檢測(cè)顯示系統(tǒng)。提出了基于CAN網(wǎng)絡(luò)、ARM和 Windows CE5.0嵌入式系統(tǒng)的車載網(wǎng)絡(luò)智能顯示終端(IDT)。通過車載網(wǎng)絡(luò)、數(shù)據(jù)采集模塊和故障檢測(cè)模塊將采集到的機(jī)車狀態(tài)和故障信息發(fā)送到司機(jī)室顯示屏,提示司機(jī)采取相應(yīng)的故障處理措施。同時(shí)機(jī)車運(yùn)行數(shù)據(jù)由顯示模塊以無線方式傳回地面機(jī)務(wù)段,地面人員可以及時(shí)跟蹤了解機(jī)車狀態(tài)。

      1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)

      設(shè)計(jì)的核心處理器采用32位RISC的ARM920T內(nèi)核S3C2440A處理器,配備64 MB的NAND Flash和64 MB的SDRAM。S3C2440處理器是一款低功耗、高度集成的微處理器,主頻達(dá)到了400 MHz,具有豐富的接口資源,能夠滿足本系統(tǒng)的設(shè)計(jì)需求。LCD顯示屏采用的10英寸LCD工業(yè)屏,能夠保證在較寬的溫度范圍正常工作;控制接口采用9個(gè)按鍵的按鍵條,相比觸摸屏,雖然犧牲了性能但保證了控制的穩(wěn)定性。系統(tǒng)對(duì)外接口主要有以太網(wǎng)接口、USB主機(jī)及設(shè)備接口、按鍵IO接口、SPI接口、串口等。由于S3C2440本身并沒有集成CAN控制器,因此本設(shè)計(jì)采用其SPI接口與外部設(shè)備C8051F041單片機(jī)進(jìn)行,再通過CAN網(wǎng)絡(luò)與列車上其他網(wǎng)絡(luò)節(jié)點(diǎn)相連。

      圖1 系統(tǒng)硬件結(jié)構(gòu)

      圖1中可以看到,Flash存儲(chǔ)系統(tǒng)引導(dǎo)數(shù)據(jù);SDRAM作為系統(tǒng)運(yùn)行動(dòng)態(tài)內(nèi)存;SD卡用于故障信息存儲(chǔ);LCD模塊顯示信息;鍵盤鼠標(biāo)通過USB口輸入;串口實(shí)現(xiàn)對(duì)GPRS的控制和通訊;按鍵IO接口實(shí)現(xiàn)對(duì)顯示屏的相關(guān)操作。由于列車工作環(huán)境惡劣,在硬件設(shè)計(jì)時(shí)為了保證抗電磁干擾性和系統(tǒng)穩(wěn)定性,核心板采用6層設(shè)計(jì),底板采用4層設(shè)計(jì)。其中S3C2440處理器和NAND FLASH、SDRAM設(shè)計(jì)在核心板上,其余接口和電源電路設(shè)計(jì)在底板。

      2 系統(tǒng)平臺(tái)設(shè)計(jì)

      2.1 操作系統(tǒng)定制

      機(jī)車網(wǎng)絡(luò)的信息量比較多,對(duì)于顯示終端來說,需要同時(shí)進(jìn)行較多的任務(wù)以完成網(wǎng)絡(luò)傳輸,數(shù)據(jù)分離,人機(jī)界面,外設(shè)控制等功能,因此,選用具有多任務(wù)、具備多媒體特性的操作系統(tǒng)是必要的。文中選用Windows CE嵌入式操作系統(tǒng),其開發(fā)軟件豐富,模塊化的設(shè)計(jì)使系統(tǒng)可大可小,可根據(jù)需求進(jìn)行定制,穩(wěn)定性和移植性好,支持多種CPU,并對(duì)各種文件系統(tǒng)提供完備支持[2]。Windows CE操作系統(tǒng)的開發(fā)工具為微軟提供的Platform Builder 5.0(后文簡(jiǎn)稱PB),用來定制和生成系統(tǒng)鏡像,并導(dǎo)出對(duì)應(yīng)鏡像的SDK(Software Development Kit)。SDK應(yīng)用于編寫基于該系統(tǒng)鏡像的應(yīng)用程序[3]。操作系統(tǒng)開發(fā)流程如圖2所示。

      圖2 Win CE系統(tǒng)開發(fā)流程

      2.2 SPI驅(qū)動(dòng)程序設(shè)計(jì)

      通常Wince會(huì)給出支持多種CPU常用設(shè)備的驅(qū)動(dòng)程序,如LCD驅(qū)動(dòng)、USB驅(qū)動(dòng)、串口驅(qū)動(dòng)等;但有時(shí)由于平臺(tái)采用了特定的硬件設(shè)備,其驅(qū)動(dòng)程序在PB中并沒有給出,這時(shí)就需要用戶針對(duì)實(shí)際的硬件自行開發(fā),以滿足個(gè)性化的需求。本系統(tǒng)所涉及的SPI接口驅(qū)動(dòng)就屬于此類。所以自行開發(fā)了SPI流接口驅(qū)動(dòng)程序,供上層操作界面應(yīng)用程序調(diào)用。采用流接口方式編寫系統(tǒng)SPI驅(qū)動(dòng)程序,主要涉及 3部分:編寫驅(qū)動(dòng)程序;編寫SPI.def文件;將驅(qū)動(dòng)導(dǎo)入注冊(cè)表。

      以PB為開發(fā)工具進(jìn)行驅(qū)動(dòng)程序編寫,首先在項(xiàng)目工程中包含S2440.H頭文件[4],然后直接調(diào)用VirtualAlloc命令,申請(qǐng)?zhí)摂M內(nèi)存,VirtualAlloc函數(shù)是最底層的分配虛擬地址空間的函數(shù)。它用進(jìn)程的地址空間或者全局地址空間內(nèi)分配符合條件的地址空間并且自動(dòng)用0初始化提交的物理存儲(chǔ)器。其函數(shù)如下所示:

      VirtualAlloc(0,sizeof(SSPreg),MEM-RESERVE,PAGE-NOACCESS);

      函數(shù)若執(zhí)行成功,將返回已分配好的虛擬空間的首地址,用一個(gè)指向結(jié)構(gòu)體的指針變量來接收。在VirtualAlloc函數(shù)成功返回后,調(diào)用VirtualCopy函數(shù)將映射的物理地址綁定到剛剛分配好的虛擬空間地址。

      VirtualCopy((PVOID)v-pSSPregs,(PVOID)(SSP-BASE),sizeof(SSPreg),PAGE-READWRITE|PAGE-NOCACHE);

      運(yùn)行在用戶狀態(tài)的驅(qū)動(dòng)程序或應(yīng)用程序必須用此函數(shù),因?yàn)橛脩裟J较碌木€程沒有直接訪問物理內(nèi)存的權(quán)利。

      有了上述準(zhǔn)備工作后,我們可以進(jìn)行I/O和SPI內(nèi)存映射函數(shù)SPI-InitAddrSPI(void)、SPI-InitAddrIO(void)的編寫。以前者為例關(guān)鍵代碼如下:

      //申請(qǐng)內(nèi)存空間,大小等同SSPreg結(jié)構(gòu)體,返回空間起始地址指針

      v-pSSPregs=(volatile SSPreg*)VirtualAlloc(0,sizeof(SSPreg),MEM-RESERVE,PAGE-NOACCESS);

      //虛擬內(nèi)存映射,將申請(qǐng)的地址綁定到 SSPBASE指向的地址。

      VirtualCopy((PVOID)v-pSSPregs,(PVOID)(SSP-BASE),sizeof(SSPreg),PAGE-READWRIT E|PAGE-NOCACHE));

      映射成功后,通過對(duì)v-SSPregs的操作可以實(shí)現(xiàn)SPI相關(guān)底層硬件的寄存器配置和讀寫。接下來就可以進(jìn)行SPI流接口函數(shù)的編寫,主要是通過以下幾個(gè)模塊來實(shí)現(xiàn)驅(qū)動(dòng)的[5]:SPI-Open();SPI-Close();SPIInit();SPI-Deinit();SPI-Read();SPI-Write();SPIIST()。根據(jù)SPI的技術(shù)文檔,通過上述幾個(gè)模塊對(duì)SPI的寄存器進(jìn)行控制,實(shí)現(xiàn)SPI的收發(fā)數(shù)據(jù)??刂仆ㄐ懦绦蚴纠缦?

      從端口讀數(shù)據(jù),SPI為按字節(jié)收發(fā)方式,每收發(fā)一個(gè)字節(jié)調(diào)用一次SPI-Write()函數(shù)UINT8 SPI-Write(UINT8 Data)

      應(yīng)用程序調(diào)用函數(shù)CreateFile獲取SPI設(shè)備句柄,文件系統(tǒng)將會(huì)調(diào)用SPI驅(qū)動(dòng)例程中的SPI-Open()來響應(yīng)應(yīng)用程序的請(qǐng)求。當(dāng)應(yīng)用程序調(diào)用ReadFile函數(shù)讀取SPI設(shè)備上的字符時(shí),文件系統(tǒng)將會(huì)調(diào)用SPI驅(qū)動(dòng)例程中的SPI-Read()函數(shù)來讀取SPI接口設(shè)備上的數(shù)據(jù)。編寫完SPI驅(qū)動(dòng)程序后,使用Platform Builder編寫并生成DLL文件,定義SPI.def文件,最終生成CEC文件,將其導(dǎo)入Win CE系統(tǒng)后重新編譯鏡像,修改相應(yīng)注冊(cè)表項(xiàng),就完成了SPI流接口驅(qū)動(dòng)程序的編寫。

      3 應(yīng)用程序設(shè)計(jì)

      3.1 程序框架

      采用Visual Studio.NET 2003來開發(fā)基于.NET Compact Framework的應(yīng)用程序,使用C++語言,安裝上之前生成的SDK,即可進(jìn)行人機(jī)界面應(yīng)用程序的開發(fā)。由于本系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)龐雜,復(fù)合度較高,在數(shù)據(jù)處理同時(shí)需要進(jìn)行界面刷新等任務(wù),是一個(gè)多任務(wù)系統(tǒng)。因此筆者應(yīng)用多線程技術(shù),并根據(jù)任務(wù)的重要性進(jìn)行線程優(yōu)先級(jí)劃分,以充分利用系統(tǒng)資源,保證系統(tǒng)實(shí)時(shí)性和網(wǎng)絡(luò)傳輸?shù)男省3骶€程外,應(yīng)用程序主要包括3個(gè)線程,根據(jù)優(yōu)先級(jí)從高到低依次是:(1)SPI通信線程;(2)界面控制線程;(3)按鍵響應(yīng)線程。

      3.2 故障數(shù)據(jù)顯示存儲(chǔ)

      司機(jī)室IDT最主要的功能就是實(shí)現(xiàn)故障數(shù)據(jù)的接收顯示和存儲(chǔ)功能,將采集模塊和故障檢測(cè)儀送來的故障代碼、狀態(tài)信息進(jìn)行顯示存儲(chǔ)。機(jī)車的故障記錄是一個(gè)相對(duì)復(fù)雜的過程,主要有兩種情況:(1)瞬間故障,觸發(fā)后又自我恢復(fù);(2)持續(xù)性故障,需要人工操作后排除?;谶@兩種情況,顯示屏在顯示故障時(shí)分兩個(gè)類別:當(dāng)前故障和歷史故障。當(dāng)前故障界面為司機(jī)提供當(dāng)前運(yùn)行狀況下依然存在的故障,并根據(jù)故障發(fā)生的原因給出排除故障的操作提示。歷史故障界面提供曾經(jīng)發(fā)生的故障,包括瞬時(shí)恢復(fù)的故障和已經(jīng)手動(dòng)排除的故障,為行車提供一個(gè)有力的數(shù)據(jù)記錄,為地面指揮甄別行車故障的發(fā)生原因和責(zé)任追查提供可靠依據(jù)。

      設(shè)計(jì)采用SQL Server CE、RDA(遠(yuǎn)程數(shù)據(jù)訪問)技術(shù)和ADOCE訪問數(shù)據(jù)庫實(shí)現(xiàn)故障數(shù)據(jù)的實(shí)時(shí)顯示和存儲(chǔ)。在每頁可根據(jù)按鍵提示查詢需要的故障信息和當(dāng)前故障。當(dāng)機(jī)車發(fā)生故障時(shí),程序主界面的故障標(biāo)志變紅并且閃爍,提示司機(jī)查看當(dāng)前故障頁面及相應(yīng)的指導(dǎo)操作。故障處理功能是在程序中用定時(shí)器定時(shí)查詢實(shí)現(xiàn)的。

      如圖3所示,SPI接口收到的數(shù)據(jù)是實(shí)時(shí)接收的,應(yīng)用程序進(jìn)行數(shù)據(jù)分離:由采集模塊傳送來的數(shù)據(jù)為機(jī)車狀態(tài)燈信號(hào),如主斷、預(yù)備、零位、主接地和輔過流等;由故障檢測(cè)儀傳來的數(shù)據(jù)為網(wǎng)壓、電機(jī)電壓和電流以及故障數(shù)據(jù)。通過SQL Server CE和ADOCE編程,將故障數(shù)據(jù)與標(biāo)準(zhǔn)無故障數(shù)據(jù)進(jìn)行比較,得到故障號(hào),然后記錄當(dāng)前故障,刷新顯示。圖4是應(yīng)用程序其中的一個(gè)主界面,此界面主要實(shí)現(xiàn)故障數(shù)據(jù)的實(shí)時(shí)顯示和司機(jī)操作提示。

      圖3 故障處理流程

      圖4 人機(jī)界面當(dāng)前故障頁面

      另外,本系統(tǒng)通過GPRS,采用RDA方式使SQL Server CE與地面監(jiān)控站的SQL Server進(jìn)行數(shù)據(jù)同步,使得地面實(shí)時(shí)掌握機(jī)車運(yùn)行狀態(tài),對(duì)機(jī)車安全運(yùn)行起到了很好的保障作用。

      4 結(jié)束語

      本文設(shè)計(jì)的新型列車智能顯示終端,將32位多任務(wù)嵌入式實(shí)時(shí)操作系統(tǒng)Window s CE.NET技術(shù)引入設(shè)計(jì)中,用戶操作界面友好,系統(tǒng)可擴(kuò)展能力強(qiáng),各項(xiàng)功能均達(dá)到預(yù)期的標(biāo)準(zhǔn)。其發(fā)熱量低,噪聲小,系統(tǒng)穩(wěn)定可靠,滿足應(yīng)用需求,且擁有體積小,質(zhì)量輕,安裝方便,移動(dòng)性強(qiáng),軟件更新維護(hù)方便等傳統(tǒng)工控系統(tǒng)所不具備的優(yōu)勢(shì),為其他嵌入式檢測(cè)顯示系統(tǒng)提供了良好軟、硬件設(shè)計(jì)參考。系統(tǒng)當(dāng)前安裝應(yīng)用于昆明機(jī)務(wù)段SS3型電力機(jī)車上,運(yùn)行狀態(tài)良好。

      [1] 王永翔.機(jī)車故障診斷系統(tǒng)中的司機(jī)室顯示屏[J].鐵道學(xué)報(bào),2006,28(3):67-70.

      [2] 何宗鍵.《Windows CE嵌入式系統(tǒng)》[M].北京:北京航天航空大學(xué)出版社,2006:10-22.

      [3] 張東泉.Windows CE開發(fā)實(shí)例精粹[M].北京:電子工業(yè)出版社,2007:18-28.

      [4] 汪 兵.EVC高級(jí)編程及其應(yīng)用開發(fā)[M].北京:中國(guó)水利水電出版社,2005:253-273.

      [5] 劉學(xué)貴.基于Windows CE的SPI驅(qū)動(dòng)程序設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(7):75-77.

      猜你喜歡
      驅(qū)動(dòng)程序機(jī)車應(yīng)用程序
      大連機(jī)車
      重載機(jī)車牽引計(jì)算仿真系統(tǒng)開發(fā)及其應(yīng)用
      刪除Win10中自帶的應(yīng)用程序
      基于CTC3.0系統(tǒng)機(jī)車摘掛功能的實(shí)現(xiàn)
      一種機(jī)車聯(lián)接箱工藝開發(fā)
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設(shè)應(yīng)用程序下載商店
      微軟軟件商店開始接受應(yīng)用程序
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      色达县| 白山市| 札达县| 龙江县| 漳浦县| 双牌县| 凭祥市| 延川县| 中西区| 宝坻区| 松原市| 彭泽县| 徐闻县| 合作市| 武威市| 都江堰市| 礼泉县| 洪雅县| 遵义县| 德格县| 尚志市| 龙南县| 玉环县| 壶关县| 特克斯县| 江油市| 鲁山县| 乌拉特前旗| 高安市| 武城县| 建阳市| 土默特右旗| 河南省| 隆尧县| 理塘县| 宁陕县| 临泉县| 武义县| 綦江县| 辽阳市| 元朗区|