国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于嵌入式的故障診斷專家系統驅動程序設計

發布時間:2010-11-24 16:18    發布者:eetech
電子設備的故障診斷系統大多采用由傳感器、工業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應該通知內核重新使能中斷。

2.2 Windows CE.Net的驅動模型

Windows CE.Net所有驅動都以動態鏈接庫(DLL)的形式存在,在驅動的實現過程中可以調用Windows CE.Net支持的所有標準API函數。

Windows CE.Net的驅動程序有2種模型:本機設備驅動程序和流接口設備驅動程序。

1)本機設備驅動 在Windows CE.Net中.通用LED驅動、電源驅動、顯示驅動、鍵盤驅動等都可以用本機設備驅動來開發。微軟提供了定制接口的方式來支持內部設備驅動程序,這意味著絕大多數開發人員不必大量地編寫本機設備驅動代碼。但把Windows CE.Net定制到新平臺的原始設備制造商(OEM)除外,它們可以創建自己的本機設備驅動程序到新的平臺。通常,當Windows CE.Net系統啟動時,本機設備驅動程序就被加載到系統的內存中。

2)流接口驅動程序 在Windows CE.Net中,流接口驅動程序以DLL形式存在,是運行在用戶模式下的動態連接庫,由一個叫做設備管理程序的特殊應用程序加載、管理和卸載。與具有單獨目的接口的內部設備驅動程序相比,所有流接口驅動程序使用同一個接口并調用同一個函數集——流接口函數。流接口驅動程序的主要任務是把外設的使用傳遞給應用程序,這是通過把設備表示為文件系統的一個特殊文件實現的。在流接口驅動程序模型中,應用程序通過文件系統的API函數調用流接口函數,然后由流接口驅動程序調用本機驅動或者通過設備管理器與系統內核或外圍設備打交道。每個流接口驅動程序必須實現一組標準的函數,用來完成標準的文件I/O函數和電源管理函數,這些函數提供給Windows CE.Net操作系統的內核使用。一般,這些函數被稱為流接口驅動程序的DLL接口。

3 驅動程序的開發

在Windows CE嵌入式系統的平臺開發中,設備驅動程序的開發是其很重要的一部分,它們用于驅動嵌入式系統硬件平臺上的各個設備接口。下面針對在項目中完成的幾個主要的設備驅動,來了解一下具體設備驅動程序的開發過程。

3.1 觸摸屏

在嵌入式故障診斷專家系統中,為了方便用戶輸入數據,進行方便的人機交互,觸摸屏是必不可少。觸摸屏按技術原理分為:電熔電感觸摸屏、紅外線觸摸屏、電阻式觸摸屏、矢量壓力傳感式觸摸屏等。S3C2410的觸摸屏采用的是電阻式觸摸屏。S3C2410支持觸摸屏接口,它由一個觸摸屏面板,四個外部晶體管,一個外部電源,通道AIN及通道AIN等組成,觸摸屏接口如圖l所示。主要的設計流程如圖2所示。









在本設計中主要完成A/D的轉換、觸摸屏上觸摸點坐標的顯示、XY軸方向的確定以及有效坐標范圍的確定。整個程序設計包括環境變量初始化、對LCD控制器和串行口的初始化以及觸摸屏控制與顯示程序。觸摸屏的控制與顯示程序包括串口數據傳送、液晶顯示控制、觸摸屏定位、中斷處理程序等。中斷處理程序中又包括A/D轉換、坐標計算、坐標檢測、坐標存儲與顯示。

3.2 鍵盤驅動

3.2.1 功能要求

考慮到設備提供的面積有限,設計5x5矩陣鍵盤滿足實際需求。

1)實現矩陣鍵盤上所定義的各個按鍵功能。①方向鍵:上、下、左、右;②功能鍵:確定、取消、菜單,通信、導航;③數字鍵:0~9;④擴展功能鍵:星號鍵,井號鍵;

2)給應用程序提供接口。其中包括:

①按鍵消息包括WM_KEYD0WN消息,WM_KEYUP消息,WM_CHAR消息。②按鍵延時要求當用戶按下某個按鍵(電源除外),發送第1條WM_KEYDO-WN消息。對于上、下、左、右鍵,按鍵被按下累計400 ms后,發送第2條WM_KEY_DOWN消息,此后每隔100 ms發送l條WM_KEYDOWN消息,直至按鍵被放開。

