1 引言
現代遙測系統中為了盡可能少地占用傳輸時間和存儲空間,在有限的信道容量內傳輸更多的有用信息,采用數據壓縮技術,有助于降低功率和帶寬要求,改善通信效率。這里提出一種基于DSP與CPLD的多通道同步數據采集與壓縮系統設計方案,該系統應用于遙測多路噪聲數據,其中多通道同步數據采集可實現同時測量信號。并進行相關分析后,得到信號間的相關信息,而DSP內嵌的數據壓縮算法實現其數據壓縮的功能。
2 系統的硬件結構
2.1 系統設計思路
圖1為系統設計的硬件框圖?;贑PLD和DSP的多通道同步數據采集及壓縮系統主要由數據采集模塊、數據處理模塊以及數據接口模塊3部分構成。前端由傳感器輸人的模擬信號經信號調理模塊的整形放大后,輸入到 A/D轉換模塊中,模擬量轉變?yōu)閿底至?,可編程邏輯器?CPLD1)控制A/D轉換器,按照設定的采樣率采集數據,將采集到的數據通過總線寫入 FIFO,FIFO半滿時.發(fā)送一次半滿信號,即DSP的中斷,DSP接收到中斷后立即將一幀數據從FIFO中讀人到數據處理模塊。DSP將其采集的數據高速壓縮后寫入到接口模塊,再由可編程邏輯器件(CPLD2)通過RS-422總線將數據傳送至遙測系統,做進一步分析。
2.2.1 A/D轉換器ADS8365
該系統的A/D轉換模塊選用TI公司的 ADS8365型A/D轉換器,該件支持6通道信號差分輸入,有3組信號采集控制端,每組控制2路信號,16位精度,每通道的轉換速度高達250 kHz。支持高速并行數據輸出接口,數據輸出接口包括直接地址選擇模式、CYCLE模式、FIFO模式。
2.2.2 復雜可變程邏輯器件(CPLD)XCR3256XL
采用CPLD控制各個接口,這里選用 XCR3256XL型CPLD,它是Xilinx公司的CoolRunner系列的高性能復雜可編程邏輯器件(CPLD)。該器件具有如下特點:采用 COMSEEPROM制造工藝技術;內置標準JTAG接口,支持3.3 V在系統可編程(ISP);3.3 V電源,集成密度為6 000個可用門;引腳間延時7.5 ns.系統頻率高達140 MHz。同分離邏輯器件相比,單片CPLD實現邏輯控制功能,簡化電路設計,提高系統可靠性。另外,XCR3256XL具有在系統可編程的功能,只需一根下載電纜連接至目標板上,可方便實現多次重復編程,大大方便電路調試。
2.2.3 數字信號處理器(DSP)TMS320C6713B
該系統設計的DSP選用TMS320C6713B,該器件TI公司推出的TMS320C67xx系列浮點DSP中的一款。它采用改進型哈佛結構,具有運算速度快、功耗小和性價比高等特點。其體系結構采用 Veloci TI超長指令字VLIW(Very Long Instruction Word)結構。每周期執(zhí)行8條32位指令,支持32/64位數據。采用類RISC指令集,具有300 MHz、3.3 ns指令周期的運行速度和2 400 MI/s或1 800 MFLOPS的處理能力適用于高速信號處理。為了加快處理速度,DSP內核采用2級CACHE,其中L1級CACHE分為4 KB直接程序CACHE和4 KB數據CACHE(分為2路);L2級CACHE分為64 KB統一存儲器和192 KB附加存儲器。其內部有16通道EDMA控制器,能夠高速處理幾乎所有I/O和存儲器的接口問題,大大提高器件吞吐速度。外部總的存儲器地址空間最大 512MB,數據寬度為32 b,可支持SBRAM,SDRAM,SRAM,Flash和EPROM。TMS320C6713與外部I/O接口通過FFA構造的I/O端口、HPI口、多緩沖串口(McBSP)、SPI口等幾種方式實現。與專用的硬件壓縮器件相比,TMS320C6713B可方便實現數據壓縮。以及系統升級和配置靈活。
3 CPLD部分設計
3.1 CPLD1控制部分
CPLD1控制ADS8365包括控制A/D轉換器的采樣率以及數據量化輸出模式等,同時控制CS信號可有效抑制噪聲;系統時鐘輸入為50 MHz,CPLD1對其分頻產生5 MHz時鐘以觸發(fā)A/D轉換器。程序通過控制A/D轉換器的HOLDX來啟動A/D轉換;控制A/D轉換器的ADD來控制其輸出通道信息,控制A/D轉換器的ADDRESS控制其數據輸出工作模式??紤]DSP內程序算法每次判斷通道信息會增加DSP運算負擔,故設置A/D轉換無通道信息,A/D轉換器工作在CYCLE模式下,A/D轉換后的數據按通道號順序循環(huán)輸出,DSP可根據順序性直接判定數據的具體通道。圖2為CPLD1控制ADS8365電路。
CPLD1控制DSP主要包括DSP復位設置,看門狗設置,DSP控制信號與CE空間組合邏輯控制讀FIFO1等。
3.2 數據幀格式設置
CPLD1將A/D轉換后的數據不斷寫入FIFO1,當2 048字節(jié)數據寫入FIFO1后,CPLD添加16位的幀標志及16位的幀計數,即數據格式為:被采集數據+幀標志+幀計數。
3.3 CPLD2控制接口
接口轉換模塊的核心是CPLD,負責從輸出FIFO2中讀取數據,按照遙測系統的要求時序編碼后。通過RS-422總線將壓縮后的數據上傳至遙測系統。
4 DSP部分設計
4.1 DSP程序設計流程
設備上電DSP復位后,由其內部固化的自引導程序(BOOT)將存于Flash存儲器的程序和數據搬移至內部RAM中,然后DSP開始讀取壓縮算法的應用程序,繼續(xù)運行。DSP的工作流程為:首先初始化DSP的CSL函數庫,然后初始化PLL、GPIO及相關中斷寄存器,等待中斷。
采集模塊16位數據通過總線不斷寫入。FIFO1中。程序通過控制其半滿(HF)信號,即當數據超過半滿時,HF信號低電平有效,將觸發(fā)一次中斷通知 DSP,DSP則進入中斷后把2048字節(jié)的數據從輸入FIFO1中讀入到DSP所指向的SDRAM的空間中,DSP在處理完中斷的空閑時間內進行高速壓縮。將壓縮數據與原數據相比較,若壓縮數據小于原數據,就把壓縮數據寫入DSP的軟FIFO中,否則,就將原數據寫入DSP的軟FIFO中。
最終,DSP把軟FIFO中得壓縮數據寫入輸出FIFO2中,等待發(fā)送模塊將數據上傳至遙測系統。
4.2 數據壓縮算法選擇
壓縮編碼信源信息在解壓縮時能夠完全恢復,也即在壓縮和解壓縮過程中信源信息無損失,該編碼方法稱為無損壓縮,經常使用的無損壓縮方法有Shannon-Fano編碼,Huffman編碼,游程(Run-length)編碼,IZW (Lempel-Ziv-Welch)編碼和算術編碼(ARC)等。這里重點討論ARC算法和LZW算法。ARC算法的思想就像查字典。眾所周知.英文詞典的編排方式是按首字母排序,首字母相同的詞繼續(xù)按第二字母排序,以此類推。實際應用算術編碼更巧妙。利用字符出現的概率對0~1區(qū)間分割,然后用0~1 之間的一個小數對數據編碼,原始數據越多,這個小數點后的位數就越多。
LZW編碼是圍繞稱為詞典的轉換表完成的。該轉換表用來存放稱為前綴(Prefix)的字符序列,并且為每個表項分配一個碼字(Code word),或稱為序號,這張轉換表實際上是把8位ASCII字符集進行擴充。增加的符號用來表示在文本或圖像中出現的可變長度ASCII字符串。擴充后的代碼可用9~12位甚至更多的位表示。12位有4 096個不同的12位代碼,這就是說。轉換表有4 096個表項,其中256個表項用于存放已定義的字符,剩下的3 840個表項用于存放前綴(Prefix)。LZW編碼器(軟件編碼器或硬件編碼器)通過管理該詞典完成輸入與輸出之間的轉換。LZW編碼器的輸入是字符流(Charstream),字符流是用8位ASCII字符組成的字符串,輸出是用n位(例如12位)表示的碼字流(Codestream),碼字代表單個字符或多個字符組成的字符串。LZW編碼器采用一種實用的分析(parsing)算法,稱為貪婪分析算法(greedy parsingalgorithm)。
在貪婪分析算法中,每一次分析都要串行檢查來自字符流(Charstream)的字符串,從中分解出已識別的最長字符串,也就是已在詞典中出現的最長的前綴(Prefix)。用已知的前綴(Prefix)加上下一個輸入字符C也就是當前字符(Currentcharacter)作為該前綴的擴展字符,形成新的擴展字符串——綴一符串(Sning):Prefix.C。這個新的綴一符串(String)是否要加到詞典中,還要看詞典中是否存有和它相同的綴一符串(String)。
如果有,那么這個綴一符串(String)就變成前綴(Prefix),繼續(xù)輸入新的字符,否則就把這個綴一符串字符(String)寫到詞典中生成一個新的前綴(Prefix),并給一個代碼。
一般來說,不同的壓縮算法有不同的優(yōu)缺點。不同算法的復雜性對空間的要求以及壓縮率也不同。這不僅依賴于壓縮方法,也與被壓縮數據的特點有關。
該系統設計是壓縮實時數據,要求壓縮過程的時間性能較高,故采用事先統計模型的ARC算法。實驗證明,采用該算法其運算速度與LZW算法速度相近。而ARC算法在壓縮去除率上優(yōu)于LZW算法。
5 實驗結果
算法選擇主要從壓縮速度和壓縮去除率進行比較。該設計中前端以27 kHz的速度實時采集某系統多路噪聲壓縮,從表1中可知ARC算法針對不同分組段的數據壓縮去除率約為79%,而LZW算法,在該分組段壓縮去除率僅約 31%,可見ARC壓縮算法的壓縮去除率比較高。實驗中通過上位機發(fā)送一定規(guī)律數據,經過該系統壓縮數據處理,壓縮后數據再通過上位機解包、解壓,還原的數據與原始數據相比對。其結果一致,證明系統安全可靠。圖3為上位機解壓報表。
詳細介紹了系統組成,采用復雜可編程邏輯器件(CPLD)和數字信號處理器(DSP)的體系結構,對無損壓縮的相關算法進行比較,最終采用算術編碼 (ARC)作為系統壓縮算法。本系統創(chuàng)新點在于采集模塊的多通道同步性以及對噪聲數據壓縮的針對性。最后通過大量實驗,證實本方案切實可行,各項指標滿足系統要求。