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