- 相關推薦
利用DSP和CPLD增強數據采集的可擴展性
在IC卡公用電話系統中,在線式公用電話由于其具有保密性高、可擴展性強等特點,已逐漸獲得人們的青睞。這種公用電話系統被置于終端和交換機之間,對兩者的信號進行調制、解調以及其它的運算,來完成諸如卡驗證、終端維護、多媒體信號傳輸等工作。與軟件無線電相類似,這種系統的硬件平臺通用性很強,數字信號處理的算法將由專門的芯片來承擔,所以這種系統可以兼容目前在電話線上應用的各種調制解調方法,也可以適應未來出現的其它調制解調標準。
由此可以看出,要實現這樣一個系統,數據采集是一個非常重要的方面。為了節約成本和提高DSP芯片的利用率,在這個系統中,一片DSP要承擔16個通道的運算。從數據采集的角度來說,由于通道同時對應著終端和交換機兩端,故DSP需要高速采集32個通道的數據。另外,高速ADC的出現和DSP性能的不斷提高也對系統將來的升級提出了要求。所以對數據采集部分來說,高速、可擴展性是兩具非常重要的指標。實現的系統就是以這兩個指標為指導的。
目前的高速多通道數據采集系統一般有以下幾種實現方法:一是直接采用高速的多通道模/數轉換芯片,這些芯片有專門設計的與DSP接口的部分,但是這些芯片一般價格都非常昂貴;二是直接用FPGA完成整個的采集過程,這將耗費FPGA巨大的資源;三是DSP和模/數轉換芯片的地址以及數據總線直接相接,通過單片機控制轉換等過程,這種方法雖然便宜,但是可擴展性太差。綜上所述,提出一種通過CPLD實現接口,將模擬轉換通道映射到DSP的I/O設備空間甚至內存空間的方法。這種方法大大提高了DSP可以訪問的外設數目;同時由于DSP不直接與模/數轉換模塊接口,所以ADC芯片的升級或者替代都不會影響原來的數據采集;而且采用了時分復用方式讀取轉換完成的數據,因此這個系統數據采集速率可以達到所采用的ADC芯片輸出的最高速率。
DSP雖然在算法處理上功能很強大,但其控制功能是非常弱的;而CPLD本身并不具有內部寄存器,雖然可以用CPLD的邏輯塊來實現寄存器,但是這將耗費大量的CPLD資源。然而,CPLD的強項在于時序和邏輯控制。本文介紹的多路數據采集系統就是充分利用了DSP和CPLD的優點,將多個A/D轉換單元通過CPLD映射到DSP的I/O地址空間,利用CPLD屏蔽A/D轉換的初始化以及讀寫操作過程,使得DSP可以透過CPLD這個"黑匣子"快速、準確地獲取數據。
1 數據采集系統框架
整個數據采集系統主要由DSP處理模塊、CPLD接口模塊和ADC陣列三個部分組成,如圖1所示。透過這樣一個結構,DSP可以在未知ADC的控制方式的情況下,定時地以訪問外設的方式來獲得總共32個通道的模/數轉換后的數據。
這樣的系統框圖只是完成了一個完整的數據采集功能,至于數據的處理以及DSP需要完成的其它功能,此圖并未涉及。但對于一個DSP系統來說,數據采集在硬件中占據了很大的比重,這也符合DSP芯片應用的原則:用軟件完成大部分的數字處理算法。
2 各功能模塊的實現
2.1 ADC陣列的實現
此數據采集系統的設計目標是完成32路信號的采樣,并且要求每路的采樣率為50kHz。所以,這樣一個系統達到的整體采樣率為32×50k=1.6MHz。
在模/數轉換環節,采用的A/D芯片一片一次可以同時完成4路轉換。為了達到設計目標,需要8片這樣的芯片。但是,如果直接將8片模/數轉換芯片的數據總線全部連接起來輸入到CPLD中或者將CPLD出來的某條控制信號線直接連接到8片芯片上,那么在驅上就會出現總是;诖朔N考慮,此系統將8片芯片分成兩組,每組4片,然后從CPLD中引出兩組數據總線以及兩級控制總線分別對它們實現控制。這樣就能很好地解決芯片的驅動問題。圖2就是其中一組芯片的連接架構圖。
從這個架構圖可以看出,這4片A/D轉換芯片除了片選控制信號以外,其它的數據總線以及控制總線全部是分別連在一起的。將片選控制與其它控制分開的原因在于:芯片的初始化以及轉換過程需要同時完成,但是轉換后數據的輸出則分則完成。ADC控制時序框圖如圖3所示。
要實現這樣的控制時序,各個階段對芯片的片選控制如下:在初始化階段,所以A/D芯片的片選信號有效,此時可以對每片芯片寫入相同的模式選擇信號,同時啟動采樣脈沖和轉換脈沖;在轉換階段,所有片選信號全部無效,此時芯片本身在內部完成模/數轉換,同時將轉換完成的數據放置在芯片內部的寄存器中;在數據輸出階段,首先是第一片芯片的片選有效,此時若有一個脈沖下降沿到A/D芯片的RD端口,則芯片1的轉換完成,第一路數據將浮出到數據總線上,而其它芯片由于片選信號無效,雖然有RD輸入也不會有數據輸出,不會造成總線沖突。對于芯片1而言,接下來的幾個RD脈沖可以分別使得轉換完成后的幾路數據浮現在數據總線上。芯片1的數據全部輸出完成后,片選1無效,此時可使芯片2的片選信號有效。依此類推,就可以完成4片芯片的轉換及數據輸出。
2.2 CPLD接口模塊的實現
整個CPLD接口模塊實際上就是一片ALTERA公司的7000系列的CPLD(外部時鐘電路除外),它控制ADC模塊的初始化,同時接收并分析DSP過來的I/O端口讀取信號,為DSP和ADC之間搭起一個通道。
在DSP要求讀取數據時,CPLD將DSP過來的IOSTROBE作為A/D芯片的RD信號,同時對I/O地址總線的第3位至第5位譯碼產生A/D芯片的片選信號,這樣只要是地址按照每次遞增1的方式讀取數據,就可以使得8片A/D分時片選有效,完全符合上面提到的讀取數據的要求。另外,還依靠最高位地址確定CPLD到DSP的數據輸出總線是否定義成高阻態來避免總線沖突。
由于A/D芯片是采用5V供電的,所以其輸出高電平將高于DSP輸入高電平所能承受的范圍。解決這個總是的方法之一是采用降壓芯片(比如LVT系列)用
【利用DSP和CPLD增強數據采集的可擴展性】相關文章:
利用ColdFire uClinux實現數據采集和傳輸03-19
基于DSP和以太網的數據采集處理系統03-20
基于DSP的USB口數據采集分析系統03-18
換體DMA高速數據采集電路的CPLD實現03-18
高速DSP數據采集的信號完整性問題03-20
CPLD在DSP系統中的應用設計03-18