隨著現代工業生產和科學研究對數據采集系統的要求日益提高,采集精度、抗干擾能力和操作安裝的簡易與否成為人們采集數據時關注的主要問題,這使得高精度的數據采集技術成為關鍵。 基于單片機或其他系列DSP的數據采集器,受芯片功能和結構的限制,硬件設計中往往需要較多的外圍電路,導致裝置的整體集成度不高,硬件開發相對復雜,使數據采集器的可靠性和抗干擾能力受到極大的限制。基于dsPIC30F系列數字信號控制(DSC)芯片,采用高精度、低噪聲、22位分辨率的新型Δ-Σ A/D轉換器MCP3551的高精度數據采集器,具有數據精度高、芯片集成度高、開發方便等特點。 Microchip公司推出的dsPIC30F系列芯片是一款將單片機與DSP技術相結合的高性能16位數字信號控制器。以16位單片機為核心的dsPIC30F系列芯片不僅具有功能強大的外圍設備和快速中斷處理能力,同時還融合了可進行高速計算的數字信號處理器。此外,它在異常事件處理、軟件開發環境等方面也表現出強大的性能。由于dsPIC30F芯片的內部資源豐富,因此基于dsPIC30F平臺開發的數據采集器僅需要很少的外設。不但裝置的抗干擾性和可靠性能夠滿足數據采集器在各種環境下運行的要求,而且可以提升系統的靈活性,縮短開發時間,降低開發成本。 數據采集系統設計 數據采集系統如圖1所示,主要由模擬信號調理電路、A/D轉換電路、顯示電路和485通信電路等構成。信號進入A/D轉換器之前要進行處理,模擬信號處理是影響系統性能的重要因素之一,設計時考慮信號質量,提高信噪比,盡量減少畸變。設計時在調理電路中采用電位器微調,穩壓管限制輸入量程。在A/D轉換電路中采用Microchip公司的MCP3551芯片采樣并轉換信號,它以三線的SPI方式和dsPIC30F微處理器聯接。dsPIC30F微處理器控制A/D采樣轉換,并通過顯示電路數碼管顯示輸出及RS485與計算機通信。輸入信號為0"30mA的電流信號,經過調理電路的處理,進入MCP3551E的輸入端的差分信號幅度范圍為0~3V,同時信噪比高。A/D轉換電路是數據采集系統的核心部分,本系統采用Microchip公司的MCP3551芯片。該芯片使用Δ-Σ轉換方法,實現最高22位的無丟失碼數據輸出,其有效分辨率為21.9位,轉換精度高,功率消耗低。 系統硬件設計 高精度數據采集器以dsPIC30F2010芯片為核心,硬件結構圖如圖2所示。首先,由于dsPIC30F2010為16位數字信號控制器,其強大的計算能力和數據吞吐能力使得dsPIC30F2010能夠單獨完成數據處理、控制、通信、人機接口等功能,減少了芯片數量,簡化了硬件結構。其次,由于dsPIC30F2010內部集成了許多必需的外圍器件,如RAM、FLASH、EEPROM、USART、MSSP等,使得所需外圍擴展電路很少,進一步簡化了硬件結構。從圖2可以看出,本裝置的硬件結構非常簡單,極大地提高了數據采集器的實時顯示性及抗干擾性。 A/D采樣轉換模塊設計 A/D采樣轉換模塊采用MCP3551,它是一種高精度、低噪聲、寬動態范圍并采用單2.7V"5.5V電源供電的單通道22位分辨率Δ-Σ的A/D轉換器,可在擴展溫度范圍(-40oC"+125oC)條件下工作,方便地測量低頻低電壓信號。 輸入信號為0"30mA電流,經過調理電路的精密電阻R3把電流信號轉換成電壓信號,進入MCP3551的輸入端的差分信號幅度范圍為0"+3V的電壓。電阻R4和電位器RP1并聯構成微調電路。電阻R2為限流電阻。二極管D1、穩壓管D2及電阻R5構成量程限制電路,當輸入信號的幅值超過+5V,則二極管D1導通把信號限制在+5V,對后面的電路起保護作用。dsPIC30F微處理器的RB0、SDI和SCK引腳分別與MCP3551的片選端{C}\halfnote_{}^{-}{S}\halfnote_{}^{-} 、數據輸出端SDO和串行時鐘輸入端SCK相連。RB0控制著轉換的啟動。轉換狀態由SDO/ R{D}\halfnote_{}^{-}{Y}\halfnote_{}^{-}引腳輸出,在RB0為低電平時通過檢測SDI獲得。SDI引腳的高電平狀態表示器件正在進行轉換,而低電平狀態則表示轉換完成。同時使用SCK傳輸已準備就緒的數據。 在實際的測量中,參考電源是影響MCP3551采集精度的重要因素之一。為了減小其影響,參考電源必須穩定、噪聲小。因此,使用REF3125作+2.5V電壓的穩壓芯片,以及利用外圍電容的濾波作用進一步減少電壓波動對MCP3551的影響。 RS485串行通信模塊設計 RS485串行通信模塊通過MAX485芯片進行信號收發。主控機處于遠程控制室,所受干擾小,因此用MAX485芯片完成數據通訊功能。而傳輸分站工作在環境惡劣的工業生產現場,干擾較大,因此dsPIC30F微處理器和MAX485之間采用光電隔離。MAX485是半雙工通訊芯片,其收發狀態由dsPIC30F微處理器的RB4引腳控制。當RB4置低電平時,DE連接的二級管導通,使信號輸入端DI 連接的二級管正端電壓較低,二級管截止,發送器不工作,芯片成為RS485接收器。差分信號由A、B輸入,由接收器輸出反向端RO輸出反向信號,經光電隔離到dsPIC30F微處理器的RXD引腳,完成接收過程。當RB4置高電平時,DE連接的二級管截止,使得輸入端DI連接的二級管正端電壓較高,此二級管的通斷由DI 輸入端電平高低決定,芯片成為RS485發送器。信號由dsPIC30F微處理器的TXD引腳發出,經光電隔離,從DI輸入,由A、B口輸出RS485差分信號,完成發送過程。另外,由于dsPIC30F微處理器能夠輸出20mA以上的電流,因此,在dsPIC30F微處理器和MAX485的控制連接線路和發送接收連接線路中,可以不加邏輯門電路。 LED顯示模塊設計 LED顯示模塊采用串行接口的8位數碼管顯示驅動器MAX7219。它具有10MHz傳輸率的三線串行接口與dsPIC30F微處理器相連,最多可驅動8個共陰數碼管或64個發光二極管。其內部有可存儲顯示信息的8×8靜態RAM、動態掃描電路以及段、位驅動器。MAX7219的數據輸入主要由三根輸入線完成。它們分別是串行數據線DIN、加載線LOAD與時鐘線CLK,分別和dsPIC30F微處理器的RB1、RB2與RB3引腳相連。串行數據是以16 位數據包的形式從DIN 腳串行輸入,在CLK的每一個上升沿逐位送入芯片內部,LOAD腳在第16個CLK上升沿出現的同時或者之后但在下一個CLK上升沿到達之前,對輸入的數據進行鎖存,否則送入的數據將丟失。 系統軟件設計 軟件在Microchip公司的MPLAB IDE可視化集成開發環境下運行,使用C30編譯器編寫。MPLAB IDE提供了方便且功能豐富的界面,其中C30編譯器提供了C語言的標準特性。高精度數據采集器的軟件主要完成A/D轉換、LED顯示和RS485通信功能。 主程序流程圖如圖3所示。首先,配置PIC微處理器的SPI端口為在時鐘下降沿時,MCP3551輸出數據,在時鐘上升沿時鎖存數據。然后配置MCP3551在連續轉換模式方式下工作,上電令RB0為低電平輸出,即{C}\halfnote_{}^{-}{S}\halfnote_{}^{-} 為低電平,并一直維持。然后查詢SDI引腳的電平狀態,如果SDI引腳為低電平,則讀取接收緩沖器SPI1BUF的數據,如果SDI引腳為高電平,則繼續查詢。然后通過LED顯示輸出及通過RS485通信程序與PC機通信。 RS485通信采用dsPIC30F微處理器的USART串口接口,以串口中斷的方式通信。串口中斷設定為最高中斷優先級,使能接收中斷,禁止發送中斷。波特率發生器的值由公式U1BRG=FCY/(16×波特率)?1計算得到,其中FCY為指令周期時鐘頻率,波特率選擇9600bps,通過接收器和發送器進行數據傳輸。 結束語 本文介紹的基于dsPIC30F的高精度數據采集器,利用了高精度、低噪聲、22位分辨率的新型Δ-Σ的A/D轉換器MCP3551進行數據采樣轉換,實現了dsPIC30F微處理器與PC機的RS485通信功能,并能夠通過LED顯示輸出。按照此方案設計的系統成功應用于傳感器校驗系統中。實際的調試和運行表明,此數據采集器可在擴展溫度范圍(-40oC"+125oC)條件下工作,方便地測量低頻低電壓信號,它精度高、抗干擾能力強、體積小,能達到6位半LED顯示輸出,具有很強的實用價值。 |