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