色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Windows CE. net外部中斷程序驅動的開發方法

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-23 08:11 ? 次閱讀

引 言

AD7854是一款高速、低功耗的12位并行接口模數轉換芯片,其工作電壓范圍是3~5 V,采樣頻率最高為200 kHz。由于AD7854在正常的工作模式下功耗為5.4mW,在節電模式下功耗為3.6μW,因此在便攜式設備中得到廣泛的應用。當前,在先進的便攜設備中,大量引進嵌入式操作系統對系統資源進行管理,因此開發硬件設備的驅動成為構建便攜式系統的一個重要工作。S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨立的16KB指令Cache和16KB數據Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2個USB主機,1個USB設備,SD主機和MMC接口,2路SPI。S3C2410處理器最高可運行在203MHz。核心板的尺寸僅相當于名片的2/3大小,尺寸如此小巧的嵌入式核心板是國內首創。開發商可以充分發揮想象力,設計制造出小體積,高性能的嵌入式應用產品

1 AD7854與S3C2410的擴展設計

為確保AD7854在S3C2410的控制下完成采樣和模數轉換,必須合理地設計接口電路。AD7854為12位并行模數轉換芯片,S3C2410是32位微處理器,因此,一次讀操作即可完成AD7854轉換結果的讀取。但是,對于AD7854校準寄存器的讀操作以及對各寄存器的寫操作都需要2個讀或寫操作。

為了提高S3C2410的驅動能力,在S3C2410與外設之間加入了一個雙向數據緩沖器74LVCl6245。設計的A/D轉換接口電路原理如圖1所示。

Windows CE. net外部中斷程序驅動的開發方法

2 WindOWS CE.Ret設備驅動簡介

Windows CE.net設備驅動模型主要有兩種:本機設備驅動與流接口設備驅動。不同的驅動模型只能通過它們的軟件接口來區別,而不是它們適用的設備。驅動程序模型決定其輸出的軟件接口。

本機設備驅動程序適于集成到基于Windows CE.net平臺的設備,如通用LED驅動電源驅動等。每種本機設備驅動程序都有精確的要求和特殊的目的,微軟提供了定制接口的方式來支持內部設備驅動程序。一般來說,只有OEM開發商對本機設備驅動程序感興趣,而獨立硬件銷售商只開發附加的硬件驅動程序。

流接口設備驅動程序是一般類型的設備驅動程序。它表現為用戶一級的動態DLL,動態鏈接庫英文為DLL,是Dynamic Link Library 的縮寫形式,DLL 是一個包含可由多個程序同時使用的代碼和數據的庫,DLL不是可執行文件。動態鏈接提供了一種方法,使進程可以調用不屬于其可執行代碼的函數。函數的可執行代碼位于一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接并與使用它們的進程分開存儲的函數。DLL 還有助于共享數據和資源。多個應用程序可同時訪問內存中單個DLL 副本的內容。DLL 是一個包含可由多個程序同時使用的代碼和數據的庫。用來導出一組固定的函數,稱為“流接口函數”。應用程序可以通過文件系統接口函數(API)訪問這些接口函數,從而調用驅動程序,驅動硬件設備進行工作。在流接口驅動程序中,驅動程序負責把外設抽象成一個文件,而應用程序則使用操作系統提供的API對外設進行訪問。流接口驅動程序幾乎支持任何類型的、可以連接到基于Windows CE.net平臺的外部設備,例如打印機、調制解調器等。流接口設備驅動的體系結構如圖2所示。

Windows CE. net外部中斷程序驅動的開發方法

3 AD7854驅動設計與實現

由圖l所示的硬件電路可知,AD7854被直接映射到系統的內存,它的物理地址是Oxl0000000,因此,該設備的驅動程序可以選用單片式流接口設備驅動模型。同時S3C24lO采用中斷的方式對AD7854的轉換結果進行讀取并啟動下一次的轉換。因此,開發A/D驅動主要由兩個部分組成:內核部分和流接口函數部分。內核部分主要完成中斷的處理,包括物理中斷到邏輯中斷的轉換,中斷的使能、禁止,喚醒中斷服務線程等工作。

3.1 AD7854中斷在WindOWS CE中的處理

