ICL7135的串行采集方式在單片機電壓表中的應用
摘要:介紹了對A/D芯片ICL7135進(jìn)行串行數據采集的具體方法,同時(shí)利用該方式結構簡(jiǎn)單、編程簡(jiǎn)潔、占用單片機資源少的特點(diǎn),給出了用ICL7135與AT89C52單片機構成電壓表系統的硬件和軟件設計方法。
在常用的A/D轉換芯片(如ADC0809、ICL7135、ICL7109等)中,ICL7135與其余幾種有所不同,它是一種四位半的雙積分A/D轉換器,具有精度高(精度相當于14位二進(jìn)制數)、價(jià)格低廉、抗干擾能力強等優(yōu)點(diǎn)。通常情況下,設計者都是用單片機來(lái)并行采集ICL7135的數據,本文介紹用單片機串行方式采集ICL7135的數據以實(shí)現單片機電壓表和小型智能儀表的設計方案。
1 ICL7135的串行工作方式
1.1 ICL7135的測量周期
ICL7135的測量周期包括下列四相(節拍):
(1)AUTO-ZERO(自動(dòng)調零)相
在該相時(shí),內部IN+和IN-輸入與引腳斷開(kāi),且在內部連接到ANLG-COMMON,基準電容被充電至基準電壓,系統接成閉環(huán)并為自動(dòng)調零(AUTOZERO)電容充電以補償緩沖放大器、積分器和比較器的失調電壓。此時(shí),自動(dòng)調零精度令受系統噪聲的限制,以輸入為基準的總失調小于10μV。
(2)SINGAL-INTEGRATE(信號積分)相
在該相,自動(dòng)調零環(huán)路被打開(kāi),內部的IN+和IN-輸入被連接至外部引腳。在固定的時(shí)間周期內,這些輸入端之間的差分電壓被積分。當輸入信號相對于轉換器電源不反相(NO-RETURN)時(shí),IN-可直接連接至ANJG-COMMON以便輸出正確的共模電壓。同時(shí),在這一相完成的基礎上,輸入信號的極性將被系統所記錄。
(3)DEINTEGRATE(去積分)相
該相的基準用于完成去積分(DEINTEGRATE)任務(wù),此時(shí)內部IN-在內部連接ANLG-COMMON,IN+跨接至先前已充電的基準電容,所記錄的輸入信號的極性可確保以正確的極性連接至電容以使積分器輸出極性回零。輸出返回至零所需的時(shí)間正比于輸入信號的幅度。返回時(shí)間顯示為數字讀數,并由1000(Vid/Vref)確定。滿(mǎn)度或最大轉換值發(fā)生在Vid等于Vref的兩倍時(shí)。
(4)ZERO-INTEGRATE(積分器返回零)相
內部的IN-連接到ANLG-COMMON,系統接成閉環(huán)以使積分器輸出返回到零。通常這相需要100~200個(gè)時(shí)鐘脈沖,但是在超范圍(OVERRANGE)轉換后,則需要6200個(gè)脈沖。
1.2 ICL7135時(shí)序圖
圖1所示是Vid為常數時(shí)的ICL7135時(shí)序圖,由圖1可知:在Signal-Integrate(即信號積分)相開(kāi)始時(shí),ICL7135的BUSY信號線(xiàn)跳高并一直保持高電平,直到De integrate(去積分)相結束時(shí)才跳回低電平。在滿(mǎn)量程情況下,這個(gè)區域中的最多脈沖個(gè)數為30002個(gè)。其中De integrate(去積分)相的脈沖個(gè)數反映了轉換結果。
圖2是不同Vid值時(shí)的ICL7135時(shí)序。由圖2可見(jiàn):對于不同模擬量輸入,ICL7135的BUSY信號的高電平寬度也不同。
2 與單片機系統的串行連接
在ICL7135與單片機系統進(jìn)行連接時(shí),如果使用ICL7135的并行采集方式,則不但要連接BCD碼數據輸出線(xiàn),又要連接BCD碼數據的位驅動(dòng)信號輸出端,這樣至少需要9根I/O口線(xiàn)。因此,系統的連接比較麻煩,且編程也非常復雜。
而ICL7135的串行接法是通過(guò)計脈沖數的方法來(lái)獲得測量轉換結果的。由其時(shí)序分析可知,在Deintegrate(去積分)相,其脈沖數與轉換結果具有一一對應關(guān)系。
實(shí)際上,可以通過(guò)單片機(例如ATMEL公司的51系列單片機AT89C52)的定時(shí)器T0(也可以使用定時(shí)器T1)來(lái)計脈沖器。由于,定時(shí)器T0所用的CLK頻率是系統晶振頻率的1/12。因此可利用單片機(AT89C52)的ALE信號作為ICL7135的脈沖(CLK)輸入。但要注意,在軟件設計編程中,若指令中不出現MOVX指令,ALE端產(chǎn)生的脈沖頻率將是晶振的1/6。至此,便可找到定時(shí)器所使用的頻率與單片機系統晶振頻率的關(guān)系,以及ICL7135所需的頻率輸入與單片機系統晶振頻率的關(guān)系。
為了使定時(shí)器T0的計數脈沖的ICL7135工作所需的脈沖同步,可以將ICL7135的BUSY信號接至AT89C52的P3.2(INT0)引腳上,并且將定時(shí)器T0的選通控制信號GATE倍1。此時(shí)定時(shí)器T0是否工作將受BUSY信號的控制。由上述時(shí)序圖可知,當ICL7135開(kāi)始工作時(shí),即在積分波形的Signal-Integrate相開(kāi)始時(shí),也就是ICL7135的BUSY信號跳高時(shí),定時(shí)器T0才開(kāi)始工作,且定時(shí)器T0的TH0、TL0所記錄的數據與ICL7135的測試脈沖(從積分波形的Signal-Integrate相開(kāi)始時(shí)Deintegrate相結束這一區域內的脈沖稱(chēng)為測量脈沖)存在一定的比例關(guān)系。其系統連接圖如圖3所示。
在這種情況下,由于定時(shí)器T0和ICL7135所用的時(shí)鐘不是同一路。因此,應當找到定時(shí)器T0所記錄的數據和測量脈沖之間的某種比例關(guān)系。其比例關(guān)系如下:
Ftime=Fosc/12
Fale=Fosc/6
Freal=Fosc/24
Ficl=Fale/N
其中,Fosc為系統晶振頻率;Ftime為定時(shí)器所用頻率;Fale為單片機ALE輸出的頻率;Freal為ICL7135的測量脈沖頻率;Ficl為ICL7135所用的輸入頻率,該頻率可通過(guò)Dale分頻得到。N為分頻比,該系統中N應選為4。
由上述頻率之間的比率關(guān)系可知,AT98C52的定時(shí)器T0所用的頻率是ICL7135的測量脈沖頻率的兩倍。因此,定時(shí)器T0所記錄的脈沖數也是ICL7135的測量脈沖的兩倍。圖中,分頻數可根據ICL7135的要求和單片機的時(shí)鐘頻率來(lái)選擇。在這里,提倡使用四分頻,這樣可使定時(shí)器T0在對測量脈沖計數時(shí)不會(huì )溢出。若使用4以上的分頻數,則需在軟件上作一下改進(jìn)。
要得到測量脈沖的個(gè)數,只需將定時(shí)器所記錄的脈沖個(gè)數除以2即可。而要得到A/D轉換結果所對應的脈沖數則應用測量脈沖的個(gè)數減去10001。這些轉換通??赏ㄟ^(guò)軟件完成,因此非常簡(jiǎn)單。通過(guò)A/D轉換結果所對應的脈沖數可得到被測的模擬量。通過(guò)對串行方式的討論可以看出:使用這種方法可以不再使用8255芯片來(lái)擴展口線(xiàn)。其優(yōu)點(diǎn)是占用口線(xiàn)少,能節省系統的硬件資源,提高系統的抗干擾能力,不用添加任何擴展口線(xiàn)器件,從而使系統的成本得到降低。
3 基于單片機系統的電壓表設計
3.1 系統的硬件
圖4所示是單片機電壓表系統中ICL7135與單片機系統的典型連接示意圖。圖中,單片機系統的晶振為6MHz,單片機的ALE信號頻率為1MHz;考慮到系統連接方面和單片機ALE信號頻率范圍等因素,筆者取ICL7135的輸入頻率為ALE信號的四分頻,即選用125kHz。這樣選用的好處是T0定時(shí)器在對測量脈沖計數時(shí)不會(huì )產(chǎn)生溢出。
3.2 系統的軟件設計
ICL7135A/D與單片機連接電路的軟件設計系統的程序流程圖如圖5所示。
該軟件流程圖由三部分組成。其中轉換子程序是在主程序中調用的,目的是為了不占用很長(cháng)的中斷時(shí)間。T0計數器設定為方式1、定時(shí)狀態(tài)、選通控制設為“1”。故TMOD控制字設置為“05H”。由于T0計數器用的是系統的晶振頻率,因此與設定為計數狀態(tài)效果一樣。
4 結束語(yǔ)
ICL7135的串行方式在實(shí)踐中的應用效果很好。與并行方式相比,其突出的優(yōu)點(diǎn)是結構簡(jiǎn)單、程序簡(jiǎn)潔、占用單片機的資源少、可提高抗干擾能力,同時(shí)可提高儀器的檢測可靠性,并且可在不添加任何擴展口線(xiàn)器件的情況下使系統的成本得到降低。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理 晶振相關(guān)文章:晶振原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理 雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理
評論