單片機與外部設(shè)備的數(shù)據(jù)傳送方式有哪些
在單片機與外部設(shè)備(簡稱外設(shè))的數(shù)據(jù)傳送過程中,單片機處于核心地位,所謂的數(shù)據(jù)輸入和輸出都是相對單片機而言。數(shù)據(jù)由外設(shè)傳送至單片機,為“輸入”,反之為“輸出”。通常,單片機與外設(shè)的數(shù)據(jù)傳送速度差別較大,因此,選擇恰當(dāng)?shù)臄?shù)據(jù)傳送時間和傳送時間間隔,是保證數(shù)據(jù)正確傳送的關(guān)鍵。在單片機系統(tǒng)中,有三種解決該問題的方法,即程序控制傳送、中斷式傳送和DMA傳送。
1.程序控制傳送
程序控制的傳送方式可分為無條件傳送和查詢方式傳送。無條件傳送默認(rèn)外設(shè)始終處于可以進行數(shù)據(jù)傳送的狀態(tài),單片機可以隨時與之進行數(shù)據(jù)交換。這種傳送方式過于簡單,對于復(fù)雜的外設(shè)應(yīng)用較少。查詢方式傳送又稱為有條件傳送。在該方式下,單片機需不斷讀取外設(shè)的狀態(tài)信息,并通過該信息判斷外設(shè)是否處于可進行數(shù)據(jù)傳送的就緒狀態(tài),若是則進行數(shù)據(jù)傳送,否則繼續(xù)查詢外設(shè)狀態(tài)。查詢方式傳送的優(yōu)點是硬件電路和程序簡單,可靠性高;缺點是由于外設(shè)處理速度比較慢,導(dǎo)致單片機CPU被外設(shè)狀態(tài)查詢程序占用,工作效率低。
2.中斷傳送
在程序運行過程中,若有突發(fā)、緊急的內(nèi)部或外部事件發(fā)生,需要單片機處理,單片機將暫停原有程序,轉(zhuǎn)而執(zhí)行處理該突發(fā)事件的子程序,這一過程就是所謂的“中斷”。引起中斷的事件或發(fā)出中斷請求的對象被稱為“中斷源”,而處理中斷的專用子程序被稱為“中斷服務(wù)處理程序”。中斷方式數(shù)據(jù)傳送利用了單片機的中斷機制和功能。當(dāng)外設(shè)需要與單片機進行數(shù)據(jù)傳送時,外設(shè)主動向單片機發(fā)出中斷請求。單片機若響應(yīng)該請求,則通過中斷服務(wù)處理程序完成與外設(shè)間的數(shù)據(jù)傳送。與查詢方式相比,中斷方式的數(shù)據(jù)傳送更合理,能夠解放單片機CPU,提高單片機的工作效率,更適合于實時工作系統(tǒng),也有利于系統(tǒng)應(yīng)對突發(fā)故障的處理,可以進一步提高系統(tǒng)的可靠性和安全性。
3.DMA傳送
在DAM傳送中,直接存儲器(Direct Memory Access,DAM)控制器負(fù)責(zé)管理存儲器與外設(shè)之間的數(shù)據(jù)交換,單片機CPU得以從數(shù)據(jù)傳送管理任務(wù)中解放出來,其工作效率可以進一步提高。
DMA方式,Direct Memory Access,也稱為成組數(shù)據(jù)傳送方式,有時也稱為直接內(nèi)存操作。DMA方式在數(shù)據(jù)傳送過程中,沒有保存現(xiàn)場、恢復(fù)現(xiàn)場之類的工作。由于CPU根本不參加傳送操作,因此就省去了CPU取指令、取數(shù)、送數(shù)等操作。內(nèi)存地址修改、傳送字 個數(shù)的計數(shù)等等,也不是由軟件實現(xiàn),而是用硬件線路直接實現(xiàn)的。所以DMA方式能滿足高速I/O設(shè)備的要求,也有利于CPU效率的發(fā)揮。
原理
一個設(shè)備接口試圖通過總線直接向另一個設(shè)備發(fā)送數(shù)據(jù)(一般是大批量的數(shù)據(jù)),它會先向CPU發(fā)送DMA請求信號。外設(shè)通過DMA的一種專門接口電路――DMA控制器(DMAC),向CPU提出接管總線控制權(quán)的總線請求,CPU收到該信號后,在當(dāng)前的總線周期結(jié)束后,會按DMA信號的優(yōu)先級和提出DMA請求的先后順序響應(yīng)DMA信號。CPU對某個設(shè)備接口響應(yīng)DMA請求時,會讓出總線控制權(quán)。于是在DMA控制器的管理下,外設(shè)和存儲器直接進行數(shù)據(jù)交換,而不需CPU干預(yù)。數(shù)據(jù)傳送完畢后,設(shè)備接口會向CPU發(fā)送DMA結(jié)束信號,交還總線控制權(quán)。
基本操作
實現(xiàn)DMA傳送的基本操作如下:
1、外設(shè)可通過DMA控制器向CPU發(fā)出DMA請求;
2、CPU響應(yīng)DMA請求,系統(tǒng)轉(zhuǎn)變?yōu)镈MA工作方式,并把總線控制權(quán)交給DMA控制器;
3、由DMA控制器發(fā)送存儲器地址,并決定傳送數(shù)據(jù)塊的長度;
4、執(zhí)行DMA傳送;
5、DMA操作結(jié)束,并把總線控制權(quán)交還CPU。