內核部分主要是修改Windows CE.net中與中斷相關的內核文件,完成物理中斷到邏輯中斷的映射。由圖1可知,AD7854占用外部中斷0(EINTO)。為了讓操作系統能夠處理外部中斷O,必須對其關于中斷處理的內核代碼進行修改。主要修改的內核文件如下:

①修改%WIN(2ER()0T%\PLATFORM\SMDK2410\INC\oalintr.h文件;

②修改%WINCEROOT%\PLATFORM\smdk2410\kernel\hal\arm\armint.c文件中的OEMInterrupt Han—dler()函數;

③在中斷服務線程(IST)中調用InterruptEnable()、InterruptDisable()、InterruptDone()等函數對中斷進行操作時,系統內核調用OEMInterTuptEnable()、()EMInter—ruptDisable()、()EMInterruptDone(),對中斷寄存器進行設置,完成中斷允許、中斷禁止和中斷完成操作。對這3個OEM函數的修改,是通過修改%WINCERO0T%\PLATFORM\smdk2410\kernel\hal\cfw.c文件完成的。

內核文件的修改可以參照內核文件函數的具體實現來完成。經過對Windows CE.net內核文件的修改,完成了物理中斷EINTO到邏輯中斷號SYSINTR_ADC的映射。

3.2 AD7854流接口函數的實現

流接口驅動程序實質上就是一個動態鏈接庫,在Windows CE.net中,流接口函數一共有10個。這些流接口函數并不需要每個都要有具體的實現代碼,關鍵是要根據設備的具體工作流程來完成相應的接口函數。本設計中開發的AD7854的驅動程序主要實現的接口函數為:XXX_Deinit、XXX_Init、XXX_Open、XXX_Close、XXX_Read、XXX_Write。XXX為設備文件名的前綴,由于開發的是模數轉換芯片的驅動,故在此將該前綴命名為“ADC”。以下具體介紹在Platform Builder開發環境下AD7854驅動的開發過程。

首先,在Platform Builder4.2開發環境下為AD7854的驅動建立一個WCE Dynamic—Link Library工程,隨后就可以在該工程下完成各流接口函數。

(1)AD7854的數據結構

在編寫流接口函數之前,應該定義設備的數據結構,這是對現實設備的抽象。根據AD7854在操作中所涉及的CPU相關存儲器以及AD7854內部操作的需要,現將AD7854抽象成以下結構類型:

Windows CE. net外部中斷程序驅動的開發方法

AD7854的數據結構可以看作是與AD7854相關的邏輯體。通過WindowsCE.net提供的內存映射函數VirtualAl—loe()和VirtualCopy(),可以將邏輯體與具體的物理地址關聯起來,完成對物理存儲器的設置。

(2)流接口函數的開發

流接口函數為應用程序操作硬件提供統一的接口,完成對硬件的抽象工作。一個流接口函數實質上就是提供某一特定功能的模塊,根據硬件的不同,各接口函數實現的內容千差萬別。有的接口函數需要很多的代碼,有的就是一個空的函數體。本文結合硬件具體介紹其實現過程:

①PADC_CONTEXT ADC_Init(LPCTSTR pCon—text,LPCVOID lpvBusContext)。該接口函數在驅動程序加載時,由設備管理器調用。在該函數中主要完成硬件初始化工作。

ADC_Init函數需按照一定的順序完成驅動的初始化工作,其內部函數的調用順序如圖3所示。ADC_Init調用成功以后,將返回AD7854結構體的首地址——pADC,同時表明該驅動加載成功。

②DWORD ADC_Read(PADC_CONTEXT pADC,PUCHAR pBuffer,DWORD Count)。該接口函數主要完成對AD7854.的讀操作,代碼是對操作的抽象。為了更好地體現開發過程,首先介紹一下AD7854的讀操作過程。AD7854一次輸出16位數據,分成2次輸出(高8位、低8位)。在讀寫時序中,除了通過對CPU的存儲寄存器的相關配置以滿足時間上的要求外,另一個重要的地方就是注意滿足高字節使能輸出引腳(HBEN)的需要。具體是在輸出高字節時,該引腳應輸入高電平。AD7854輸出一次16位數據時有兩種輸出方式:其一就是高8位先輸出,然后是低8位輸出(與此相對應,HBEN引腳在AD7854讀時序中第1個字節為高電平,第2個字節為低電平);其二剛好相反。

由圖3可知,HBEN的電平由S3C2410的地址線O確定,因此在一個AD7854的讀時序中地址線O應改變一次自己的狀態。同時AD7854的片選與LnGCS2相連,這也就構成了AD7854的兩個讀物理地址:0x1000 0000和0x1000 0001。AD7854的讀周期時序如圖4所示。

Windows CE. net外部中斷程序驅動的開發方法

Windows CE. net外部中斷程序驅動的開發方法

由此可開發AD7854讀接口函數,具體代碼如下:

Windows CE. net外部中斷程序驅動的開發方法

寫接口函數DWORD ADC_Write(PADC_CON—TEXT pADC,PUCHAR pBuffer,DWORD Count),主要完成對。AD7854的寫操作。AD7854的寫操作過程和讀操作很相似,代碼的實現過程也基本相同,在此就不再贅述。

編寫導出函數和注冊表文件,編譯生成d11文件,通過PB將其制作成CEC文件,在定制操作系統時可以將驅動程序加入操作系統中。

4 結 論

Windows CE .NET 是 Windows CE 3.0 的后續產品,它不僅是一個功能強勁的實時嵌入式操作系統,而且提供了眾多強大工具,允許用戶利用它快速開發出下一代的智能化小體積連接設備。借助于完善的操作系統功能和開發工具, Windows CE .NET 為開發人員提供了構建、調試和部署基于 Windows CE.NET 的定制設備所需的一切特性。平臺開發工具 Platform Builder 是一個完全集成的開發環境( IDE ),并且包括一個軟件開發工具包( SDK )導出工具。 Windows CE .NET 支持 Microsoft eMbedded Visual C++? 和 Microsoft Visual Studio? .NET ,為面向 Microsoft .NET Compact Framework ( Microsoft .NET Framework 的一個子集)的 Web 服務和應用程序開發提供了一個完整的開發環境。利用這些工具,開發人員可以迅速開發出能夠在最新硬件上運行各種應用程序的智能化設計。Windows CE.net是多任務實時嵌入式操作系統,具有良好的圖形界面,實時性良好、功能強大,適用于工業控制領域。本文以AD7854的驅動開發為例,闡述了Windows CE.net對外部中斷的處理過程和流接口驅動的開發方法。該驅動程序已成功應用在所開發的作業環境監測與評價系統中,在微氣候各指標的監測方面應用效果良好。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    50967

    瀏覽量

    424961
  • 嵌入式
    +關注

    關注

    5087

    文章

    19149

    瀏覽量

    306231
  • 操作系統
    +關注

    關注

    37

    文章

    6856

    瀏覽量

    123460
收藏 人收藏

    評論

    相關推薦

    Windows CE.Net下基于流驅動的AD驅動設計與實現

    驅動程序是連接操作系統和硬件的橋梁。文中作者主要討論在Windows CE.Net 操作系統下,如何設計實現S3C2410芯片具有AD接口的驅動程序;詳細介紹
    發表于 08-25 09:18 ?19次下載

    Windows CE.NET平臺流接口USB驅動的設計

    在介紹了USB 系統的軟件結構的基礎上,詳細介紹了如何在Windows CE.NET 平臺上進行流接口的USB 驅動程序開發
    發表于 09-01 11:32 ?3次下載

    Windows CE.NET 下ADC驅動開發設計

    本文利用工具Platform Builder、以ADC 驅動程序為例,探討Windows CE.net 下的驅動程序開發,以及向平臺添加AD
    發表于 01-06 16:13 ?12次下載

    Windows CE.NET的定制和裁剪

    介紹了微軟嵌入式操作系統Windows CE. NET的體系結構。論述了Windows CE. NET
    發表于 06-27 10:51 ?41次下載
    <b class='flag-5'>Windows</b> <b class='flag-5'>CE.NET</b>的定制和裁剪

    基于S3C2410的Windows CE驅動開發

    文中闡述了設備驅動程序的概念和結構,介紹了Windows CE. NET 環境下開發驅動程序的特
    發表于 06-27 16:17 ?54次下載
    基于S3C2410的<b class='flag-5'>Windows</b> <b class='flag-5'>CE</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>

    基于Windows CE.NET數控系統的插補控制

    主要討論了Windows CE.NET下的中斷機制與驅動程序開發,重點闡述了定時器驅動程序
    發表于 06-27 16:20 ?34次下載
    基于<b class='flag-5'>Windows</b> <b class='flag-5'>CE.NET</b>數控系統的插補控制

    Windows CE NET的定制和裁剪

    本文介紹了 微軟嵌入式操作系統 W indows CE.NET的體系結構。論述了 Windows CE. NET的創建過程 包括系統內核的定制和裁剪以及如何向定制平臺添加自己的特色 。
    發表于 04-18 10:02 ?0次下載

    Windows CEnet設備驅動程序開發研究

    本文介紹了Windows CE. net的平臺結構 闡述了Windows CE驅動的系統結構 對
    發表于 04-18 10:02 ?0次下載

    Windows CENET中斷架構分析和高速AD驅動程序開發

    本文分析了Windows CE.NET嵌入式實時系統的中斷架構和流式驅動架構 及其設備驅動程序開發
    發表于 04-18 10:02 ?0次下載

    Windows CE驅動程序開發

    不同的嵌入式系統硬件平臺,往往有其獨有或特殊的設備,而這些設備的Windows CE驅動程序設計問題是開發人員經常遇到的。本文著重闡述了Window
    發表于 04-18 10:13 ?0次下載

    Windows CE設備驅動程序開發

    本文介紹了 Windows CE 體系結構和開發 wince 設備驅動程序的過程,闡述了設備驅動程序模型、設備
    發表于 04-18 10:13 ?0次下載

    基于S3C2410的Windows CE驅動開發

    文中闡述了設備驅動程序的概念和結構 介紹了 Windows CE. NET 環境下開發驅動程序
    發表于 04-18 10:46 ?0次下載

    基于Windows CE.NET的設備驅動程序開發

    本文闡述了設備驅動程序的概念和結構 介紹了 Windows CE. NET環境下開發驅動程序的特
    發表于 04-18 11:28 ?0次下載

    基于WINDOWS CE的開放式數控系統設備驅動程序開發

    本文討論了基于Windows CE. NET的開放式數控系統的一項關鍵技術。首先分析了 WindowsCE.NET的系統結構并詳細闡述其中斷
    發表于 04-18 11:28 ?0次下載

    Windows CE.Net系統定制與驅動開發

    本文檔內容介紹了Windows CE.Net系統定制與驅動開發,包含了操作步驟及操作指南。
    發表于 02-05 16:00 ?10次下載
    主站蜘蛛池模板: 亚洲理论在线a中文字幕| 一级am片欧美| 99热在线免费观看| 久久久国产精品免费A片3D| 亚洲视频在线观看免费| 红尘影院手机在线观看| 亚洲欧美精品无码大片在线观看| 国产全部视频列表支持手机| 乌克兰女人与动ZOZO| 国产免费看片| 亚洲视频免费看| 久久精品一区二区三区资源网 | 美女脱衣服搞鸡| 最近最新的日本字幕MV| 美女诱点第6季| 扒开校花粉嫩小泬喷潮漫画| 肉动漫无修3D在线观看| 色即是空之甜性涩爱| 攻把受做哭边走边肉楼梯PLAY| 手机在线免费| 娇小XXXXX第一次出血| 综合色就爱涩涩涩综合婷婷| 男女无遮挡吃奶gift动态图| 俄罗斯1819y0u| 亚洲精品久久无码AV片WWW| 麻豆啊传媒app黄版破解免费 | 欧美另类jizzhd| 叮当成人社区| 亚洲高清在线视频| 老师你下面好紧夹死了| 被男按摩师添的好爽在线直播| 无码AV动漫精品一区二区免费| 国产视频www| 伊人影院综合在线| 翘臀后进美女白嫩屁股视频| 国产精品三级在线观看| 有码在线播放| 少爷不要别揉了高H| 久久婷婷电影网| 东北真实仑乱| 伊人在线高清视频|