摘 要:目前環(huán)境監(jiān)測儀器迫切需求高速、準(zhǔn)確、實時、連續(xù)采集分析性、網(wǎng)絡(luò)化遠(yuǎn)程控制系統(tǒng)。介紹一種通過單片機與數(shù)字信號處理器(DSP)的同步串行通訊實現(xiàn)單片機控制DSP完成信號的采集、存儲及回放;給出硬件電路,同時介紹軟件流程圖,部分子程序及軟硬件調(diào)試過程出現(xiàn)的問題以及解決方法,構(gòu)建了目前環(huán)境監(jiān)測儀器需求的基礎(chǔ)性研究平臺。
關(guān)鍵詞:DSP;環(huán)境監(jiān)測儀器;同步串行通訊;軟硬件調(diào)試
中圖分類號:TP368.1 文獻標(biāo)識碼:B
文章編號:1004-373X(2008)06-030-03
Design of DSP and Single Chip-based Signal Acquisition System
A Rigongbayaner,JIN Xing,SHI Xuefeng
(School of Mechanical and Electronic Engineering,China University of Geosciences,Wuhan,430074,China)
Abstract:This paper gives a introduction on implementation of signal sampling,storage and playback of signal through serial communication between single chip and DSP.The hardware circuit scheme and simple software process are included.It meets the requirement of high speed signal sampling and processing control system.
Keywords:DSP;environment monitoring equipment;synchronous serial communication;software hardware debug
對于控制量不復(fù)雜但數(shù)據(jù)處理分析量非常大的系統(tǒng)(如環(huán)境監(jiān)測分析儀器、高壓設(shè)備儀表),單獨采用1片DSP加上存儲器,模/數(shù)轉(zhuǎn)換單元和外設(shè)接口方案要達(dá)到高速實時控制不可行。因為單靠1個DSP完成數(shù)據(jù)的采集、模/數(shù)轉(zhuǎn)換、分析計算、數(shù)/模轉(zhuǎn)換,實時過程控制以及顯示等任務(wù)勢必會大大延遲系統(tǒng)對控制對象的控制周期,從而影響整個系統(tǒng)的性能。所以添加一個CPU 負(fù)責(zé)采集,模/數(shù)轉(zhuǎn)換,過程控制以及人機接口等任務(wù),而DSP 專注于系統(tǒng)控制算法的實現(xiàn),充分利用他的高速數(shù)據(jù)處理分析能力。
1 系統(tǒng)方案
TMS320VC5410內(nèi)部具有16×16 b的ROM 和32×16 b的RAM。芯片內(nèi)部RAM和ROM可根據(jù)PMST寄存器中的OVLY,DROM位靈活設(shè)置。數(shù)據(jù)區(qū)00H~5FH為存儲器映射寄存器,60H~7FH為雙尋址RAM(DARAM),80H~1FFFH為DARAM,2000H~7FFFH為單尋址RAM(SARAM)。當(dāng)DAROM=1時,內(nèi)部的C000H~7FFFH同時被映射為數(shù)據(jù)區(qū)。AD50C內(nèi)部集成16位的D/A和A/D轉(zhuǎn)換器,采樣速率最高可達(dá)22.05 kb/s,其采樣速率fs=MCLK/(128×N)或MCLK/(512×N),N由DSP設(shè)置AD50C寄存器4,當(dāng)N=1時滿足環(huán)境監(jiān)測分析儀器數(shù)據(jù)采集速度,采集的數(shù)據(jù)存儲在3000H~7FFFH數(shù)據(jù)單元滿足一次采集處理的數(shù)據(jù)量。同時在DAC 之前一個插值濾波器以保證輸出信號平滑和ADC 之后一個抽取濾波器以提高輸入信號的信噪比。
并行通信具有傳輸線多,不適于遠(yuǎn)距離傳輸,而串行通信具有低成本,適用于遠(yuǎn)距離通信的特性。本系統(tǒng)采用單片機P1口與DSP建立同步串行通信,具體通過P1.0,P1.1,P1.2 與DSP 的數(shù)據(jù)接收口、數(shù)據(jù)接收時鐘、數(shù)據(jù)接收幀同步脈沖口相連,實現(xiàn)雙控制器通過同步串行通信協(xié)同完成信號采集處理等任務(wù)。
2 系統(tǒng)硬件連接電路
DSP5000 有3個多通道緩沖串口(MCBSP),緩沖串口0(MCBSP0)與AD/DA芯片(TLC320AD50C)相連完成信號的采集、發(fā)送處理后的信號。緩沖串口1(MCBSP1)與單片機P1 口相連完成單片機控制DSP 的作用。具體BDR1,BCLKR1,BFSR1 通過一個電壓轉(zhuǎn)換芯片CU245A與外部數(shù)據(jù)、時鐘、幀同步脈沖相連。具體將單片機的P1.0 口與數(shù)據(jù)信號(BDR1) 相連,P1.1 口與時鐘信號口(BCLKR1)相連,P1.2 口與幀同步信號(BFSR1)相連。在這個最小系統(tǒng)中引入FLASH 芯片的目的是讓DSP 最小系統(tǒng)完全脫離仿真器單獨運行。FLASH 芯片的CE 片選信號與DSP5000 的DS 引腳相連。FLASH的數(shù)據(jù)線A0~A16 與DSP5000 的A0~A16 相連接,F(xiàn)LASH 數(shù)據(jù)總線D0~D7與DSP的數(shù)據(jù)總線D0~D7 連接。如圖1所示。
3 系統(tǒng)軟件設(shè)計
軟件部分分成2大模塊:單片機程序模塊、DSP 程序模塊。單片機的程序流程圖,如圖2所示。程序開始主要初始化和打開中斷,第二步等待是否有外部中斷,若外部按鍵按下則圖3的時序發(fā)送數(shù)據(jù),并顯示。具體單片機P1.0發(fā)送8 位數(shù)據(jù),P1.1發(fā)送時鐘信號,P1.2發(fā)送幀同步脈沖。倘如沒有按鍵中斷則單片機一直處于等待中斷的狀態(tài)。



