一種基于DSP和MCU的雙CPU數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)
在嵌入式控制系統(tǒng)中經(jīng)常需要對(duì)現(xiàn)場物理量進(jìn)行數(shù)據(jù)采集與實(shí)時(shí)處理,且要求系統(tǒng)具有良好的人機(jī)交互功能,這時(shí)僅采用DSP處理器往往不能滿足要求。本文選擇以單片機(jī)為主處理單元(主要完成各種控制和接口功能)、DSP芯片為從處理單元(主要完成數(shù)據(jù)運(yùn)算和處理)的系統(tǒng)結(jié)構(gòu)方案,該系統(tǒng)可獨(dú)立使用,也可與上位PC機(jī)進(jìn)行通信。
1 數(shù)據(jù)處理系統(tǒng)硬件總體設(shè)計(jì)方案
該數(shù)據(jù)處理系統(tǒng)是為一種信號(hào)檢測設(shè)備設(shè)計(jì)[1-2]的,能快速采集兩路傳感器的信號(hào)并進(jìn)行實(shí)時(shí)處理。系統(tǒng)由MCU處理器、DSP處理器、8位高速A/D轉(zhuǎn)換器以及FLASH存儲(chǔ)器等部分組成,傳感器的信號(hào)送入高速A/D轉(zhuǎn)換器進(jìn)行模數(shù)轉(zhuǎn)換,結(jié)果送入DSP中。這里DSP芯片采用了TI公司具有高速數(shù)據(jù)運(yùn)算和處理能力的TMS320VC5402,運(yùn)算結(jié)果通過HPI傳送到單片機(jī),利用單片機(jī)方便的接口電路和控制功能,輸出并顯示結(jié)果或送入PC機(jī)做進(jìn)一步處理。圖1為該系統(tǒng)的結(jié)構(gòu)框圖,其中FLASH用于存放自舉引導(dǎo)程序。
2 數(shù)據(jù)處理系統(tǒng)硬件接口設(shè)計(jì)
2.1 A/D接口電路設(shè)計(jì)
該數(shù)據(jù)處理系統(tǒng)首要的任務(wù)是將傳感器的信號(hào)經(jīng)過調(diào)理后進(jìn)行A/D轉(zhuǎn)換。為了實(shí)現(xiàn)高速、實(shí)時(shí)的數(shù)據(jù)采集轉(zhuǎn)換和處理,系統(tǒng)中A/D轉(zhuǎn)換模塊采用了TI公司的8位并行A/D器件TLC5510A[3-4],最高頻率可達(dá)20MHz,能實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)采集。該模塊采用單一+4V電源供電,正常工作時(shí)的最大功耗為150mW,適合便攜式儀器儀表使用。傳感器的信號(hào)通過TLC5510A的模擬量輸入引腳送入,利用DSP內(nèi)部定時(shí)器來控制A/D采樣率,在每次產(chǎn)生定時(shí)器中斷時(shí)對(duì)數(shù)據(jù)進(jìn)行讀取,這樣可通過設(shè)置定時(shí)器的初始值來改變采樣率。圖2為A/D轉(zhuǎn)換接口電路圖,其中為片選端,低電平有效,時(shí)鐘由DSP內(nèi)部時(shí)鐘提供,送入A/D芯片的CLK引腳。轉(zhuǎn)換后的8位數(shù)字量經(jīng)電平轉(zhuǎn)換(A/D轉(zhuǎn)換器和DSP工作電壓不同)后直接送入DSP中,結(jié)合相關(guān)算法進(jìn)行數(shù)據(jù)處理。
2.2 數(shù)據(jù)處理系統(tǒng)FLASH引導(dǎo)加載[5]
由于系統(tǒng)用于便攜式儀器中,加電后要有獨(dú)立運(yùn)行的能力,而所使用的DSP芯片內(nèi)無永久性存儲(chǔ)器,所以系統(tǒng)運(yùn)行時(shí)需進(jìn)行自舉引導(dǎo)。DSP為脫機(jī)運(yùn)行提供了五種引導(dǎo)模式,分別是:主機(jī)端口(HPI)引導(dǎo)模式;串行EEPROM引導(dǎo)模式;并行引導(dǎo)模式;標(biāo)準(zhǔn)串行口引導(dǎo)模式;I/O引導(dǎo)模式。其中并行引導(dǎo)方式在這里被認(rèn)為是最佳的,因?yàn)镠PI端口引導(dǎo)方式、串口引導(dǎo)方式、I/O引導(dǎo)方式只適用于由其他處理器為DSP TMS320VC5402提供運(yùn)行代碼的多處理器系統(tǒng)中,SPI串行EEPROM引導(dǎo)方式和并行引導(dǎo)方式雖然都適用于以TMS320VC5402為核心的獨(dú)立系統(tǒng),但是SPI EEPROM引導(dǎo)方式價(jià)格偏高,而并行引導(dǎo)方式則可以采用FLASH,因?yàn)镕LASH種類很多且價(jià)格較低,可以充分體現(xiàn)系統(tǒng)的性價(jià)比優(yōu)勢,故該系統(tǒng)中采用并行引導(dǎo)方式實(shí)現(xiàn)程序的自舉引導(dǎo)加載。
2.2.1 自舉引導(dǎo)過程
TMS320VC5402 DSP的引導(dǎo)加載選擇過程如圖3所示。系統(tǒng)上電或硬件復(fù)位后,首先判斷芯片的引腳。如果該引腳為高電平,則選擇微處理器模式,片內(nèi)ROM從程序空間移去,DSP執(zhí)行FF80H處的跳轉(zhuǎn)命令,跳轉(zhuǎn)到F800H處的引導(dǎo)程序段并實(shí)現(xiàn)代碼移植功能,最后再次跳轉(zhuǎn)到加載的用戶程序起始地址并執(zhí)行應(yīng)用程序;如果引腳為低電平,則選擇微計(jì)算機(jī)模式,片內(nèi)ROM被映射到程序存儲(chǔ)器空間,DSP執(zhí)行FF80H處的跳轉(zhuǎn)命令,自動(dòng)跳轉(zhuǎn)到內(nèi)部引導(dǎo)程序入口地址F800H,啟動(dòng)內(nèi)部引導(dǎo)程序,選擇引導(dǎo)模式。本系統(tǒng)的引腳置低。
圖3為DSP自舉加載的流程,上電判斷為0后,依次檢測INT2、INT3,當(dāng)滿足要求且并口有效時(shí),即開始執(zhí)行并行引導(dǎo)程序。否則,按引導(dǎo)流程依次判斷,直到滿足條件為止。
2.2.2 實(shí)現(xiàn)自舉硬件接口電路的設(shè)計(jì)
根據(jù)設(shè)計(jì)的需要,FLASH采用TI公司的SST39VF040A。圖4為TMS320VC5402和FLASH的硬件接口電路[5]。由于TMS320VC5402和FLASH都是3.3V供電,接口中TMS320VC5402的D0~D7直接與FLASH的D0~D7相連,二者的地址信號(hào)線A0~A17也相連,TMS320VC5402的DS接FLASH片選端CE,TMS320VC5402的和經(jīng)邏輯組合后接FLASH的。由于FLASH是512K×8bit的芯片,地址線為18位,超過了Bootloader所能訪問的16位地址空間,而FLASH在被訪問時(shí),高位的地址線必須是確定態(tài)(高或低),所以在訪問FLASH之前必須先對(duì)擴(kuò)展頁寄存器XPC進(jìn)行初始化,以使超出16位的地址線也具有確定的狀態(tài),通過設(shè)計(jì)邏輯電路滿足讀寫時(shí)序要求。
2.2.3 FLASH讀寫操作
2.2.3.1 FLASH的讀操作
FLASH的讀操作基本上與普通的存儲(chǔ)器讀操作一致,具體的讀周期時(shí)序如圖5(a)所示。當(dāng)CE與OE為低電平時(shí),DSP就可以讀取FLASH中的數(shù)據(jù)。要注意的是,信號(hào)是由DSP產(chǎn)生的,在讀取一個(gè)數(shù)據(jù)后,DSP必須在引腳給出一個(gè)上升沿標(biāo)志,通知FLASH已經(jīng)將數(shù)據(jù)讀取,之后FLASH會(huì)自動(dòng)將下一個(gè)存儲(chǔ)單元的數(shù)據(jù)送到數(shù)據(jù)線上,重復(fù)以上過程,DSP可以將需要的數(shù)據(jù)依次讀出。
2.2.3.2 FLASH的寫操作
FLASH的寫操作相對(duì)復(fù)雜一些,它需要一串命令序列,通過對(duì)FLASH的命令寄存器寫入相應(yīng)的命令字來完成寫入和擦除。對(duì)應(yīng)的寫操作時(shí)序圖如圖5(b)所示。
3 主機(jī)接口(HPI)通信設(shè)計(jì)
主機(jī)接口[6-7](HPI,Host Port Interface)是TMS320C54x系列定點(diǎn)芯片內(nèi)部具有的一種接口部件,主要用于DSP與其他總線或CPU進(jìn)行通信。HPI接口通過HPI控制寄存器(HPIC)、地址寄存器(HPIA)、數(shù)據(jù)鎖存器(HPID)和HPI內(nèi)存實(shí)現(xiàn)與主機(jī)通信。其主要特點(diǎn)有:接口所需外圍硬件很少;HPI單元允許芯片直接利用一個(gè)或兩個(gè)數(shù)據(jù)選通信號(hào)、一個(gè)獨(dú)立或復(fù)用的地址總線以及一個(gè)獨(dú)立或復(fù)用的數(shù)據(jù)總線接到微控制單元MCU上;主機(jī)和DSP可獨(dú)立地對(duì)HPI接口進(jìn)行操作;主機(jī)和DSP握手可通過中斷方式來完成。
由于本數(shù)據(jù)處理系統(tǒng)采用雙CPU(DSP+MCU),經(jīng)A/D轉(zhuǎn)換后的信號(hào)先保存在DSP的存儲(chǔ)器中,DSP和MCU之間需進(jìn)行數(shù)據(jù)通信,同時(shí)HPI方式還能讓單片機(jī)共享DSP內(nèi)部的雙口RAM,彌補(bǔ)單片機(jī)內(nèi)部RAM不足等缺陷。在硬件設(shè)計(jì)時(shí),要注意單片機(jī)89C51是+5V供電,DSP是+3.3V供電,需進(jìn)行電平轉(zhuǎn)換。
圖6為89C51與DSP HPI通信硬件接口圖。其中89C51的端口P0.1~P0.7與HPI的8位數(shù)據(jù)線(HD0~HD7)相連作為數(shù)據(jù)傳輸通道,P2.0~P2.4設(shè)置為輸出來控制HPI接口的操作。其中P2.0為讀寫控制選通信號(hào)連接P2.1連接字節(jié)識(shí)別信號(hào)HBIL,控制讀寫數(shù)據(jù)是屬于16位字的第一字節(jié)還是第二字節(jié);P2.2和P2.3分別連接HCNTL0和HCNTL1以實(shí)現(xiàn)對(duì)HPIC、HPIA和HPID寄存器的訪問;P2.4連接作為數(shù)據(jù)選通信號(hào)來鎖存有效的HCNTL0/1、HBIL和信號(hào);P2.5與相連作為片選信號(hào);INT0作為輸入與HPI的主機(jī)中斷信號(hào)一直接高電平。在數(shù)據(jù)交換過程中,89C51向HPI發(fā)送數(shù)據(jù)時(shí)通過置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位為1來中斷TMS320VC5402;89C51接收來自HPI的數(shù)據(jù)時(shí)通過查詢方式,當(dāng)TMS320VC5402 DSP準(zhǔn)備發(fā)送數(shù)據(jù)時(shí)置為低,89C51查詢到INT0為低時(shí)調(diào)用接收數(shù)據(jù)子程序來實(shí)現(xiàn)數(shù)據(jù)的接收。
4 系統(tǒng)調(diào)試及結(jié)果
為了調(diào)試該系統(tǒng),可以在A/D轉(zhuǎn)換器輸入端輸入一個(gè)確定信號(hào),觀察其采集和輸出的情況。為此設(shè)計(jì)了A/D轉(zhuǎn)換和數(shù)據(jù)處理程序。將信號(hào)發(fā)生器DG2000的輸出轉(zhuǎn)換后存入DSP數(shù)據(jù)存儲(chǔ)器的連續(xù)單元中,設(shè)計(jì)了簡單明晰的頻率計(jì)算程序,通過零點(diǎn)檢測計(jì)算出信號(hào)的頻率,最終結(jié)果經(jīng)HPI傳送給單片機(jī)并顯示出來。
測試中所用儀器為:RIGOL系列信號(hào)發(fā)生器DG2000。
將信號(hào)發(fā)生器DG2000的輸出經(jīng)一個(gè)保護(hù)電阻接到A/D輸入端。波形輸入和LED顯示界面如圖7所示。
通過對(duì)不同信號(hào)和不同算法程序運(yùn)行的實(shí)踐,LED的輸出顯示均與輸入量相符合,證明系統(tǒng)工作穩(wěn)定。由于本采集系統(tǒng)具有高速轉(zhuǎn)換器和DSP硬件基礎(chǔ),只需根據(jù)采集信號(hào)種類的不同及輸出要求的不同設(shè)計(jì)相關(guān)的算法軟件,對(duì)所獲得信號(hào)進(jìn)行處理即可??梢栽诟鞣N工業(yè)生產(chǎn)過程和儀器儀表中應(yīng)用該系統(tǒng),還可利用RS232串口實(shí)現(xiàn)與上位PC機(jī)之間的通信,對(duì)數(shù)據(jù)做進(jìn)一步的處理。
評(píng)論