基于嵌入式的故障診斷專家系統驅動程序設計
電子設備的故障診斷系統大多采用由傳感器、工業PC、工業以太網、遠程專家組成的診斷模式。現有診斷現場儀器眾多、連接復雜,使得系統可靠性和穩定性難以得到保證。另一方面,要求診斷人員具備專業知識,其中包括各類傳感器的固定、連接與信號處理,難以實現“現場無人,遠程診斷”目標。因此有必要從現有的硬件和軟件組成模式的角度出發,探索一種新的診斷系統組成模式。本文設計了基于嵌入式的故障診斷專家系統,使得對電子設備的檢測及維修變得更為方便有效。
本文根據實際需要選取Windows CE.Net作為本系統的操作系統平臺。在Windows CE嵌入式系統的平臺開發中,設備驅動程序的開發是其很重要的一部分,它們用于驅動嵌入式系統硬件平臺上的各個設備接口。根據定制的硬件系統,本文對操作系統的鍵盤驅動程序、觸摸屏、LCD驅動、電源管理及其它的相關驅動程序進行了開發。
1 Windows CE.Net操作系統
Windows CE.Net是微軟公司在嵌入式操作系統市場上一個重要產品,第1個版本于1996年發布。Windows CE.Net是針對有限資源的平臺而設計的32位、多線程、完整優先權、多任務的嵌入式操作系統。
Windows CE.Net一個突出的特點——模塊化。利用這個特點,選擇、組合和配置Windows CE.Net的各個模塊和組件來創建用戶版的操作系統,即Windows CE.Net的模塊化設計使得它能夠在大量的平臺上定制使用,從客戶電子設備到專用的工業控制器。
Window CE.Net操作系統的基本內核需要至少200 kB的ROM,它支持Win32 API子集、多種用戶界面硬件、多種的串行和網絡通訊技術、COM/OLE和其他的進程間通訊的先進方法,借助Windows CE開發者就能利用大量其他的編程資源、工具、軟件例子以及文檔來進行Windows CE.Net開發工作。Micmsoft公司為Windows CE.Net提供了PlatformBuilder和Embedded Visual Studio開發工具。
Windows CE.Net有五個主要的模塊:內核模塊、內核系統調用接口模塊、文件系統模塊、圖形窗口和事件子系統模塊、通訊模塊。其最大的特點是能提供與PC機類似的圖形界面和主要的應用程序。Windows CE.Net嵌入式操作系統的界面顯示大多數在Windows里出現的標準部件,包括桌面、任務欄、窗口、圖標和控件等。這樣只要是對PC機上的Windows比較熟悉的用戶,可以很快地使用基于Windows CE.Net嵌入式操作系統的嵌入式設備。
2 WindOWS CE.Net平臺下的驅動開發
Windows CE.Net的分層結構給驅動程序的開發帶來極大的方便,使得驅動開發只需要針對不同的BSP進行修改,很大程度上減少了開發的工作量。而完成這一工作需要了解兩部分的內容,分別是:Windows CE.Net的中斷機制和Windows CE.Net.的層次模型。
2.1 Windows CE.Net的中斷機制
Windows CE.Net系統的大多數外圍設備都是通過產生中斷從操作系統獲得服務的,如PC卡、板上定時器、鍵盤、觸摸屏等。當設備需要驅動程序服務時,基于Windows CE.Net的平臺使用中斷信號通知操作系統。
Windows CE.Net把中斷處理分成兩部分:內核模式的中斷服務程序(Interrupt Serice Routine,ISR)和用戶模式的中斷服務線程(Int-errupt Setice Thread,IST)。ISR通常都比較短,是快速的匯編代碼,一般在0AL層代碼中,能夠直接訪問硬件注冊表。ISR的唯一任務就是向操作系統返回邏輯中斷標志符。中斷服務線程(IST)是用戶模式線程,在IST中完成大多數中斷處理。IST在大多數時間里是空閑的,只有當從函數WaitForSingeObiect()得到中斷已經發生的信號后,IST被喚醒去處理它需要處理的中斷。通過相關聯的帶有中斷標志的事件可以完成這些。IST需要首先創建一個事件并且用邏輯中斷與它相聯系。當中斷過程完成時,IST應該通知內核重新使能中斷。
評論