專利名稱:直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)與方法
直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)與方法技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及一種直接存儲(chǔ)訪問(Direct Memory Access,簡稱DMA)控制器數(shù)據(jù)傳輸系統(tǒng)及方法。背景技術(shù):
目前,計(jì)算機(jī)系統(tǒng)和外部設(shè)備之間、或者計(jì)算機(jī)系統(tǒng)不同內(nèi)存之間的數(shù) 據(jù)傳輸通常通過中央處理器(Central Processor Unit,簡稱CPU)進(jìn)行。CPU 可以采用程控法或者中斷法控制與外部設(shè)備之間的數(shù)據(jù)傳輸,但是這兩種數(shù) 據(jù)傳輸?shù)姆绞蕉急容^慢。當(dāng)高速外部設(shè)備和計(jì)算機(jī)系統(tǒng)內(nèi)存之間、或者計(jì)算 機(jī)系統(tǒng)中不同的內(nèi)存之間進(jìn)行大量數(shù)據(jù)快速傳輸時(shí),這兩種數(shù)據(jù)傳輸?shù)姆绞?就在一定程度上限制了數(shù)據(jù)傳輸?shù)乃俾?。為了提高?jì)算機(jī)系統(tǒng)和外部設(shè)備之 間、或者計(jì)算機(jī)系統(tǒng)不同內(nèi)存之間數(shù)據(jù)傳輸?shù)乃俣?,出現(xiàn)了 DMA ((Direct MemoryAccess)技術(shù)。DMA技術(shù)是一種高速的數(shù)據(jù)傳輸操作,其允許計(jì)算 機(jī)系統(tǒng)和外部設(shè)備之間、或者計(jì)算機(jī)系統(tǒng)不同內(nèi)存之間直接讀寫數(shù)據(jù),即不 通過CPU、也不需要CPU干預(yù)。整個(gè)數(shù)據(jù)傳輸?shù)牟僮髟贒MA控制器的控制 下進(jìn)行,CPU除了在數(shù)據(jù)傳輸開始和結(jié)束時(shí),給出數(shù)據(jù)傳輸開始和結(jié)束的指 令,在數(shù)據(jù)傳輸?shù)倪^程中對(duì)數(shù)據(jù)傳輸不再進(jìn)行其他的處理。這樣,在大部分 時(shí)間內(nèi),CPU處理其他過程和數(shù)據(jù)傳輸過程可以并行操作,使整個(gè)計(jì)算機(jī)系 統(tǒng)的效率大大提高。同樣地,在嵌入式芯片系統(tǒng)或者DSP系統(tǒng)中,為了提高數(shù)據(jù)傳輸?shù)乃俣?和系統(tǒng)的工作效率,也可以通過DMA技術(shù)傳輸數(shù)據(jù)。現(xiàn)有的DMA控制器 對(duì)芯片外部的存儲(chǔ)器進(jìn)行讀寫的 一般包括如下步驟芯片內(nèi)部的微控制器 (Micro Controller Unit,簡稱MCU )通過輸入輸出接口向芯片外部的存儲(chǔ)器 發(fā)送讀寫命令;MCU通過輸入輸出接口給外部的存儲(chǔ)器配置讀寫地址;MCU控制DMA控制器啟動(dòng)DMA通過輸入輸出接口向外部存儲(chǔ)器讀寫數(shù)據(jù);DMA 控制器讀寫數(shù)據(jù)完畢,發(fā)中斷給MCU, MCU決定下一次DMA傳輸是否開 始,如果開始,則回到第一步。由此可以看出,現(xiàn)有的DMA控制器對(duì)芯片外部存儲(chǔ)器進(jìn)行讀寫,都是 通過內(nèi)部MCU對(duì)外部存儲(chǔ)器發(fā)送讀寫命令,然后把控制權(quán)交給DMA控制 器,再進(jìn)行數(shù)據(jù)讀寫,這樣浪費(fèi)了很多握手時(shí)間。另外,現(xiàn)有的DMA控制 器對(duì)芯片外部存儲(chǔ)器進(jìn)行讀寫,都是通過內(nèi)部MCU對(duì)外部存儲(chǔ)器發(fā)送讀寫 地址,并且所述外部存儲(chǔ)器只有在收到讀寫命令之后才能識(shí)別接收讀寫地址, 因此只要'需要從另一起始地址開始DMA傳輸,則必須要MCU對(duì)外部存儲(chǔ) 器重新發(fā)送讀寫命令及讀寫地址,這樣不但加重了 MCU的工作負(fù)荷,同時(shí) 也影響響應(yīng)速度,使DMA傳輸在讀寫地址切換時(shí)不流暢。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)及方法, 其可以加快硬件速度、使DMA傳輸?shù)那袚Q保持流暢。根據(jù)本發(fā)明的一方面,本發(fā)明提供了一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸 系統(tǒng),其包括第一存儲(chǔ)器、第二存儲(chǔ)器、微控制器、直接存儲(chǔ)訪問控制器。 所述直接存儲(chǔ)訪問控制器包括有命令寄存器與地址寄存器,所述微控制器給 所述命令寄存器配置讀寫第一存儲(chǔ)器的訪問命令以及給所述地址寄存器配置 訪問第一存儲(chǔ)器的起始地址,在需要直接存儲(chǔ)訪問傳輸時(shí),所述微控制器啟 動(dòng)所述直接存儲(chǔ)訪問控制器,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器 的內(nèi)容向所述第一存儲(chǔ)器發(fā)送訪問命令以及根據(jù)地址寄存器的內(nèi)容向所述第 一存儲(chǔ)器發(fā)送起始地址以啟動(dòng)第 一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問 傳輸,在需要切換直接存儲(chǔ)訪問傳輸時(shí),所述微控制器更新所述地址寄存器 內(nèi)的第一存儲(chǔ)器的起始地址,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器 的內(nèi)容向所述第 一存儲(chǔ)器再次發(fā)送訪問命令以及根據(jù)地址寄存器的更新內(nèi)容 向所述第一存儲(chǔ)器再次發(fā)送起始地址,從而實(shí)現(xiàn)第一存儲(chǔ)器與第二存儲(chǔ)器之 間直接存儲(chǔ)訪問傳輸?shù)那袚Q。進(jìn)一步的,所述第二存儲(chǔ)器、微控制器及直接存儲(chǔ)訪問控制器集成于一 集成電路內(nèi),所述集成電路通過其內(nèi)設(shè)置的輸入輸出接口與第一存儲(chǔ)器通信。進(jìn)一步的,所述直接存儲(chǔ)訪問控制器包括大小寄存器,在每次所述微控 制器向所述地址寄存器配置或更新第一存儲(chǔ)器的起始地址時(shí),需同時(shí)向所述 大小寄存器配置或更新傳輸數(shù)據(jù)量的大小;所述直接存儲(chǔ)訪問控制器根據(jù)根 據(jù)大小寄存器中的數(shù)據(jù)量大小判斷所述直接存儲(chǔ)訪問傳輸是否完成。進(jìn)一步的,所述直接存儲(chǔ)訪問控制器還包括控制寄存器,所述控制寄存 器內(nèi)具有直接存儲(chǔ)訪問傳輸啟動(dòng)位,所述微控制器通過配置直接存儲(chǔ)訪問傳 輸啟動(dòng)位來啟動(dòng)所述直接存儲(chǔ)訪問控制器。進(jìn)一步的,所述控制寄存器內(nèi)具有直接存儲(chǔ)訪問傳輸控制位,所述微控 制器通過配置直接存儲(chǔ)訪問傳輸控制位來控制在完成所述直接存儲(chǔ)訪問傳輸后是否繼續(xù)直接存儲(chǔ)訪問傳輸;在需要繼續(xù)直接存儲(chǔ)訪問傳輸時(shí),所述直接 存儲(chǔ)訪問控制器根據(jù)所述命令寄存器的內(nèi)容向所述第一存儲(chǔ)器再次發(fā)送讀寫 命令,就可再次啟動(dòng)第 一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸。根據(jù)本發(fā)明的另 一方面,本發(fā)明提供了 一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳 輸方法,應(yīng)用于一數(shù)據(jù)傳輸系統(tǒng)中,所述系統(tǒng)包括第一存儲(chǔ)器、第二存儲(chǔ)器、 微控制器、直接存儲(chǔ)訪問控制器,所述方法包括所述微控制器向所述直接 存儲(chǔ)訪問控制器配置訪問第 一存儲(chǔ)器的訪問命令及訪問第 一存儲(chǔ)器的起始地 址;在需要直接存儲(chǔ)訪問傳輸時(shí),所述微控制器啟動(dòng)所述直接存儲(chǔ)訪問控制 器;所述直接存儲(chǔ)訪問控制器向所述第一存儲(chǔ)器發(fā)送訪問命令及起始地址以 啟動(dòng)第一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸;在需要切換直接存 儲(chǔ)訪問傳輸時(shí),所述微控制器更新所述地址寄存器內(nèi)的第 一存儲(chǔ)器的起始地 址,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器的內(nèi)容向所述第一存儲(chǔ)器 再次發(fā)送訪問命令以及根據(jù)地址寄存器的更新內(nèi)容向所述第一存儲(chǔ)器再次發(fā) 送起始地址,從而實(shí)現(xiàn)第一存儲(chǔ)器與第二存儲(chǔ)器之間直接存儲(chǔ)訪問傳輸?shù)那?換。進(jìn)一步的,所述微控制器還向所述直接存儲(chǔ)訪問控制器配置傳輸數(shù)據(jù)量的大小;在直接存儲(chǔ)訪問傳輸時(shí),根據(jù)配置的數(shù)據(jù)量大小判斷所述直接存儲(chǔ) 訪問傳輸是否完成。進(jìn)一步的,所述微控制器還向所述直接存儲(chǔ)訪問控制器配置是否在完成所述直接存儲(chǔ)訪問傳輸后繼續(xù)進(jìn)行直接存儲(chǔ)訪問傳輸;在需要繼續(xù)直接存儲(chǔ) 訪問傳輸時(shí),所述直接存儲(chǔ)訪問控制器向所述第 一存儲(chǔ)器再次發(fā)送訪問及起 始地址以再次啟動(dòng)第 一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸。本發(fā)明技術(shù)方案與現(xiàn)有的方案相比,在需要啟動(dòng)DMA傳輸時(shí),不是由 微控制器向外部存儲(chǔ)器發(fā)送讀寫命令,而是由DMA控制器代替微控制器發(fā) 送讀寫命令來啟動(dòng)DMA傳輸,這樣不但省去了很多握手時(shí)間,還減輕了微 控制器的工作負(fù)擔(dān),提高了工作效率。此外,在需要切換DMA傳輸時(shí),所 述微處理器只需直接更新DMA控制器內(nèi)的大小寄存器和地址寄存器,所述 DMA控制器便能無間歇的、流暢的實(shí)現(xiàn)DMA傳輸?shù)膭?dòng)態(tài)切換。
圖1為本發(fā)明直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)的一個(gè)實(shí)施例的結(jié)構(gòu)方 框圖;圖2為本發(fā)明直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)中的直接存儲(chǔ)訪問控制 器的 一 個(gè)實(shí)施例的具體結(jié)構(gòu)方框圖;圖3是本發(fā)明直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸方法的一個(gè)實(shí)施例的流程示 意圖;及圖4是本發(fā)明直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)中的外部存儲(chǔ)器的 一個(gè) 實(shí)施例的內(nèi)部存儲(chǔ)示意圖。
具體實(shí)施方式以下結(jié)合附圖對(duì)本發(fā)明具體實(shí)施方式
進(jìn)行說明。在一個(gè)實(shí)施例中,本發(fā)明提出了一種直接存儲(chǔ)訪問(Direct MemoryAccess,簡稱DMA )控制器數(shù)據(jù)傳輸系統(tǒng),其中圖1示出了所述DMA控制 器數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)方框圖。如圖1所示,所述DMA控制器數(shù)據(jù)傳輸系 統(tǒng)包括有內(nèi)部存儲(chǔ)器120、DMA控制器140、微處理器(Micro Controller Unit, 簡稱MCU)160、輸入輸出接口 180及外部存儲(chǔ)器200。所述內(nèi)部存儲(chǔ)器120、 DMA控制器140、微處理器160及輸入輸出接口 180可集成于一集成電路 100內(nèi)。所述輸入輸出接口 180可以是串行外圍接口 ( Serial Peripheral Interface, 簡稱SPI)。所述外部存儲(chǔ)器200可以是閃存存儲(chǔ)器(Flash Memory )或只讀 存儲(chǔ)器(ROM)或可編程存儲(chǔ)器(EEPROM)。所述內(nèi)部存儲(chǔ)器120可以是 隨機(jī)存儲(chǔ)存儲(chǔ)器(RAM)或先進(jìn)先出寄存器(First-In First-Out Register,簡 稱FIFO)。所述內(nèi)部存儲(chǔ)器120可以用做屏幕顯示(On Screen Display,簡稱 OSD)存儲(chǔ)器,其內(nèi)可以存儲(chǔ)圖像數(shù)據(jù),所述圖像數(shù)據(jù)將與其他圖像數(shù)據(jù)合 并后顯現(xiàn)到顯示屏(未圖示)上??傮w來講,在需要進(jìn)行DMA數(shù)據(jù)傳輸時(shí),微控制器160將會(huì)配置并啟 動(dòng)DMA控制器140,隨后所述DMA控制器140就直接將外部存儲(chǔ)器200內(nèi) 的數(shù)據(jù)以DMA的方式傳輸至內(nèi)部存儲(chǔ)器120內(nèi)或直接將內(nèi)部存儲(chǔ)器120內(nèi) 的數(shù)據(jù)以DMA的方式傳輸至外部存儲(chǔ)器200內(nèi)。請(qǐng)參看圖2,其示出了 DMA控制器140的一個(gè)實(shí)施例的具體結(jié)構(gòu)方框 圖,所述DMA控制器140包括大小寄存器142、地址寄存器144、命令寄存 器146及控制寄存器148。所述微控制器160可以給命令寄存器146配置讀 寫外部存儲(chǔ)器200的讀寫命令,比如配置讀命令為8 ,h03、配置寫命令為 8,h05,這里的讀寫命令格式是根據(jù)外部存儲(chǔ)器200的種類來配置的,這樣在 收到來自命令寄存器146的讀寫命令時(shí),所述外部存儲(chǔ)器200就會(huì)識(shí)別該命 令并作出相應(yīng)的反應(yīng)。所述^U空制器160還可以給大小寄存器142配置DMA 傳輸?shù)臄?shù)據(jù)量的大小,并給地址寄存器144配置DMA傳輸?shù)乃鐾獠看鎯?chǔ) 器的起始地址。所述控制寄存器148內(nèi)有DMA傳輸啟動(dòng)位、DMA傳輸控制 位、DMA傳輸中斷位。所述^f敖控制器160可以通過配置DMA傳輸啟動(dòng)位來 控制DMA傳輸?shù)膯?dòng)和停止,可以通過配置DMA傳輸控制位來控制在完成DMA傳輸后是否繼續(xù)進(jìn)行DMA傳輸。所述DMA控制器140則可以通過 配置DMA傳輸中斷位來向微控制器160發(fā)送中斷。下面結(jié)合圖3來描述一下本發(fā)明DMA控制器數(shù)據(jù)傳輸系統(tǒng)的操作過程。 這里所說的操作過程,也可以被理解為本發(fā)明提出的DMA控制器數(shù)據(jù)傳輸 方法。步驟302,所述微控制器160給命令寄存器146配置讀寫外部存儲(chǔ)器200 的讀寫命令。步驟304,所述微控制器160給大小寄存器142配置DMA傳輸?shù)臄?shù)據(jù) 量大小,并給地址寄存器144配置外部存儲(chǔ)器200的讀寫起始地址。步驟306,所述MCU根據(jù)需要判斷是否需要DMA傳輸,如果是,則轉(zhuǎn) 入步驟308;否則,繼續(xù)此判斷步驟。步驟308,所述MCU將DMA控制器140中的控制寄存器148中的DMA 傳輸啟動(dòng)控制位配置為啟動(dòng)狀態(tài),也就是說,所述MCU發(fā)命令啟動(dòng)DMA 傳輸;同時(shí),所述MCU還可以根據(jù)需要將控制寄存器148中的DMA傳輸 控制位配置為重復(fù)DMA傳輸或不重復(fù)DMA傳輸。步驟310,所述DMA控制器140根據(jù)命令寄存器146的內(nèi)容向外部存 儲(chǔ)器200發(fā)送讀寫命令。步驟312,所述DMA控制器140#4居地址寄存器146的相應(yīng)內(nèi)容向外 部存儲(chǔ)器200發(fā)送讀寫起始地址。通過步驟310與312,所述DMA控制器140就完成了與外部存儲(chǔ)器的 DMA傳輸前的握手動(dòng)作,接下來便可以開始DMA傳輸了 。步驟314,所述DMA控制器140根據(jù)起始地址將外部存儲(chǔ)器200內(nèi)的 數(shù)據(jù)傳輸至內(nèi)部存儲(chǔ)器120。步驟316,將大小寄存器142中的數(shù)據(jù)量的大小N與已經(jīng)經(jīng)過DMA傳輸?shù)臄?shù)據(jù)量的大小M進(jìn)行比較以判斷是否完成了 DMA傳輸,如果M》N, 則說明傳輸完成,轉(zhuǎn)入步驟318;否則說明傳輸未完成,返回步驟314。步驟318,所述DMA控制器根據(jù)控制寄存器148中的DMA傳輸控制位 判斷是否需要進(jìn)行重復(fù)讀寫,如果是,則進(jìn)入步驟320;否則,進(jìn)入步驟322。 這樣通過配置控制寄存器148中的DMA傳輸控制位就可以隨時(shí)停止DMA 傳輸,否則所述DMA傳輸就會(huì)不斷重復(fù),比如重復(fù)的將一段存儲(chǔ)于外部存 儲(chǔ)器內(nèi)的連續(xù)數(shù)據(jù)重復(fù)搬運(yùn)至內(nèi)部存儲(chǔ)器。步驟320,判斷是否需要發(fā)送中斷,如果是,則進(jìn)入步驟324;否則,返 回步驟310。步驟322,判斷是否需要發(fā)送中斷,如果是,則進(jìn)入步驟324;否則,返 回步驟306。步驟324,所述DMA控制器140通過配置控制寄存器148中的DMA傳 輸中斷位來向微控制器160發(fā)送中斷,并返回步驟306。需要注意的是,前文中都將讀與寫一起描述,比如說讀寫命令、讀寫操 作等,而在實(shí)際操作過程中,讀與寫是分別進(jìn)行的。綜上所述,在需要重復(fù) DMA傳輸時(shí),不是由微控制器向外部存儲(chǔ)器發(fā)送讀寫命令,而是由DMA控 制器代替微控制器發(fā)送讀寫命令來啟動(dòng)DMA傳輸,這樣不但省去了很多握 手時(shí)間,還減輕了微控制器的工作負(fù)擔(dān),提高了工作效率。在另一個(gè)實(shí)施例中,如圖4所示,外部存儲(chǔ)器200內(nèi)存儲(chǔ)有多段數(shù)據(jù), 比如多張圖像數(shù)據(jù),每張圖像數(shù)據(jù)都有固定的起始地址并且是連續(xù)存儲(chǔ)的。 在一種情況下,可能需要將第一段連續(xù)數(shù)據(jù)從所述外部存儲(chǔ)器200中傳輸至 內(nèi)部存儲(chǔ)器中,此時(shí)就需要執(zhí)行步驟302給命令寄存器146配置讀寫外部存 儲(chǔ)器200的讀寫命令,通常這個(gè)步驟一旦進(jìn)行過之后就不需要再次執(zhí)行了 , 然后執(zhí)行步驟304給大小寄存器142配置第一段連續(xù)數(shù)據(jù)的數(shù)據(jù)量大小以及 給地址寄存器144配置外部存儲(chǔ)器200的第一段連續(xù)數(shù)據(jù)的起始地址,之后 便可以執(zhí)行后續(xù)的步驟了 ,這樣所述DMA控制器就可以將第 一段連續(xù)數(shù)據(jù)從外部存儲(chǔ)器200搬運(yùn)至內(nèi)部存儲(chǔ)器142。在所述DMA控制器搬運(yùn)第一段 連續(xù)數(shù)據(jù)時(shí),如果MCU接到外部命令要求切換DMA傳輸,比如停止將第 一段連續(xù)數(shù)據(jù)從所述外部存儲(chǔ)器200中傳輸至內(nèi)部存儲(chǔ)器142中,而改為將 第三段連續(xù)數(shù)據(jù)從從所述外部存儲(chǔ)器200中傳輸至內(nèi)部存儲(chǔ)器中,那么則所 述MCU需要將第三段連續(xù)數(shù)據(jù)的數(shù)量大小配置給大小寄存器142,此時(shí)先前 配置在大小寄存器142內(nèi)的第一段連續(xù)數(shù)據(jù)的數(shù)量大小會(huì)被第三段連續(xù)數(shù)據(jù) 的數(shù)量大小所覆蓋,同時(shí)所述MCU需要將第三段連續(xù)數(shù)據(jù)的起始地址配置 給地址寄存器144,此時(shí)先前配置在地址寄存器144內(nèi)的第一段連續(xù)數(shù)據(jù)的 起始地址會(huì)被第三段連續(xù)數(shù)據(jù)的起始地址所覆蓋。需要注意的是,重新配置 DMA控制器140中的大小寄存器142及地址寄存器144,并不會(huì)影響此時(shí)正 在執(zhí)行的步驟。在DMA傳輸經(jīng)過步驟316、 318、 320再次返回步驟.310后, 在執(zhí)行步驟312時(shí),所述DMA控制器140會(huì)將地址寄存器144內(nèi)的第三段 連續(xù)數(shù)據(jù)的起始地址以及將大小寄存器144內(nèi)的第三段連續(xù)數(shù)據(jù)的數(shù)據(jù)量大 小發(fā)送給外部存儲(chǔ)器200,隨后所述DMA控制器140便會(huì)開始將第三段連 續(xù)數(shù)據(jù)從外部存儲(chǔ)器搬運(yùn)至內(nèi)部存儲(chǔ)器。綜上所述,在收到切換DMA傳輸命令后,所述微處理器160只需直接 更新DMA控制器內(nèi)的大小寄存器和地址寄存器,所述DMA控制器便能無 間歇的、流暢的實(shí)現(xiàn)DMA傳輸?shù)膭?dòng)態(tài)切換,從而可以將另一端連續(xù)數(shù)據(jù)從 外部存儲(chǔ)器搬運(yùn)至內(nèi)部存儲(chǔ)器120內(nèi)。可以理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方 案及其發(fā)明構(gòu)思加以等同替換或改變,而所有這些改變或替換都應(yīng)屬于本發(fā) 明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng),其包括第一存儲(chǔ)器、第二存儲(chǔ)器、微控制器、直接存儲(chǔ)訪問控制器,其特征在于所述直接存儲(chǔ)訪問控制器包括有命令寄存器與地址寄存器,所述微控制器給所述命令寄存器配置讀寫第一存儲(chǔ)器的訪問命令以及給所述地址寄存器配置訪問第一存儲(chǔ)器的起始地址;在需要直接存儲(chǔ)訪問傳輸時(shí),所述微控制器啟動(dòng)所述直接存儲(chǔ)訪問控制器,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器的內(nèi)容向所述第一存儲(chǔ)器發(fā)送訪問命令以及根據(jù)地址寄存器的內(nèi)容向所述第一存儲(chǔ)器發(fā)送起始地址以啟動(dòng)第一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸;在需要切換直接存儲(chǔ)訪問傳輸時(shí),所述微控制器更新所述地址寄存器內(nèi)的第一存儲(chǔ)器的起始地址,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器的內(nèi)容向所述第一存儲(chǔ)器再次發(fā)送訪問命令以及根據(jù)地址寄存器的更新內(nèi)容向所述第一存儲(chǔ)器再次發(fā)送起始地址,從而實(shí)現(xiàn)第一存儲(chǔ)器與第二存儲(chǔ)器之間直接存儲(chǔ)訪問傳輸?shù)那袚Q。
2、 如權(quán)利要求l所述的系統(tǒng),其特征在于所述第二存儲(chǔ)器、微控制器 及直接存儲(chǔ)訪問控制器集成于一集成電路內(nèi),所述集成電路通過其內(nèi)設(shè)置的 輸入輸出接口與第 一存儲(chǔ)器通信。
3、 如權(quán)利要求l所述的系統(tǒng),其特征在于所述直接存儲(chǔ)訪問控制器包 括大小寄存器,在每次所述微控制器向所述地址寄存器配置或更新第 一存儲(chǔ) 器的起始地址時(shí),需同時(shí)向所述大小寄存器配置或更新傳輸數(shù)據(jù)量的大小;所述直接存儲(chǔ)訪問控制器根據(jù)根據(jù)大小寄存器中的數(shù)據(jù)量大小判斷所述 直接存儲(chǔ)訪問傳輸是否完成。
4、 如權(quán)利要求l所述的系統(tǒng),其特征在于所述直接存儲(chǔ)訪問控制器還 包括控制寄存器,所述控制寄存器內(nèi)具有直接存儲(chǔ)訪問傳輸啟動(dòng)位,所述微 控制器通過配置直接存儲(chǔ)訪問傳輸啟動(dòng)位來啟動(dòng)所述直接存儲(chǔ)訪問控制器。
5、 如權(quán)利要求4所述的系統(tǒng),其特征在于所述控制寄存器內(nèi)具有直接存儲(chǔ)訪問傳輸控制位,所述微控制器通過配置直接存儲(chǔ)訪問傳輸控制位來控制在完成所述直接存儲(chǔ)訪問傳輸后是否繼續(xù)直接存儲(chǔ)訪問傳輸;在需要繼續(xù)直接存儲(chǔ)訪問傳輸時(shí),所述直接存儲(chǔ)訪問控制器根據(jù)所述命 令寄存器的內(nèi)容向所述第一存儲(chǔ)器再次發(fā)送讀寫命令,就可再次啟動(dòng)第一存 儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸。
6、 如^f又利要求1所述的系統(tǒng),其特4i在于所述訪問命令包括讀或/和 寫命令。
7、 一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸方法,應(yīng)用于一數(shù)據(jù)傳輸系統(tǒng)中, 所述系統(tǒng)包括第一存儲(chǔ)器、第二存儲(chǔ)器、微控制器、直接存儲(chǔ)訪問控制器, 其特征在于所述方法包括所述微控制器向所述直接存儲(chǔ)訪問控制器配置訪問第 一存儲(chǔ)器的訪問命 令及訪問第 一存儲(chǔ)器的起始地址;在需要直接存儲(chǔ)訪問傳輸時(shí),所述微控制器啟動(dòng)所述直接存儲(chǔ)訪問控制器;所述直接存儲(chǔ)訪問控制器向所述第 一存儲(chǔ)器發(fā)送訪問命令及起始地址以 啟動(dòng)第 一存儲(chǔ)器與第二存儲(chǔ)器之間的直接存儲(chǔ)訪問傳輸;在需要切換直接存儲(chǔ)訪問傳輸時(shí),所述微控制器更新所述地址寄存器內(nèi) 的第 一存儲(chǔ)器的起始地址,所述直接存儲(chǔ)訪問控制器根據(jù)所述命令寄存器的 內(nèi)容向所述第一存儲(chǔ)器再次發(fā)送訪問命令以及根據(jù)地址寄存器的更新內(nèi)容向 所述第一存儲(chǔ)器再次發(fā)送起始地址,從而實(shí)現(xiàn)第一存儲(chǔ)器與第二存儲(chǔ)器之間 直接存儲(chǔ)訪問傳輸?shù)那袚Q。
8、 如權(quán)利要求7所述的方法,其特征在于所述微控制器還向所述直接存儲(chǔ)訪問控制器配置傳輸數(shù)據(jù)量的大小; 在直接存儲(chǔ)訪問傳輸時(shí),根據(jù)配置的數(shù)據(jù)量大小判斷所述直接存儲(chǔ)訪問 傳輸是否完成。
9、 如權(quán)利要求7所述的方法,其特征在于所述微控制器還向所述直接存儲(chǔ)訪問控制器配置是否在完成所述直接存 儲(chǔ)訪問傳輸后繼續(xù)進(jìn)行直接存儲(chǔ)訪問傳輸;在需要繼續(xù)直接存儲(chǔ)訪問傳輸時(shí),所述直接存儲(chǔ)訪問控制器向所述第一 存儲(chǔ)器再次發(fā)送訪問及起始地址以再次啟動(dòng)第一存儲(chǔ)器與第二存儲(chǔ)器之間的 直接存儲(chǔ)訪問傳輸。
全文摘要
本發(fā)明公開了一種直接存儲(chǔ)訪問控制器數(shù)據(jù)傳輸系統(tǒng)與方法,該系統(tǒng)包括第一與第二存儲(chǔ)器、微控制器及包括有命令與地址寄存器的直接存儲(chǔ)訪問控制器。微控制器給命令寄存器配置讀寫第一存儲(chǔ)器的訪問命令及給地址寄存器配置訪問第一存儲(chǔ)器的起始地址。在需要直接存儲(chǔ)訪問傳輸時(shí),直接存儲(chǔ)訪問控制器被微控制器啟動(dòng)并根據(jù)命令寄存器和地址寄存器的內(nèi)容向第一存儲(chǔ)器發(fā)送訪問命令和起始地址。微控制器更新地址寄存器內(nèi)第一存儲(chǔ)器的起始地址后,直接存儲(chǔ)訪問控制器根據(jù)命令寄存器的內(nèi)容及地址寄存器的更新內(nèi)容向第一存儲(chǔ)器再次發(fā)送訪問命令及起始地址,從而實(shí)現(xiàn)第一和第二直接存儲(chǔ)器之間存儲(chǔ)訪問傳輸?shù)那袚Q。
文檔編號(hào)G06F13/28GK101266585SQ20081010255
公開日2008年9月17日 申請(qǐng)日期2008年3月24日 優(yōu)先權(quán)日2008年3月24日
發(fā)明者軍 付, 張桂友, 李建軍, 王秉舉 申請(qǐng)人:北京中星微電子有限公司