《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 基于單片機系統(tǒng)采用DMA塊傳輸方式實現(xiàn)高速數(shù)據(jù)采集

基于單片機系統(tǒng)采用DMA塊傳輸方式實現(xiàn)高速數(shù)據(jù)采集

2009-01-12
作者:劉先昆 潘紅兵 紀圣謀 王 勇

  摘 要: 介紹一種基于單片機系統(tǒng)設計的DMA硬件電路,以字塊傳輸方式與高速A/D接口。結合在數(shù)字式磁通表設計中的應用給出其硬件軟件設計方案實例。
  關鍵詞: 單片機系統(tǒng) 直接存儲器存取(DMA)方式 高速A/D


  PC機中外設與內存儲器之間數(shù)據(jù)直接傳輸?shù)腄MA功能以其高效、高速、CPU資源占用少等特點已被廣泛應用,這一功能通過安裝在主板上的專用DMA控制器芯片或集成在外圍控制芯片來實現(xiàn)。單片機的應用領域也常常需要有高速數(shù)據(jù)傳輸或數(shù)據(jù)采集,雖然近些年單片機速度有所提高,仍然無法應付類似單脈沖信號捕獲、周期信號頻譜分析等需要采用高速A/D的場合。對于速率在100ksps以上的數(shù)據(jù)采集或傳輸一般的中斷查詢法就不易實現(xiàn),因此考慮通過直接存儲存取操作才能完成。然而單片機內部設計通常不具有DMA功能,也沒有現(xiàn)成的控制芯片可以利用。而目前通用DSP芯片對于開發(fā)小型儀器儀表而言價格過高。
  數(shù)字式磁通表主要應用在對恒定磁場的磁感應強度或脈沖場磁感應強度峰值的測量。是采用閉合線圈作為探測線圈,穿過線圈的磁通Φ變化時,探測線圈中感應電動勢: 瞬間將線圈由0磁場移到磁場最大點,記錄下整個過程中感應電動勢ε的變化。變化過程結束后用軟件對ε進行積分,計算出磁感應強度。本設計所需解決的是在瞬間記錄下ε的變化曲線。
  本文討論一種采用數(shù)字邏輯電路設計的DMA控制電路。結合在“數(shù)字式磁通表”中的實際應用,給出高速A/D芯片MAX153與89C51單片機系統(tǒng)DMA接口電路的主要原理圖和主程序流程。
1 系統(tǒng)構成
  系統(tǒng)結構如圖1所示。


  設計采用89C51單片機芯片組成的單片機系統(tǒng),外部64K RAM采用62512芯片,存儲器的全部64K地址范圍允許作為外設的A/D轉換電路在DMA周期寫入,以及單片機在非DMA周期讀出寫入。RAM的數(shù)據(jù)線和地址線由總線切換電路來控制,選擇連接單片機系統(tǒng)總線或連接A/D轉換電路的數(shù)據(jù)輸出和地址發(fā)生器輸出地址??偩€切換電路不僅切換地址線和數(shù)據(jù)線,同時切換RAM的寫控制線WRI,控制實現(xiàn)DMA周期外設寫入和非DMA周期的單片機寫入。RAM讀控制線接單片機/READ。
  DMA周期時,RAM的寫入地址由地址發(fā)生器產生。它是一個可預置數(shù)的16位二進制計數(shù)器。其溢出信號作為DMA周期的結束控制和結束標志。
2 硬件組成
  · 單片機芯片
  采用ATMEL公司的89C51,片內有4K字節(jié)FLASH ROM。設計使用其最大時鐘頻率20MHz,可以有1μs以下的指令周期。
  · A/D轉換器
  采用MAXIM公司的MAX153芯片,轉換精度8bit并行輸出,轉換時間660ns、采集速率1Msps。設計采用循環(huán)采集方式。
  · 靜態(tài)RAM
  靜態(tài)RAM62512芯片為64Kbytes,典型存取時間200ns。
  · 總線(數(shù)據(jù)線、地址線和WR)切換電路
  總線切換采用74HC245三態(tài)總線收發(fā)器并聯(lián),分別選通。如圖2所示。


  · 寫地址產生電路
  DMA寫地址產生電路是一可預置數(shù)的16位2進制計數(shù)器,電路是采用四片4位可預置計數(shù)器74HC569級連方式。因此可以預置16位地址的初值,就是DMA傳輸數(shù)據(jù)塊的起始地址。計數(shù)脈沖反向輸入74HC569的CP端以保證寫操作的時序。
