X9241在蓄電池監(jiān)控單元中的應(yīng)用
X9241在蓄電池監(jiān)控單元中的應(yīng)用
本文引用地址:http://m.butianyuan.cn/article/8685.htm在智能化儀器的開(kāi)發(fā)過(guò)程中,如何實(shí)現(xiàn)測(cè)量量程的在線(xiàn)轉(zhuǎn)換,一直是人們所關(guān)注的問(wèn)題。通常的轉(zhuǎn)換方法是采用程控增益放大器,或者是多路輸入的形式,這必然以增加電路的復(fù)雜性和降低可靠性作為代價(jià)。因此,本設(shè)計(jì)方案的蓄電池監(jiān)控單元中采用了數(shù)字電位計(jì)X9241來(lái)實(shí)現(xiàn)測(cè)量量程的在線(xiàn)轉(zhuǎn)換。
數(shù)字電位計(jì)X9241
X9241的基本功能
XICOR公司的X9241內(nèi)部集成了四個(gè)非易失性E2POT。其中每一個(gè)E2POT包含有63個(gè)電阻單元,一個(gè)滑動(dòng)端計(jì)數(shù)寄存器(WCR)和四個(gè)可以由用戶(hù)讀出和寫(xiě)入的8位數(shù)據(jù)寄存器?;瑒?dòng)端計(jì)數(shù)寄存器的內(nèi)容用來(lái)控制滑動(dòng)端在電阻陣列中的位置,并且可以和數(shù)據(jù)寄存器之間進(jìn)行雙向的數(shù)據(jù)傳輸。
X9241的通信規(guī)約與工作時(shí)序
X9241支持雙總線(xiàn)的定向規(guī)約,這一規(guī)約規(guī)定了向總線(xiàn)傳送數(shù)據(jù)時(shí)為發(fā)送器,而從總線(xiàn)接收數(shù)據(jù)時(shí)為接收器,在這一過(guò)程中,控制傳輸?shù)钠骷侵鳈C(jī),而被控制的器件則為從機(jī)。在本方案中,啟動(dòng)數(shù)據(jù)的傳輸以及提供時(shí)鐘等功能都由單片機(jī)提供,因此在這里X9241是一個(gè)從屬器件。
對(duì)X9241進(jìn)行一次成功的操作必須包括以下幾個(gè)步驟:
起始條件:當(dāng)SCL為高時(shí)SDA由高至低的跳變;
應(yīng)答:在主從器件的總線(xiàn)間提供一個(gè)握手信號(hào),以表示數(shù)據(jù)接收成功。單片機(jī)在發(fā)送8位數(shù)據(jù)以后釋放SDA總線(xiàn)(置SDA為1),同時(shí)X9241將在第九個(gè)時(shí)鐘周期內(nèi)把SDA線(xiàn)拉低,作為成功的接收了前8位數(shù)據(jù)的響應(yīng);
終止條件:當(dāng)SCL為高時(shí)SDA由低至高的跳變。 具體的工作時(shí)序如圖1所示。
圖1 X9241的工作時(shí)序
X9241與AT89C51接口
由于常用的AT89C51系列處理器沒(méi)有I2C接口部件,與X9241的接口很不方便。仔細(xì)分析圖1的工作時(shí)序,可以通過(guò)通用I/O總線(xiàn)和一個(gè)定時(shí)器來(lái)模擬I2C總線(xiàn)的功能,即采用P1口的兩根線(xiàn)分別作為SDA和SCL總線(xiàn),通過(guò)定時(shí)器1產(chǎn)生所需要的時(shí)鐘。具體電路連接如圖2所示。
圖2 X9241與AT89C51接口電路
下面就以向滑動(dòng)端計(jì)數(shù)寄存器寫(xiě)入一次值的三字節(jié)指令為例,給出具體的程序:
SCL BIT P1.6
SDA BIT P1.7
MAIN:
……
MOV TMOD,#02H ;置定時(shí)工作方式2,
定時(shí)
MOV TH0,#0E8H
MOV TL0,#0E8H
SETB EA ;開(kāi)中斷
SETB ET0
SETB TR0
SETB SCL ;開(kāi)始一次操作
SETB SDA
CLR SDA
MOV A,#50H ;選擇從器件
ACALL WRTA
MOV A,#0C0H ;設(shè)置寫(xiě)指令格式
ACALL WRTA
MOV A,#3FH ;為WCR賦值
ACALL WRTA
JNB SCL,$ ;結(jié)束本次操作 SETB SDA
CLR SDA
WRTA: MOV R2,#08H
WRTA0: JB SCL,$ ;等待時(shí)鐘信號(hào)上跳沿
RLC A ;將數(shù)據(jù)逐次送入數(shù)字電位器
MOV SDA, C
JNB SCL,
nbsp;
DJNZ R2, WRTA0
JB SCL, $ ; 等待數(shù)字電位器的接收應(yīng)答
SETB SDA
JB SDA,
nbsp;
JNB SCL,
nbsp;
RET
INT: CPL P1.6 ;取反,產(chǎn)生所需時(shí)鐘信號(hào)
RETI
……
X9241在蓄電池監(jiān)控單元中的應(yīng)用
從理論上講,利用數(shù)字電位計(jì)可以實(shí)現(xiàn)任意量程的轉(zhuǎn)換。但由于模數(shù)轉(zhuǎn)換器精度的限制以及蓄電池監(jiān)控單元高實(shí)時(shí)性的要求,選取過(guò)多的轉(zhuǎn)換點(diǎn)反而會(huì)收到事倍功半的效果。通過(guò)試驗(yàn)發(fā)現(xiàn),只需要1:1,1:2,1:5,1:10,1:20,和1:50六種量程就可以保證輸入信號(hào)在模數(shù)轉(zhuǎn)換器的2/3量程附近,因此,在這里巧妙的利用了滑動(dòng)端計(jì)數(shù)寄存器和數(shù)據(jù)寄存器之間的雙向數(shù)據(jù)傳輸功能,實(shí)現(xiàn)上述六種量程在線(xiàn)轉(zhuǎn)換。實(shí)現(xiàn)在線(xiàn)量程轉(zhuǎn)換的具體電路如圖3所示。具體的實(shí)現(xiàn)方法是:在兩個(gè)E2POT的R0中存儲(chǔ)值為01H,由于上電復(fù)位時(shí)滑動(dòng)端計(jì)數(shù)寄存器會(huì)自動(dòng)裝入R0中的值,因此初始化時(shí),放大器為一跟隨器,當(dāng)需要測(cè)量微弱電流時(shí),根據(jù)初次采集得到的值,與事先設(shè)定的參考值進(jìn)行比較,選擇合適的量程進(jìn)行放大后重新采集。
圖3 在線(xiàn)量程轉(zhuǎn)換的實(shí)現(xiàn)電路
結(jié)語(yǔ)
實(shí)驗(yàn)結(jié)果表明,用X9241實(shí)現(xiàn)測(cè)量量程的在線(xiàn)轉(zhuǎn)換非常方便。通過(guò)六種量程的實(shí)時(shí)在線(xiàn)調(diào)節(jié),既簡(jiǎn)化了電路的設(shè)計(jì),同時(shí)又保證了數(shù)據(jù)采集的精度。但在試驗(yàn)中發(fā)現(xiàn),有時(shí)會(huì)在輸出端產(chǎn)生振蕩,造成輸出波形失真,解決方法是在放大器輸入和反饋端串聯(lián)兩個(gè)電阻,增加其到輸入端的衰減通道。
評(píng)論