1 引言 高速數據采集系統廣泛應用于網像信號采集、雷達、軟件無線電等技術領域。在傳統的以MCU為控制器的數據采集系統中,數據采集頻率直接受到MCU速度的限制。在采樣頻率要求較高的場合。MCU和數據存儲的同步將成為問題。 以CPLD為代表的可編程邏輯器件以其工作速度快、靈活的可編程能力等特點越來越受到人們的廣泛應用。它彌補了以MCU為控制器的傳統數據采集系統的不足。 2 系統硬件設計 本文設計的高速數據采集系統采用ALTERA公司的MAX7000系列產品之一的EPM7128SLC84作為控制器,選用TI公司的TLC5510作為模數轉換器,其采樣頻率可以達到20MSPS,8位并行輸出。RAM選擇ICSI公司的61C256。系統的硬件原理 如圖1所示。 圖1系統原理圖 在該系統中,CPLD和單片機一同構成了系統的控制核心。CPLD與RAM的接口信號分為三類:地址信號、數據信號和控制信號。由于本系統采樣數據達到2KB即可滿足要求,因此地址信號線為12位,RAM的A12-A14接地;數據信號為8位;控制信號為寫使能WE和片選CE。CPLD對TLC5510的接口包括時鐘信號CLK和數據輸出使能OE。TLC5510的數據輸出端口和RAM的8位數據線相連,以便將AD轉換后的數據寫入RAM中。 P80C552和CPLD之間的接口信號包括兩類:數據信號和控制信號。在CPLD側.8位的數據總線與單片機系統數據總線D0~D7相連.用以單片機讀取A/D轉換后的數據。控制信號包括讀信號RD,寫信號WR和地址譯碼信號Yl及Y2。 2.1 CPLD控制器 CPLD控制器主要負責A/D轉換并將轉換得到的數據寫入SRAM中。對TLC5510的控制按照TLC5510數據手冊給出的典型電路實現:在轉換控制信號ADCLK的每一個下降沿開始采樣,第n次采集的數據經過2.5個時鐘周期的延遲之后,送到內部數據總線上。此時如果輸出使能OE有效.則數據便可被送至數據總線上。啟動后A/D轉換無須控制,將連續不斷的以轉換時鐘頻率輸出轉換后的并行8位數字信號。 在轉換過程中,CPLD同時控制采樣數據寫入RAM中,這樣就必須考慮TLC5510采樣和61C256寫入的時序匹配。在設計中,首先對clk 40MHZ信號2分頻得到20MHZ信號,將此信號作為TLC5510的采樣時鐘ADCLK。TLC55lo在ADCLK的下降沿采樣,CPLD在ADCLK的上升沿讀取轉換后的數據寫入RAM中。 圖2為CPLD對SRAM的控制邏輯電路。主要包括以下幾個部分: (1)寫地址產牛器:由于61C256為32Kx8的SRAM,故寫地址產生器用15位寄存器實現。靠ADCLK時鐘驅動,每進行一次寫操作后,讀寫控制單元使其加1。寫RAM操作發生在系統采樣前的RAM單凡清零和采樣過程中。 (2)讀地址產牛器:讀地址產牛器也用15位寄存器實現。單片機每次發出讀信號對RAM讀操作后,讀寫控制單元使其加1,下次單片機從此位置讀取數據。 (3)讀寫控制:當需要對SRAM進行寫操作時,由CPLD控制產生寫地址選通信號RAMWR,片選信號RAMCE,同時給數據線上送數據,而寫地址選通信號上升沿到來時使寫地址寄存器增1,使CPLD輸出寫地址。對SRAM進行讀操作相對較簡單,在進行讀操作期間,RAMCE始終為低電平。每進行一次讀操作,地址按系統要求變化一次。 圖2 SRAM讀寫控制 2.2 MCU控制器 單片機主要控制對A/D轉換的啟動及對保存在RAM中的數據讀入以備后續處理。在圖l的系統原理中,Yl、Y2為單片機部分通過74LSl38澤碼器產生.RD、WR為單片機的讀寫信號。當Y1和WR有效時,MCU指示CPI.D控制完成對SRAM地址單元內容的清零,并復位CPLD內部寫地址寄存器值;當Y2和WR有效時.MCU指示CPLD開始進行A/D采樣;當Y2和RD有效時,CPLD對61C256讀取一個單元并通過I/O口將數據送至單片機數據總線上。本系統中,61C256的讀信號直接由單片機RD信號控制,無須CPLD控制產生。 3 軟件設計 3.1 CPLD部分的軟件設計 CPLD在每個ADCLK時鐘的下降沿,檢測信號Y1、Y2、WR和RD信號的變化,根據2.2節中MCU控制器部分給出的功能描述來完成具體的操作。 以下是用Verilog HDL語言描述的CPLD控制程序主要代碼: 在上述程序中,clraddr、wraddr和rdaddr為CPLD內部清零地址寄存器、寫地址寄存器和讀寄存器,用以產生RAM的讀寫地址。clrbz、cvbz為CPLD內部RAM清零和采樣標志,當這兩標志為1有效時,CPLD分別控制完成61C256地址單元內容的清零和外部采樣操作,操作完成后兩標志被清0表示無效。流程中的數值N可根據實際需要的采樣點數來調整。 3.2單片機部分的軟件設計 單片機軟件部分相對簡單,只要根據Yl、Y2的具體地址,參考MCU對外部SRAM的讀寫操作來方問即可。本設計中,將61C256中的采樣數據讀取到單片機部分,以便進行液晶顯示等后續處理。具體程序段參考如下: /* 產生Y1和WR有效信號,指示CPLD清SRAM 2K單元 */ /*((unsigned char xdata *)CPLD_Y1ADDR)=0x00; /*產生Y2和WR有效信號。指示CPLD開始采樣*/, *((unsigned char xdata *) CPLD_Y2ADDR)=Ox00; for(i=0:i<2048;i++) //通過CPLD讀取SRAM 2K單元內容 { /* 產生Y2和RD有效信號。讀61C256中的數據 */ to_data [ i ]=* ( ( unsigned char xdata * ) CPLD_Y2ADDR); } 4 仿真和實驗結果 圖3 CPLD采樣和瀆寫SRAM仿真波形 圖3為CPLD采樣和讀寫SRAM的仿真結果。在仿真過程中,選取采樣點數為6進行測試以方便觀察。當MCUWR和Yl信號有效時,由CPLD控制產生對SRAM的片選和寫信號,連續對SRAM單元內容清O;當MCUWR和Y2信號有效后,CPLD輸出給TLC5510的采樣時鐘,在2.5個ADCLK周期后,產生TLC5510的輸出使能信號,同時控制61C256的寫操作,將采樣數據連續寫入SRAM單元。仿真過程中,在數據總線上模擬了采樣的6個數據。當MCURD和Y2信號有效時,CPLD給出61C256的片選信號和地址信號,讀出一個單元的數據,若再次讀,則地址單元加1。 5 總結 本文設計的基于CPLD與單片機的高速數據采集系統在QUARTUS II軟件中進行了仿真并達到了預期的控制邏輯。該系統的實際電路在新型匝問間耐壓測斌儀的開發中得到了成功的應用。本文創新點:本文的設計方案對于其它高速數據采集系統設計具有借鑒價值,通過選擇不同采樣頻率的A/D轉換器,系統可滿足不同應用場合的需求,因而系統具有普遍使用性。 項目經濟效益(300萬元) 作者:萬軍 來源:《微計算機信息》(嵌入式與SOC)2009年第4-2期 |