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