微控制器控制系統中實現dma資料傳送的方法
技術類別:微控制器
摘1 引 言
許多微控制器控制系統中,資訊的實時處理往往需要資料的批量傳送。不管是採用軟體查詢,還是採用中斷技術,它們都是依靠程式控制,每次傳送資料都需要微控制器執行若干條指令,因而傳輸速率受微控制器指令執行速度的限制。例如,51系列微控制器將外設某一資料存入片外ram,至少要執行2週期指令movx和更改位址指標dptr指令各兩次,若採用12mhz時鐘,則需4μs。可見,即使不考慮微控制器的其它運算,其資料傳送速度也只能達到 250kbyte/s。對於象高速資料採集等需要成批交換資料的場合,速度實在是太慢了。為了實現微控制器與高速外設的資料交換,應用介面擴充套件電路和dma 控制器,在幾乎不占用微控制器資源的情況下,實現了微控制器控制系統的dma資料傳送。
2 幾點說明
對於微控制器控制系統中簡單的dma資料傳送,只要應用雙向ram作為外儲存器或應用簡單的門控電路就可實現。但對於複雜的微控制器控制系統,要解決高速外設和低速cpu之間的矛盾,就不能象微機那樣通過出借系統匯流排來實現資料的dma傳送,更不能因資料傳送而中斷cpu的工作。為此要求:
(1)當微控制器控制系統需與高速外設交換資料時,微控制器只能作簡單的響應,不能長時間中斷工作。解決的辦法是採用擴充套件資料儲存器系統,資料交換時cpu只出借擴充套件資料儲存器作為dma資料交換的儲存器。
(2)為便於微控制器控制系統與高速資料採集或軟磁碟驅動器等外設的連線,其dma控制方式應具有一致性,符合通用介面標準。
訊號線共6條,即:
dma請求訊號dreq;
dma響應回答訊號dack;
dma傳送過程結束訊號
輸入/輸出裝置讀寫訊號線
輸入/輸出裝置準備就緒訊號線ready。
(3)dma傳送控制與介面盡量不占用微控制器的前處理任務的緩急情況,相應對dma請求作出應答,對dma請求的應答並不占用微控制器的資源。
3 電路實現原理
3.1 儲存器擴充套件電路
51系列微控制器的外部儲存容量只有64k,在高速資料採集等情況下,其容量明顯不足。若以取樣率50ks/s計算,只能容納1s多的取樣量,況且要求dma傳送期間cpu要照常工作,包括對外部資料儲存器的訪問。這就要求對儲存容量進行擴充套件。將擴充套件的儲存器用於dma,原有的儲存器繼續作為工作儲存器。下面以圖3—1所示儲存器擴充套件電路為例說明儲存器擴充套件的原理。為說明問題的方便,省去了編碼電路,只以微控制器的p2.7和p2.6作為片選線,下一節的dma控制電路也簡單以p2.5作片選線。因而特此說明,原理電路中各暫存器的埠位址不惟一。
8155晶元內具有256位元組的ram,2個8位(pa和pb)、1個6位(pc)可程式設計i/o口。程式設計設定pb口和pc口為輸出口,用於為6264提供位址;pa口為雙向輸入輸出口,作為6264的資料口。其位址分配為:
讀寫擴充套件儲存器6264時,在pb口送入6264的低8位位址,pc口送入另5位位址(pc口的另外1位作為微控制器對dma請求的應答線)。通過讀寫 pa口即可完成擴充套件儲存器的讀寫。雖然訪問一次資料要用3條外部ram讀寫指令,但這樣不但擴充套件了儲存器容量,而且更重要的是在保證cpu不中斷工作的條件下,為資料的dma傳送創造了條件。
另外,這種儲存器擴充套件方式,通過選用不同的擴
展晶元或選用多個擴充套件晶元,可大大擴充套件儲存器的容量,如採用8255並口擴充套件晶元,即可擴充套件64k的儲存容量。
3.2 dma控制電路
利用通用dma控制器構成了圖3—2所示的微控制器資料dma傳送通道,它提供了4通道標準的dma傳送介面訊號,其工作過程為:
3.2.1 初始化
微控制器控制系統開機後,首先要對8155和8237初始化。
8155初始化。8155只有1個狀態暫存器,通過對位址3f00h賦值,即可設定pb口和pc口為輸出口,用於為6264提供位址;pa口為雙向輸入輸出口,作為6264的資料口,存資料時,3f00h的值為0dh;取資料時,3f00h的值為0ch。
8237初始化。將8155的pc5位置0,2片4066組成的門控電路使8237處於非dma狀態。此時,8237的埠讀寫控制線與微控制器的讀寫線分別接通。通過對位址5f00h~5fffh(8237的內部暫存器埠位址)的設定,完成8237的初始化。
針對微控制器控制系統的特點,通常初始化8237的內容包括:
(1)決定dma的工作通道;
(2)資料按成組方式傳送;
(3)確定訪存首位址及位址的增減變化;
(4)傳送位元組數;
(5)確定請求訊號和應答訊號的有效電平;
(6)遮蔽。
3.2.2 dma傳送
系統完成初始化之後即進入正常工作狀態。若有dma請求,即可進行dma傳送過程。
(1)8237接收到dma請求訊號dreq後,輸出「匯流排」請求訊號hold,引起微控制器中斷,中斷響應程式包括:解除8237的遮蔽功能;保持p2.6、p2.5置0,使能6264、8237;
p2.7置1,使8155空閒;6264脫離微控制器控制。
8155的pc5由0變1;門控電路使8237的儲存器讀寫線與6264的讀寫線接通,完成dma通道的連線。同時,8155的pc5作為cpu對dma請求的回應,啟動了dma傳送過程。
(2)8237輸出dack回答訊號,開始dma傳送。
(3)傳送結束,8237輸出訊號,微控制器檢測到2次中斷的發生,使8155的pc5置0,恢復控制系統的原有工作狀態。同時為下次dma傳送作好了準備,並通知外設本次dma傳送結束。
4 結 論
通過儲存器擴充套件,在僅占用微控制器幾十個儲存空間和乙個中斷源的情況下,實現了微控制器控制系統的資料dma傳送,保證了微控制器能在dma傳送期間的正常工作。實踐證明,該系統可方便用於訊號的高速採集,並可作為微控制器控制系統與軟盤驅動器的介面。
微控制器自動加料機控制系統
我的畢業設計是運用微控制器at89s52來實現自動加料控制系統。在現代科學技術的許多領域中,自動控制技術起這愈來愈重要的作用,並且,隨著生產和科學技術的發展,自動化水平也越來越高。自動控制利用控制裝置使被控物件的某個引數自動的按照預定的規律執行。本設計的自動加料機控制系統就是採用自動控制技術來實現功...
微控制器遠端溫度控制系統
引言 溫度是工業生產中常見的被控引數之一。從食品生產到化工生產,從燃料生產到鋼鐵生產等等,無不涉及到對溫度的控制,可見,溫度控制在工業生產中佔據著非常重要的地位,而且隨著工業生產的現代化,對溫度控制的速度和精度也會越來越高。近年來,溫度控制領域發生了很大的變化,工業生產中對溫度的控制不再侷限於近距離...
如何利用微控制器實現列印貼標機的控制系統
醫院現有的採血管貼標傳統工作方式包括手工方式和直接採購帶有隨機條碼的試管,進行再匹配的兩種方式。以患者化驗任務為例,首先需從醫院的實驗室資訊系統中取得患者檢測的相關資訊,如姓名性別 檢測資訊 檢測日期等等,再列印每個需要檢測的人試管標籤,最後人工選擇相應化驗專案的試管並一一貼上。當檢驗人數較大時,僅...