單片機發(fā)送控制信號程序段:
SENT:
CLR P1.1
ACALL DEL;延時子程序
SETB P1.1
CLR P1.2;幀同步脈沖下降延發(fā)數(shù)據(jù)
MOV A,#0FFH; 發(fā)送FF
ACALL LEFT;移位發(fā)送數(shù)據(jù)子程序
ACALL DEL;延時子程序
RET; 返回
LEFT:
MOV R7 ,#08H;移位發(fā)送8 位二進制數(shù)
LOOP:RLC A; 發(fā)送數(shù)據(jù)左移一位
ACALL DEL
CLR P1.1;在時鐘下降延發(fā)送數(shù)據(jù)
MOV P1.0 C; P1.0發(fā)送數(shù)據(jù)
SETB P1.1
DJNZ R7 , LOOP; 判斷是否發(fā)送完FF
RET
5000系列DSP有3個狀態(tài)和控制寄存器,他們分別為狀態(tài)寄存器ST0,狀態(tài)寄存器ST1和處理器方式PMST。ST0和ST1包括了各種條件和方式的狀態(tài),PMST包括了存儲器配置狀態(tài)和控制信息。C5410 內(nèi)部具有16×16 b的ROM和32×16 b的RAM。芯片內(nèi)部RAM和ROM可根據(jù)PMST寄存器中的OVLY,DROM位靈活設(shè)置。數(shù)據(jù)區(qū),00H~5FH為存儲器映射寄存器,60H~7FH為雙尋址RAM(DARAM),80H~1FFFH為DARAM,2000H~7FFFH為單尋址RAM(SARAM)。當(dāng)DAROM=1時,內(nèi)部的C000H~7FFFH同時被映射為數(shù)據(jù)區(qū)。當(dāng)OVLY=1時,內(nèi)部的80H~1FFFH 和2000H~7FFFH同時被映射為程序區(qū)。FF80H 開始存儲固有的中斷矢量,當(dāng)芯片工作在為計算機模式時,起始地址為C000H的16 k×16 b ROM也被映射到程序區(qū)。5000系列DSP支持軟件和硬件中斷。軟件中斷可由1條指令產(chǎn)生中斷請求(如INTR,NMI,TRAP,RESET等)。硬件中斷可外部信號請求,這有2種情況:外部硬件中斷被外部中斷引腳上的信號觸發(fā);內(nèi)部硬件中斷被片內(nèi)外圍的信號觸發(fā)。涉及中斷的寄存器中有標(biāo)志寄存器和中斷屏蔽寄存器。DSP 的串口有多種類型,有標(biāo)準(zhǔn)串口(SSP)、緩沖串口(BSP)、多通道緩沖串口(MCBSP)、時分串口、主機接口(HPI)。McBSP 在結(jié)構(gòu)上可以分為一個數(shù)據(jù)通道和一個控制通道。對于多通道緩沖串口的操作,涉及15個需要初始化的寄存器,他們分別是SPCR1,SPCR2,RCR1,RCR2,XCR1,XCR2,SRGR1,SRGR2,MCR1,MCR2,RCERA1,RCERB1,XCERA,XCERB,PCR1。緩沖串口0與AD50C 連接,實現(xiàn)信號的采集和回放。緩沖串口1控制DSP 開始采集數(shù)據(jù),停止和回放采集。為了單片機更好地控制DSP,單片機發(fā)送數(shù)據(jù)時嚴(yán)格按照DSP接收時序發(fā)送。DSP程序流程圖如圖4所示。

