【正文】
線器件進(jìn)行各種功能操作,使其實現(xiàn)各項功能。主機(jī)發(fā)送復(fù)位命令,如果有從機(jī)(單總線器件)接收到復(fù)位命令,從機(jī)發(fā)送應(yīng)答命令給主機(jī),表示連接成功,隨后進(jìn)行ROM命令。 單總線技術(shù) 單總線簡介1wire 單總線是Maxim 全資子公司Dallas 的一項專有技術(shù)。隨著廣大電池維護(hù)工作者對電池構(gòu)造、工藝、工作原理認(rèn)識的逐步深入,早期的那種純靠測試端電壓來了解電池性能的方法已經(jīng)被淘汰,而依據(jù)在線監(jiān)測法對電池進(jìn)行容量測試的手段還不夠成熟。前種檢測儀功能單一,只能實現(xiàn)蓄電池的溫度電壓的監(jiān)測。根據(jù)電池狀態(tài)能有效地對基站蓄電池管理。承載著這一使命的就是蓄電池。DS2438。該系統(tǒng)提高了電池的可靠性、延長了蓄電池的使用壽命、節(jié)約了維修費(fèi)用。為了保障通信的不間斷,通信基站使用UPS電源就成為了必要。2.蓄電池放電電流的監(jiān)測3.蓄電池溫度監(jiān)測,測量溫度范圍為 -55℃到+125℃,溫度分辨能力為 ℃。要實現(xiàn)上述功能,一般方案比較復(fù)雜,成本太高,不適于當(dāng)前競爭激烈的市場。對移動基站后備電源的監(jiān)測與管理,延長蓄電池使用壽命,節(jié)約維修費(fèi)用起到關(guān)鍵作用。畢業(yè)設(shè)計(論文)題 目一種高性能的蓄電池監(jiān)測管理系統(tǒng)系 別 專 業(yè) 班 級 姓 名 指導(dǎo)教師 下達(dá)日期 2010 年 2 月 26 日設(shè)計時間自2010年 3 月 1 日 至 2010 年7月 3 日1畢業(yè)設(shè)計(論文)任務(wù)書一、設(shè)計題目:題目名稱 一種高性能的蓄電池監(jiān)測管理系統(tǒng) 題目來源 自擬 二、目的和意義基于現(xiàn)場總線技術(shù)和蓄電池智能監(jiān)測專用芯片DS2438實現(xiàn)蓄電池管理系統(tǒng)。移動通訊基站蓄電池用量較大,每個基站至少使用一組48V蓄電池組,且移動基站分布分散,工作環(huán)境惡劣,這就造成對移動基站蓄電池維護(hù)量很大,一塊電池出現(xiàn)故障會使整組電池癱瘓。國外推出了用于監(jiān)測蓄電池的智能型專用芯片,如美國的DALLAS 系列芯片,它們具有集成度高、價格低廉(只十元人民幣一片)和功能很強(qiáng)的優(yōu)勢。4.可測量電池Ah數(shù)。而蓄電池的工作狀態(tài)將直接影響UPS系統(tǒng)的穩(wěn)定性,所以必須對電池組的工作狀態(tài)進(jìn)行實時監(jiān)測。關(guān)鍵詞:蓄電池;監(jiān)測系統(tǒng);DS2438;單總線;移動基站A high Performance Battery Monitoring And Management SystemABSTRACTBeen called the information age, the twentyfirst century, the rapid development of electronic information science and information transmission, munication is particularly order to protect the ongoing munication, munication base station bees the necessary UPS power battery status will directly affect the work of the UPS system stability, so must the working status of the battery pack article will use the pany39。1wire。據(jù)統(tǒng)計,近八成移動基站掉站事故由蓄電池故障造成,因此有效地對蓄電池進(jìn)行監(jiān)控,及早的發(fā)現(xiàn)蓄電池故障是保障通信安全的關(guān)鍵。第1章 概論 蓄電池檢測技術(shù) 蓄電池的監(jiān)測蓄電池作為備用電源在通信系統(tǒng)中起著極其重要的作用,在交流電失電或其它事故狀態(tài)下蓄電池組一旦出現(xiàn)問題,供電系統(tǒng)將面臨癱瘓,造成設(shè)備停運(yùn)及其它重大運(yùn)行事故。智能巡檢儀增加了對電池容量的檢測。我國現(xiàn)行的蓄電池的檢測,主要是通過放電檢測的手段來進(jìn)行,但由于風(fēng)險大,時間過長、工作量大、不宜作為日常檢測的檢測手段,只宜作為電池組以一年一度或者三年一度的核對放電測試。與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式,如SPI/I2C/MICROWIRE 不同,它采用單根信號線,既傳輸時鐘,又傳輸數(shù)據(jù)。ROM命令:單總線器件出廠前被賦予了唯一的ID識別號,ROM命令就是對此ID號進(jìn)行的操作。 功能命令集各功能命令使用流程如下: 各標(biāo)志位讀寫主機(jī)模式數(shù)據(jù)(地位在前)功能介紹TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TX4Eh00h發(fā)出寫SP 00h命令TX0Fh設(shè)置ICA, CA, EE, AD位狀態(tài)TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXBEh00h發(fā)出讀暫存器SP 00h命令RX9 data bytes讀暫存器數(shù)據(jù)和校驗位TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TX48h00h發(fā)出復(fù)制暫存器SP 00h命令RX讀子機(jī)當(dāng)復(fù)制暫存器完成時,DS2438返回“1”TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖,完成、讀取溫度電壓主機(jī)模式數(shù)據(jù)(地位在前)功能介紹TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TX44h發(fā)出轉(zhuǎn)換溫度命令,讀子機(jī)TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXB4h發(fā)出轉(zhuǎn)換溫度命令,讀子機(jī)TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXBEh00h發(fā)出重讀存儲頁00h命令TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXBEh00h發(fā)出讀暫存器SP 00h命令RX9 data bytes讀取暫存器數(shù)據(jù)和校驗位。TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXB8h07h發(fā)出重讀暫存器SP 07h命令TX復(fù)位復(fù)位脈沖RX應(yīng)答應(yīng)答脈沖TXCCh跳過ROM命令TXB8h07h發(fā)出讀暫存器SP 07h命令RX9 data bytes讀取暫存器數(shù)據(jù)和校驗位。 程序編譯環(huán)境μ’nSP? 集成開發(fā)環(huán)境,它集程序的編輯、編譯、鏈接、調(diào)試以及仿真等功能為一體。這里設(shè)計制作了檢測電池組中落后單節(jié)和檢測蓄電池狀態(tài)的系統(tǒng)。具體要求如下: (1)蓄電池端電壓42V~54V,測量單節(jié)電池電壓。 系統(tǒng)總體設(shè)計方案分析設(shè)計要求,將系統(tǒng)分為三大模塊,采集模塊、數(shù)據(jù)處理模塊、顯示報警模塊。電池采樣數(shù)據(jù)送至單片機(jī)處理,處理結(jié)果通過液晶顯示,當(dāng)檢測到單節(jié)電池異常,通過蜂鳴器報警。按鍵主要用在ID識別部分,可 以與采樣板上的開光組合應(yīng)用,實現(xiàn)采樣器件與電池物理位置的對應(yīng)。光耦解決蓄電池不共地,收發(fā)信號不能在單根總線上傳輸?shù)膯栴}。顯示DS2438電壓采樣目標(biāo)電池單片機(jī)光耦低通濾波報警開關(guān)5V供電各部分硬件電路實現(xiàn)如下各節(jié)論述。 5V DS2438供電電路單節(jié)蓄電池電壓為12V,供給DS2438器件電壓需要5V電,采用7805穩(wěn)壓器給器件供電。設(shè)計采用Rsens=。電路圖中的R_26為DQ總線的上拉電阻。不需要進(jìn)行ID讀取時,按鍵閉合,循環(huán)檢測單節(jié)電池。,表明該蓄電池需充電或替換。當(dāng)電池溫度高于五十度或單節(jié)電壓低于預(yù)置電壓值()屏幕顯示警告,并發(fā)出蜂鳴報警,提醒工作人員進(jìn)行電池的更換。 (3)本系統(tǒng)采用μ’nSP? 集成開發(fā)環(huán)境,它集程序的編輯、編譯、鏈接、調(diào)試以及仿真等功能為一體。但是由于時間以及經(jīng)驗的限制,研究中還存在諸多不足,該系統(tǒng)還有待進(jìn)一步完善和深入研究: (1)進(jìn)一步學(xué)習(xí)單總線技術(shù)理論,掌握單總線程序設(shè)計的思想和方法,在今后的工作中能將其更靈活地運(yùn)用。int IDtem。float uiTemperature,uiVoltage,uiCurrent,uiICA,uiCCA,uiDCA。define Ah 3000 //單節(jié)電池容量define Vsingle //單節(jié)電池能量不均衡電壓 //========================================================// 語法格式: int main(void)// 實現(xiàn)功能: 工程的主函數(shù)//========================================================int main(void){ unsigned int i。*P_IOA_Data = 0x0000。 *P_TimerA_Ctrl=C_TMA1_4KHz。 //調(diào)用初始化程序,包括進(jìn)行端口初始化和LCD初始化 while(skip=0) { inidisply()。 switch(key) {case 0x0001:if(num3)num=1。 case 0x0004:for(i=0。}break。 }}//========================================================//選擇num把現(xiàn)行ID賦予IDtem全局變量//========================================================void ID_use(){ int i。break。break。break。break。}//========================================================//名稱:報警子程序 帶有showstring()程序顯示哪節(jié)電池溫度或電壓出現(xiàn)問題 脈沖喇叭//1 溫度報警 2單節(jié)電池不均衡報警//========================================================int Baojing(int lei){ switch(lei) {case 1: while(uiTemperature50){Show_OT()。Bell()。return。 //調(diào)用初始化程序,包括進(jìn)行端口初始化和LCD初始化 Write_Command(0x0080)。 Write_Data(39。v39。)。)。Write_Data(39。i39。)。Write_Data(39。k39。)。Write_Command(0x00c0)。Write_Data(39。239。)。Write_Data(39。_39。)。Write_Data(39。_39。)。Write_Data(39。_39。)。unsigned int uiResidue。Tint = uiResidue。 TDec=uiTemperature。 uiResidue = TDec%1000。TDec = uiResidue。uiVShi = int(Vint)/10。 VDec=VDec*100。uiVBai_d=uiResidue。uiCShi=Cint/10。 //電流小數(shù)部分 uiCShi_d uiCBai_d uiCQian_d uiCWan_d CDec=CDec*10000。 uiCBai_d=CDec/100。//顯示 Write_Command(0x0080)。 //根據(jù)data顯示,當(dāng)data[5]則顯示為5 Write_Data(39。v39。 39。)。Write_Data(39。Write_Data(Data[uiTShi])。)。Write_Data(Data[uiTWan_d])。)。.39。Write_Data(Data[uiTB])。Write_Data(Data[uiCBai])。.39。 Write_Data(Data[uiCQian_d])。}//========================================================// 語法格式: void Show_OT(void)// 實現(xiàn)功能: 顯示提示符 Temperature is://========================================================oid Show_OV(void){ unsigned int Data[10] = {0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039}。)。Write_Data(39。o39。)。 Write_Data(39。g39。)。Write_Data(39。Write_Data(39。s39。)。)。Write_Data(39。R39。)。Write_Data(39。v39。)。 Write_Data(39。 39。)。)。Write_Command(0x0001)。 //設(shè)置顯示地址 Write_Data(39。e39。)。Write_Data(39。r39。)。Write_Data(39。r39。)。)。Write_Data(3