摘 要:目前環(huán)境監(jiān)測(cè)儀器迫切需求高速、準(zhǔn)確、實(shí)時(shí)、連續(xù)采集分析性、網(wǎng)絡(luò)化遠(yuǎn)程控制系統(tǒng)。介紹一種通過(guò)單片機(jī)與數(shù)字信號(hào)處理器(DSP)的同步串行通訊實(shí)現(xiàn)單片機(jī)控制DSP完成信號(hào)的采集、存儲(chǔ)及回放;給出硬件電路,同時(shí)介紹軟件流程圖,部分子程序及軟硬件調(diào)試過(guò)程出現(xiàn)的問(wèn)題以及解決方法,構(gòu)建了目前環(huán)境監(jiān)測(cè)儀器需求的基礎(chǔ)性研究平臺(tái)。
關(guān)鍵詞:DSP;環(huán)境監(jiān)測(cè)儀器;同步串行通訊;軟硬件調(diào)試
中圖分類(lèi)號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):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
對(duì)于控制量不復(fù)雜但數(shù)據(jù)處理分析量非常大的系統(tǒng)(如環(huán)境監(jiān)測(cè)分析儀器、高壓設(shè)備儀表),單獨(dú)采用1片DSP加上存儲(chǔ)器,模/數(shù)轉(zhuǎn)換單元和外設(shè)接口方案要達(dá)到高速實(shí)時(shí)控制不可行。因?yàn)閱慰?個(gè)DSP完成數(shù)據(jù)的采集、模/數(shù)轉(zhuǎn)換、分析計(jì)算、數(shù)/模轉(zhuǎn)換,實(shí)時(shí)過(guò)程控制以及顯示等任務(wù)勢(shì)必會(huì)大大延遲系統(tǒng)對(duì)控制對(duì)象的控制周期,從而影響整個(gè)系統(tǒng)的性能。所以添加一個(gè)CPU 負(fù)責(zé)采集,模/數(shù)轉(zhuǎn)換,過(guò)程控制以及人機(jī)接口等任務(wù),而DSP 專(zhuān)注于系統(tǒng)控制算法的實(shí)現(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為存儲(chǔ)器映射寄存器,60H~7FH為雙尋址RAM(DARAM),80H~1FFFH為DARAM,2000H~7FFFH為單尋址RAM(SARAM)。當(dāng)DAROM=1時(shí),內(nèi)部的C000H~7FFFH同時(shí)被映射為數(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時(shí)滿(mǎn)足環(huán)境監(jiān)測(cè)分析儀器數(shù)據(jù)采集速度,采集的數(shù)據(jù)存儲(chǔ)在3000H~7FFFH數(shù)據(jù)單元滿(mǎn)足一次采集處理的數(shù)據(jù)量。同時(shí)在DAC 之前一個(gè)插值濾波器以保證輸出信號(hào)平滑和ADC 之后一個(gè)抽取濾波器以提高輸入信號(hào)的信噪比。
并行通信具有傳輸線多,不適于遠(yuǎn)距離傳輸,而串行通信具有低成本,適用于遠(yuǎn)距離通信的特性。本系統(tǒng)采用單片機(jī)P1口與DSP建立同步串行通信,具體通過(guò)P1.0,P1.1,P1.2 與DSP 的數(shù)據(jù)接收口、數(shù)據(jù)接收時(shí)鐘、數(shù)據(jù)接收幀同步脈沖口相連,實(shí)現(xiàn)雙控制器通過(guò)同步串行通信協(xié)同完成信號(hào)采集處理等任務(wù)。
2 系統(tǒng)硬件連接電路
DSP5000 有3個(gè)多通道緩沖串口(MCBSP),緩沖串口0(MCBSP0)與AD/DA芯片(TLC320AD50C)相連完成信號(hào)的采集、發(fā)送處理后的信號(hào)。緩沖串口1(MCBSP1)與單片機(jī)P1 口相連完成單片機(jī)控制DSP 的作用。具體BDR1,BCLKR1,BFSR1 通過(guò)一個(gè)電壓轉(zhuǎn)換芯片CU245A與外部數(shù)據(jù)、時(shí)鐘、幀同步脈沖相連。具體將單片機(jī)的P1.0 口與數(shù)據(jù)信號(hào)(BDR1) 相連,P1.1 口與時(shí)鐘信號(hào)口(BCLKR1)相連,P1.2 口與幀同步信號(hào)(BFSR1)相連。在這個(gè)最小系統(tǒng)中引入FLASH 芯片的目的是讓DSP 最小系統(tǒng)完全脫離仿真器單獨(dú)運(yùn)行。FLASH 芯片的CE 片選信號(hào)與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è)計(jì)
軟件部分分成2大模塊:?jiǎn)纹瑱C(jī)程序模塊、DSP 程序模塊。單片機(jī)的程序流程圖,如圖2所示。程序開(kāi)始主要初始化和打開(kāi)中斷,第二步等待是否有外部中斷,若外部按鍵按下則圖3的時(shí)序發(fā)送數(shù)據(jù),并顯示。具體單片機(jī)P1.0發(fā)送8 位數(shù)據(jù),P1.1發(fā)送時(shí)鐘信號(hào),P1.2發(fā)送幀同步脈沖。倘如沒(méi)有按鍵中斷則單片機(jī)一直處于等待中斷的狀態(tài)。
單片機(jī)發(fā)送控制信號(hào)程序段:
SENT:
CLR P1.1
ACALL DEL;延時(shí)子程序
SETB P1.1
CLR P1.2;幀同步脈沖下降延發(fā)數(shù)據(jù)
MOV A,#0FFH; 發(fā)送FF
ACALL LEFT;移位發(fā)送數(shù)據(jù)子程序
ACALL DEL;延時(shí)子程序
RET; 返回
LEFT:
MOV R7 ,#08H;移位發(fā)送8 位二進(jìn)制數(shù)
LOOP:RLC A; 發(fā)送數(shù)據(jù)左移一位
ACALL DEL
CLR P1.1;在時(shí)鐘下降延發(fā)送數(shù)據(jù)
MOV P1.0 C; P1.0發(fā)送數(shù)據(jù)
SETB P1.1
DJNZ R7 , LOOP; 判斷是否發(fā)送完FF
RET
5000系列DSP有3個(gè)狀態(tài)和控制寄存器,他們分別為狀態(tài)寄存器ST0,狀態(tài)寄存器ST1和處理器方式PMST。ST0和ST1包括了各種條件和方式的狀態(tài),PMST包括了存儲(chǔ)器配置狀態(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為存儲(chǔ)器映射寄存器,60H~7FH為雙尋址RAM(DARAM),80H~1FFFH為DARAM,2000H~7FFFH為單尋址RAM(SARAM)。當(dāng)DAROM=1時(shí),內(nèi)部的C000H~7FFFH同時(shí)被映射為數(shù)據(jù)區(qū)。當(dāng)OVLY=1時(shí),內(nèi)部的80H~1FFFH 和2000H~7FFFH同時(shí)被映射為程序區(qū)。FF80H 開(kāi)始存儲(chǔ)固有的中斷矢量,當(dāng)芯片工作在為計(jì)算機(jī)模式時(shí),起始地址為C000H的16 k×16 b ROM也被映射到程序區(qū)。5000系列DSP支持軟件和硬件中斷。軟件中斷可由1條指令產(chǎn)生中斷請(qǐng)求(如INTR,NMI,TRAP,RESET等)。硬件中斷可外部信號(hào)請(qǐng)求,這有2種情況:外部硬件中斷被外部中斷引腳上的信號(hào)觸發(fā);內(nèi)部硬件中斷被片內(nèi)外圍的信號(hào)觸發(fā)。涉及中斷的寄存器中有標(biāo)志寄存器和中斷屏蔽寄存器。DSP 的串口有多種類(lèi)型,有標(biāo)準(zhǔn)串口(SSP)、緩沖串口(BSP)、多通道緩沖串口(MCBSP)、時(shí)分串口、主機(jī)接口(HPI)。McBSP 在結(jié)構(gòu)上可以分為一個(gè)數(shù)據(jù)通道和一個(gè)控制通道。對(duì)于多通道緩沖串口的操作,涉及15個(gè)需要初始化的寄存器,他們分別是SPCR1,SPCR2,RCR1,RCR2,XCR1,XCR2,SRGR1,SRGR2,MCR1,MCR2,RCERA1,RCERB1,XCERA,XCERB,PCR1。緩沖串口0與AD50C 連接,實(shí)現(xiàn)信號(hào)的采集和回放。緩沖串口1控制DSP 開(kāi)始采集數(shù)據(jù),停止和回放采集。為了單片機(jī)更好地控制DSP,單片機(jī)發(fā)送數(shù)據(jù)時(shí)嚴(yán)格按照DSP接收時(shí)序發(fā)送。DSP程序流程圖如圖4所示。
采集按鍵判斷程序:
command
CMPM DRR11,#007FH;判斷MCBSP1 的數(shù)據(jù)接收寄存器
的內(nèi)容是否7FH
;在單片機(jī)程序判斷是否5 鍵按下
BC _AIC_INIT,TC ;是調(diào)轉(zhuǎn)到_AIC_INIT 程序
B command;不是則等待
_AIC_INIT 程序部分:
_AIC_INIT
STM #0,IMR;屏蔽所有中斷
orm #IMASK,IMR;只打開(kāi)外部中斷MCBSP1
stm #0ffffh,IFR;清中斷標(biāo)志
PROGREG 0000001100000001b;向AD50C 寄存器3 FS與
FSD 之間延遲1 個(gè)
PROGREG 0000010000010000b;寄存器4 抽樣率N=1
rsbx INTM;允許可屏蔽中斷
_js;等待外部信號(hào)中斷
nop
b _js
信號(hào)采集程序:
cpu_to_codec_ch1
ld AR5,A
NOP
NOP
bc receive ,agt;是否AR5 的值為0,是否采集了256 個(gè)點(diǎn)
ldm DRR10,A
NOP
NOP
STL A,DXR10
Receive;存儲(chǔ)子程序
sub #1,A
stl A,AR5;采集信號(hào)存儲(chǔ)在AR5 指定地址開(kāi)始存放
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 表示還沒(méi)有采集完。
RETE
TINGZHI
ST #0,p0_serialint; 表明已經(jīng)采集了256 個(gè)點(diǎn),采集標(biāo)志等于1
RETE
回放程序:
anjian
ssbx INTM;屏蔽中斷
cmpm 41h ,00h;判斷DRR11 的內(nèi)容是否00H,單片機(jī)按鍵F
bc huifang ,tc;是則跳轉(zhuǎn)到huifang 子程序
nop
b anjian;否則等待按鍵
huifang 子程序:
huifang
stm #SPEECH_IN,AR2;256 個(gè)點(diǎn)的起始標(biāo)志
st #100H,AR5; 采集256 個(gè)點(diǎn)
huifang1
ld *AR2+,A
STL A,DXR10;把采集信號(hào)暫存在寄存器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 個(gè)采集的點(diǎn)
4 結(jié) 語(yǔ)
本文介紹一種通過(guò)單片機(jī)與數(shù)字信號(hào)處理器(DSP)的同步串行通訊實(shí)現(xiàn)單片機(jī)控制DSP完成信號(hào)采集、存儲(chǔ)及回放。系統(tǒng)中同步串行通訊主要傳輸單片機(jī)控制DSP的控制信號(hào),他并不影響DSP的數(shù)據(jù)處理速度。綜合考慮,這個(gè)系統(tǒng)不僅硬件連線簡(jiǎn)單而且其穩(wěn)定性和可靠性比較好,適用于環(huán)境監(jiān)測(cè)儀器開(kāi)發(fā)平臺(tái)。
參考文獻(xiàn)
[1]王安民.TMS320C54XXDSP實(shí)用技術(shù)\\[M\\].北京:清華大學(xué)出版社,2002.
[2]汪進(jìn)進(jìn),蘇建微,徐科軍,等.DSP 與單片機(jī)之間串行通訊的實(shí)現(xiàn)\\[J\\].電子技術(shù),2002(2):15-18.
[3]宋軍,顧永建.基于CCS 和DSK5402 板的音頻采集和會(huì)放程序設(shè)計(jì)\\[J\\].電子產(chǎn)品世界,2002(3):68-71.
[4]楊力波.用DSP 軟件編程實(shí)現(xiàn)的引導(dǎo)裝載系統(tǒng)\\[EB/OL\\].61IC 中國(guó)電子在線DSP專(zhuān)欄,2004.
作者簡(jiǎn)介 阿日貢巴彥爾 男,1982年出生,中國(guó)地質(zhì)大學(xué)(武漢)機(jī)械電子工程學(xué)院碩士研究生。