基於dsPIC30F的高精度資料擷取器的研製
| [日期:2008-11-19] |
來源:中電網 作者:哈爾濱工業大學 肖站 |
[字型:大 中 小] |
引 言
隨著現代工業生產和科學研究對資料擷取系統的要求日益提高,採集精度、抗幹擾能力和操作安裝的簡易與否成為人們採集資料時關注的主要問題,這使得高精度的資料擷取技術成為關鍵。
基於單片機或其他系列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顯示輸出,具有很強的實用價值。