摘 要: 多輸入通道之間的相位誤差是title="數(shù)據(jù)采集">數(shù)據(jù)采集系統(tǒng)的重要問題之一。采用六輸入通道模數(shù)轉(zhuǎn)換器件AD73360和數(shù)字信號(hào)處理器TMS320F2812設(shè)計(jì)了多通道數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)了兩者之間的接口電路和通信程序設(shè)計(jì)。該系統(tǒng)可用于多路輸入信號(hào)的同步采樣,實(shí)驗(yàn)證明了系統(tǒng)的有效性。
關(guān)鍵詞: 數(shù)據(jù)采集; AD73360; TMS320F2812
多通道數(shù)據(jù)采集系統(tǒng)一般是在一塊印刷電路板上集成了模擬多路開關(guān)、程控放大器、采樣/保持器、A/D和D/A轉(zhuǎn)換器等器件,其原理框圖如圖1所示[1]。這類系統(tǒng)雖然可以采集多路模擬信號(hào),但其實(shí)只有一路A/D轉(zhuǎn)換器,為了能夠采集多路模擬信號(hào),只能利用模擬多路開關(guān)在多路模擬信號(hào)之間進(jìn)行切換。這樣做的好處是可以減少硬件成本和縮小板卡的尺寸,但是當(dāng)多個(gè)模擬信號(hào)巡回采樣時(shí),各路信號(hào)之間必然存在采樣的時(shí)差。
本文利用AD73360、TMS320F2812設(shè)計(jì)了數(shù)據(jù)采集系統(tǒng),包含6個(gè)以上可同時(shí)采樣的模擬通道,從而有效地減少了由于采樣時(shí)間不同而產(chǎn)生的相位誤差。
1 數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的數(shù)據(jù)采集卡如圖2所示。A/D轉(zhuǎn)換器AD73360是一個(gè)包含6路模擬信號(hào)輸入通道的器件,每路通道均包含獨(dú)自的信號(hào)調(diào)理器、可編程放大器和16位的A/D轉(zhuǎn)換部分。這樣可實(shí)現(xiàn)對(duì)多路模擬信號(hào)的同時(shí)采樣,以減小采樣的相位差。數(shù)字信號(hào)處理器(DSP)采用TMS320F2812,實(shí)現(xiàn)對(duì)A/D轉(zhuǎn)換器AD73360的控制和讀取采樣數(shù)據(jù),從而減少了邏輯控制電路。計(jì)算機(jī)接口電路采用RS232C和RS485標(biāo)準(zhǔn)串行口實(shí)現(xiàn)DSP與上位機(jī)之間的通信。
1.1 A/D轉(zhuǎn)換器AD73360
AD73360具有6路16位分辨率的同時(shí)采樣通道,減少了由于采樣時(shí)間不同而產(chǎn)生的相位誤差。各個(gè)通道的采樣速率可設(shè)為8kHz、16kHz、32kHz或64kHz,都有內(nèi)置的抗混迭濾波器和程控可變?cè)鲆娣糯笃???梢约?jí)聯(lián)使用,最多可將8片級(jí)聯(lián)在一起。因此,模擬量輸入通道的最大數(shù)目可擴(kuò)展到48路。
AD73360使用同步串行接口SPORT與CPU相連。SPORT接口信號(hào)線只有6條,不僅節(jié)約了印刷電路板的面積,而且也減小了電磁干擾。DSP基本都支持同步串行接口,所以AD73360與DSP組成的測(cè)控系統(tǒng)簡(jiǎn)潔高效。
1.1.1 AD73360同步串行通信接口SPORT概述
AD73360同步串行通信接口SPORT包含6條信號(hào)線,分別是串行數(shù)據(jù)輸出端SDO、數(shù)據(jù)輸出幀同步端SDOFS、串行數(shù)據(jù)輸入端SDI、數(shù)據(jù)輸入幀同步端SDIFS、同步時(shí)鐘SCLK和串行接口使能端SE。該接口有三種工作方式:編程、數(shù)據(jù)以及混合方式。AD73360以“時(shí)分多址”的模式輸入和輸出數(shù)據(jù)。其特點(diǎn)是每一個(gè)通道的輸出數(shù)據(jù)占用固定的時(shí)間片,即使該通道被關(guān)閉,該時(shí)間片也不會(huì)被其他通道占用,此時(shí)數(shù)據(jù)輸出端SDO處于三態(tài)。圖3顯示了六個(gè)通道全部打開時(shí)數(shù)據(jù)輸出端SDO和數(shù)據(jù)輸出幀同步端SDOFS的時(shí)間波形,圖4則顯示了通道1、3、5打開時(shí)的輸出時(shí)間波形。AD73360每次上電或復(fù)位以后,自動(dòng)進(jìn)入編程狀態(tài),每一個(gè)采樣周期輸出一個(gè)數(shù)據(jù)輸出幀同步信號(hào)SDOFS,如圖5所示。這樣DSP可利用此幀同步脈沖給AD73360寫入控制字。圖6為各管腳的信號(hào)時(shí)序圖[2]。
1.1.2 AD73360控制寄存器
AD73360有8個(gè)控制寄存器,每個(gè)都是8位,如表1所示。其中前兩個(gè)控制寄存器CRA和CRB用來(lái)配置同步串行接口SPORT,可以設(shè)置數(shù)據(jù)率、主時(shí)鐘速率以及級(jí)聯(lián)芯片數(shù)目等參數(shù)。如果多個(gè)AD73360級(jí)聯(lián),則其CRA和CRB的設(shè)置必須完全一致。其余6個(gè)寄存器用來(lái)控制各個(gè)通道的A/D轉(zhuǎn)換器。
向這些控制寄存器寫入數(shù)據(jù)時(shí),要遵循一定的格式??刂谱值母袷饺绫?所示。其中各個(gè)部分的含義如下:
(1) :該位為高時(shí),表明這是一個(gè)有效控制字。
(2) :讀寫控制。
(3) 芯片地址:芯片級(jí)聯(lián)時(shí)用于確定接收數(shù)據(jù)的芯片。當(dāng)該地址為零時(shí),表明當(dāng)前芯片接收該控制字;若不為零,則芯片將該數(shù)減一,并將控制字從SPORT發(fā)送給下一個(gè)芯片。
(4) 寄存器地址:選擇要寫入數(shù)據(jù)的控制寄存器,見表1。
(5) 寄存器數(shù)據(jù):寫入或讀出的數(shù)據(jù)。
由于單片AD73360具有六個(gè)同時(shí)采樣的模擬量輸入通道,所以特別適合于三相制電力運(yùn)行參數(shù)測(cè)控(三個(gè)相電壓和三個(gè)相電流同時(shí)采樣)以及電機(jī)控制等應(yīng)用系統(tǒng)。
1.2 數(shù)字信號(hào)處理器TMS320F2812的多通道緩沖串口McBSP
TMS320F2812是32位的定點(diǎn)DSP,主頻可達(dá)150MHz(時(shí)鐘周期6.67ns),是目前用于測(cè)控系統(tǒng)、電機(jī)控制等領(lǐng)域中的熱點(diǎn)產(chǎn)品。芯片資源非常豐富,可簡(jiǎn)化外圍電路設(shè)計(jì)。串行通信模塊包括兩個(gè)SCI口和一個(gè)SPI口,CAN總線和多通道緩沖串口McBSP,能滿足多種串行通信模式的需要。本文利用TMS320F2812的多通道緩沖串口McBSP實(shí)現(xiàn)與AD73360的連接和數(shù)據(jù)傳輸。
TMS320F2812的McBSP有6條信號(hào)線。其中3條用于發(fā)送數(shù)據(jù),分別是發(fā)送數(shù)據(jù)端MDXA、發(fā)送幀同步端MFSXA和發(fā)送時(shí)鐘MCLKXA。另外3條用于接收數(shù)據(jù),分別是接收數(shù)據(jù)端MDRA、接收幀同步端MFSRA和接收時(shí)鐘MCLKRA[3]。
McBSP能與多種串行接口器件直接通信,工作方式靈活,但同時(shí)也造成端口配置復(fù)雜。McBSP具有38個(gè)寄存器,由此可見其復(fù)雜程度。這些寄存器可分成四大類:數(shù)據(jù)寄存器、控制寄存器、多通道寄存器和FIFO寄存器。要使McBSP正確工作,必須配置好這些寄存器,這就需要對(duì)McBSP的工作機(jī)制有深刻的理解。表3列出了部分寄存器,大部分屬于數(shù)據(jù)寄存器和控制寄存器,是在非FIFO和非多通道方式下需要用到的寄存器[4]。值得注意的是,PCR和MFFINT雖然分別屬于多通道和FIFO寄存器,但是在非FIFO和非多通道方式下依然要用到。
這些寄存器中每一位的詳細(xì)含義請(qǐng)參閱TMS320F2812技術(shù)手冊(cè),其中一些重要參數(shù)將在下面提到。
2 系統(tǒng)實(shí)現(xiàn)
在圖2所示的系統(tǒng)框圖中,A/D轉(zhuǎn)換器AD73360將模擬輸入量轉(zhuǎn)換成數(shù)字量,TMS320F2812負(fù)責(zé)從AD73360讀取數(shù)字量并進(jìn)行相應(yīng)的計(jì)算,計(jì)算結(jié)果則通過RS232C和RS485標(biāo)準(zhǔn)串行口傳輸給上位機(jī)。在這個(gè)系統(tǒng)中,難點(diǎn)在于AD73360與TMS320F2812的接口設(shè)計(jì)。
2.1 AD73360與TMS320F2812的通信接口設(shè)計(jì)
AD73360具有一個(gè)同步串行通信接口SPORT與上位機(jī)通信,該接口可以很好地兼容現(xiàn)在大多數(shù)的DSP。本文利用TMS320F2812的多通道緩沖串口McBSP與AD73360進(jìn)行通信。
2.1.1 AD73360與TMS320F2812之間的連接方式
根據(jù)對(duì)AD73360的同步串行通信接口SPORT的分析可知,在首次上電和復(fù)位后AD73360便進(jìn)入編程狀態(tài),自動(dòng)產(chǎn)生輸出幀同步信號(hào),該信號(hào)不受外部器件的影響。所以在AD73360與TMS320F2812的通信接口中,AD73360應(yīng)為主設(shè)備,TMS320F2812應(yīng)為從設(shè)備。主從關(guān)系確定以后,才可以確定信號(hào)線的連接方式和程序設(shè)計(jì)。
兩者之間的信號(hào)線連接方式如圖7所示,AD73360的輸出幀同步端SDOFS不僅連接到DSP的兩個(gè)幀同步端MFSRA和MFSXA,而且還連接到自己的輸入幀同步端SDIFS。其同步時(shí)鐘SCLK端也同時(shí)連到DSP的兩個(gè)時(shí)鐘端MCLKXA和MCLKRA。另外,DSP的兩個(gè)通用I/O端口GPIOA0、GPIOA1則連接到AD73360的復(fù)位端和串行接口使能端SE,實(shí)現(xiàn)對(duì)AD73360的控制。
2.1.2 DSP的McBSP配置
McBSP的配置應(yīng)以AD73360的時(shí)序圖為依據(jù)。分析圖3~圖6,可以得出McBSP的一些重要參數(shù)如下:
(1) 發(fā)送幀同步MFSXA為高電平有效,F(xiàn)SXP=0。
(2) 接收幀同步MFSRA為高電平有效,F(xiàn)SRP=0。
(3) 幀同步均為輸入,F(xiàn)SRM= 0,F(xiàn)SXM=0。
(4) 發(fā)送時(shí)鐘MCLKXA和接收時(shí)鐘MCLKRA均為輸入,CLKXM=0,CLKRM=0。
(5) 數(shù)據(jù)輸出在發(fā)送時(shí)鐘的上升沿,CLKXP=0。
(6) 數(shù)據(jù)接收采樣在接收時(shí)鐘的下降沿,CLKRP=0。
(7) 單相幀,RPHASE=0,XPHASE=0。
(8) 每幀一個(gè)字,RFRLEN1=00b,XFRLEN1=00b。
(9) 每個(gè)字16位,RWDLEN1=010b,XWDLEN1=010b。
(10)數(shù)據(jù)延遲為1位,RDATDLY=01b,XDATDLY=01b。
確定了以上各個(gè)參數(shù)的值,才可以在程序中正確配置McBSP的各個(gè)寄存器。
2.1.3 DSP程序設(shè)計(jì)
DSP程序采用C語(yǔ)言編寫,在TI公司的集成開發(fā)環(huán)境CCS2.0下調(diào)試通過。程序流程如圖8所示,主要包括DSP端口(GPIO和McBSP)初始化、AD73360初始化(復(fù)位和輸出控制命令)、等待接收A/D轉(zhuǎn)換數(shù)據(jù)等步驟。
初始化GPIO主要是配置GPIOA0和GPIOA1,分別控制AD73360的復(fù)位端和串行接口使能端SE。初始化McBSP是按照上文所述的重要參數(shù)值配置各個(gè)寄存器,使McBSP的工作方式與AD73360吻合。各寄存器的具體值如下:
RCR2 = 0x0041;
RCR1 = 0x0040;
XCR2 = 0x0041;
XCR1 = 0x0040;
SRGR2 = 0x2000;
SRGR1 = 0x0101;
PCR = 0x0000;
MFFINT = 0x0004;
初始化AD73360的流程如圖9所示。TMS320F2812與AD73360接口系統(tǒng)設(shè)計(jì)中最關(guān)鍵的部分是AD73360的初始化。由于AD73360是主設(shè)備,TMS320F2812是從設(shè)備,所以幀同步信號(hào)由AD73360發(fā)出。TMS320F2812需要在每個(gè)幀同步信號(hào)到來(lái)之前準(zhǔn)備好要發(fā)送的數(shù)據(jù),要做到這一點(diǎn),首先,在AD73360開始工作前將要發(fā)送的數(shù)據(jù)寫入發(fā)送寄存器DXR1中;然后,將AD_SE置為高電平,AD73360的SPORT開始工作。當(dāng)幀同步信號(hào)到來(lái)后,DSP將數(shù)據(jù)發(fā)送給AD,同時(shí)接收數(shù)據(jù)。隨后及時(shí)將下一個(gè)數(shù)據(jù)寫入發(fā)送寄存器DXR1中。這樣在每一個(gè)幀同步信號(hào)到來(lái)時(shí),DXR1中都有正確的數(shù)據(jù)以供發(fā)送。
AD7336初始化完成后,就自動(dòng)采樣并輸出采樣數(shù)據(jù)。為了提高DSP程序的效率,應(yīng)采用中斷方式接收測(cè)量數(shù)據(jù)。TMS320F2812的中斷系統(tǒng)通過外設(shè)中斷擴(kuò)展PIE(Peripheral Interrupt Expansion)模塊來(lái)控制。PIE可以支持96個(gè)獨(dú)立中斷,并分成12組,每組8個(gè)中斷。通過切換開關(guān),可以使每組中斷對(duì)應(yīng)一個(gè)CPU內(nèi)核中斷線,12組共需12根CPU內(nèi)核中斷線(INT1~I(xiàn)NT12)。McBSP的接收中斷MRINT位于第6組的第5位,中斷初始化程序不再贅述。
2.2 兩片AD73360級(jí)聯(lián)與TMS320F2812的接口設(shè)計(jì)
如果想要增加模擬通道的數(shù)目,可以將多片AD73360級(jí)聯(lián)起來(lái)。如圖10所示,兩片AD73360級(jí)聯(lián)起來(lái)可以獲得12個(gè)模擬通道。AD73360片1的SDI接DSP的MDXA,SDO、SDOFS分別接片2的SDI、SDIFS。AD73360片2的SDO接DSP的MDRA、SDOFS則接片1的SDIFS和DSP的MFSXA、MFSRA。數(shù)據(jù)的流程可以歸納為:(1)流出DSP方向:DSP→AD73360片1→AD73360片2;(2)流入DSP方向:AD73360片1→AD73360片2→DSP。
采樣數(shù)據(jù)的輸出時(shí)序如圖11所示,兩片AD73360交替輸出。
DSP程序的設(shè)計(jì)中,初始化GPIO和McBSP部分均與上文單片AD的情況比較類似,但是初始化AD73360部分不盡相同,如圖12所示。
兩片AD級(jí)聯(lián)時(shí)程序設(shè)計(jì)的關(guān)鍵在于控制字的輸出必須交替進(jìn)行,即先輸出AD73360片2的一個(gè)控制字,再輸出片1的一個(gè)控制字,順序不可顛倒,直到所有的控制字發(fā)送完。根據(jù)DSP輸出數(shù)據(jù)的流程,其發(fā)出的控制字先到片1。片1接到片2的控制字時(shí),驗(yàn)證該控制字的芯片地址位不為0,將該地址位減1,在下一個(gè)幀同步信號(hào)到來(lái)時(shí)發(fā)給片2,而此時(shí)片1也接收到了自己的控制字。CRB和CRA控制AD芯片的工作模式和啟動(dòng),必須配置成一樣,并且同時(shí)到達(dá)各自的AD芯片。若不同時(shí)到達(dá),則片1和片2不能同時(shí)啟動(dòng)工作,接口設(shè)計(jì)失敗。
為了保證設(shè)計(jì)成功,充分利用DSP的McBSP具有雙緩沖的特點(diǎn),提前將兩個(gè)控制字寫入DXR中,保證在任意時(shí)刻McBSP都至少有一個(gè)等待發(fā)送的數(shù)據(jù),避免幀同步信號(hào)到來(lái)時(shí)McBSP沒有有效數(shù)據(jù)發(fā)送。這樣兩片AD可在相同時(shí)刻接到相應(yīng)的控制字,并同時(shí)啟動(dòng)。這在多片AD73360級(jí)聯(lián)工作時(shí)至關(guān)重要。
由于提前寫入了兩個(gè)控制字,所以最后要單獨(dú)讀一次數(shù)據(jù),使最后一個(gè)控制字發(fā)送出去。至于程序其余部分與單片AD73360接口設(shè)計(jì)類似,不再敘述。兩片AD73360級(jí)聯(lián)與DSP的接口設(shè)計(jì)可以擴(kuò)展成多片AD73360級(jí)聯(lián)的設(shè)計(jì)。
系統(tǒng)設(shè)計(jì)中需要注意的問題是模擬信號(hào)與數(shù)字信號(hào)的隔離。本文采用兩項(xiàng)措施實(shí)現(xiàn)隔離:(1)DSP和AD73360分別用不同的隔離電源供電;(2)DSP與AD73360之間的接口線路用光耦隔離。這樣可以取得比較好的隔離效果。
利用AD73360和TMS320F2812設(shè)計(jì)了多通道數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)了模擬通道的同步采樣,解決了多通道采樣的時(shí)差問題,滿足了系統(tǒng)的要求。本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)應(yīng)用于三相制電力運(yùn)行參數(shù)測(cè)控系統(tǒng),實(shí)驗(yàn)證明系統(tǒng)是完全可行的。
參考文獻(xiàn)
[1] 馬明鍵. 數(shù)據(jù)采集與處理技術(shù)(第2版)[M]. 西安:西安交通大學(xué)出版社,2005.
[2] Six-Input Channel Analog Front End AD73360. America: Analog Devices, 2000.
[3] TMS320F2812 digital signal processors data manual. America: Texas Instruments, 2004.
[4] TMS320F28x multichannel buffered serial port(McBSP)peripheral reference guide. America: Texas Instruments, 2002.