基于DSP與MAX147的多路數(shù)據(jù)采集系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
A Multiple Channel data acquisition System based DSP And Max147
Abstract: This thesis design a multiple channel data acquisition system based on DSP and MAX147.The MAX147’s timing and TMS320VC5402’s McBSP were introduced also the circuit of SPI interface was given. The program of SPI interface was given in detail. The channel data acquisition system was implemented.
Key words: DSP;MAX147;SPI;McBSP
摘要:本文設(shè)計了一種基于DSP與MAX147的多路數(shù)據(jù)采集系統(tǒng)詳細(xì)地介紹了多路數(shù)據(jù)采集A/D芯片MAX147工作時序和TMS320VC5402的McBSP工作原理,并給出了McBSP以SPI接口方式與MAX147接口電路,編寫了TMS320VC5402的McBSP與MAX147的SPI接口程序,實(shí)現(xiàn)了多路數(shù)據(jù)采集系統(tǒng)設(shè)計
關(guān)鍵詞:數(shù)字信號處理器;MAX147;串行外圍設(shè)備接口;多通道緩沖串口
1. 引言
由于DSP芯片具有先進(jìn)的并行結(jié)構(gòu),使其在信號處理和數(shù)據(jù)采集領(lǐng)域得到了越來越廣泛的應(yīng)用TI公司的DSP芯片TMS320VC5402PGE100最高工作頻率是100MHZ具有2個高速、全雙工、多通道緩沖串行接口(McBSP) 其方便的數(shù)據(jù)流控制可使其與大多數(shù)同步串行外圍設(shè)備接口MAXIM公司的A/D芯片MAX147具有較高的性能價格比,最高的轉(zhuǎn)換頻率可達(dá)130kHz,具有高采樣率、低功耗、高精度等特性,非常適合于體積小、對功耗要求比較嚴(yán)格的移動應(yīng)用設(shè)備,如便攜式工業(yè)測量、醫(yī)療儀器等
2. MAX147工作原理
2.1 MAX147介紹
MAX147是一種具有8個單端輸入通道或4個差動輸入通道的12位精度的串行數(shù)據(jù)轉(zhuǎn)換器輸入電壓范圍:0~2.5V(或-1.25V~+1.25V),可軟件配置單/雙極輸入采樣頻率可達(dá)133kHz采用單電源供電,工作電壓范圍+2.7~+5.25V它的功耗低:在3V/133kps時其電源電流為1.2mA在3V/133kps時其電源電流為54μA,而在掉電模式時僅為1μA它的通信接口與SPI/QSPI/Microwire/TMS320兼容
2.2 MAX147工作時序
MAX147要啟動一次轉(zhuǎn)換,就需要向DIN送入一個8位控制字當(dāng)片選信號CS為低時,控制字的每一位在SCLK的上升沿送入MAX147內(nèi)部寄存器當(dāng)CS拉低時,第一個到達(dá)的邏輯“1”表示控制字的第最高位當(dāng)MAX147工作在SPI模式且選擇外部時鐘時,保證CPU串行口工作在主機(jī)模式下,CPU產(chǎn)生適當(dāng)?shù)臅r鐘頻率(100KHz—2MHz)讀取一個MAX147的A/D轉(zhuǎn)換值的時序如圖1所示,
500)this.style.width=500;" border=0>
MAX147的控制字由八位組成,各位的功能見表1所示
bit7控制字節(jié)起始位,“1”有效,在此之間有,DIN上的“0”位均無效
bit6~bit4通道選擇位,設(shè)置采樣輸入腳
bit3單極/雙極選擇位,bit3=1時,為單極轉(zhuǎn)換模式,采樣信號輸入電壓范圍0~VREF;bit3=0時,雙極轉(zhuǎn)換模式,輸入電壓-VREF/2~+VREF/2
bit2單端/差動選擇位,bit2=1時,輸入電壓CMOS端作比較,bit2=0時,輸入電壓為所測兩電壓之差
bit1 bit0bit1=0、bit0=0時,為全掉電模式,bit1=0、bit0=1時,速掉電模式(僅適合于MAX146),bit1=1、bit0=0時,為內(nèi)部時鐘模式,bit1=1、bit0=1為外部時鐘模式
500)this.style.width=500;" border=0>
MAX147具體軟件步驟如下:
(1)送控制命令字:1XXX1111輸入信號為單極性且單端輸入,選擇外部始終模式,XXX為通道選擇
(2)CPU將片選信號CS拉低
(3)發(fā)送控制字,同時接收一個字節(jié),但將接收的字節(jié)忽略
(4)發(fā)送0x00,同時接收第二個字節(jié)
(5)發(fā)送0x00,同時接收第三個字節(jié)
(6)CPU將CS拉高
第二和第三個接收字節(jié)包含了MAX147的轉(zhuǎn)換結(jié)果為避免T/H的過多衰減,應(yīng)保證其全部轉(zhuǎn)換時間不超過120μs[!--empirenews.page--]
3. TMS320VC5402的McBSP
3.1 McBSP的特點(diǎn)
TMS320VC5402有兩個多通道緩沖串口(MCBSP0和MCBSP1),通過幀信號來控制數(shù)據(jù)流獨(dú)立的接收、發(fā)送幀和時鐘信號;雙倍的發(fā)送緩沖和三倍的接收緩沖數(shù)據(jù)存儲器;可直接與工業(yè)標(biāo)準(zhǔn)的編碼器、模擬界面芯片、其它串行A/D、D/A器件連接;具有外部移位時鐘 發(fā)生器及內(nèi)部頻率可編程移位時鐘;可直接利用多種串行協(xié)議接口通信,如SPI、T1/E1,MVIP,AC97等;發(fā)送和接收通道數(shù)最多可以到達(dá)128路;寬范圍的數(shù)據(jù)格式選擇,包括8、12、16、20、24、32位字長;利用μ律和A律的壓縮擴(kuò)展通信;8位數(shù)據(jù)發(fā)送的高位、低位先發(fā)送可選;幀同步和時鐘信號的極性可編程;可編程內(nèi)部時鐘和幀同步信號發(fā)生器
3.2 MCBSP的工作方式
McBSP的工作方式有以下幾種:多通道緩沖模式、SPI工作模式,A-bit模式、數(shù)字回路模式、GPIO模式和省電模式McBSP的外部管腳為:串行數(shù)據(jù)接收管腳DR、接收時鐘管腳CLKR、接收幀同步信號管腳FSR、發(fā)送時鐘管腳CLKX、串行數(shù)據(jù)發(fā)送管腳DX、發(fā)送幀同步信號管腳FSXMCBSP的工作原理是:發(fā)送時,先寫數(shù)據(jù)于數(shù)據(jù)發(fā)送寄存器DXR[1,2],再在發(fā)送時鐘CLKX和幀同步發(fā)送信號FSX控制下,通過發(fā)送移位寄存器XSR[12]將數(shù)據(jù)經(jīng)發(fā)送引腳DX移出發(fā)送;接收數(shù)據(jù)時,在接收時鐘CLKR和幀同步發(fā)送信號FSR控制下,將通過接受引腳DR接收的數(shù)據(jù)移入接收移位寄存器RSR[12]并復(fù)制這些數(shù)據(jù)到接收緩沖寄存器RBR[12]再復(fù)制到DRR[12]最后由CPU或DMA控制器讀出這個過程允許內(nèi)部和外部數(shù)據(jù)通信同時進(jìn)行如果接收或發(fā)送字長R/XWDLEN被指定為8,12或16模式時,DRR2、RBR2、RSR2、DXR2、XSR2等寄存器不能進(jìn)行寫、讀、移位操作
4. MAX147與TMS320VC5402的接口電路
MAX147芯片兼容SPI數(shù)據(jù)通信協(xié)議SPI協(xié)議具有主從模式,使用4 條信號線:1) 串行時鐘信號線(SCK) ;2) 主機(jī)輸入/ 從機(jī)輸出串口數(shù)據(jù)線(MISO) ;3) 主機(jī)輸出/ 從機(jī)輸入串口數(shù)據(jù)線(MOSI) ;4) 低電平有效的使能信號線(SS) TMS320C54XX提供的時鐘停止模式可用于SPI 協(xié)議通信當(dāng)McBSP 被配置為時鐘停止模式時發(fā)送器和接收器在內(nèi)部是同步的因此可以將McBSP 作為SPI 主設(shè)備或從設(shè)備當(dāng)設(shè)置McBSP為SPI 主設(shè)備時發(fā)送端輸出信號(BDX) 就作為SPI 協(xié)議中MOSI 信號接收端輸入信號(BDR) 則被用作MISO 信號發(fā)送數(shù)據(jù)幀同步脈沖信號(BFSX) 用作設(shè)備片選信號(即SS) 而發(fā)送數(shù)據(jù)位時鐘信號(BCLKX) 用作SPI 協(xié)議中SCK由于收數(shù)據(jù)位時鐘(BCLKR) 和接收數(shù)據(jù)幀時鐘(BFSR) 在內(nèi)部與BFSX 和BCLKX是相連的因此這些信號不用于SPI 模式TMS320VC5402與MAX147接口電路如圖
500)this.style.width=500;" border=0>
5. 接口程序設(shè)計
DSP的McBSP工作在SPI模式下,需要進(jìn)行以下初始化步驟:
1)將SPCR寄存器中的XRST和RRST清零,復(fù)位發(fā)送器和接收器;
2)McBSP保持復(fù)位狀態(tài),設(shè)置相關(guān)寄存器,CLKSTP=0X,禁止時鐘停止模式;
3)置SPCR寄存器中的GRST=1,采用率發(fā)生器退出復(fù)位,開始工作;
4)等待兩個時鐘周期,確保初始化過程中McBSP內(nèi)部正確同步;
5)設(shè)置所需的CLKSTP值;
6)若CPU訪問McBSP,則XRST=RRST=1使能發(fā)送器和接收器,SPCR寄存器中其它位不變,若DMAC訪問McBSP,先進(jìn)行DMA初始化,啟動DMA,使之等待同步事件,然后XRST=RRST=1McBSP退出復(fù)位狀態(tài);[!--empirenews.page--]
7)等待兩個時鐘周期以確保McBSP內(nèi)部邏輯穩(wěn)定
將McBSP配置成SPI模式主機(jī)模式的程序如下所示:
STM SPCR1 SPSA0
STM 0000H SPSD0 ; 串行接口接收器被禁止并且處于復(fù)位狀態(tài)
STM SPCR2 SPSA0
STM 0000HSPSD0 ; 串行發(fā)送接收器被禁止并且處于復(fù)位狀態(tài)
STM RCR1 SPSA0
STM 0020HSPSD0 ;接收幀長度為12bit
STM RCR2 SPSA0
STM 0021HSPSD0 ;第一個接收幀同步脈沖之后的幀同步脈沖被忽略
STM XCR1 SPSA0
STM 0000HSPSD0 ;發(fā)送幀長度為8bit
STM XCR2 SPSA0
STM 0001HSPSD0 ;第一個發(fā)送幀同步脈沖之后的幀同步脈沖被忽略
STM SRGR1 SPSA0
STM 0009H SPSD0 ; CLKGDV=9CLKG=1MHz
STM SRGR2 SPSA0
STM 20FFHSPSD0 ;采樣率發(fā)生器時鐘由CPU時鐘提供
STM PCR SPSA0
STM 0A7FHSPSD0 ; FSXCLKX輸出FSRCLKR輸入
STM SPCR1 SPSA1
STM 1801hSPSD1 ;使McBSP處于時鐘停止模式并使能接收器
STM SPCR2 SPSA1
ORM #00C1HSPSD1 ;使能發(fā)送器,幀同步發(fā)生器,采用率產(chǎn)生器
RPT #2
NOP
中斷服務(wù)程序:
AD_RECV: SSBX SXM
AND #0FFFCHa ;存儲A/D轉(zhuǎn)換的數(shù)據(jù)
RSBX SXM
RETE
結(jié)束語
本文詳細(xì)介紹了ADC芯片MAX147與TI公司的數(shù)字處理器TMS320C5402之間的串行接口電路設(shè)計及程序設(shè)計實(shí)現(xiàn)了多路數(shù)據(jù)采集系統(tǒng)該系統(tǒng)設(shè)計方案,接口電路簡單方便,程序采用匯編語言編程,運(yùn)行穩(wěn)定,速度快,適用于語音處理,聲波振動信號采集,具有較高的實(shí)用價值及廣泛的應(yīng)用前景