<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于WinCE的II2C驅(qū)動(dòng)程序設(shè)計(jì)

          基于WinCE的II2C驅(qū)動(dòng)程序設(shè)計(jì)

          作者: 時(shí)間:2012-06-02 來(lái)源:網(wǎng)絡(luò) 收藏

          引言

            隨著以計(jì)算機(jī)技術(shù)、通信技術(shù)和軟件技術(shù)為核心的信息技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)在各行業(yè)得到了廣泛的應(yīng)用,極大地推動(dòng)了行業(yè)的滲透性應(yīng)用。嵌入式系統(tǒng)是“以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)”,由嵌入式硬件和嵌入式軟件兩部分組成。嵌入式軟件包括嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件。Microsoft的桌面操作系統(tǒng)已經(jīng)為人們熟悉和使用,嵌入式的操作系統(tǒng) Windows CE.net也日益風(fēng)行。Windows CE.net是Microsoft推出的功能強(qiáng)大的緊湊、高效、可伸縮的32位嵌入式操作系統(tǒng),主要面對(duì)各種各樣的嵌入式系統(tǒng)和產(chǎn)品。該系統(tǒng)所具有的多線程、多任務(wù)、完全搶占式的特點(diǎn)是專為各種具有嚴(yán)格資源限制的硬件系統(tǒng)所設(shè)計(jì)的。為了將操作系統(tǒng)和硬件設(shè)備連接起來(lái),聯(lián)系硬件和軟件的驅(qū)動(dòng)就顯得很重要。

            下面主要針對(duì)三星公司ARM9內(nèi)核的芯片S3C2410進(jìn)行分析,介紹在Windows CE.net系統(tǒng)下進(jìn)行底層設(shè)備驅(qū)動(dòng)開(kāi)發(fā)的方法并提供I2C通信的實(shí)例。

          1 I2C通信協(xié)議及S3C2410芯片介紹

            I2C(Inter Integrated Circuit)總線是1980年由Philips公司推出的。 用兩條線(SDA和SCL)在總線和裝置之間傳遞信息,在微控制器和外部設(shè)備之間進(jìn)行串行通信或在主設(shè)備和從設(shè)備之間進(jìn)行雙向數(shù)據(jù)傳送。兩條通信線通過(guò)上拉電阻被拉升至+5 V。在控制系統(tǒng)中的每個(gè)集成電路可以通過(guò)一個(gè)CMOS緩沖器來(lái)讀每一條線路,也可以通過(guò)一個(gè)柵極開(kāi)路的FET管將每一條線的電平下拉。因此,對(duì)每個(gè)芯片來(lái)說(shuō),每條線既是輸入線,又是輸出線。

            遵從同步串行傳輸協(xié)議,即各位串行(一位接一位)發(fā)送,由時(shí)鐘(clock)線指示讀數(shù)據(jù)(data)線的時(shí)刻。每個(gè)數(shù)據(jù)包前有一個(gè)地址,以指示由哪個(gè)器件來(lái)接收該數(shù)據(jù)。

            S3C2410是一款基于ARM920T的16/32位RISC微處理器,主要用于手持設(shè)備,擁有高性價(jià)比,低功耗等特點(diǎn),也是目前市面上出現(xiàn)較多的嵌入式開(kāi)發(fā)板的處理器之一。芯片擁有16 KB的指令和數(shù)據(jù)緩存器,有存儲(chǔ)管理單元(MMU)、LCD控制器、3個(gè)串口、4路DMA、4個(gè)時(shí)鐘定時(shí)器、8路10位的A/D轉(zhuǎn)換;支持I2C、 I2S、SPI、主從USB等接口以及SD/MMC卡。

            S3C2410微處理器的可以處于下面4種模式下:主接收模式、主發(fā)送模式、從接收模式和從發(fā)送模式。處理器對(duì)I2C進(jìn)行的操作,主要是對(duì)下面的幾個(gè)寄存器進(jìn)行讀/寫:

            ◇ IIC控制寄存器,IICCON(物理地址0X54000000,內(nèi)存映射后的虛擬地址);
            ◇ IIC控制/狀態(tài)寄存器,IICSTAT(物理地址0X54000004);
            ◇ IIC數(shù)據(jù)寄存器,IICDS(物理地址0X54000008);
            ◇ IIC地址寄存器,IICADD(物理地址0X5400000C)。

             本設(shè)計(jì)主要是CPU工作在主模式下與下面的I2C接口設(shè)備進(jìn)行通信。

          2 Windows CE系統(tǒng)驅(qū)動(dòng)特點(diǎn)

            Windows CE.net驅(qū)動(dòng)有兩種模型:本機(jī)設(shè)備和流接口。本機(jī)設(shè)備驅(qū)動(dòng)適于集成到基于Windows CE.net平臺(tái)的設(shè)備。這些設(shè)備是一些硬件所必需的,是由原始設(shè)備制造商創(chuàng)建的,用以驅(qū)動(dòng)如鍵盤、觸摸屏、音頻設(shè)備等,往往在設(shè)備售出后就不會(huì)再更換,如通用LED驅(qū)動(dòng)、電源驅(qū)動(dòng)、鍵盤驅(qū)動(dòng)和顯示驅(qū)動(dòng)等都是本機(jī)設(shè)備驅(qū)動(dòng)。對(duì)于本機(jī)設(shè)備驅(qū)動(dòng)程序,Platform Builder提供了一些驅(qū)動(dòng)程序樣本,目的是為了方便開(kāi)發(fā)人員快速開(kāi)發(fā)出自己的驅(qū)動(dòng)程序。當(dāng)Win CE系統(tǒng)啟動(dòng)時(shí),本地設(shè)備驅(qū)動(dòng)程序?qū)⒈患虞d到系統(tǒng)的內(nèi)存中。本地驅(qū)動(dòng)程序的開(kāi)發(fā)分為分層驅(qū)動(dòng)和單片驅(qū)動(dòng)程序。分層驅(qū)動(dòng)要利用微軟提供的與應(yīng)用程序通信的上層,稱為模塊驅(qū)動(dòng)程序?qū)覯DD(Model Device Driver)。MDD層通過(guò)設(shè)備驅(qū)動(dòng)程序接口DDI(Device Driver Interface)與應(yīng)用程序通信,開(kāi)發(fā)驅(qū)動(dòng)程序通常不修改MDD層,主要關(guān)心與具體硬件相關(guān)的下層,依賴平臺(tái)的設(shè)備驅(qū)動(dòng)程序?qū)覲DD (Platform Dependent Driver), PDD層通過(guò)設(shè)備驅(qū)動(dòng)服務(wù)接口(Device Driver Service Provider Interface)直接管理硬件。流接口設(shè)備驅(qū)動(dòng)程序(指可安裝的啟動(dòng)程序)可以由第三方生產(chǎn)商提供,以支持添加到系統(tǒng)中的設(shè)備。Windows CE下的設(shè)備驅(qū)動(dòng)程序在與應(yīng)用程序相同的保護(hù)級(jí)上工作。當(dāng)系統(tǒng)啟動(dòng)時(shí),大多數(shù)驅(qū)動(dòng)程序是由設(shè)備管理進(jìn)程(DEVICE.EXE)加載的,所有這些驅(qū)動(dòng)程序?qū)⒐蚕硗粋€(gè)進(jìn)程地址空間。

          3 I2C總線底層驅(qū)動(dòng)設(shè)計(jì)

            I2C總線驅(qū)動(dòng)是放在Windows CE操作系統(tǒng)的內(nèi)核下層,位于OEM Adaptation Layer(OAL)層的一個(gè)真正的驅(qū)動(dòng)。

          3.1 初始化I2C中斷和編寫ISR例程

            I2C的通信是通過(guò)操作I2C的寄存器進(jìn)行的。在I2C通信中主要對(duì)上面介紹的4個(gè)寄存器進(jìn)行讀寫。通過(guò)讀寫這些寄存器中的命令狀態(tài)字可以檢測(cè)和控制I2C總線的行為。在Windows CE.net下,首先要在文件oalintr.h添加I2C的中斷號(hào)的宏定義:

            #defineSYSINTR_I2C(SYSINTR_FIRMWARE+19)


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();