基于嵌入式Linux的機車故障診斷系統研究設計
3 軟件系統設計
3.1 軟件系統設計
系統以主測試設備為核心,采集、收集多個測試傳感器采集的信息,并將測試數據收集保存,可以通過網絡實時地傳遞到系統的監測中心進行分析和處理。本設計采用的Linux內核是在ARM-Linux的基礎上,編寫了OLED顯示模塊、USB設備的設備驅動程序。軟件設計主要包括ARM-Linux在微處理器S3C2410上的移植,相關驅動程序設計、系統任務級設計等。開發系統采用PC工作站和主測試設備的嵌入式主板構成的交叉編譯環境,本系統使用Linux2.6的內核,內核的編譯通過Makefile文件的指示進行,通過修改Makefile來組織內核各模塊,并記錄模塊間的相互聯系和依賴關系,修改config、setup等相關配置文件完成內核的編譯,生成zlmage、vmLinux、System.map、config等文件。雙口通信的程序如圖3所示。
3.2 網絡通信程序設計
嵌入式無線局域網設備可以用于有線網絡無法延伸或難以安裝、又可靈活移動和臨時性使用等要求的場合。在本系統中主要采用Linux下的Socket通信方式,使用TCP/IP網絡協議棧,采用面向有連接Stream套接字。
主測試設備運行過程中,接收來自網絡的遠程指令,并且為了方便遠程測量和控制,每個主測試設備被分配固定的IP地址和端口,遠程測試站可進行有選擇性的查詢式測量,每個主測試設備在通信開始前使用socket( )建立一個通信端點,再使用bind( )函數把一個地址綁定到這個端點上,然后使用listen( )函數偵聽是否有來自遠程的連接請求,如果有,則使用accept( )處理,并按照指令執行測量任務或傳送測量數據。如圖4所示。
雖然現場顯示和無線傳輸2種方式已經提供了大量的數據和信息。但是都受到了地域和空間的限制。因此,為了滿足相對惡劣的地理環境和移動設備的采集需求,系統后期可通過加入GSM短消息傳送數據的無線方式。GSM網絡經過多年的發展完善,現在已經非常成熟,盲區少、信號穩定、自動漫游,并且通信距離不受周圍環境影響。
本文的創新點在于開發了一種基于嵌入式系統的機車狀態實時檢測系統,該系統實現了機車上信號量的采集和信號的存儲、大容量的數據存儲、穩定可靠的CAN總線通訊和遠程無線通信,各個模塊在Linux實時操作系統的調度下協調工作,車載顯示和語音報警效果良好,并能夠在機車出現故障時提醒司機故障出現的位置和解決故障的方法。該系統通過在嵌入式Linux環境下的網絡通信測試實驗,證實具有較好的響應能力和數據吞吐能力,本系統設計在非接觸式測量領域有一定的應用價值和指導意義,經在機車檢測方面的多次聯機調試,系統工作穩定、可靠,在工業控制領域具有廣泛的應用前景。
評論