作者:趙孝強,華清遠見嵌入式學院講師。
DMA作為一種CPU與外設傳輸資料的技術,現在廣泛用於各種電腦架構中,它最大的優點就是無需CPU幹涉下,完成資料從記憶體到外設的傳遞。這一章就給讀者講解一下S5PC100中的DMA控制器的操作方法。
首先簡單介紹下什麼是DMAC,DMAC 是一個自適應先進的微控制器匯流排體系的控制器,它由ARM公司設計並基於PrimeCell技術標準,DMAC提供了一個AXI介面用來執行DMA傳輸,以及兩個APB介面用來控制這個操作,DMAC在安全模式技術下用一個APB介面執行TrustZone技術,其他動作則在非安全模式下執行。DMAC包括了一個小型的指令集,用來提供一些靈活便捷的操作,為了縮小記憶體需求,DMAC則使用了變長指令。
不同於ARM11以及以前系列的晶片,S5PC100使用了基於PrimeCell技術標準的PL330(DMA控制器核心)有了很大的變化,從編程方式上看,它提供了靈活的子指令集,使得你有更多的組合方式用來操作DMA,從硬體上看,它實現了硬體上的多線程管理,一次編寫代碼即可讓它正常的完成所需的工作,因此這一章的學習是有一定困難的。
給出DMAC介面框圖:
圖12-1 DMAC介面框圖
在S5PC100中,三星公司為安全考慮而加入了一套新的技術標準,即多加了一套安全模式,在安全模式下,處理核的寄存器是受到保護並且與非安全模式下是隔離開來的,這樣在一般的外設介面都會涉及到兩種模式,DMAC也不例外,但是這裡我們只關注非安全模式。
S5PC100下DMAC模型
圖12-2 DMAC
AXI匯流排主機:
●DMAC以及一個ARM處理器
●一個AXI互聯以及兩個AMBA協議橋
●PrimeCell的從機:
●一個動態記憶體控制器
●一個靜態記憶體控制器
●一個定時器
●一個GPIO 一個UART
1、特性
●DMAC提供了如下的特性:
●一個提供靈活編程介面的DMA指令集
●單個AXI主機介面控制DMA傳輸
●雙APB從機介面下,同時提供基於安全以及非安全兩套寄存器
●支援TrustZone技術
●支援多種傳輸類型
●記憶體至記憶體
●記憶體至外設
●外設至記憶體
●分散/聚集模式
●可配置的RTL,使得DMAC對於應用有著更佳的效能
●對於每個DMA通道都可以配置其安全模式
●使用中斷輸出訊號用來發生多種DMA事件
2、 DMAC配置特點
●下面這些特性為DMAC的配置特性:
●AXI資料匯流排寬度
●AXI讀處理活動的個數
●AXI寫處理活動的個數
●同時的DMA通道個數
●內部資料緩衝的深度
●指令cache的行數,一行的字數
●讀指令隊列的深度
●寫指令隊列的深度
●外設請求介面的個數
●中斷輸出訊號的個數