數(shù)字示波器之DMA高速數(shù)據(jù)采集方案設(shè)計(jì)[圖]

本刊前兩期給出了數(shù)字示波器DIY制作方案,第一篇集中介紹了LCD繪圖顯示,第二篇介紹了模擬信號(hào)調(diào)理,完成這些內(nèi)容學(xué)習(xí)之后,讀者可能會(huì)發(fā)現(xiàn)一個(gè)致命的問題,那就是高速數(shù)據(jù)采集,前面給出的方案是基于MCU控制的ADC,這種方案致命的缺陷是數(shù)據(jù)采集的速度慢,對(duì)頻率稍高的信號(hào)無法有效采樣,本篇將介紹一種MCU加CPLD控制的DMA高速數(shù)據(jù)采樣方案。

一、傳統(tǒng)低速數(shù)據(jù)采集

傳統(tǒng)MCU控制的ADC數(shù)據(jù)采集原理框圖如圖1所示,MCU運(yùn)行驅(qū)動(dòng)程序控制ADC循環(huán)轉(zhuǎn)換,每次轉(zhuǎn)換通常由啟動(dòng)、查詢等待、讀取數(shù)據(jù)、寫入RAM幾個(gè)過程,每一個(gè)過程都需要CPU執(zhí)行若干指令來實(shí)現(xiàn),這樣的數(shù)據(jù)采集不僅受ADC速度,尤其是受到MCU運(yùn)行速度影響,通常只能做低速數(shù)據(jù)采集。

  二、DMA數(shù)據(jù)采集

DMA也就是DirectMemoryAccess簡(jiǎn)稱,是直接內(nèi)存存取的意思,DMA的主要優(yōu)勢(shì)是可在無CPU干涉的情況下進(jìn)行數(shù)據(jù)的交換,可以將ADC的速度發(fā)揮到極致;贛CU加CPLD控制的DMA原理框圖如圖2所示。MCU通過對(duì)CPLD的控制,實(shí)現(xiàn)讓出數(shù)據(jù)總線,由CPLD時(shí)序邏輯電路控制AD循環(huán)轉(zhuǎn)換并將結(jié)果直接存儲(chǔ)到RAM中,這個(gè)循環(huán)過程是純硬件電路實(shí)現(xiàn)的,因此速度快,不受MCU速度影響。MCU查詢到一幀數(shù)據(jù)采集完成后,再奪回?cái)?shù)據(jù)總線,從RAM中讀取數(shù)據(jù),處理數(shù)據(jù)并顯示波形。

下面我們結(jié)合具體的器件來介紹這種DMA方案,ADC器件選擇TLC5510,RAM選擇UT62256,32KSRAM。

TLC5510是美國德州儀器公司生產(chǎn)的8位半閃速結(jié)構(gòu)模數(shù)轉(zhuǎn)換器,它采用CMOS工藝制造,可提供最小20Msps的采樣率。

TLC5510的工作時(shí)序圖如圖3所示,時(shí)鐘信號(hào)CLK在每一個(gè)下降沿采集模擬輸入信號(hào)。第N次采集的數(shù)據(jù)經(jīng)過2.5個(gè)時(shí)鐘周期的延遲之后,在時(shí)鐘上升沿將轉(zhuǎn)換得到的結(jié)果送到內(nèi)部數(shù)據(jù)總線上,在時(shí)鐘其他時(shí)間段數(shù)據(jù)保持不變?梢钥吹剑撈骷梢栽20MHz時(shí)鐘信號(hào)驅(qū)動(dòng)下以20MHz的采樣率采集數(shù)據(jù),平均獲得一個(gè)數(shù)據(jù)只要0.05μs。

RAM數(shù)據(jù)寫入時(shí)序圖如圖4所示。RAM的寫入條件是具備確定的地址ADDR,CE=0,WE=0,OE=1;數(shù)據(jù)線上的數(shù)據(jù)將被寫入RAM內(nèi)部相應(yīng)的單元。

綜合TLC5510的工作時(shí)序和RAM的寫入時(shí)序,提出如圖5所示的驅(qū)動(dòng)過程。基于同一個(gè)時(shí)鐘信號(hào)驅(qū)動(dòng),在時(shí)鐘下降沿①、低電平②、上升沿③、高電平④4個(gè)節(jié)拍中,同步實(shí)現(xiàn)AD轉(zhuǎn)換和數(shù)據(jù)寫入RAM。

  數(shù)據(jù)寫入RAM后,還要能夠被MCU從RAM中獲取,RAM數(shù)據(jù)讀出時(shí)序如圖6所示。

