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