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