• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 電源與新能源 > 設計應用 > 手持式終端設備中電源監測技術研究與實現

    手持式終端設備中電源監測技術研究與實現

    作者: 時間:2012-07-16 來源:網絡 收藏

    2 系統驅動程序設計

    鑒于文中所述的超級終端系在Linux環境下運行,各個檢測環節的驅動程序和相關的實施策略、編寫方法亦多有特點,現詳細描述如下。

    2.1 Linux驅動程序工作原理

    在Linux內核中,設備驅動程序是作為文件系統的一個模塊存在的,它對下負責與硬件設備的交互,對上通過一個通用的接口掛接到文件系統上,從而和系統的內核等聯系起來。它是軟件概念和硬件設備間的一個抽象層。系統調用是內核和應用程序之間的接口,而設備驅動程序則是內核和外設之間的接口。

    設備驅動程序為應用程序屏蔽了外設硬件的細節,從應用程序角度來看,對于外設的操作方法與普通文件一樣。設備驅動程序與系統外設關系如圖2所示。

    手持式終端設備中電源監測技術研究與實現

    圖2 Linux驅動程序與系統外設關系圖

    2.2 字符設備

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

    2.3 電池驅動策略

    系統內部,I/O設備的存取使通過一組固定的入口點來進行的。這組入口點由特定設備的設備驅動程序提供,在數據結構file_operatiONs()中定義。該程序定義了一個數據結構為file_operations()的變量adc_fops。

    手持式終端設備中電源監測技術研究與實現

    2.3.1 adc_open函數

    此函數打開并初始化設備以待I/O操作。adc_open()子程序必須對其做好必要的準備,如果設備是獨占的,adc_open()子程序必須設置一些標志以表示設備處于忙狀態。

    2.3.2 adc_read函數

    對AD轉換器設備文件進行讀操作時調用adc_read()子程序。電池監測系統要求實時讀取外設監測點的電壓值。因此,在adc_read()函數中實時觸發AD轉換器開始工作,并且利用程序輪詢方式讀取轉換后的數據。adc_read()函數內容如下:

    手持式終端設備中電源監測技術研究與實現



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 通化市| 宜良县| 通河县| 庆元县| 广水市| 高碑店市| 高淳县| 顺昌县| 东宁县| 荥阳市| 锦州市| 平武县| 梁平县| 西丰县| 东台市| 饶河县| 大石桥市| 朔州市| 新竹县| 台安县| 沐川县| 厦门市| 巴林右旗| 乌鲁木齐县| 通辽市| 弥渡县| 台南县| 乌鲁木齐市| 峨边| 黑龙江省| 麻栗坡县| 昂仁县| 汉中市| 昌宁县| 当雄县| 龙口市| 东平县| 霍山县| 井冈山市| 同仁县| 德惠市|