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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 手持式終端設(shè)備中電源監(jiān)測(cè)技術(shù)研究與實(shí)現(xiàn)

          手持式終端設(shè)備中電源監(jiān)測(cè)技術(shù)研究與實(shí)現(xiàn)

          作者: 時(shí)間:2012-07-16 來源:網(wǎng)絡(luò) 收藏

          2 系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

          鑒于文中所述的超級(jí)終端系在Linux環(huán)境下運(yùn)行,各個(gè)檢測(cè)環(huán)節(jié)的驅(qū)動(dòng)程序和相關(guān)的實(shí)施策略、編寫方法亦多有特點(diǎn),現(xiàn)詳細(xì)描述如下。

          2.1 Linux驅(qū)動(dòng)程序工作原理

          在Linux內(nèi)核中,設(shè)備驅(qū)動(dòng)程序是作為文件系統(tǒng)的一個(gè)模塊存在的,它對(duì)下負(fù)責(zé)與硬件設(shè)備的交互,對(duì)上通過一個(gè)通用的接口掛接到文件系統(tǒng)上,從而和系統(tǒng)的內(nèi)核等聯(lián)系起來。它是軟件概念和硬件設(shè)備間的一個(gè)抽象層。系統(tǒng)調(diào)用是內(nèi)核和應(yīng)用程序之間的接口,而設(shè)備驅(qū)動(dòng)程序則是內(nèi)核和外設(shè)之間的接口。

          設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序屏蔽了外設(shè)硬件的細(xì)節(jié),從應(yīng)用程序角度來看,對(duì)于外設(shè)的操作方法與普通文件一樣。設(shè)備驅(qū)動(dòng)程序與系統(tǒng)外設(shè)關(guān)系如圖2所示。

          手持式終端設(shè)備中電源監(jiān)測(cè)技術(shù)研究與實(shí)現(xiàn)

          圖2 Linux驅(qū)動(dòng)程序與系統(tǒng)外設(shè)關(guān)系圖

          2.2 字符設(shè)備

          字符設(shè)備是Linux系統(tǒng)中最簡單的設(shè)備,可以像文件一樣訪問。當(dāng)字符設(shè)備初始化的時(shí)候,其驅(qū)動(dòng)程序向Linux核心登記,在chrdevs向量表中增加一個(gè)device_STruct數(shù)據(jù)結(jié)構(gòu)條目。這個(gè)設(shè)備的主設(shè)備標(biāo)識(shí)符用作這個(gè)向量表的索引。一個(gè)設(shè)備的主設(shè)備標(biāo)識(shí)符是固定的。chrdevs向量表中的device_struct數(shù)據(jù)結(jié)構(gòu)包括一個(gè)登記設(shè)備驅(qū)動(dòng)程序名稱的指針和一個(gè)指向一組文件操作的指針。這組文件操作本身位于這個(gè)設(shè)備的字符設(shè)備驅(qū)動(dòng)程序中,并處理一些特定任務(wù)。本電池系統(tǒng)在Linux下的驅(qū)動(dòng)程序就把外設(shè)視為字符設(shè)備,在驅(qū)動(dòng)程序里了打開、讀、寫和關(guān)閉等操作。

          2.3 電池驅(qū)動(dòng)策略

          系統(tǒng)內(nèi)部,I/O設(shè)備的存取使通過一組固定的入口點(diǎn)來進(jìn)行的。這組入口點(diǎn)由特定設(shè)備的設(shè)備驅(qū)動(dòng)程序提供,在數(shù)據(jù)結(jié)構(gòu)file_operatiONs()中定義。該程序定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)為file_operations()的變量adc_fops。

          手持式終端設(shè)備中電源監(jiān)測(cè)技術(shù)研究與實(shí)現(xiàn)

          2.3.1 adc_open函數(shù)

          此函數(shù)打開并初始化設(shè)備以待I/O操作。adc_open()子程序必須對(duì)其做好必要的準(zhǔn)備,如果設(shè)備是獨(dú)占的,adc_open()子程序必須設(shè)置一些標(biāo)志以表示設(shè)備處于忙狀態(tài)。

          2.3.2 adc_read函數(shù)

          對(duì)AD轉(zhuǎn)換器設(shè)備文件進(jìn)行讀操作時(shí)調(diào)用adc_read()子程序。電池監(jiān)測(cè)系統(tǒng)要求實(shí)時(shí)讀取外設(shè)監(jiān)測(cè)點(diǎn)的電壓值。因此,在adc_read()函數(shù)中實(shí)時(shí)觸發(fā)AD轉(zhuǎn)換器開始工作,并且利用程序輪詢方式讀取轉(zhuǎn)換后的數(shù)據(jù)。adc_read()函數(shù)內(nèi)容如下:

          手持式終端設(shè)備中電源監(jiān)測(cè)技術(shù)研究與實(shí)現(xiàn)



          評(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); })();