高利兵
(中國石油集團(tuán)測井有限公司吐哈事業(yè)部 新疆鄯善)
基于TMS320F2812的信號(hào)處理系統(tǒng)的設(shè)計(jì)
高利兵
(中國石油集團(tuán)測井有限公司吐哈事業(yè)部 新疆鄯善)
根據(jù)高分辨感應(yīng)測井儀井下信息處理的需要,設(shè)計(jì)了一種基TMS320F2812的信號(hào)處理系統(tǒng)。采用DSP芯片TMS320F2812實(shí)現(xiàn)井下信息的實(shí)時(shí)采集處理,將數(shù)據(jù)通過串行異步通信接口傳到PC機(jī),由PC機(jī)的串口調(diào)試工具對(duì)接收信號(hào)進(jìn)行顯示和具體分析并將結(jié)果反饋給DSP進(jìn)行控制。文章對(duì)硬件和軟件設(shè)計(jì)及其進(jìn)行了詳細(xì)描述,該系統(tǒng)具有很高的可靠性,具有高速數(shù)據(jù)采集功能。
DSP;SCI;采集;信息處理
隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展和計(jì)算機(jī)技術(shù)的普及,信號(hào)處理系統(tǒng)已應(yīng)用于越來越多的場合,如:無線通信、語音識(shí)別、機(jī)器人、遙感遙測和圖像處理等領(lǐng)域。數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)芯片在高速信號(hào)處理方面具有速度快、運(yùn)算性能好等優(yōu)點(diǎn)。本文設(shè)計(jì)了一種基于TI公司的TMS320F2812的信號(hào)處理系統(tǒng)。充分利用該芯片內(nèi)部自帶了12位,總共16路的AD,使得2812的AD精度理論上可達(dá)到12位的精度。
本文介紹的信號(hào)處理系統(tǒng)采用TMS320F2812的模數(shù)轉(zhuǎn)換模塊(ADC),完成數(shù)據(jù)的采集及A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)預(yù)先存儲(chǔ)到片外的RAM中,再經(jīng)DSP進(jìn)行前端的數(shù)字信號(hào)處理,通過串口總線傳給PC機(jī),并在PC機(jī)上進(jìn)行存儲(chǔ)、顯示和分析等。本系統(tǒng)主要由數(shù)字信號(hào)處理器TMS320F2812、模擬信號(hào)的預(yù)處理、片外存儲(chǔ)器SRAM、RS232通信接口組成。圖1為系統(tǒng)結(jié)構(gòu)框圖。
圖1 系統(tǒng)結(jié)構(gòu)框圖
其中,由于該DSP的A/D采樣端口的最高采樣輸入電壓是3V,為了能使其正常工作,送入DSP的信號(hào)必須經(jīng)過運(yùn)放處理后,使其在A/D正常采集電壓范圍之內(nèi),模擬信號(hào)的預(yù)處理模塊的作用就是將輸入的信號(hào)電壓的幅度調(diào)節(jié)到0~3 V范圍內(nèi);片外RAM選用ISSI公司的IS61LV51216芯片作數(shù)據(jù)緩沖;TMS320F2812對(duì)輸入的信號(hào)進(jìn)行采集、處理,并將其處理結(jié)果通過RS232總線接口與PC進(jìn)行數(shù)據(jù)通信,通過串口調(diào)試工具實(shí)時(shí)監(jiān)測發(fā)送和接收數(shù)據(jù);ADC模塊以中斷方式實(shí)現(xiàn)數(shù)據(jù)的收/發(fā)處理。
DSP采用TI公司的32位定點(diǎn)芯片TMS320F2812,外部采用低頻時(shí)鐘經(jīng)過鎖相環(huán)倍頻后最高可在150 MHz主頻下工作,并帶有18 K×16 bit零等待周期片上SRAM和128 K×16 bit片內(nèi)FLASH。本系統(tǒng)DSP的ADC采用級(jí)聯(lián)成一個(gè)16通道的順序采樣模式對(duì)數(shù)據(jù)進(jìn)行采集、處理。轉(zhuǎn)換結(jié)束后采樣的通道值就會(huì)被保存到相應(yīng)的結(jié)果寄存器(ResultReg0—ResultReg15)中去。其ADC模塊框圖如圖2所示[1]。本系統(tǒng)采用這款DSP的片上ADC模塊對(duì)待處理的信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換。該模塊有16個(gè)通道,單通道轉(zhuǎn)換的最小的轉(zhuǎn)換時(shí)間是80 ns,因此,DSP的最大采樣速率可達(dá)到12.5 MHz[2]。
根據(jù)現(xiàn)場實(shí)際需要,本系統(tǒng)采用軟件來啟動(dòng)AD轉(zhuǎn)換(SOC=startof conversion)。但是由于一些DSP內(nèi)部的原因,使得2812的AD精度達(dá)不到12位的精度,而且誤差比較大,不過這足以滿足實(shí)際對(duì)測井?dāng)?shù)據(jù)的精度的要求,為了提高內(nèi)部AD的精度,也可從硬件和軟件的角度采用補(bǔ)償措施對(duì)其進(jìn)行校正,使得其精度達(dá)到了現(xiàn)場對(duì)信號(hào)處理的要求。
圖2 2812的ADC模塊框圖
DSP的輸入/輸出電平為TTL電平,即UART串口,這與PC機(jī)的RS-232標(biāo)準(zhǔn)串行接口的電氣規(guī)范不一致,因此DSP與PC機(jī)之間的數(shù)據(jù)通信必須進(jìn)行電平轉(zhuǎn)換。
選用MAX3232CSE驅(qū)動(dòng)芯片可以很好地解決這個(gè)問題。DSP與MAX3232CSE連接如圖3所示。
圖3 DSP與MAX3232CSE的硬件連接
SCI模塊支持多處理器通信,有空閑多處理器模式和地址位多處理器模式兩種通信協(xié)議,這兩種協(xié)議允許在多處理器間進(jìn)行有效的數(shù)據(jù)傳送。同時(shí),SCI還提供了通用異步接受/發(fā)送(UART)通信模式,能夠與多種帶有標(biāo)準(zhǔn)串口的外設(shè)進(jìn)行通信。SCI的接收和發(fā)送數(shù)據(jù)都采用非歸零數(shù)據(jù)格式,數(shù)據(jù)的基本單元為字符,帶有格式信息的數(shù)據(jù)字符叫一幀,每個(gè)幀包括:一個(gè)啟動(dòng)位,1~8個(gè)數(shù)據(jù)位,一個(gè)奇/偶校驗(yàn)位或無奇/偶校驗(yàn)位,一個(gè)或兩個(gè)停止位。在同一條串行連接線上,多處理器通信模式允許一個(gè)處理器向串行線上其他處理器發(fā)送數(shù)據(jù)。但是一條串行線上,每次只能實(shí)現(xiàn)一個(gè)數(shù)據(jù)傳送[3]??臻e線模式與地址位模式的區(qū)別只是數(shù)據(jù)幀格式有無Addr/data位,具體采用哪種模式可通過SCICCR的的第三位ADDR/IDLE MODE確定,本系統(tǒng)需要處理大的數(shù)據(jù)塊,所以將其配置為空閑線模式:
SciRegs.SCICCR.all=0x0007;//設(shè)置為一個(gè)停止位,禁止字測試模式
大多數(shù)的SCI硬件模塊不支持自動(dòng)波特率檢測,而在TMS320F2812處理器上,增強(qiáng)功能的SCI模塊硬件支持自動(dòng)波特率檢測邏輯和發(fā)送/接受FIFO操作。自動(dòng)波特率檢測邏輯主要解決中斷過程中波特率的確定問題[4]。16字的FIFO可極大減少通信中斷次數(shù)以提高通信速率。通過設(shè)置SCIHBAUD,SCILBAUD的值可到64K種不同的波特率,波特率的計(jì)算公式為:
本系統(tǒng)的外部晶振20MHz經(jīng)過PLL5倍頻后達(dá)100 MHz,該系統(tǒng)中的PC與DSP的通信速率設(shè)置為19 200 bps,通過對(duì)SCI的進(jìn)行初始化即可。
計(jì)算機(jī)端利用串口調(diào)試助手實(shí)現(xiàn)接收顯示,將其設(shè)置成與DSP相同的波特率、有無校驗(yàn)位、數(shù)據(jù)位長度、停止位長度以及數(shù)據(jù)位數(shù)即可正常顯示收/發(fā)數(shù)據(jù)。
系統(tǒng)的軟件設(shè)計(jì)包括DSP程序的初始化,采集處理部分。系統(tǒng)上電后,程序要對(duì)DSP所有要用到的的外設(shè)及時(shí)鐘根據(jù)系統(tǒng)的需要置于初始狀態(tài),然后開啟定時(shí)器CPUTIMER1,在定時(shí)器CPUTIMER1中斷中進(jìn)行信號(hào)采集和處理,最后將處理的結(jié)果經(jīng)串口送入PC機(jī)中,交由PC機(jī)程序?qū)?shù)據(jù)進(jìn)行具體的分析處理[5~6]。軟件設(shè)計(jì)的流程圖如圖4所示。
圖4 軟件設(shè)計(jì)的流程圖
主程序代碼如下:
void main(void)
{
InitSysCtrl();//初始化系統(tǒng)
DINT;//關(guān)中斷
IER=0x0000;
IFR=0x0000;
InitPieCtrl();//初始化PIE控制寄存器
InitPieVectTable();//初始化PIE向量表
EALLOW;
PieVectTable.ADCINT=&ad;
EDIS;
InitAdc();//初始化ADC
IER|=M_INT13;//使能CPU定時(shí)器1
EINT;//使能全局中斷INTM
ERTM;//使能實(shí)時(shí)調(diào)試中斷DBGM
while(AdcRegs.ADC_ST_FLAG.bit.SEQ1-BSY==0)
{
AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;//軟件啟動(dòng)
ADC
}//從空閑模式啟動(dòng)SEQ1
AdcRegs.ADC-ST_FLAG.bit.INT_SEQ1_CLR=1;//清除SEQ1的中斷標(biāo)志位INT-SEQ1
ADResult[i]=3*adcregs.adcreulti/65520;//設(shè)置AD的精度為
12位
}
基于DSP的信號(hào)處理系統(tǒng)采用TMS320F2812片內(nèi)自帶的12位的AD模塊,大大地節(jié)省了系統(tǒng)成本,同時(shí)也簡化了硬件的設(shè)計(jì)。該系統(tǒng)具有較高的信號(hào)采集與處理精度和通用性,可滿足現(xiàn)場的需求。
[1] 蘇奎峰,呂 強(qiáng).TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2006
[2] Texas Instruments Inc.TMS320F2812 Fixed-point digital processor[DB/OL].http://www.ic-on-line.cn/IOL/datasheet/tms320f2812.pdf.2009-05
[3] 季小林,高曉蓉.基于TMS320F2812的數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息.2007,23(8)
[4] 孫元敏,尹立新,楊書濤.基于TMS320F2812的高速數(shù)據(jù)采集處理系統(tǒng)[J].計(jì)算機(jī)工程.2009,35(2)
[5] 蘇奎峰,蔡昭權(quán).TMS320X281X DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008
[6] 蘇 濤,蔡建隆.DSP接口電路設(shè)計(jì)與編程[M].西安:西安電子科技大學(xué)出版社,2003
P631.8+3
B
1004-9134(2010)06-0069-02
高利兵,男,1982年生,工程師,2004年畢業(yè)于西安石油大學(xué)機(jī)械設(shè)計(jì)制造及其自動(dòng)化專業(yè),現(xiàn)在中國石油集團(tuán)測井有限公司吐哈事業(yè)部人力資源部。郵編:838202
2010-02-27編輯:高紅霞)