采集按鍵判斷程序:
command
CMPM DRR11,#007FH;判斷MCBSP1 的數(shù)據(jù)接收寄存器
的內(nèi)容是否7FH
;在單片機程序判斷是否5 鍵按下
BC _AIC_INIT,TC ;是調(diào)轉(zhuǎn)到_AIC_INIT 程序
B command;不是則等待
_AIC_INIT 程序部分:
_AIC_INIT
STM #0,IMR;屏蔽所有中斷
orm #IMASK,IMR;只打開外部中斷MCBSP1
stm #0ffffh,IFR;清中斷標(biāo)志
PROGREG 0000001100000001b;向AD50C 寄存器3 FS與
FSD 之間延遲1 個
PROGREG 0000010000010000b;寄存器4 抽樣率N=1
rsbx INTM;允許可屏蔽中斷
_js;等待外部信號中斷
nop
b _js
信號采集程序:
cpu_to_codec_ch1
ld AR5,A
NOP
NOP
bc receive ,agt;是否AR5 的值為0,是否采集了256 個點
ldm DRR10,A
NOP
NOP
STL A,DXR10
Receive;存儲子程序
sub #1,A
stl A,AR5;采集信號存儲在AR5 指定地址開始存放
ldm DRR10,A
stl A,DXR10
stl A,*AR2+
ST #1,p0_serialint
停止采集程序:
CMPM 41H,70H;判斷是否B 鍵按下,DSP 接收到的數(shù)據(jù)是否為70H
NOP
BC TINGZHI,TC;如果是70H 則調(diào)轉(zhuǎn)到停止子程序
ST #1,p0_serialint;否則采集標(biāo)志1 表示還沒有采集完。
RETE
TINGZHI
ST #0,p0_serialint; 表明已經(jīng)采集了256 個點,采集標(biāo)志等于1
RETE
回放程序:
anjian
ssbx INTM;屏蔽中斷
cmpm 41h ,00h;判斷DRR11 的內(nèi)容是否00H,單片機按鍵F
bc huifang ,tc;是則跳轉(zhuǎn)到huifang 子程序
nop
b anjian;否則等待按鍵
huifang 子程序:
huifang
stm #SPEECH_IN,AR2;256 個點的起始標(biāo)志
st #100H,AR5; 采集256 個點
huifang1
ld *AR2+,A
STL A,DXR10;把采集信號暫存在寄存器A 中
WAITTRX1; 等待發(fā)送數(shù)據(jù)給AD50C
ld AR5,A
nop
nop
sub #1 ,A
stl A ,AR5
bc huifang1 ,AGT;是否全部發(fā)送完
nop
nop
b huifang; 循環(huán)發(fā)送256 個采集的點
4 結(jié) 語
本文介紹一種通過單片機與數(shù)字信號處理器(DSP)的同步串行通訊實現(xiàn)單片機控制DSP完成信號采集、存儲及回放。系統(tǒng)中同步串行通訊主要傳輸單片機控制DSP的控制信號,他并不影響DSP的數(shù)據(jù)處理速度。綜合考慮,這個系統(tǒng)不僅硬件連線簡單而且其穩(wěn)定性和可靠性比較好,適用于環(huán)境監(jiān)測儀器開發(fā)平臺。
參考文獻
[1]王安民.TMS320C54XXDSP實用技術(shù)\\[M\\].北京:清華大學(xué)出版社,2002.
[2]汪進進,蘇建微,徐科軍,等.DSP 與單片機之間串行通訊的實現(xiàn)\\[J\\].電子技術(shù),2002(2):15-18.
[3]宋軍,顧永建.基于CCS 和DSK5402 板的音頻采集和會放程序設(shè)計\\[J\\].電子產(chǎn)品世界,2002(3):68-71.
[4]楊力波.用DSP 軟件編程實現(xiàn)的引導(dǎo)裝載系統(tǒng)\\[EB/OL\\].61IC 中國電子在線DSP專欄,2004.
作者簡介 阿日貢巴彥爾 男,1982年出生,中國地質(zhì)大學(xué)(武漢)機械電子工程學(xué)院碩士研究生。