3.2.2 設計步驟

設計步驟如下:

1)初始化:初始化主要是進行中斷設置,對鍵盤中斷、GPIO端口中斷屏蔽位和掛起位進行設置。

2)獲得掃描碼GetScanCode()函數。

3)獲取虛擬鍵值:通過修改一個影射表,影射表的內容主要是掃描碼與虛擬鍵之間的對應關系。

4)布設管理。

3.3 LCD驅動

LCD主要用于顯示文本和圖形信息。液晶顯示屏具有輕薄、體積小、低功耗、無輻射、平面直角顯示等特點。液晶顯示屏按原理分為STN(超扭曲向列)和TFT(薄膜晶體管)2種。

GDI(圖形設備顯示接口)是一個系統組件,它用來加載和調用設備驅動。在Windows CE中,GDI包含在圖形事件用戶界面中。在Windows CE中,顯示驅動是一個本機驅動,那就意味著有常用的接口,這種接口會給顯示接口提供一組函數集。所以將不會有比較復雜的操作。Win-dows CE顯示驅動只有唯一的一個函數DrvEnableDriver()需要導出,這個函數將會在驅動加載的時候被GDI所調用,同時把函數指針返回給其它的DDI函數。開發的過程中需要注意顯示設備使用的是線性的幀緩沖,這樣由CPU直接控制的顯示內存就需要是連續的。微軟提供了一組C++類叫GPE(圖形原始引擎)。對于圖形的操作都是建立在這個類上。

IntNumModes():返回顯示驅動所支持的顯示模式數量。

SCODE GetModeInfo(GPEMode*pMode,int modeNo):返回具體顯示模式的信息,如顯示寬度和高度,一個像素用幾位來表示。

SCODE SetMode(int modeId,HPALETTE*pPalettetHandle):設置顯示模式。對于不同的顯示設備,我們都需要用這個函數來設置顯示設備的顯示模式。

SetPointerShape():設置光標位圖。

MovePointer():移動光標。

其他的函數接口就不一一介紹,可以參考源代碼。

4 結束語

本文以Windows CE作為目標平臺,實現了在WindowsCE驅動程序設計時,按照先確定要設計的驅動程序類型是本地驅動程序還是流接口驅動程序,再選擇驅動程序開發方法使用分層驅動程序設計。實際運行表明,設計的操作系統的鍵盤驅動程序、觸摸屏、LCD驅動、電源管理的驅動程序開發為界面程序的開發提供了一個穩定良好的環境,大大提高了開發的速度。
本文地址:http://www.qingdxww.cn/thread-41492-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色欧美视频 | 亚洲精品天堂自在久久77 | 九九综合视频 | 日韩亚洲欧美一区 | 国产日韩欧美在线观看不卡 | 国产国产人免费视频成69大陆 | 美日韩在线观看 | 欧美成人tv | 看免费毛片 | 色天天综合色天天碰 | 久久青草国产手机看片福利盒子 | 麻豆久久 | 思思久久99热只有频精品66 | 成人99国产精品一级毛片 | 在线观看国产亚洲 | 香蕉视频在线免费 | 在线观看网址入口2020国产 | 欧美啄木乌成人系列影片bt种子 | 国产三级精品美女三级 | 福利视频自拍 | 欧美亚洲国产另类 | 天堂在线观看免费观看 | 一区二区三区在线免费看 | www.日本在线播放 | 成人免费一区二区三区 | 2022欧美高清中文字幕在线看 | 老司机精品久久 | 欧美乱妇高清视频免欢看关 | 久久国产热这里只有精品 | fc2共享免费视频播放 | 日韩精品午夜视频一区二区三区 | 国产亚洲欧美在线中文无广告 | 99re66热这里都是精品 | 蜜臀视频在线 | 亚洲一区二区黄色 | 色婷婷久久合月综 | 亚洲欧洲精品视频在线观看 | 久久婷婷五综合一区二区 | 成人欧美一区二区三区在线 | 日本在线不卡免费 | 久草热线视频 |