国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于S3C2440A的手持式分析診斷儀電池電量計(jì)模塊

2012-08-08 02:31趙勇飛江志農(nóng)
關(guān)鍵詞:手持式診斷儀驅(qū)動(dòng)程序

趙勇飛,江志農(nóng)

(北京化工大學(xué) 診斷與自愈工程研究中心,北京 100029)

現(xiàn)代的工業(yè)機(jī)械設(shè)備結(jié)構(gòu)越來越復(fù)雜,長(zhǎng)期在高溫、高速狀態(tài)下運(yùn)轉(zhuǎn)。運(yùn)用狀態(tài)監(jiān)測(cè)與故障診斷技術(shù)對(duì)工業(yè)機(jī)械設(shè)備進(jìn)行狀態(tài)分析和故障預(yù)警是保證設(shè)備安全平穩(wěn)運(yùn)行的有效手段,因此,以嵌入式技術(shù)為核心的手持式分析診斷儀在工業(yè)企業(yè)中得到了廣泛使用。手持式儀器為了保證便攜性大都采用鋰電池供電,電池電量的精確測(cè)量可以給儀器的正常使用提供有效的保障。本文采用DS2786B芯片,設(shè)計(jì)并實(shí)現(xiàn)了一款基于S3C2440A處理器的手持式分析診斷儀電池電量計(jì)模塊。

1 硬件設(shè)計(jì)

1.1 S3C2440A處理器簡(jiǎn)介

S3C2440A是Samsung公司推出的由ARM公司設(shè)計(jì)的16/32 bit RISC微處理器,采用的ARM920T內(nèi)核實(shí)現(xiàn)了存儲(chǔ)器管理單元 (MMU),先進(jìn)微控制總線構(gòu)架AMBA總線和哈佛架構(gòu)的高速緩沖體系結(jié)構(gòu)[1]。該結(jié)構(gòu)具有獨(dú)立的16 KB指令高速緩存和16 KB數(shù)據(jù)高速緩存。S3C2440A采用全靜態(tài)設(shè)計(jì),結(jié)構(gòu)簡(jiǎn)潔,為手持設(shè)備和普通應(yīng)用提供了低功耗和高性能的微控制器的解決方案,在嵌入式設(shè)備中得到了廣泛應(yīng)用。

1.2 電池電量計(jì)模塊電路

本文的手持式分析診斷儀電池電量計(jì)模塊采用的是一款由美國(guó)Maxim公司推出的基于開路電壓(OCV)的獨(dú)立式電量計(jì)量芯片——DS2786B。該芯片利用庫侖計(jì)與電池開路電壓的模型組合計(jì)算可充電鋰離子(Li+)電池的可用容量。根據(jù)電池閑置期間的OCV,利用存儲(chǔ)在片上EEPROM中的電池特性和應(yīng)用參數(shù)可以得到電池準(zhǔn)確的電量信息。電池在高速率放電時(shí)無法使用OCV測(cè)量,因此DS2786B使用庫侖計(jì)作為估算相對(duì)電量的第二種方法[2]。DS2786B也可以監(jiān)測(cè)電池電壓、電流和溫度信息。

DS2786B內(nèi)部工作原理框圖如圖1所示。VDD為DS2786B芯片工作電源輸入引腳,輸入范圍為2.5 V~5.5 V;VIN為電池電壓輸入引腳;VSS為芯片地引腳,連接到檢流電阻的電池側(cè);SNS為電流檢測(cè)輸入,連接到檢流電阻的主機(jī)側(cè);VPROG引腳為芯片內(nèi)部EEPROM編程電壓輸入引腳,連接到外部電源編程可以修改EEPROM中儲(chǔ)存的電池模型參數(shù),正常工作期間連接至VSS;SDA為串行數(shù)據(jù)輸入/輸出引腳,SCL為串行時(shí)鐘輸入引腳;AIN0和AIN1為兩個(gè)輔助電壓輸入引腳;VOUT為電壓輸出引腳,給輔助輸入電壓測(cè)量分壓器供電。

圖1 DS2786B內(nèi)部工作原理框圖

本文的電池電量計(jì)模塊由S3C2440A和DS2786B組成,電路圖如圖2所示。電池電量計(jì)模塊工作時(shí),DS2786B芯片通過VIN引腳測(cè)量鋰電池電壓,依據(jù)芯片內(nèi)部EEPROM存儲(chǔ)的電池OCV曲線模型計(jì)算電池的剩余容量。當(dāng)電池高速率放電時(shí),芯片通過檢流電阻RSNS測(cè)量電流并進(jìn)行加權(quán)累積,用庫侖計(jì)計(jì)算電池剩余容量。為了提高電流分辨率精度,本模塊中RSNS的阻值為20 mΩ。S3C2440A通過I2C接口讀取DS2786B計(jì)算出的電池剩余容量數(shù)據(jù)。EP為裸焊盤,連接至VSS。

