在現(xiàn)代控制系統(tǒng)中,數(shù)據(jù)采集系統(tǒng)就像控制系統(tǒng)的“眼睛”和“耳朵”一樣,成為控制系統(tǒng)不可或缺的重要部分。它是各種控制系統(tǒng)獲取信息的一種重要途徑。由于數(shù)據(jù)采集系統(tǒng)的精度和實(shí)時(shí)性對(duì)于整個(gè)控制系統(tǒng)的性能至關(guān)重要,所以必須合理設(shè)計(jì)使其能提供預(yù)期的采樣速度、達(dá)到一定的轉(zhuǎn)換精度,并應(yīng)該做到電路簡(jiǎn)單、抗干擾性能強(qiáng)。本采集系統(tǒng)采用ADI公司生產(chǎn)的12位模數(shù)轉(zhuǎn)換器AD7862,它是一款高速、低功耗、雙核12位模數(shù)轉(zhuǎn)換器。能夠滿足系統(tǒng)對(duì)采樣精度和采樣速度的要求??刂破骷捎?a class="innerlink" href="http://theprogrammingfactory.com/tags/dsP" title="dsP" target="_blank">dsPIC30F6010A數(shù)字信號(hào)控制芯片,它是Microchip公司生產(chǎn)的高性能16位數(shù)字信號(hào)控制器,內(nèi)核包含一個(gè)DSP引擎,從而能夠顯著增強(qiáng)系統(tǒng)的運(yùn)算和吞吐能力。
在某些數(shù)據(jù)采集系統(tǒng)中,不僅對(duì)數(shù)據(jù)采集系統(tǒng)的精度和實(shí)時(shí)性提出要求,而且要求其具有數(shù)據(jù)存儲(chǔ)功能,為了實(shí)現(xiàn)存儲(chǔ)功能,本系統(tǒng)使用SD卡。SD卡(Seeure Digital Memory Card)為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它具有存儲(chǔ)容量大,速度快等特點(diǎn),被廣泛用于便攜式裝置上。
1 AD7862簡(jiǎn)介
AD7862是一款高速、低功耗、雙核12位模數(shù)轉(zhuǎn)換器(ADC),采用+5 V單電源供電。該器件內(nèi)置2個(gè)4μs逐次逼近型ADC、2個(gè)采樣保持放大器、1個(gè)+2.5 V內(nèi)部基準(zhǔn)電壓源和1個(gè)高速并行接口。其內(nèi)部結(jié)構(gòu)如圖l所示。
由于AD7862內(nèi)置2個(gè)ADC和2個(gè)采樣保持放大器,可以對(duì)2路模擬輸入信號(hào)進(jìn)行同時(shí)采樣和轉(zhuǎn)換,從而保留這兩個(gè)模擬輸入信號(hào)的相對(duì)相位信息。這一功能適用在逆變器采集系統(tǒng)中。它共有4個(gè)模擬輸入,分成2個(gè)通道(A和B),通過AO輸入選擇通道。每個(gè)通道的2個(gè)輸入(VA1與VA2或VB1與VB2)使用不同的ADC和采樣保持放大器可同時(shí)進(jìn)行采樣和轉(zhuǎn)換。該器件可接收的模擬輸入范圍為±10 V(AD7862~10)、±2.5 V(AD7862-3)和O~2.5 V(AD7862-2)。本系統(tǒng)采用AD7862-10。模擬輸入均具有過壓保護(hù),允許輸入電壓分別達(dá)到±17 V、±7 V或+7 V而不會(huì)造成損壞。
轉(zhuǎn)換開始信號(hào)低電平有效,同時(shí)將2個(gè)采樣保持放大器置于保持狀態(tài),并啟動(dòng)兩個(gè)輸入轉(zhuǎn)換操作。轉(zhuǎn)換開始后,置BUSY信號(hào)為高電平,表示轉(zhuǎn)換還未結(jié)束,當(dāng)再次回到低電平時(shí),表示轉(zhuǎn)換結(jié)束,此時(shí)便可讀取2個(gè)通道的轉(zhuǎn)換結(jié)果。實(shí)際應(yīng)用中,先置為低電平一段時(shí)間,然后檢測(cè)BUSY信號(hào),當(dāng)為低電平時(shí),就開始讀取轉(zhuǎn)換結(jié)果。轉(zhuǎn)換結(jié)束后的第一次讀取操作訪問VA1或VB1的結(jié)果,而第二次讀取操作訪問VA2或VB2的結(jié)果,具體取決于多路復(fù)用器選擇AO是低電平還是高電平。AO為低電平時(shí),讀取VA1或VA2;A0為高電平時(shí),讀取VB2或VB2。該器件的時(shí)序如圖2所示。
2 dsPIC30F6010A簡(jiǎn)介
16位dsPIC30F6010A數(shù)字信號(hào)控制器是16位處理器系列。它是dsPIC30F電機(jī)控制和電源轉(zhuǎn)換系列,用于支持電機(jī)控制應(yīng)用,也適用于不間斷電源、逆變器、開關(guān)電源及相關(guān)設(shè)備。
內(nèi)部有144 KB片上閃存程序空間,8 KB片上數(shù)據(jù)RAM,4 KB非易失性數(shù)據(jù)EEPROM:工作速度最高可達(dá)30MI/s;5個(gè)16位定時(shí)器/計(jì)數(shù)器;可選擇將16位定時(shí)器配對(duì)組成32位定時(shí)器模塊;16位捕捉輸入功能;8個(gè)PWM輸出通道:具有互補(bǔ)或獨(dú)立輸出模式、邊沿對(duì)齊模式和中心對(duì)齊模式,4個(gè)占空比發(fā)生器、互補(bǔ)模式的死區(qū)時(shí)間控制:2個(gè)UART、2個(gè)SPI、1個(gè)I2C總線和2個(gè)CAN總線:最大I/O引腳數(shù)為68個(gè)。
dsPIC30F601OA處理器采用改進(jìn)的哈佛架構(gòu),具有獨(dú)立的程序和數(shù)據(jù)存儲(chǔ)器總線。在執(zhí)行訪問數(shù)據(jù)RAM當(dāng)前指令的同時(shí)可從程序存儲(chǔ)器中預(yù)取下一條指令,這就加快了處理速度。數(shù)據(jù)空間為64 KB,大多數(shù)指令將其看作一個(gè)線性地址空間。當(dāng)使用某些DSP指令,如DSP乘法指令時(shí),該存儲(chǔ)空間被分成2塊,分別稱為X和Y數(shù)據(jù)空間。因此,這些DSP指令支持雙操作數(shù)讀操作,即,同一條指令可同時(shí)從X存儲(chǔ)空間和Y存儲(chǔ)空間中取數(shù)據(jù)。
3 系統(tǒng)設(shè)計(jì)
本采樣系統(tǒng)主要分為硬件部分設(shè)計(jì)和軟件部分設(shè)計(jì)。硬件部分是以dsPIC30F601OA為控制和處理核心,去控制AD7862和SD卡來實(shí)現(xiàn)數(shù)據(jù)的高精度、實(shí)時(shí)采集和實(shí)時(shí)存儲(chǔ)。信號(hào)的高精度和實(shí)時(shí)模數(shù)轉(zhuǎn)換由AD7862來實(shí)現(xiàn),數(shù)據(jù)的存儲(chǔ)由控制器通過SPI接口訪問SD卡來實(shí)現(xiàn)。軟件部分主要由控制器I/O引腳的初始化、模數(shù)轉(zhuǎn)換開始控制、數(shù)據(jù)讀取和數(shù)據(jù)存儲(chǔ)等部分組成。
3.1 硬件部分實(shí)現(xiàn)
數(shù)據(jù)采集系統(tǒng)以16位dsPIC30F6010A數(shù)字信號(hào)控制器作為系統(tǒng)的控制和數(shù)據(jù)處理核心,產(chǎn)生控制信號(hào)控制AD7862實(shí)現(xiàn)高精度的實(shí)時(shí)數(shù)據(jù)采集。AD7862共需4個(gè)控制信號(hào),分別為、AO、和。為轉(zhuǎn)換開始控制信號(hào),A0為讀取通道選擇控制信號(hào),它控制該通道進(jìn)行A/D轉(zhuǎn)換和讀取其A/D轉(zhuǎn)換結(jié)果。為片選信號(hào),低電平有效,在本系統(tǒng)中使其直接與地相連。為讀控制信號(hào),低電平有效,當(dāng)為低電平時(shí)可以按順序讀取VA1、VA2或VBl、VB2上的A/D轉(zhuǎn)換結(jié)果。通過以上分析共需3個(gè)控制信號(hào),即dsPIC230F6010A的I/O接口RB8、RB9和RBl0,通過軟件產(chǎn)生。
AD7862還產(chǎn)生BUSY信號(hào),通過它告知控制器A/D轉(zhuǎn)換完成,可以讀取結(jié)果。dsPIC30F6010A的中斷控制器支持5種外部中斷請(qǐng)求信號(hào):IN-T0~I(xiàn)NT4。這些輸入是邊沿敏感的;它們要求一個(gè)由低到高或由高到低的跳變以產(chǎn)生一個(gè)中斷請(qǐng)求。INTCON2寄存器具有5個(gè)位(INTOEP~I(xiàn)N-T4EP),用于選譯邊沿檢測(cè)電路的極性。本系統(tǒng)中采用由高到低的跳變產(chǎn)生中斷請(qǐng)求,BLISY控制信號(hào)與dsPIC30F60lOA的INTO相連。數(shù)據(jù)轉(zhuǎn)換結(jié)果通過dsPIC30F60IOA的I/O口,讀到控制器內(nèi)部。AD7862與控制器的電路連接圖如圖3所示。
3.2 軟件部分實(shí)現(xiàn)
軟件部分流程如圖5所示,系統(tǒng)啟動(dòng)后先初始化I/O、SD卡、AD7862和設(shè)置INT0中斷,為A/D采樣和數(shù)據(jù)存儲(chǔ)做準(zhǔn)備。由于AD7862有兩個(gè)通道。需對(duì)這兩個(gè)通道分別進(jìn)行A/D轉(zhuǎn)換,先采樣A通道后采樣B通道,具體是哪個(gè)通道由AO決定,也就是控制器的RB8引腳。
數(shù)據(jù)采集過程中要獲知A/D轉(zhuǎn)換已結(jié)束的方法有:
1)定時(shí) 使用定時(shí)器,轉(zhuǎn)換開始后過一段時(shí)間讀取轉(zhuǎn)換結(jié)果;
2)掃描 掃描BUSY引腳,當(dāng)變?yōu)榈碗娖綍r(shí),即可知轉(zhuǎn)換結(jié)束,讀取轉(zhuǎn)換結(jié)果;
3)中斷 BUSY作為中斷信號(hào),輸入到INTO中,并設(shè)置為從高到低觸發(fā)中斷,當(dāng)轉(zhuǎn)換結(jié)束后,BUSY信號(hào)由高變低,觸發(fā)中斷。
本系統(tǒng)采用第3種方法,即中斷方法。中斷服務(wù)子程序如圖6所示,進(jìn)入中斷服務(wù)子程序后,首先清中斷標(biāo)示,然后分兩次讀取,即Vx1和Vx2(X代表A或B),讀完之后對(duì)數(shù)據(jù)進(jìn)行處理并存儲(chǔ)到SD卡相應(yīng)位置中,最后置采樣結(jié)束標(biāo)示。
4 結(jié)束語
數(shù)據(jù)采集系統(tǒng)采用dsPIC30F6010A、AD7862和SD卡組成了高性能12位并行數(shù)據(jù)采集及存儲(chǔ)系統(tǒng)。介紹了硬件電路的連接,然后進(jìn)行了數(shù)據(jù)采集的軟件設(shè)計(jì)與實(shí)現(xiàn)。實(shí)踐表明,通過對(duì)模數(shù)轉(zhuǎn)換器件的正確使用,完全可以達(dá)到很高的采樣精度,并能滿足系統(tǒng)實(shí)時(shí)性的需要。通過外擴(kuò)模擬電路部分,可以用于各種高精度高速的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)。