從圖中看出,當(dāng)CE=0;OE=0時(shí),RAM將地址選擇的內(nèi)部單元數(shù)據(jù)輸出到數(shù)據(jù)總線從而可以被MCU讀取。

這里有一個(gè)問題要考慮清楚,為了實(shí)現(xiàn)ADC結(jié)果直接存入RAM,已經(jīng)將5510的數(shù)據(jù)線和RAM的數(shù)據(jù)線直接相連了,現(xiàn)在還要將MCU的數(shù)據(jù)線和RAM的數(shù)據(jù)線相連,會(huì)不會(huì)出現(xiàn)數(shù)據(jù)沖突?其實(shí)只要器件數(shù)據(jù)線具有三態(tài)功能,就能夠?qū)崿F(xiàn)數(shù)據(jù)線分時(shí)復(fù)用,通過控制電路實(shí)現(xiàn)數(shù)據(jù)總線上某階段只能有一個(gè)數(shù)據(jù)輸出源,例如當(dāng)ADC直接給RAM存入數(shù)據(jù)時(shí),MCU要讓出數(shù)據(jù)總線,當(dāng)MCU讀取RAM數(shù)據(jù)時(shí),ADC要高阻態(tài)隔離數(shù)據(jù)總線。

三、控制電路設(shè)計(jì)

控制電路原理如圖7所示,在MCU的控制下,RAM和ADC的控制信號(hào)通過多路選擇器選擇與MCU總線模式或DMA模式相連,這兩種模式被MCU完全控制,可以自由切換,當(dāng)選擇DMA模式時(shí),MCU首先要讓出數(shù)據(jù)總線,確保ADC與RAM占用數(shù)據(jù)總線,此時(shí),RAM的地址由地址計(jì)數(shù)器產(chǎn)生,RAM_CE=0(片選有效);RAM_OE=1(禁止讀);ADC_OE=0(內(nèi)部數(shù)據(jù)總線上的數(shù)據(jù)直接輸出到外部數(shù)據(jù)總線上);RAM_WE與ADC_CLK、地址計(jì)數(shù)器共用同一時(shí)鐘信號(hào),按圖5中4節(jié)拍實(shí)現(xiàn)AD轉(zhuǎn)換后數(shù)據(jù)直接存儲(chǔ)到RAM中,DMA過程在MCU清零地址計(jì)數(shù)器后開始,沒一個(gè)時(shí)鐘周期AD輸出一個(gè)數(shù)據(jù)直接存入RAM,同時(shí)地址計(jì)數(shù)器加1,當(dāng)?shù)刂酚?jì)數(shù)器溢出后被MCU檢測(cè)到則表示一幀數(shù)據(jù)采集完成。

一幀數(shù)據(jù)采集完成后,MCU切換到MCU總線模式讀取RAM的結(jié)果,這時(shí)RAM_CE=0(或接MCU地址引腳);RAM_OE=RD(MCU讀控制信號(hào));ADC_OE=1(禁止ADC數(shù)據(jù)占用數(shù)據(jù)線);RAM_WE=WR,ADC_CLK=0,這時(shí)MCU可以自由讀取RAM。

圖7所示邏輯電路用硬件描述語言在CPLD上實(shí)現(xiàn)非常方便,請(qǐng)讀者吸收DMA設(shè)計(jì)思路后自己完成電路設(shè)計(jì)。

  四、結(jié)束語

筆者完成的DMA高速數(shù)據(jù)采集卡對(duì)2MHz、1MHz的正弦信號(hào)采樣并繪圖效果如圖8(a)、(b)所示。對(duì)于低于1MHz的正弦信號(hào)采集后能夠非常光滑清晰的還原出正弦波形。在CPLD內(nèi)部時(shí)鐘精確分頻后還可以實(shí)現(xiàn)多頻點(diǎn)采樣,例如20MHz采樣,10MHz采樣,1MHz采樣。

作者:田開坤 李任青 來源:《電子制作》


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國移動(dòng):6G至簡(jiǎn)無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息