圖2 電池電量計(jì)模塊電路圖

1.3 電池特性描述

電池電量計(jì)模塊對(duì)電池電量的精確測(cè)量依賴于DS2786B內(nèi)部EEPROM中儲(chǔ)存的OCV電池模型。OCV電池模型是對(duì)開路電壓與電池剩余電量關(guān)系的一種9點(diǎn)分段線性近似,可通過改變EEPROM中容量和電壓斷點(diǎn)寄存器進(jìn)行修改。容量寄存器分辨率為0.5%,容量0固定為0%,容量8固定為100%,不得修改。電壓斷點(diǎn)寄存器分辨率為1.22 mV,每個(gè)電壓斷點(diǎn)需要MSB和LSB兩個(gè)字節(jié)。

本文的手持式分析診斷儀使用容量為4.8 Ah的鋰電池,電池的OCV曲線如圖3所示,依據(jù)9點(diǎn)分段線性近似選取的電池OCV曲線的電壓斷點(diǎn)數(shù)據(jù)及對(duì)應(yīng)寄存器值如表1所示。

圖3 電池OCV曲線

表1 電池OCV曲線電壓斷點(diǎn)數(shù)據(jù)表

2 軟件設(shè)計(jì)

2.1 驅(qū)動(dòng)程序設(shè)計(jì)

本文的手持式分析診斷儀采用的操作系統(tǒng)是微軟公司的32 bit實(shí)時(shí)嵌入式操作系統(tǒng)Windows CE 5.0。Windows CE可以在多種架構(gòu)的CPU上運(yùn)行,內(nèi)核小占用內(nèi)存少,性能穩(wěn)定可靠。DS2786B芯片不是Windows CE系統(tǒng)支持的標(biāo)準(zhǔn)設(shè)備,為了保證電量計(jì)模塊硬件能與操作系統(tǒng)及應(yīng)用程序進(jìn)行數(shù)據(jù)交互,需要使用集成開發(fā)工具Platform Builder 5.0為DS2786B芯片開發(fā)驅(qū)動(dòng)程序并添加到系統(tǒng)內(nèi)核中。

本文為電池電量計(jì)模塊開發(fā)了流接口驅(qū)動(dòng)程序。流接口驅(qū)動(dòng)程序也叫可安裝的驅(qū)動(dòng)程序,是一種用戶模式的動(dòng)態(tài)鏈接庫(DLL),由設(shè)備管理器(device.exe)動(dòng)態(tài)加載管理。流接口適合于任何在邏輯上被認(rèn)為是一個(gè)數(shù)據(jù)源或數(shù)據(jù)存儲(chǔ)的I/O設(shè)備,即任何以產(chǎn)生或者消耗數(shù)據(jù)流作為主要功能的外圍設(shè)備。流接口驅(qū)動(dòng)設(shè)備對(duì)應(yīng)用程序表現(xiàn)為一個(gè)文件,應(yīng)用程序通過文件API使用設(shè)備管理器和流接口驅(qū)動(dòng)與硬件通信。開發(fā)流接口驅(qū)動(dòng)需要實(shí)現(xiàn)一組標(biāo)準(zhǔn)的流接口函數(shù)[3]。下面給出為DS2786B芯片開發(fā)的流接口驅(qū)動(dòng)兩個(gè)主要的函數(shù):

(1)FGA_Init()函數(shù)完成為 S3C2440A 的 I/O 寄存器和I2C寄存器分配虛擬地址并映射到操作系統(tǒng)可以訪問的虛擬地址空間中,并對(duì)寄存器進(jìn)行配置的初始化工作。部分代碼如下:

(2)FGA_Read()函數(shù)完成對(duì) DS2786B芯片采集到的電池電量數(shù)據(jù)讀取。其中的I2C_WRITE()和IIC_READ()是根據(jù)DS2786B的I2C總線接口基本傳輸格式和S3C2440A的I2C總線接口主發(fā)送和主接收模式的操作流程(如圖4所示)編寫的I2C讀寫函數(shù)。代碼如下:

圖4 S3C2440A的I2C總線接口主發(fā)送和主接收模式操作流程圖

DS2786B的流接口驅(qū)動(dòng)程序編寫完成后,使用Platform Builder對(duì)驅(qū)動(dòng)工程進(jìn)行編譯生成驅(qū)動(dòng)的動(dòng)態(tài)鏈接庫fuelgauge.dll文件,并將其集成到系統(tǒng)內(nèi)核NK.bin中。操作系統(tǒng)運(yùn)行時(shí),應(yīng)用程序可以通過文件API調(diào)用驅(qū)動(dòng)程序。

