基于MC9S08SH4和AD7705的智能傳感器系統(tǒng)設(shè)計
1 系統(tǒng)組成
本文引用地址:http://www.ex-cimer.com/article/163064.htm智能傳感器系統(tǒng)由信號調(diào)理電路、A/D轉(zhuǎn)換電路、主控電路、調(diào)零電路、RS-485通信電路和電源電路等模塊組成。其中信號調(diào)理模塊負(fù)責(zé)對傳感器輸出的mV級差分信號進(jìn)行調(diào)理和放大;A/D轉(zhuǎn)換模塊將信號調(diào)理模塊輸出的模擬信號轉(zhuǎn)換為數(shù)字信號供MCU處理;調(diào)零模塊可以在任意時刻將當(dāng)前的輸入值設(shè)置為參考零點(diǎn);RS-485通信模塊實現(xiàn)主控電路與上位機(jī)之間的通信;電源模塊為主控電路、傳感器、信號調(diào)理模塊和RS-485通信模塊提供電源。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 功能模塊設(shè)計
2.1 信號調(diào)理和A/D轉(zhuǎn)換模塊
傳感器的輸出信號一般為mV級的差分信號,傳統(tǒng)的信號調(diào)理電路是在A/D轉(zhuǎn)換前加一級或多級高精度的放大電路,這樣不但增加了成本,電路也較為復(fù)雜。而AD7705具有完整的模擬前端,內(nèi)置增益可編程放大器(PGA)和可編程數(shù)字濾波器[2],能直接對傳感器輸出的mV級信號進(jìn)行調(diào)理、濾波、放大和A/D轉(zhuǎn)換,然后串行輸出,無需使用外部儀表放大器,極大地簡化了電路設(shè)計。
AD7705的A/D轉(zhuǎn)換功能也很強(qiáng),其采用的Σ-Δ轉(zhuǎn)換技術(shù)最高可實現(xiàn)16位無誤碼傳輸[3]。在本次設(shè)計中,AD7705的兩個全差分模擬輸入通道可以同時滿足兩路傳感器輸出信號的輸入,通過軟件編程可以方便地對信號增益、極性、輸入通道、數(shù)據(jù)輸出更新率和數(shù)字濾波器進(jìn)行設(shè)置。AD7705電路模塊如圖2所示。其中,傳感器輸出信號直接接入AD7705的差分模擬輸入通道AIN1端。
2.2 主控模塊
智能傳感器系統(tǒng)的主控MCU選用的是MC9S08SH4,屬于Freescale公司S08系列8位單片機(jī)[4],具有體積小、速度快,片上資源豐富、數(shù)據(jù)處理能力強(qiáng)等特點(diǎn)。其最大時鐘頻率為20 MHz,片上資源包括4 KB Flash、512 B RAM、8路鍵盤中斷、SCI接口、SPI接口、IIC總線等模塊,采用TSSOP16封裝,尺寸很小,非常適用于本系統(tǒng)。為了盡量減小電路板面積,本次設(shè)計中MC9S08SH4的編程接口沒有使用標(biāo)準(zhǔn)的6芯BDM接口,而采用自定義的4芯接口,最小系統(tǒng)如圖3所示。2.3 調(diào)零模塊
調(diào)零模塊有兩個作用,一是在每次測量前讓傳感器歸零,二是在測量過程中即時設(shè)置參考零點(diǎn)。
傳統(tǒng)的機(jī)械調(diào)零方法是在電路中增加一個電位器,利用改變分壓值的方法進(jìn)行調(diào)零。這種方法調(diào)節(jié)速度很慢,準(zhǔn)確性也比較差。本設(shè)計中采用的是軟件調(diào)零方法,首先利用鍵盤中斷采集傳感器零輸入時的A/D轉(zhuǎn)換結(jié)果作為參考零點(diǎn),并存放到一個全局變量中;以后每次A/D轉(zhuǎn)換的值都與全局變量中的參考零點(diǎn)相比較,即可得到校正后的結(jié)果。軟件調(diào)零方法準(zhǔn)確度高、調(diào)節(jié)速度非??欤貏e適用于在測量過程中即時設(shè)置參考零點(diǎn)。
[next]
2.4 RS-485通信模塊
系統(tǒng)與上位機(jī)之間的通信采用RS-485通信協(xié)議。在實際應(yīng)用中,一臺上位機(jī)需要拖掛多個傳感器,并且對傳輸距離有較高的要求。RS-485串行總線接口采用平衡發(fā)送和差分接收的方式進(jìn)行數(shù)據(jù)通信,較RS-232提高了抗共模干擾能力和傳輸距離;并且RS-485總線能用于多個帶有RS-485接口的設(shè)備互連,實現(xiàn)數(shù)據(jù)的高速遠(yuǎn)距離傳送[5]。本系統(tǒng)中采用的RS-485通信芯片為MAX1487,輸入口DI和輸出口RO分別和MC9S08SH4的串行數(shù)據(jù)發(fā)送端TXD和串行數(shù)據(jù)接收端RXD相連。讀寫使能端連接在一起,由MC9S08SH4的PTA1引腳控制。當(dāng)PTA1輸出高電平時,傳感器系統(tǒng)向上位機(jī)發(fā)送數(shù)據(jù);當(dāng)PTA1輸出低電平時,傳感器系統(tǒng)從上位機(jī)接收數(shù)據(jù),如圖4所示。
2.5 電源模塊
電源模塊采用24 V直流輸入,除了為傳感器預(yù)留24 V、12 V供電接口外,還為AD7705、MAX1487、MC9S08SH4提供5 V工作電壓。為使系統(tǒng)結(jié)構(gòu)緊湊、體積小,電源模塊中使用的穩(wěn)壓芯片為小電流的78L12、78L05和LM1117(SOT-223封裝)各一片。經(jīng)現(xiàn)場測試后發(fā)現(xiàn),由于系統(tǒng)功率很小,所以電源模塊發(fā)熱量并不大,能夠保證長時間穩(wěn)定工作。3 軟件設(shè)計
軟件設(shè)計部分主要包括MC9S08SH4初始化、A/D轉(zhuǎn)換結(jié)果的中值濾波和均值濾波、設(shè)置參考零點(diǎn)進(jìn)行數(shù)據(jù)校正、數(shù)據(jù)的浮點(diǎn)化處理、校對數(shù)據(jù)幀格式、通過SCI模塊和RS-485通信模塊將數(shù)據(jù)幀發(fā)送到上位機(jī)。具體流程如圖5所示。
上位機(jī)軟件采用LabVIEW結(jié)合SQL編寫,通過串口和RS485通信協(xié)議對智能傳感器系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,必要時上位機(jī)軟件可以重新設(shè)置數(shù)字傳感器的通信地址、A/D轉(zhuǎn)換位數(shù)、數(shù)據(jù)幀格式和串口波特率等參數(shù),并將采集到的運(yùn)行數(shù)據(jù)存儲在數(shù)據(jù)庫中,便于日后分析整理。 本設(shè)計實現(xiàn)的基于Freescale MC9S08SH4和AD7705的智能傳感器系統(tǒng),充分利用MC9S08SH4體積小、速度快,片上資源豐富、數(shù)據(jù)處理能力強(qiáng)等特點(diǎn),結(jié)合AD7705內(nèi)置的信號處理電路和高精度?撞-?駐 A/D轉(zhuǎn)換器,在普通傳感器上增加了軟件調(diào)零、浮點(diǎn)數(shù)據(jù)處理、多點(diǎn)測量、RS-485雙向通信、標(biāo)準(zhǔn)化數(shù)字輸出等功能,克服了普通力敏、光敏傳感器數(shù)據(jù)傳輸距離短、零點(diǎn)調(diào)節(jié)困難、測量節(jié)點(diǎn)無法直接與上位機(jī)通信、抗干擾能力差等缺點(diǎn)。經(jīng)現(xiàn)場測試,該系統(tǒng)具有體積小、測量精度高、運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。
評論