《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于AD73360和TMS320F2812的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
基于AD73360和TMS320F2812的數(shù)據(jù)采集系統(tǒng)設(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)的有效性,。
Abstract:
Key words :

  摘  要: 多輸入通道之間的相位誤差是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用來配置同步串行接口SPORT,,可以設(shè)置數(shù)據(jù)率,、主時(shí)鐘速率以及級(jí)聯(lián)芯片數(shù)目等參數(shù)。如果多個(gè)AD73360級(jí)聯(lián),,則其CRA和CRB的設(shè)置必須完全一致,。其余6個(gè)寄存器用來控制各個(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語言編寫,,在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)到來之前準(zhǔn)備好要發(fā)送的數(shù)據(jù),,要做到這一點(diǎn),,首先,在AD73360開始工作前將要發(fā)送的數(shù)據(jù)寫入發(fā)送寄存器DXR1中,;然后,,將AD_SE置為高電平,AD73360的SPORT開始工作,。當(dāng)幀同步信號(hào)到來后,,DSP將數(shù)據(jù)發(fā)送給AD,同時(shí)接收數(shù)據(jù),。隨后及時(shí)將下一個(gè)數(shù)據(jù)寫入發(fā)送寄存器DXR1中,。這樣在每一個(gè)幀同步信號(hào)到來時(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)模塊來控制,。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)起來。如圖10所示,,兩片AD73360級(jí)聯(lián)起來可以獲得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)到來時(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)到來時(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。