DMA既可以指內(nèi)存和外設(shè)直接存取數(shù)據(jù)這種內(nèi)存訪問的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA控制接口邏輯芯片共同組成,嵌入式系統(tǒng)的DMA控制器內(nèi)建在處理器芯片內(nèi)部,一般稱為DMA控制器,DMAC)。
值得注意的是,通常只有數(shù)據(jù)流量較大(kBps或者更高)的外設(shè)才需要支持DMA能力,這些應(yīng)用方面典型的例子包括視頻、音頻和網(wǎng)絡(luò)接口 。
一般而言,DMA控制器將包括一條地址總線、一條數(shù)據(jù)總線和控制寄存器。高效率的DMA控制器將具有訪問其所需要的任意資源的能力,而無須處理器本身的介入,它必須能產(chǎn)生中斷。最后,它必須能在控制器內(nèi)部計(jì)算出地址。
一個(gè)處理器可以包含多個(gè)DMA控制器。每個(gè)控制器有多個(gè)DMA通道,以及多條直接與存儲(chǔ)器站(memory bank)和外設(shè)連接的總線,如圖1所示。在很多高性能處理器中集成了兩種類型的DMA控制器。第一類通常稱為“系統(tǒng)DMA控制器”,可以實(shí)現(xiàn)對(duì)任何資源(外設(shè)和存儲(chǔ)器)的訪問,對(duì)于這種類型的控制器來說,信號(hào)周期數(shù)是以系統(tǒng)時(shí)鐘(SCLK)來計(jì)數(shù)的,以ADI的Blackfin處理器為 例,頻率最高可達(dá)133MHz。第二類稱為內(nèi)部存儲(chǔ)器DMA控制器(IMDMA),專門用于內(nèi)部存儲(chǔ)器所處位置之間的相互存取操作。因?yàn)榇嫒《及l(fā)生在內(nèi)部 (L1-L1、L1-L2,或者L2-L2),周期數(shù)的計(jì)數(shù)則以內(nèi)核時(shí)鐘(CCLK)為基準(zhǔn)來進(jìn)行,該時(shí)鐘的速度可以超過600MHz。
每個(gè)DMA控制器有一組FIFO,起到DMA子系統(tǒng)和外設(shè)或存儲(chǔ)器之間的緩沖器的作用。對(duì)于MemDMA(Memory DMA)來說,傳輸?shù)脑炊撕湍繕?biāo)端都有一組FIFO存在。當(dāng)資源緊張而不能完成數(shù)據(jù)傳輸?shù)脑?,則FIFO可以提供數(shù)據(jù)的暫存區(qū),從而提高性能。
因?yàn)槟阃ǔ?huì)在代碼初始化過程中對(duì)DMA控制器進(jìn)行配置,內(nèi)核就只需要在數(shù)據(jù)傳輸完成后對(duì)中斷做出響應(yīng)即可。你可以對(duì)DMA控制進(jìn)行編程,讓其與內(nèi)核并行地移動(dòng)數(shù)據(jù),而同時(shí)讓內(nèi)核執(zhí)行其基本的處理任務(wù)—那些應(yīng)該讓它專注完成的工作。
有兩類主要的DMA傳輸結(jié)構(gòu):寄存器模式和描述符模式。無論屬于哪一類DMA,表1的幾種信息都會(huì)在DMA控制器中出現(xiàn)。當(dāng)DMA以寄存器模式工作時(shí),DMA控制器只是簡單地利用寄存器中所存儲(chǔ)的參數(shù)值。在描述符模式中,DMA控制器在存儲(chǔ)器中查找自己的配置參數(shù)。
(1)基于寄存器的DMA
在基于寄存器的DMA內(nèi)部,處理器直接對(duì)DMA控制寄存器進(jìn)行編程,來啟動(dòng)傳輸?;诩拇嫫鞯腄MA提供了最佳的DMA控制器性能,因?yàn)榧拇嫫鞑⒉恍枰粩嗟貜拇鎯?chǔ)器中的描述符上載入數(shù)據(jù),而內(nèi)核也不需要保持描述符。基于寄存器的DMA由兩種子模式組成:自動(dòng)緩沖(Autobuffer)模式和停止模式。在自動(dòng)緩沖DMA中,當(dāng)一個(gè)傳輸塊傳輸完畢,控制寄存器就自動(dòng)重新載入其最初的設(shè)定值,同一個(gè)DMA進(jìn)程重新啟動(dòng),開銷為零。如果將一個(gè)自動(dòng)緩沖DMA設(shè)定為從外設(shè)傳輸一定數(shù)量的字到 L1數(shù)據(jù)存儲(chǔ)器的緩沖器上,則DMA控制器將會(huì)在最后一個(gè)字傳輸完成的時(shí)刻就迅速重新載入初始的參數(shù)。這構(gòu)成了一個(gè)“循環(huán)緩沖器”,因?yàn)楫?dāng)一個(gè)量值被寫入 到緩沖器的最后一個(gè)位置上時(shí),下一個(gè)值將被寫入到緩沖器的第一個(gè)位置上。
自動(dòng)緩沖DMA特別適合于對(duì)性能敏感的、存在持續(xù)數(shù)據(jù)流的應(yīng)用。DMA控制器可以在獨(dú)立于處理器其他活動(dòng)的情況下讀入數(shù)據(jù)流,然后在每次傳輸結(jié)束時(shí),向內(nèi)核發(fā)出中斷。
停止模式的工作方式與自動(dòng)緩沖DMA類似,區(qū)別在于各寄存器在DMA結(jié)束后不會(huì)重新載入,因 此整個(gè)DMA傳輸只發(fā)生一次。停止模式對(duì)于基于某種事件的一次性傳輸來說十分有用。例如,非定期地將數(shù)據(jù)塊從一個(gè)位置轉(zhuǎn)移到另一個(gè)位置。當(dāng)你需要對(duì)事件進(jìn) 行同步時(shí),這種模式也非常有用。例如,如果一個(gè)任務(wù)必須在下一次傳輸前完成的話,則停止模式可以確保各事件發(fā)生的先后順序。此外,停止模式對(duì)于緩沖器的初 始化來說非常有用。
(2)描述符模型
基于描述符(descriptor)的DMA要求在存儲(chǔ)器中存入一組參數(shù),以 啟動(dòng)DMA的系列操作。該描述符所包含的參數(shù)與那些通常通過編程寫入DMA控制寄存器組的所有參數(shù)相同。不過,描述符還可以容許多個(gè)DMA操作序列串在一 起。在基于描述符的DMA操作中,我們可以對(duì)一個(gè)DMA通道進(jìn)行編程,在當(dāng)前的操作序列完成后,自動(dòng)設(shè)置并啟動(dòng)另一次DMA傳輸?;诿枋龇姆绞綖楣芾?系統(tǒng)中的DMA傳輸提供了最大的靈活性 。
單片機(jī)里的DMA是什么意思啊,有款單片機(jī)說具有DMA控制器,中的DMA是什么意思啊?
DMA就是直接存儲(chǔ)器訪問的首字母縮寫(Direct Memory Access)。CPU的總線上同時(shí)會(huì)掛著多幾個(gè)存儲(chǔ)器,如果想要將存儲(chǔ)器1的內(nèi)容復(fù)制到存儲(chǔ)器2,如果不用DMA的話,就得靠CPU直接去操...
微控制器,簡單來說就是微型或小型控制器。基本是指由單片機(jī)為核心的控制單元,及外部電路組成的控制器。單片機(jī)為核心的控制器優(yōu)點(diǎn)就是開發(fā)流程短,可編程,成本低。適用于普通的工業(yè)控制,比如簡單的信號(hào)、簡單的邏...
ZN551只是個(gè)控制模塊 給你個(gè)價(jià)格單吧,你看看是不是還得報(bào)其他東西,這個(gè)是全套的,里面有你要的價(jià)。 (單擊一下圖可放大看)
DMAC可以在兩種模式下運(yùn)行:無描述符存取模式和描述符存取模式。模式的選取由DCSRx[NODESCFETCH]位決定。同樣在同一時(shí)間內(nèi),不同的通道里可以分別使用這兩種模式。通道在轉(zhuǎn)換運(yùn)行模式之前必須停止數(shù)據(jù)處理。如果出現(xiàn)錯(cuò)誤,則通道停留在停止?fàn)顟B(tài),等待程序處理。
(1)無描述符存取模式
在無描述符存取模式下,DDADRx被保留。程序不可以向DDADRx中寫入數(shù)據(jù),并且必須加載DSADRx、DTADRx和DCMDx寄存器。當(dāng)運(yùn)行位被設(shè)置,DMAC立刻運(yùn)行以傳輸數(shù)據(jù)。無描述符存取在數(shù)據(jù)傳輸?shù)拈_始時(shí)被執(zhí)行。
一個(gè)典型的無描述符存取操作順序如下。
1)復(fù)位后,通道處于未初始化狀態(tài)。
2)設(shè)置DCSR[RUN]位為0,設(shè)置DCSR[NODESCFETCH]位為1。
3)程序?qū)⒃吹刂穼懭隓SADR寄存器,將目標(biāo)地址寫入DTADR寄存器,將命令寫入DCMD寄存器。
4)向DCSR[RUN]位中寫入1,然后無描述符存取被執(zhí)行。
5)通道等待數(shù)據(jù)傳輸請(qǐng)求。
6)通道傳輸數(shù)據(jù),數(shù)據(jù)量由DCMD[SIZE]和DCMD[LENGTH]較小者決定。
7)在DCMD[LENGTH]被設(shè)置為0之前,通道等待下一次數(shù)據(jù)請(qǐng)求。
8)DDADR[STOP]被設(shè)置為1,通道運(yùn)行終止。
(2) 有描述符存取模式
在有描述符存取模式下,DMAC的寄存器用內(nèi)存中的DMA描述符數(shù)據(jù)填充。多個(gè)DMA描述符可以被鏈成一個(gè)鏈表。這就允許DMA通道在一系列不連續(xù)的地址上進(jìn)行數(shù)據(jù)傳輸。一個(gè)典型的有描述符存取模式的操作步驟如下。
1)復(fù)位后,通道處于未初始化狀態(tài)。
2)程序?qū)⒚枋龇刂罚?6字節(jié)對(duì)齊)寫入DDADR寄存器。
3)程序向DCSR[RUN]中寫入1。
4)DMAC從DDADR標(biāo)記的地址中讀取4字長的描述符,其中各字加載情況如下:
· Word [0] -> DDADRx寄存器;
· Word [1] -> DSADRx寄存器;
· Word [2] -> DTADRx寄存器;
· Word [3] -> DCMDx寄存器。
5)通道等待數(shù)據(jù)傳輸請(qǐng)求。
6)通道傳輸數(shù)據(jù),數(shù)據(jù)量由DCMD[SIZE]和DCMD[LENGTH]較小者決定。
7)在DCMD[LENGTH]被設(shè)置為0之前,通道等待下一次數(shù)據(jù)請(qǐng)求。
8)DDADR[STOP]被設(shè)置為1,通道運(yùn)行終止,否則繼續(xù)運(yùn)行 。
DMA控制器是內(nèi)存儲(chǔ)器同外設(shè)之間進(jìn)行高速數(shù)據(jù)傳送時(shí)的硬件控制電路,是一種實(shí)現(xiàn)直接數(shù)據(jù)傳送的專用處理器,它必須能取代在程序控制傳送中由CPU和軟件所完成的各項(xiàng)功能;它的主要功能是:
(1)DMAC同外設(shè)之間有一對(duì)聯(lián)絡(luò)信號(hào)線——外設(shè)的DMA請(qǐng)求信號(hào)DREQ以及 DMAC向外設(shè)發(fā)出的DMA響應(yīng)信號(hào)DACK;
(2)DMAC在接收到DREQ后,同CPU之間也有一對(duì)聯(lián)絡(luò)信號(hào)線——DMAC向CPU 發(fā)出總線請(qǐng)求信號(hào)(HOLD或BUSRQ),CPU在當(dāng)前總線周期結(jié)束后向DMAC發(fā)出總線響應(yīng)信號(hào)(HLDA或BUSAK),DMAC接管對(duì)總線的控制權(quán),進(jìn)入DMA操作方式;
(3)能發(fā)出地址信息,對(duì)存儲(chǔ)器尋址,并修改地址指針,DMAC內(nèi)部必須有能自動(dòng)加1或減1的地址寄存器;
(4)能決定傳送的字節(jié)數(shù),并能判斷DMA傳送是否結(jié)束。DMA內(nèi)部必須有能自動(dòng)減1的字計(jì)數(shù)寄存器,計(jì)數(shù)結(jié)束產(chǎn)生終止計(jì)數(shù)信號(hào);
(5)能發(fā)出DMA結(jié)束信號(hào),釋放總線,使CPU恢復(fù)總線控制權(quán);
(6)能發(fā)出讀、寫控制信號(hào),包括存儲(chǔ)器訪問信號(hào)和I/O訪問信號(hào)。DMAC內(nèi)部必須有時(shí)序和讀寫控制邏輯。 有些DMAC芯片和模塊在這些基本功能的基礎(chǔ)上還增加了一些新的功能。如:在DMA傳送結(jié)束時(shí)產(chǎn)生中斷請(qǐng)求信號(hào);在傳送完一個(gè)字節(jié)數(shù)后輸出一個(gè)脈沖信號(hào),用于記錄已傳送的字節(jié)數(shù)、為外部提供周期性的脈沖序列;在一個(gè)數(shù)據(jù)塊傳送完后能自動(dòng)裝入新的起始地址和字節(jié)數(shù),以便重復(fù)傳送一個(gè)數(shù)據(jù)塊或?qū)讉€(gè)數(shù)據(jù)塊鏈接起來傳送;產(chǎn)生兩個(gè)存儲(chǔ)器地址,從而實(shí)現(xiàn)存儲(chǔ)器與存儲(chǔ)器之間的傳送以及能夠?qū)/O設(shè)備尋址,實(shí)現(xiàn)I/O設(shè)備與I/O設(shè)備之間的傳送以及能夠在傳送過程中檢索某一特定字節(jié)或者進(jìn)行數(shù)據(jù)檢驗(yàn)等等。
一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將DMA方式的接口電路稱為DMA控制器。
(1)內(nèi)存地址計(jì)數(shù)器:用于存放內(nèi)存中要交換的數(shù)據(jù)的地址。在 DMA傳送前,須通過程序?qū)?shù)據(jù)在內(nèi)存中的起始位置(首地址)送到內(nèi)存地址計(jì)數(shù)器。而當(dāng) DMA 傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。
(2)字計(jì)數(shù)器:用于記錄傳送數(shù)據(jù)塊的長度(多少字?jǐn)?shù))。其內(nèi)容也是在數(shù)據(jù)傳送之前由程序預(yù)置,交換的字?jǐn)?shù)通常以補(bǔ)碼形式表示。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加“1”。當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)出中斷信號(hào)。
(3)數(shù)據(jù)緩沖寄存器:用于暫存每次傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸入時(shí),由設(shè)備(如磁盤)送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器通過數(shù)據(jù)總線送到內(nèi)存。反之,輸出時(shí),由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。
(4)DMA請(qǐng)求”標(biāo)志:每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使“DMA
請(qǐng)求”標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請(qǐng)求,后者又向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HOLD),CPU響應(yīng)此請(qǐng)求后發(fā)回響應(yīng)信號(hào)HLDA,“控制/狀態(tài)”邏輯接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使“DMA 請(qǐng)求”標(biāo)志復(fù)位,為交換下一個(gè)字做好準(zhǔn)備。
(5)控制/狀態(tài)”邏輯:由控制和時(shí)序電路以及狀態(tài)標(biāo)志等組成,用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器,指定傳送類型(輸入或輸出),并對(duì)“DMA請(qǐng)求”信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。
(6)中斷機(jī)構(gòu):當(dāng)字計(jì)數(shù)器溢出時(shí),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷報(bào)告。
格式:pdf
大?。?span id="nvdhr7d" class="single-tag-height">12KB
頁數(shù): 4頁
評(píng)分: 4.5
道閘控制器概述 道閘控制器是一種采用數(shù)字化技術(shù)設(shè)計(jì)的智能型多功能手動(dòng)、無線遙控兩用遙控控 制設(shè)備。道閘控制器具有良好的智能判定功能和很高的可靠性,是當(dāng)前電動(dòng)道閘系 統(tǒng)中首選的自動(dòng)控制設(shè)備。 道閘控制器主要功能及性能指標(biāo) 1.使用電源: 180―240V/50―60Hz 2.最大負(fù)載功率: 1200W(阻性) 3.控制器自身消耗功率: ≤5W 4.控制方式: 手動(dòng)控制:機(jī)箱面板控制和外接按鈕控制 無線遙控:頻率為 315MHz/433Mhz,采用編碼加密控制 信號(hào)轉(zhuǎn)換時(shí)間: 1―0.5S 自動(dòng)停機(jī):具有限位停機(jī)和 35s,70s, 110s,145s, 180s五擋自動(dòng)延時(shí)停機(jī) (產(chǎn)品出廠時(shí)設(shè)置為 145s)。 5.報(bào)警控制: 輸出接口:控制器對(duì)報(bào)警器探頭可提供 12V 或15V 直流電源 輸入接口:報(bào)警器輸出為繼電器獨(dú)立常開觸點(diǎn) 報(bào)警器探頭:可使用紅外線熱釋、光電對(duì)射、聲波振動(dòng)、多普
--24個(gè)外部中斷端口;
--多路輸入/輸出口。
--3個(gè)帶DMA和中斷的UART;
--支持5位、6位、7位、8位串行數(shù)據(jù)傳送/接受;
--當(dāng)傳送/接受時(shí)支持雙向握手;
--可編程波特率;
--支持IrDA1.0(115.2kbps);
--支持回環(huán)測(cè)試模式;
--每個(gè)通道由16字節(jié)TX FIFO和16字節(jié)RX FIFO。
--4錄DMA控制器;
--支持I/O到存儲(chǔ)器、存儲(chǔ)器到I/O以及I/O到I/O;
--突發(fā)傳送模式提高了FPDRAM、EDODRAM和SDRAM的傳送率。
--8通道10位ADC;
--轉(zhuǎn)換速率最大為500kbps。
--支持3種類型STN LCD:4位雙掃描、4位單掃描和8位單掃描;
--STN LCD支持單色顯示、4級(jí)灰度、16級(jí)灰度、256色彩色和4096色;
--彩色TFT支持1/2/4/8bpp(位每點(diǎn))剪貼板彩色顯示;
--最大支持24bpp模式16M彩色TFT;
--STN和TFT支持多種屏幕尺寸。
--1個(gè)帶中斷的多主機(jī)IIC總線;
--支持MSB數(shù)據(jù)格式。
--1個(gè)帶DMA的音頻IIS總線接口;
--支持MSB數(shù)據(jù)格式。
--與SD存儲(chǔ)卡協(xié)議版本1.0兼容;
--與SDIO卡協(xié)議版本1.0兼容;
--與MMC存儲(chǔ)協(xié)議版本2.11兼容;
--基于DMA或者中斷的操作;
--支持TX/RX FIFO。
--2通道與SPI協(xié)議版本2.11兼容的SPI接口;
--TX/RX 2字節(jié)移位寄存器;
--基于DMA或者中斷的操作。
第一章微型計(jì)算機(jī)接口技術(shù)基礎(chǔ)
第一節(jié)微型計(jì)算機(jī)的組成
第二節(jié)微型計(jì)算機(jī)的接口
習(xí)題一
第二章微型計(jì)算機(jī)中斷系統(tǒng)
第一節(jié)中斷系統(tǒng)的基本概念
第二節(jié)D0s和B10s系統(tǒng)的中斷功能調(diào)用
習(xí)題二
第三章輸入/輸出(I/O)接口技術(shù)
第一節(jié)I/0接口的基本概念
第二節(jié)I/0接口的編址方式與地址分配
第三節(jié)I/0接口的傳送控制方式
第四節(jié)82C37ADMA控制器簡介
習(xí)題三
第四章鼠標(biāo)器接口技術(shù)
第一節(jié)鼠標(biāo)器的基本概念
第二節(jié)鼠標(biāo)器接口技術(shù)的應(yīng)用
習(xí)題四
第五章鍵盤接口技術(shù)
第一節(jié)鍵盤的基本概念
第二節(jié)鍵盤接口技術(shù)的應(yīng)用
習(xí)題五
第六章串行接口與打印機(jī)接口技術(shù)
第一節(jié)串行接口技術(shù)
第二節(jié)打印機(jī)接口技術(shù)
習(xí)題六
第七章視頻顯示接口技術(shù)
第一節(jié)視頻顯示接口的基本概念
第二節(jié)3D圖形技術(shù)
第三節(jié)AGP顯示接口技術(shù)
第四節(jié)視頻采集卡和電視卡
習(xí)題七
第八章通用串行總線(USB)接口技術(shù)
第一節(jié)usB接口的基本概念
第二節(jié)usB接口技術(shù)應(yīng)用
第三節(jié)網(wǎng)卡
習(xí)題八
第九章聲卡接口技術(shù)
第一節(jié)聲卡接口的基本概念
第二節(jié)常見聲卡簡介
習(xí)題九
參考文獻(xiàn)
I/O接口的功能是負(fù)責(zé)實(shí)現(xiàn)CPU通過系統(tǒng)總線把I/O電路和外圍設(shè)備聯(lián)系在一起,按照電路和設(shè)備的復(fù)雜程度,I/O接口的硬件主要分為兩大類:
(1)I/O接口芯片
這些芯片大都是集成電路,通過CPU輸入不同的命令和參數(shù),并控制相關(guān)的I/O電路和簡單的外設(shè)作相應(yīng)的操作,常見的接口芯片如定時(shí)計(jì)數(shù)器、中斷控制器、DMA控制器、并行接口等。
(2)I/O接口控制卡
由若干個(gè)集成電路按一定的邏輯組成為一個(gè)部件,或者直接與CPU同在主板上,或是一個(gè)插件插在系統(tǒng)總線插槽上。
按照接口的連接對(duì)象來分,又可以將他們分為串行接口、并行接口、鍵盤接口和磁盤接口等。