3 工作原理
3.1 DMA允許與響應

  單片機系統(tǒng)開機運行時或進行內部數(shù)據(jù)處理、顯示時應置P1.0高,使其處于DMA禁止狀態(tài)。單片機完成初始化或進入DMA準備就緒狀態(tài)時,先向地址發(fā)生器寫入數(shù)據(jù)塊的起始地址,將地址溢出標志位置零,再發(fā)出DMA允許信號釋放RAM的控制權,等待DMA結束標志和DMA控制信號。當DMA允許為1且地址計數(shù)器溢出標志為0時,進入DMA預備狀態(tài),等待外部觸發(fā)信號輸入。DMA觸發(fā)信號可以是周期信號的過零脈沖,也可以是單脈沖信號放大整形輸出,或者是A/D轉換完成信號。DMA控制部分如圖3所示。本設計采用將感應電動勢信號放大整形,其脈沖前沿觸發(fā)。DMA允許后的第一個觸發(fā)脈沖到來,D觸發(fā)器輸出Q為1。開通四輸入端與非門輸出與振蕩器同頻同相的周期信號,開始數(shù)據(jù)采集和傳送。由NE555和阻容元件組成的方波振蕩器的振蕩頻率決定采樣頻率的大小,其頻率應小于等于A/D轉換器的最大轉換速率1Msps。與非門輸出信號同時作為RAM寫信號、A/D芯片讀/RD,經反相后作為地址計數(shù)器的計數(shù)輸入。


3.2 數(shù)據(jù)線與地址線的控制
  總線的選擇控制由DMA允許信號控制兩組74HC245三態(tài)總線收發(fā)器,使其分別處于開通和高阻狀態(tài)。此兩組總線收發(fā)器一端并接至RAM,另一端分別接單片機系統(tǒng)總線和A/D轉換外部總線。當DMA禁止周期時DMA允許信號為低,選通系統(tǒng)總線允許單片機對RAM進行讀寫操作。反之當DMA周期時DMA允許信號為高,選通外部總線允許DMA控制器對RAM寫操作。數(shù)據(jù)線有8根(D0~D7),對數(shù)據(jù)線的切換需要兩片74HC245,而地址線有16根(A0~A15),切換地址線需要4片74HC245才可以。另外還需兩片用以對RAM的讀寫線的切換,對讀寫線的控制采用相同的方法,也是由DMA允許進行兩周期的控制權切換。
3.3 DMA塊數(shù)據(jù)傳輸
  與非門輸出1MHz的振蕩信號,連接A/D芯片/RD腳,在低電平開始時已采集的數(shù)據(jù)被輸出到數(shù)據(jù)線。地址計數(shù)器被設計為下降沿觸發(fā),因此下降沿開始后地址計數(shù)器將在預設的起始地址的基礎上加1,形成新的地址輸出至地址線。數(shù)據(jù)和地址的形成均在下降沿后的160ns(由74HC系列計數(shù)器性能參數(shù)可知其最大傳輸延遲時間為40ns,有四片級連總計160ns。由MAX153CPP的手冊可知其讀寫模式下Data-AccessTime為160ns)內完成,其小于振蕩信號低電平停留時間500ns。在下一個振蕩的下降沿到來之前數(shù)據(jù)地址保持不變,在此后的上升沿時數(shù)據(jù)被寫入RAM的指定地址,第二個下降到來后重復這樣的過程,地址計數(shù)器加1形成新的地址和讀出A/D轉換器中新的數(shù)據(jù),再寫入儲存器。工作時序參見圖4。


3.4 響應過程的結束
  DMA過程的結束設計在地址溢出時。設計利用地址計數(shù)器的溢出位,當?shù)刂芬绯黾创笥?FFFF)H時溢出位為1,經反向器反向后至四輸入端與非門的輸入端,使其輸出常為高而達到封鎖的目的。直到單片機系統(tǒng)重新初始化地址計數(shù)器,清溢出標志,并重新DMA允許后才能再次進入DMA準備就緒狀態(tài)。
4 軟件設計(主流程)
  主程序流程圖見圖5。


  單片機系統(tǒng)以其方便、簡潔、靈活、廉價為主要特點,所以在DMA電路設計中一定要結合實際應用簡化設計,軟件硬件綜合設計避免系統(tǒng)過于復雜,才能達到優(yōu)質廉價的最終目的。利用本設計研制的數(shù)字式磁通表綜合性能達到了預期指標,并獲得滿意的性能價格比。
參考文獻
1 MAXIM公司新產品數(shù)據(jù)手冊(四).1995
2 何立民.單片機應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1990

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。