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