1756-DNB和60x總線、本地總線相連,并且可以直接訪問CPM內部的雙口RAM。CP利用這兩個SDMA為每個外圍串行控制器提供了兩個虛擬SDMA通道:一個用于輸入,一個用于輸出。
同時,CPM還用這2個物理的SDMA通道模擬4個可編程控制的、獨立的DMA (Independent DMA,IDMA)通道,用于存儲器—存儲器及外設—存儲器之間的數據傳輸。 主控板上的FPGA和1756-DNB都是掛接在1756-DNB的60x總線上的,所以只能利用IDMA來實現二者之間的DMA傳輸。根據傳輸啟動的觸發方式不同,IDMA可分為握手信號控制的IDMA傳輸和CP命令控制的IDMA傳輸兩種。下面分別介紹兩種方式的特點。
1.1 握手信號控制的1756-DNB傳輸 握手信號控制的IDMA傳輸主要用于外設和內存之間的數據傳輸。每個IDMA通道都有3個握手信號用于傳輸握手控制:DMA請求信號DREQ[1~4]、DMA應答信號DACK[1~4]和DMA結束信號DONE[1~4]。 在這種方式下,PowerPC內核只需要參與IDMA通道初始化,之后的傳輸過程全部由CP按照通道參數設置和握手信號控制數據的收發,在zui大程度上釋放內核。握手信號控制的缺點在于:
① 1756-DNB中的數據和MPC8260的數據同步比較復雜。
② 每次發出請求信號后都要進行總線仲裁,并且在得到總線使用權之后一次只能夠傳輸外設端口大小或者32位的數據,總線利用率低。
③ 1756-DNB握手控制邏輯和時序比較復雜,加重了FPGA內部控制邏輯設計的負擔。 雖然這種傳輸方式基本上不占用內核資源,但是由于總線帶寬有限且利用率較低,所以在連續高速的通信條件下會造成內核長時間得不到總線使用權而一直處于等待狀態。因此,握手信號控制的IDMA一般只適用于由外設發起的、數據不是太頻繁的傳輸使用。
1.2 CP命令控制的1756-DNB傳輸 MPC8260的IDMA還可以通過向CP命令寄存器中寫入START_IDMA命令進行內部觸發。每次啟動傳輸以后PowerPC內核就被釋放,傳輸的源地址、目的地址和傳輸數據長度等參數由CP按照在IDMA通道初始化的信息控制執行。每次傳輸的zui大長度為4 GB。
GENERAL ELECTRIC 04019J47G0001 NSFP 04019J47G0001
SIEMENS 6ES5-928-3UB21 NSFP 6ES59283UB21
SAFTRONICS GP10E9ST34150B1 USPP GP10E9ST34150B1
SIEMENS 6ES5-948-3UA13 USPP 6ES59483UA13
ALLEN BRADLEY 1756-L63 NSFP 1756L63
ALLEN BRADLEY 20DD077A0NNNACA?NE NSFP 20DD077A0NNNACA?N
ALLEN BRADLEY 1387-AOB145-A73 USPP 1387AOB145A73
LANDIS & GYR PXC100-PE96.A FNFP PXC100PE96A
KAIJO ELECTRIC 8801B-MR NSPP 8801BMR
FISHER ROSEMOUNT 620641 USPP 620641
PHOENIX CONTACT OPC5515-003-AB USPP OPC5515003AB
CUTLER HAMMER HMA31000T USPP HMA31000T
SQUARE D MA-31000-T USPP MA31000T
ALLEN BRADLEY 6180-FLIEHLDZHZ?Z NSFP 6180FLIEHLDZHZZ
MIYACHI IS-471B USPP IS471B