<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 壓力傳感器的高精度數(shù)據(jù)采集

          壓力傳感器的高精度數(shù)據(jù)采集

          作者: 時(shí)間:2011-12-14 來源:網(wǎng)絡(luò) 收藏

          (2)A/D轉(zhuǎn)換電路及其原理

          電路原理圖如圖5所示。

          88.jpg

          7135與8155的連接是通過4位2選1數(shù)據(jù)多路開關(guān)74LS157來實(shí)現(xiàn)的。其選通信號(hào)由7135的D5輸出控制。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),D5輸出高電平,74LS157選通B類通道,單片機(jī)通過PA0~PA3讀入萬位數(shù)B1、狀態(tài)位POL(極性)、OVR(過量程)和UR(欠量程);當(dāng)D5輸出完成時(shí),變?yōu)榈碗娖剑ㄟ@一過程包括D4~D1數(shù)據(jù)輸出周期在內(nèi)),74LS157選通A類通道,單片機(jī)通過PA0~PA3將依次讀入8421碼值B8,B4,B2及B1,即低位BCD碼,依次形成萬、千、百、十、個(gè)各位BCD碼(即轉(zhuǎn)換結(jié)果)。8155A口中斷請求線PC0反相后形成單片機(jī)的外中斷0觸發(fā)信號(hào)。當(dāng)7135完成1次轉(zhuǎn)換后,產(chǎn)生5個(gè)數(shù)據(jù)選通脈沖,分別將各位BCD碼和位標(biāo)志送入A口;A口收到一個(gè)數(shù)據(jù)后,中斷線PC0變?yōu)楦唠娖?,啟?dòng)單片機(jī)的中斷服務(wù)程序,讀取A/D轉(zhuǎn)換的數(shù)據(jù)結(jié)果。7135的轉(zhuǎn)換啟動(dòng)由P14控制,高電平轉(zhuǎn)換開始,低電平保持。

          經(jīng)調(diào)理后的0V~2V的模擬信號(hào)通過RC低通濾波后,從IN+,IN-輸入。A/D轉(zhuǎn)換后的結(jié)果包括2部分:極性和量程,反映轉(zhuǎn)換性質(zhì)的結(jié)果。轉(zhuǎn)換后的數(shù)字信號(hào)為D1,D2,D3,D41及D5,其中D5(萬位)只能是1或0,其他幾位為0~9的BCD碼。而7135所需的參考電壓為量程的確良1/2,如果量程為2V,則參考電壓為1V。為了保證轉(zhuǎn)換的溫度穩(wěn)定性和精度,采用基準(zhǔn)電源MC1403,通過金屬膜多圈進(jìn)口電位器調(diào)節(jié)得到。參考電壓上并聯(lián)的CBB電容C46(0.1mF) ,C47(1mF)主要是保證參考電壓的穩(wěn)定性。

          積分電容是決定轉(zhuǎn)換精度的關(guān)鍵器件。按照7135應(yīng)用特性,積分電容C8和積分電阻R3與量程等有關(guān),選用時(shí)必須滿足以下要求:

          R3=滿度電壓/20mA (3)
          C8=1000×20mA×T/積分器輸出擺幅 (4)

          式中,T=1/fcl k。

          fclk—7135的時(shí)鐘頻率,一般可選擇250kHz,166kHz、125kHz、及100kHz、典型值為125kHz,此時(shí)7135的轉(zhuǎn)換速率為3次/s。

          在±5V系統(tǒng)中,如模擬地為0V,則擺幅為±4V,此時(shí)量程為 ?C2V~ +2V,則:R3=100kW,C8=0.47mF。

          (3)PLD技術(shù)的應(yīng)用

          為節(jié)省了硬件電路的開銷,減少硬件電路產(chǎn)生的電磁干擾,系統(tǒng)的部分電路應(yīng)用了PLD技術(shù),其可編程邏輯電路(見圖5)由可編程邏輯陳列芯片GAL16V8組成,主要完成A/D轉(zhuǎn)換模塊所需的時(shí)鐘信號(hào)和轉(zhuǎn)換結(jié)束選通信號(hào) 產(chǎn)生單片機(jī)外中斷0中斷信號(hào)的邏輯轉(zhuǎn)換,其邏輯方程如下:
          P16= + (與非門) (5)
          P14=P7+P8  (或門) (6)
          P13= (非門) (7)
          式中,P2 、P3、 P7分別為單片機(jī)的 、 、ALE信號(hào);
          P8—與非門輸出; P9—8155的A口中斷信號(hào);P13—生成的單片機(jī)外中斷觸發(fā)信號(hào)。

          按照上述邏輯關(guān)系生成的PLD文件經(jīng)FM軟件編譯后,產(chǎn)生熔絲文件*.LED,然后通過編程器寫入GAL16V8即可。

          三、系統(tǒng)軟件設(shè)計(jì)

          系統(tǒng)軟件設(shè)計(jì)采用模塊化結(jié)構(gòu),采用匯編語言編程,整個(gè)程序由主程序、顯示、鍵盤掃描、A/D轉(zhuǎn)換處理等子程序模塊組成。限于篇幅在此只列出了A/D轉(zhuǎn)換處理子程序流程圖,如圖6所示。

          89.jpg

          四、非線性誤差的修正

          、放大器、A/D轉(zhuǎn)換器總是存在非線性誤差,由于上述非線性關(guān)系的存在,帶來了精度的降低,為了保證在整個(gè)范圍內(nèi)滿足精度的要求,所以在實(shí)際應(yīng)用中應(yīng)根據(jù)控制要求對測量值進(jìn)行誤差修正,修正一般通過軟件較準(zhǔn)實(shí)現(xiàn)。其具體的修正方法應(yīng)根據(jù)信號(hào)的工作區(qū)段和質(zhì)量要求來確定。利用單片機(jī)的運(yùn)算和控制能力對非線性關(guān)系找出修正算法,并在反復(fù)測試調(diào)整后使其達(dá)到設(shè)計(jì)要求。本系統(tǒng)采用分段線性插值法對測量值的曲線進(jìn)行了誤差修正處理。方法為:將0~XMAX分為若干工作區(qū)段,每段曲線用一段對應(yīng)的折線來代替,對每段折線可求出VQ:

          N t : VQ = ai×N t+bi (8)

          式中,I—某段折線的序號(hào);ai—該段折線的斜率;bi—該段折線的截距。

          它們的修正程序流程圖如圖7所示,處理關(guān)系示意曲線如圖8所示。

          預(yù)先將每段的之值存于單片機(jī)中,在不同的工作區(qū)段,單片機(jī)自動(dòng)地將對應(yīng)的每段的上述值調(diào)出進(jìn)行運(yùn)算處理。(限于篇幅,定量的分析沒有討論)

          五、結(jié)束語

          本文描述的是一種通用的系統(tǒng),它有許多優(yōu)點(diǎn),可在各種惡劣的環(huán)境中正常地工作,而且抗干擾能力強(qiáng)、使用壽命長、分辨率高。采用液晶顯示及PS/2鍵盤接口,實(shí)現(xiàn)了良好的人機(jī)交換??蓮V泛地應(yīng)用于石油、化工、冶金、電力、紡織、輕工、水利等工業(yè)及科研領(lǐng)域的、檢測與分析。

          傳感器相關(guān)文章:傳感器工作原理


          風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理
          電流變送器相關(guān)文章:電流變送器原理
          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();