新型電動汽車鋰電池管理系統(tǒng)的研究與實現(xiàn)----系統(tǒng)的總體設計(二)
3.4單總線系統(tǒng)簡介及溫度測量方法
3.4.1概述
美國Dallas公司近年來推出了單總線技術及相應的集成芯片,它的一系列電池管理芯片能方便地組成分布式管理系統(tǒng),極大地減輕了系統(tǒng)布線,從而提高系統(tǒng)可靠性和抗干擾性,滿足電動車多點測量的要求。
單總線技術是只有一個總線命令者和一個或多個從器件組成的計算機應用系統(tǒng),總線命令者通常是PC機或單片機,系統(tǒng)由硬件配置、處理次序和單總線信號三部分組成。系統(tǒng)按照單總線協(xié)議規(guī)定的時序和信號波形進行初始化、識別器件和進行數(shù)據(jù)交換。
單總線技術可用于環(huán)境狀態(tài)檢測系統(tǒng)、實時氣象檢測系統(tǒng)(自動氣象站)、倉庫監(jiān)控系統(tǒng)、樓宇監(jiān)管系統(tǒng)、停車收費、考勤管理等。應用中主控計算機根據(jù)要求,既可以采用PC機也可以采用單片機。
3.4.2硬件配置
單總線系統(tǒng)定義了一根信號線,總線上的每個器件都能夠在合適的時間驅(qū)動它,相當于把計算機的地址線、數(shù)據(jù)線、控制線合為一根信號線對外進行數(shù)據(jù)交換。為了區(qū)分這些芯片,廠家在生產(chǎn)每個芯片時,都編制了唯一的序列號,通過尋址讀出序列號碼,就能把芯片識別出來。這樣就能使這些器件掛在一根信號線上進行碼分多址、串行分時數(shù)據(jù)交換,組成一個自動測控系統(tǒng)或自動收費系統(tǒng),甚至還可以用單總線組成一個微型局域網(wǎng)。
廠家對每個芯片用激光刻錄一個64位二進制ROM代碼。從最低位開始,前8位是族碼,表示產(chǎn)品的分類編號;接著的48位是一個唯一的序列號;最后8位是前56位的CRC校驗碼。CRC(Cyclic Redundancy Check)稱為循環(huán)冗余碼檢測,是數(shù)據(jù)通信中校驗數(shù)據(jù)傳輸是否正確的一種方法。在使用時,總線命令者讀入ROM中64位二進制碼后,將前56位按CRC多項式(這里是X8+X5+X4+1)計算出CRC值,然后同ROM中高8位的CRC值比較,若相同則表明數(shù)據(jù)傳輸正確,否則要求重傳。48位序列號是一個15位的十進制編碼,這么長的編碼完全可為每個芯片編制一個全世界唯一的號碼,也稱為身份證號,可以被尋址識別出來。此外,芯片內(nèi)還含有收發(fā)控制和電源存儲電路,其示意圖如圖3.5。
這些芯片采用CMOS技術,耗電量都很?。臻e時幾μW,工作時幾mW),故一般不用另附電源。單總線上通常處于高電位(5V左右),每個器件都能在需要時驅(qū)動它。因此,掛在總線上的每個器件必需是漏極開路或者是三態(tài)輸出的,這樣,不工作時不會給總線增加功耗。
單總線的數(shù)據(jù)傳輸有兩種模式,通常以16.3kb/s的速度通信,超速模式可達142kb/s.因此,只能用于對速度要求不高的場合,一般用于100kb/s以下速度的測控或數(shù)據(jù)交換系統(tǒng)中。
以上內(nèi)容是單總線技術協(xié)議所要求的,各種芯片都具備這些基本內(nèi)容,系統(tǒng)首先識別器件號,確認后才進入某種具體芯片功能,如A/D轉(zhuǎn)換器、溫度計等。
單總線同單片機的最簡單接口如圖3.6,
根據(jù)單總線器件手冊,單總線技術作用距離在單片機I/O直接驅(qū)動下可達200m,經(jīng)擴展可達1000m以上,允許掛上百個器件,能滿足一般測控系統(tǒng)要求。
3.4.3處理時序
處理時序是軟件設計的任務。在單總線系統(tǒng)中,軟件設計是技術的關鍵,簡潔的硬件配置是依靠復雜的軟件來支撐的。在PC機作為主控機時,單總線軟件設計基于Dallas公司授權的軟件開發(fā)商提供的成套開發(fā)工具,為軟件開發(fā)應用帶來很大的便利。而用單片機作為主控機時,得由自己依據(jù)單總線協(xié)議,用匯編語言和C語言來編寫全部軟件,給開發(fā)應用增加了一定難度。
處理時序保證數(shù)據(jù)可靠的傳送,任何時刻單總線上只能有一個控制信號或數(shù)據(jù)。每次操作時,一般有以下四個過程:
①初始化;
②傳送ROM命令;
③傳送RAM命令;
④數(shù)據(jù)交換。
單總線上所有處理都從初始化開始。初始化時序由總線命令者發(fā)出的復位脈沖和一個或多個從器件發(fā)出的應答脈沖組成。“應答脈沖”是從器件讓總線命令者知道該器件是在總線上,并已經(jīng)準備好接收命令開始工作。
當總線命令者檢測到某器件的存在,就會發(fā)出傳送ROM功能命令,它用來選擇某個或一些從器件,同他們建立握手信號,以便同它進行具體功能操作。單總線協(xié)議規(guī)定其層次結構如圖3.7.
單總線命令者首先必須發(fā)送7個ROM功能命令中的一個命令:
①讀ROM(總線上只有一個器件時,如讀DS2401的序列號);
②匹配ROM(總線上有多個器件時,尋址某個器件);
③查找ROM(系統(tǒng)首次啟動后,須識別總線上各器件);
④跳過ROM(總線上只有一個器件時,可跳過讀ROM命令直接向器件發(fā)送命令,以節(jié)省時間);
⑤超速匹配ROM(超速模式下尋址某個器件);
⑥超速跳過ROM(超速模式下跳過讀ROM命令);
⑦條件查找ROM(只查找輸入電壓超過設置的報警門限值的某個器件);這些操作在手冊中都有具體的命令碼供編程使用。
成功執(zhí)行上述命令之一后,總線命令者可發(fā)送任何一個可使用的命令來訪問存儲部分和實現(xiàn)控制功能,進行數(shù)據(jù)交換。所有數(shù)據(jù)的讀寫都是從最低位開始的。
3.4.4單總線信號
單總線傳送數(shù)據(jù)或命令是由一系列的時序信號組成的,單總線上共有4種時序信號:1.初始化信號;2.寫0信號;3.寫1信號;4.讀信號。
各器件的應用手冊中對這4種波形參數(shù)(如脈沖上升時間、寬度和間隙等)都作了具體的要求,設計中應保證指令執(zhí)行時間小于或等于時序信號中的最小時間。這里應該嚴格遵循時序關系,并注意當單片機工作頻率不同時,單片機的延時值是不同的。圖3.8給出了常規(guī)模式下這4種波形的示意圖。
3.4.5單總線器件
單總線系統(tǒng)中配置的各種器件是由Dallas等公司提供的專用芯片來實現(xiàn)的。這里簡單介紹我們使用的芯片。
1.數(shù)值溫度計DS18B20
該溫度計采用了與眾不同的原理,它利用溫敏振蕩器的頻率隨溫度變化的關系,通過對振蕩周期的計數(shù)來實現(xiàn)溫度測量的。為了擴大測溫范圍和提高分辨率,使用了一個低溫系數(shù)振蕩器和一個高溫系數(shù)振蕩器分別進行計數(shù),并采用了非線性累加器等電路來改善線性,故DS18B20具有下列良好的特性,而且價格低廉。
①溫度測量范圍:-55~+125℃;
②分辨率:±0.5℃(-10~+85℃時);
③溫度值輸出:9~12位可選擇的二進制數(shù)值量;
④轉(zhuǎn)換時間:750ms(最大值);
⑤用戶可設置報警溫度的上下限;
⑥不需外圍電路,電源可由單總線提供;
2. A/D轉(zhuǎn)換器
在單總線上直接掛上A/D轉(zhuǎn)換器,會使系統(tǒng)的檢測功能大大增強。各種物理量只要通過傳感器變?yōu)殡妷毫浚涂捎葾/D采集后經(jīng)單總線送到計算機進行處理。Dallas公司推出的DS2450就是這樣的A/D轉(zhuǎn)換器,其主要特性為:
①4路模擬輸入通道,兩種模擬輸入量程0~2.56V和0~5.12V;
②未用做輸入的通道可作為輸出通道使用;
③逐次逼近的變換原理,可選擇的8位轉(zhuǎn)換精度;
④響應模擬電壓超門限報警設置;
3.4.6系統(tǒng)中用到的溫度測試方法
CPU的I/O口連接單總線器件,并通過一個上拉電阻連到+5V.需要注意的是單總線器件的布局應該是盡量簡單,并保證匹配電阻出現(xiàn)在單總線拓撲結構的兩端。系統(tǒng)連接圖如圖3.9:
3.5總電流、總電壓測量
在以前系統(tǒng)中,總電流、總電壓測量電路如圖3.10,充電時電流傳感器在采樣電阻R1上的電壓為“+”,經(jīng)過運放后,AD0為“-”,AD1為“+”;放電時電流傳感器在采樣電阻R1上的電壓為“-”,AD0為“+”,AD1為“-”。電壓傳感器在采樣電阻R6上的壓降AD2和AD0、AD1同時送往80C552的A/D口進行A/D轉(zhuǎn)換,再經(jīng)過標度變換即可測得總電路、總電壓。程序中,通過AD0和AD1的值,就可判斷出電池是處于充電狀態(tài)還是放電狀態(tài)。
80C552的A/D轉(zhuǎn)換是10位的,這對于電池的功率強度估計略顯不夠,并且需要調(diào)整A1、A2運放的工作點。在BMS-Ⅲ系統(tǒng)中,總電流、總電壓測量采用16位A/D轉(zhuǎn)換芯片AD976,下面是AD976的主要特性:
- 16位ADC;
- 100kSPS速率;
- 5V供電,±10V輸入電壓范圍;
- 低功耗:100mW;
- 內(nèi)部2.5V或外部參考電壓選擇;
- 高速并行接口;
- 片內(nèi)時鐘。
由于AD976的輸入電壓范圍是±10V,總電流的測量不需要運放進行正負電壓轉(zhuǎn)換,從而免去了調(diào)整運放工作點問題,另外,AD976提供內(nèi)部參考電壓,這給系統(tǒng)調(diào)試也帶來方便,下圖3.11是AD976測量總電壓、電流框圖:
3.6顯示系統(tǒng)
在系統(tǒng)中,顯示采用精電蓬遠公司生產(chǎn)的320×240點陣的液晶顯示模塊DMF-50174,液晶控制器是SED1335.DMF-50174分為兩個區(qū),第一區(qū)對應ASCII字符顯示方式,即一個字符對應一個8×8的點陣,故整個第一區(qū)需要(320×240)/64=1200個字節(jié),而第二區(qū)對應點陣顯示方式,在第二區(qū)中,一個字節(jié)對應8點陣,故第二區(qū)需要(320×240)/8=9600個字節(jié),液晶屏的點陣是和顯示RAM一一對應的,DMF-50174一共需要10800個字節(jié)的顯示RAM.
液晶控制器SED1335由振蕩器、功能邏輯電路、顯示管理電路、字符庫及其管理電路以及產(chǎn)生驅(qū)動時序的時序發(fā)生器組成,振蕩器工作頻率可在1M~10MHz范圍內(nèi)選擇。SED1335能在很高的工作頻率下迅速地解譯MPU發(fā)來地指令代碼,將參數(shù)置入相應的寄存器內(nèi),并觸發(fā)相應的邏輯功能電路運行??刂撇靠梢怨芾?4K顯示RAM ,管理內(nèi)藏的字符發(fā)生器及外擴的字符發(fā)生器。
SED1335將64K顯示RAM可分為以下幾種顯示特區(qū):
1.文本顯示特性
具有此特性的顯示RAM區(qū)專用于文本方式顯示,在該顯示RAM區(qū)中每個字節(jié)的數(shù)據(jù)都認為是字符代碼。SED1335將使用該字符代碼確定字符庫中字符首地址,然后將相應的字模數(shù)據(jù)傳送到液晶顯示模塊上。在液晶上出現(xiàn)該字符的8×8點陣塊。也就是文本顯示RAM的一個字節(jié)對應顯示屏上的8×8點陣。
2.圖形顯示方式
具有此特性的顯示RAM區(qū)專用于圖形方式顯示。在該顯示RAM區(qū)中每個字節(jié)的數(shù)據(jù)直接被送到液晶顯示模塊上,每個位的電平狀態(tài)決定顯示屏上一個點顯示狀態(tài),“1”為顯示,“0”為不顯示。所以圖形顯示RAM的一個字節(jié)對應顯示屏上的8×1點陣。
SED1335中專有一組寄存器來管理這兩種特性的顯示區(qū),SED1335可以單獨顯示一個顯示區(qū),也可把兩個特性的顯示區(qū)通過某種邏輯關系合成顯示,這些顯示方式及特性的設置都是通過軟件指令設置實現(xiàn)的。
SED1335有13條指令,多數(shù)指令帶有參數(shù),一共分為下面四類指令:系統(tǒng)控制指令、顯示操作指令、繪制操作指令及存儲操作指令。圖3.12是80C552和SED1335的接口電路:
在顯示程序上,BMS-Ⅲ設計了以下幾個子程序供其他程序調(diào)用,所有的顯示畫面都是通過調(diào)用它們完成的。
initlcdreg1()初始化液晶顯示區(qū)1;
initlcdreg2()初始化液晶顯示區(qū)2;
dispascii(BYTE x,BYTE y,BYTE c)在第一區(qū)的(x,y)處顯示ASCII值為c的字符;
dispstr(BYTE x,BYTE y,BYTE len,BYTE *str)在第一區(qū)的(x,y)開始處顯示長度為len的ASCII字符串;
disphz(WORD x,WORD y,WORD c)在第二區(qū)的(x,y)處顯示16×16點陣的漢字;
disphzstr(WORD x,WORD y,BYTE len,BYTE *str)在第二區(qū)的(x,y)開始處顯示長度為len的漢字串;
disphz8_16(WORD x,WORD y,WORD c)在第二區(qū)的(x,y)處顯示8×16點陣的字符;
dispbitmap(BYTE x,BYTE y,BYTE lenth,BYTE height,BYTE *str)在第二區(qū)的(x,y)處顯示長度為lenth、高度為height的位圖。
以上16×16點陣漢字是在ucdos下通過一種漢字提取程序得到的字模代碼,由于單片機的內(nèi)存有限,我只是把需要顯示的漢字提取出來,放到一個雙下標數(shù)組中,需要顯示某一漢字時,只需調(diào)用該漢字的下標序號即可。
8×16點陣字符及其它位圖則是通過去掉*.bmp位圖文件的文件頭而得到的。
評論