使用TMS320C542構成數據采集處理系統
摘要:使用TI公司C5000系列DSP中的TMS320C542構成了一個(gè)數據采集處理系統,介紹了系統的結構、性能、工作流程及設計的注意事項。
本文引用地址:http://dyxdggzs.com/article/242276.htm關(guān)鍵詞:TMS320C542 數據采集處理 CPLD
近年來(lái),隨著(zhù)DSP技術(shù)的普及,一大批低價(jià)格、高性能DSP芯片的出現,越來(lái)越多的電子工程技術(shù)人員開(kāi)始使用DSP來(lái)進(jìn)行系統設計。本文以TI公司C5000系列DSP中的TMS320C542為例,構成一種數據采集處理系統。文中詳細地分析了系統的結構、設計的注意事項、HPI接口的工作原理與連接方法、系統的工作流程以及軟件編制中的注意事項。
1 TMS320C542結構及應用
TMS320C542是TI公司C5000系列DSP中的一種,C5000系列共有的特點(diǎn)如下:
·改進(jìn)的哈佛結構,包含一條程序總線(xiàn),三條數據總線(xiàn)和四條地址總線(xiàn)
·高度并行的CPU和針對應用優(yōu)化的硬件
·針對算法和高級語(yǔ)言?xún)?yōu)化的指令集
·先進(jìn)的IC技術(shù)使其既高性能又低功耗
C5000系列內部硬件功能塊如圖1所示。其中,有:40bit算數邏輯單元(ALU);兩個(gè)40bit累加器A和B;17×17bit乘加單元(40bitMAC,可作64級FIR運算而不必考慮溢出;計算、選擇、存儲單元(CCSU),特別適合Viterbi等算法;40bit桶型移位寄存器;片上雙存?。遥粒?,每機器周期可存取兩次;片上單存?。遥粒?,可同時(shí)訪(fǎng)問(wèn)兩塊片上存儲區;片上外圍接口,包括串口、定時(shí)器、PLL、HPI接口等。
TMS320C542自身特點(diǎn)如下:
·25ns單周期定點(diǎn)指令執行時(shí)間,5V供電
·10K Words16bit片上雙存?。遥粒?br>
·64K Words程序,64K Words數據,64K Words I/O存儲空間
·2K Words HPI接口,可通過(guò)此接口方便地與主設備進(jìn)行信息交換,主設備也可通過(guò)此接口下載DSP程序
·一個(gè)自動(dòng)緩沖的串口和一個(gè)TDM串口,且都可用作標準同步串口
此外,C5000系列DSP可使用JTAG接口進(jìn)行調試,可完全控制DSP上的所有資源,使用方便可靠。
2 系統結構
由TMS320C542構成的數據采集處理系統的結構如圖2所示,以DSP為中心,帶有64K程序RAM,64K數據RAM,并通過(guò)16K×16的FIFO將數據送到DA,16K×16的FIFO將AD采集的數據送到DSP。與主機通過(guò)HPI接口進(jìn)行數據交換。對SRAM、FIFO、AD、DA的控制,DSP所需各種狀態(tài)信息的獲取,以及與主機的其它一些聯(lián)系,都通過(guò)CPLDA和CPLDB來(lái)實(shí)現。
C5000系列DSP關(guān)鍵的外部接口信號如下:
·A0~A15,地址總線(xiàn)
·D0~D15,數據總線(xiàn)
·/MSTRB,外部存儲器存取閘
·/IOSTRB,I/O存取閘
·R/W,讀寫(xiě)信號
·/PS,程序空間選擇
·/DS,數據空間選擇
·/IS,I/O空間選擇
·READY,數據準備好
此外,還有/HOLD、/HOLDA等,本系統未用。
2.1 存儲器控制
程序存儲器和數據存儲器各使用一片64K×16的SRAM,為了使DSP對外存的操作盡量快,其速度等級為12ns。使用/PS作程序存儲器的片選,/DS作數據存儲器的片選,而兩片存儲器的讀寫(xiě)信號如下:
/OE=not(not(/MSTRB) and not(R/W))
/WR=notnot(/MSTRB) and (R/W)
出于高速的需要,采用了Xilinx公司的XC9536生成邏輯(CPLDA)。XC9536管腳至管腳的延遲為5ns,內部有36個(gè)宏單元,可用管腳34個(gè),可在線(xiàn)編程,使用起來(lái)有很多優(yōu)點(diǎn)。通過(guò)這些措施,系統可零等待地存取程序和數據RAM,也就是說(shuō),存儲器讀可達40M×16bit,寫(xiě)可達20M×16bit。
2.2 FIFO控制
用于DAFIFO的寫(xiě)和ADFIFO的讀都由CPLDA產(chǎn)生,其邏輯方程為:
/ADFIFOR=not(not(/IOSTRB) and not(R/W) and ADDR0x0)
/DAFIFOW=not(not/IOSTRB) and R/W and ADDR0x0)
其中,ADDR0X0指DSP的A15~A13為零。
DIFIFO由兩片容量16K×9bit、速度10ns的FIFO構成,ADFIFO亦如此。由于控制信號的低延遲和FIFO的高速,對FIFO的存取也達到了零等待,即:使用RPT或RPTZ指令時(shí),可達20M×16bit/s。
2.3 A/D和D/A控制
A/D轉換器負責將外部模擬信號變換成DSP可處理的數字量,是DSP進(jìn)行處理的基礎,在系統中具有十分重要的地位,采用的是10M采樣率、12bit分辨率的AD9220,如果需要,可在不改板的情況下?lián)Q成20M或40M采樣率的A/D。而D/A則將DSP生成的數字信號變成模擬量,完成信號的輸出或對系統其他部分的控制,采用了100M速度的AD9762。A/D和D/A的控制信號如下:
·ADCLK和DACLK,分別是A/D轉換器和D/A轉換器的時(shí)鐘
·ADFIFOW,將A/D轉換的數據寫(xiě)入ADFIFO
·DAFIFOR,從DAFIFO讀出數據以供D/A轉換
·DAFIFOMR和DAFIFORT,用于DAFIFO的清零和重傳
·ADFIFOMR和ADFIFORT,用于ADFIFO的清零和重傳
此六個(gè)信號都由CPLDB產(chǎn)生,CPLDB采用的是Xilinx公司的XC95108,速度為10ns,有108個(gè)宏單元,可在線(xiàn)編程,因而有較高的靈活性。使用24MHz的晶振為CPLDB提供時(shí)鐘,由DSP通過(guò)I/O口向CPLDB寫(xiě)入數據以控制ADCLK和DACLK的開(kāi)關(guān)和頻率,并以I/O寫(xiě)的方式產(chǎn)生FIFO的清零和重傳信號。
2.4 CPLDA和CPLDB的應用
由以上介紹可以看出,整個(gè)系統的邏輯都由CPLDA和CPLDB產(chǎn)生。此外,它還有以下功能:
·FIFO的所有狀態(tài)信號,系統外部送入的各種控制和狀態(tài)信號,都送入了CPLDB,可由DSP通過(guò)I/O方式讀取
·DSP的四個(gè)外部中斷、NMI中斷都連至CPLDB,可通過(guò)I/O口實(shí)時(shí)控制哪個(gè)信號接入哪個(gè)中斷,具有較大的靈活性
·DSP的通用I/O管腳BIO和XF連至CPLDA,可以查詢(xún)方式快速響應外部信號
·主機對DSP的復位和其它一些特征的控制,對DSP的某些信息的讀取
·DSP對其它一些外圍電路的控制
由于在硬件設計時(shí),對實(shí)際應用的要求并不能完全了解,因此需要使系統有足夠的冗余和靈活性,使用CPLD可以達到這一要求。通過(guò)將可能需要的各種控制和狀態(tài)信號引入CPLD,并利用CPLD的大容量和現場(chǎng)可編程性,可根據不同的要求進(jìn)行現場(chǎng)修改,從而使系統設計的成功率更大,并且有很大的靈活性。
系統中使用了兩片CPLD,而沒(méi)有用一片大容量的CPLD代替,是出于系統性能的考慮。因為存儲器和FIFO的讀寫(xiě)信號需要較低的延遲才可滿(mǎn)足零等待的要求,而大容量的CPLD延遲大且價(jià)格高,因而用XC9536滿(mǎn)足系統對速度的要求,而用XC95108滿(mǎn)足系統復雜邏輯對容量的要求。
2.5 HPI接口
DSP可使用HPI(Host Port Interface接口方便地與主設備或主處理器交換數據,而幾乎不需增加額外的器件。對40MHz主頻的320C542而言,通信速度最快可達64Mbps。而且C5000系列DSP通過(guò)某種連線(xiàn)方式,可利用HPI接口下載程序,從而使系統具有更大的靈活性。HPI接口的框圖如圖3所示,有HPIA(HPI地址寄存器)、HPID(數據寄存器)、HPIC(控制寄存器)三個(gè)16bit寄存器,主設備就是通過(guò)這些專(zhuān)用寄存器與HPI通信。在C542的10K內部RAM中,有2K字屬于HPI存儲塊。系統框圖如圖4所示,HD0~HD7是8位數據線(xiàn),直接連到主設備的數據線(xiàn)上;HCS為片選信號;HDS1和HDS2為數據鎖存信號,在主設備的存取周期控制數據的傳輸,一般連至主設備的數據選通;HR/W決定當前操作是讀還是寫(xiě),可根據主設備的具體情況決定與何種信號相連;HCNTL0/1用于主設備選擇存?。龋校傻哪囊粋€(gè)寄存器和對寄存器的存取類(lèi)型,連至主設備的地址線(xiàn);由于HPI寄存器是16位,而HPI與主設備僅以8位數據線(xiàn)相連,因而用HBIL決定當前存取的是一個(gè)字的第一還是第二字節,連至主設備的地址線(xiàn)。
對HPI進(jìn)行操作,首先要將控制字寫(xiě)入HPIC,然后將要存取的地址寫(xiě)入HPIA,最后存?。龋校桑?,就可從HPI存儲塊讀數或將數據寫(xiě)入HPI存儲塊。此外,還可選擇HPIA自動(dòng)增加方式,將初始地址寫(xiě)入HPIA后,可不再操作HPIA,每存取一次數據,地址都會(huì )自動(dòng)加一,因而大大加快了存取速度。
在本系統中,主設備是AMD186構成的嵌入式系統,AMD與HPI的連接如圖5所示。由以上介紹可以看出,使用HPI也可與PC機的ISA總線(xiàn)方便地連接,用PC機作為主設備,通過(guò)PC機向DSP下載程序完成各種功能。
要使用HPI下載程序,只需在DSP復位時(shí)將程序通過(guò)HPI接口寫(xiě)入HPI存儲塊從0X1000開(kāi)始的存儲區,并在上電復位后的一段時(shí)間將HINT管腳的信號引至INT2管腳,DSP在Boot程序中檢測到后,就會(huì )自動(dòng)跳轉至0X1000處開(kāi)始執行。
3 系統工作流程及設計注意事項
系統通過(guò)實(shí)際測試,運行速度為40MIPS,程序和數據存儲器、所有I/O口都能全速運行,工作穩定可靠。其工作流程如下:
(1)根據要求編寫(xiě)DSP程序并調試通過(guò)。
(2)復位DSP,并由主設備通過(guò)HPI接口向DSP下載程序。
(3)復位信號失效,DSP在主設備的控制下開(kāi)始工作。
由于系統工作于較高的頻率下(CPU為40MHz,外圍設備一般為20MHz,最高為40MHz),因而在系統設計中,必須注意高頻影響。
首先,系統要盡量簡(jiǎn)單,要選擇大容量、表面封裝的元器件,以使元件數量少、體積小,降低信號反射并有利于布線(xiàn)。
其次,在設計PCB板時(shí),要采用四層板,中間兩層作電源和地,并多加一些去耦電容。布線(xiàn)時(shí)不可用90度的拐彎,過(guò)孔要盡量少。數據和地址最好成組布線(xiàn),以降低對其它信號的影響。一些關(guān)鍵的控制線(xiàn),如存儲器讀寫(xiě)信號和FIFO讀寫(xiě)信號,最好在其兩邊加地線(xiàn)保護。特別是FIFO的讀寫(xiě)信號,由于其對干擾特別敏感,要特別注意。對一些較長(cháng)的引線(xiàn),可串接一個(gè)30Ω的小電阻或加終端匹配以減小反射。
4 C5000系列DSP的軟件編程和調試
C5000系列DSP的編程工具,有C語(yǔ)言和匯編語(yǔ)言?xún)煞N,而匯編語(yǔ)言又有兩種指令集,一種叫記憶指令集(Mnemonic Instruction Set,類(lèi)似8086的匯編語(yǔ)言;一種叫代數指令集(Algebraic Instruction Set,類(lèi)似于C語(yǔ)言,使用起來(lái)比記憶指令集方便很多。
實(shí)際應用中,一般都是C和匯編混合編程,混合編程的方法,可查閱C5000系列DSP的手冊得到。TI公司還提供了一個(gè)運行庫(Runtime Lib,用TI公司的JTAG調試器進(jìn)行調試時(shí),在DSP程序中調用運行庫的函數,可以打開(kāi)PC機上的文件獲取數據,或將DSP的數據傳入PC機并存入文件,或通過(guò)PC機鍵盤(pán)向DSP傳遞信息和發(fā)送命令,總之,可以為調試帶來(lái)極大的方便。
在本系統中,由于既有A/D,又有D/A,構成了一個(gè)閉環(huán),自發(fā)自收??梢杂桑模辽赡M波形,由A/D實(shí)時(shí)采集,由DSP處理,對算法的設計和調試可帶來(lái)很大的幫助。
評論