2.2 應(yīng)用程序設(shè)計(jì)及驅(qū)動(dòng)程序測(cè)試

本文使用EVC++集成開發(fā)工具,根據(jù)MFC的消息映射機(jī)制[4]為手持式分析診斷儀開發(fā)了一個(gè)電池電量實(shí)時(shí)顯示程序BatCap.exe。BatCap.exe通過調(diào)用fuelgauge.dll實(shí)時(shí)獲取電池電量數(shù)據(jù),并在系統(tǒng)界面更新和顯示。程序運(yùn)行界面如圖5所示。

圖5 電池電量計(jì)應(yīng)用程序運(yùn)行界面

利用BatCap.exe程序可以對(duì)電池電量計(jì)模塊驅(qū)動(dòng)程序進(jìn)行測(cè)試。測(cè)試步驟如下:(1)根據(jù)BatCap.exe程序界面電池電量的顯示和圖2的電池OCV曲線圖,得出相應(yīng)電池剩余電量百分比所對(duì)應(yīng)電池OCV模型中理想開路電壓值;(2)用萬用表測(cè)得此時(shí)電池的實(shí)際開路電壓值,并將兩電壓值進(jìn)行比較。實(shí)驗(yàn)采用基本精度為±0.1%的UT56數(shù)字萬用表,選取電池剩余電量百分比為 100%(滿電量)、80%、66%(2/3電量)、50%、33%(1/3電量)和 5%(低電量報(bào)警電量)6個(gè)狀態(tài)進(jìn)行測(cè)量,測(cè)試數(shù)據(jù)如表2所示。測(cè)試數(shù)據(jù)表明,電池電量模塊驅(qū)動(dòng)程序測(cè)量電池剩余電量相對(duì)誤差范圍為±0.30%,能精確地測(cè)量電池剩余電量。

表2 電池剩余電量百分比與對(duì)應(yīng)開路電壓數(shù)據(jù)表

本文采用DS2786B芯片,設(shè)計(jì)并實(shí)現(xiàn)了一款基于S3C2440A的手持式分析診斷儀電池電量計(jì)模塊,同時(shí)開發(fā)了電池電量計(jì)模塊在Windows CE 5.0操作系統(tǒng)下的驅(qū)動(dòng)程序和桌面電池剩余電量實(shí)時(shí)顯示的應(yīng)用程序,實(shí)現(xiàn)了完整的電池電量計(jì)軟硬件模塊。該模塊設(shè)計(jì)簡(jiǎn)單、容易實(shí)現(xiàn),對(duì)電池剩余電量測(cè)量準(zhǔn)確,工作穩(wěn)定可靠,在嵌入式便攜設(shè)備中有很好的應(yīng)用前景。

[1]SAMSUNG Inc.S3C2440A 32-bit microprocessor user′s manual[Z].SAMSUNG Inc,2004.

[2]MAXIM.Stand-alone OCV-based fuel gauge DS2786B data sheet[Z].Maxim Integrated Products,2010.

[3]張冬泉,譚南林,蘇樹強(qiáng).Windows CE實(shí)用開發(fā)技術(shù)[M].北京: 電子工業(yè)出版社,2009.

[4]DOUGLAS B.Programming Microsoft Windows CE.NET[M].America: Microsoft Press, 2003.

猜你喜歡
手持式診斷儀驅(qū)動(dòng)程序
5.8GHz ETC手持式收費(fèi)機(jī)在高速公路中的應(yīng)用
日立EUB 8500E彩色超聲診斷儀的維修與升級(jí)
手持式金屬探測(cè)器設(shè)計(jì)
阻止Windows Update更新驅(qū)動(dòng)程序
計(jì)算機(jī)硬件設(shè)備驅(qū)動(dòng)程序分析
一種手持式智能解鎖電子鑰匙
李劍鋒:用技術(shù)進(jìn)步促進(jìn)診斷儀在汽車維修中的應(yīng)用
馬純棟:維修技術(shù)人員應(yīng)提高診斷儀的利用率
蔡鵬:優(yōu)質(zhì)診斷儀為現(xiàn)代汽修打開便利之門
康耐視 DataMan?8050系列手持式讀碼器
宜丰县| 保康县| 新郑市| 庆元县| 屏东县| 巴东县| 门头沟区| 内乡县| 蓝田县| 南平市| 陆丰市| 仁布县| 资溪县| 桓台县| 舞阳县| 平度市| 信丰县| 朝阳市| 长岭县| 台安县| 竹北市| 子洲县| 阳东县| 巨野县| 缙云县| 化隆| 聊城市| 青浦区| 雅江县| 青岛市| 中西区| 桂平市| 翁牛特旗| 琼海市| 定日县| 木兰县| 大新县| 湘乡市| 保康县| 聊城市| 桦川县|