1 工作時序分析
ICL7135的工作原理和內部電路在很多參考資料上都有說明,在此只為論述問題的方便分析其時序(圖1)。 由圖1可知,每一測量過程分為4個階段:
1)T0:自動調零階段。
2)T1:信號定時積分階段 需要10000個時鐘周期,積分器電容充電電壓正比于外接信號電壓。
3)T2:反向定速積分階段 *大20001個時鐘周期,積分器接到參考電壓反向積分。
4)T3:零積分 T0+T3共占10001個時鐘周期。
BUSY(ICL7135第21腳):積分器在積分過程中(T1+T2),BUSY輸出高電平,積分器反向積分過零后輸出低電平。
RUN/HOLD:啟動A/D轉換器。該端接高電平時,7135為自動連續轉換,每隔40002個時鐘周期完成一次A/D轉換;該端為低電平時,轉換結束后保持轉換結果,輸入一個正脈沖后啟動另一次轉換。
由以上分析可知,T2的時間長短正比于輸入電壓,求出一已知電壓的T2值以及待測電壓的T2值,根據它們的線性關系,即可求出該測量電壓大小。在此,可以求出BUSY信號脈沖的寬度,然后根據下文提出的一種算法求出電壓值。
利用89c52內部的T1定時器來對BUSY脈沖計時,在求此脈沖寬度的程序中,采用中斷法。在定時/計數器的工作方式控制寄存器TMOD中有一個門控位GATE,當GATE=1時,只有當INT1端口為高電平且TR1置位為1時才選通定時/計數器工作。利用這一功能,我們把BUSY信號接到INT1,即可實現BUSY高電平期間T1自動計數。同時設置中斷系統為負跳變產生中斷,即利用BUSY信號的下降沿對89c52產生一中斷信號,此時T1停止計數并讀入T1值交由相關程序處理。其工作原理如圖2所示。因為并不需要ICL7135一直自動運行,所以另外用P3.5控制起停。
2 硬件原理
由上面分析,我們得出下面的原理示意圖3。
3 消除誤差的校正方法及部分程序代碼
因為中斷響應的延時以及電路的零漂,共模干擾等因素,測得的BUSY信號寬度有一定誤差,所以提出下面的校正算法來計算待測電壓。
假設對應上圖Vi采集后定時/計數器T1的計數值為Ni,同理Vref對應Nref,Vg對應Ng則:
其中N1為定時積分T1時間段計數值,N2i為對Ni定速積分T2時間段計數值,N2r為對Nref定速積分T2時間段計數值,N2g為對Ng定速積分T2時間段計數值,K為放大器放大倍數,Kt為計數值與采樣的電壓值之比值,為一固定系數,N3為因為中斷延時等導致的計數誤差,Vs為一切折算到多路開關輸入端的零漂及共模干擾等干擾電壓。所以,
由以上幾式可見,N3在分子和分母中因為兩個計數值相減均被抵消掉了。而且Vi和K,Vs均無關,即從根本上消除了多路開關的導通電阻和電路中的其他零漂、時漂對測量的影響,又因為Vg=0,上式可以進一步化簡求出為:
經過以上三次采樣,我們即可以求出待測電壓Vi的大小。與此相關的部分程序代碼(C51編寫)如下:
4 實際應用及結論
ICL7135的這種用法及對應的校正算法在所研制的智能溫控儀中得到了應用,精度符合要求,運行效果良好。實踐證明,該方法節省了單片機的硬件資源,而且精度高,抗干擾能力強。