DMA消息收發(fā)單元mpc83xx的datasheet中文手冊_第1頁
DMA消息收發(fā)單元mpc83xx的datasheet中文手冊_第2頁
DMA消息收發(fā)單元mpc83xx的datasheet中文手冊_第3頁
DMA消息收發(fā)單元mpc83xx的datasheet中文手冊_第4頁
DMA消息收發(fā)單元mpc83xx的datasheet中文手冊_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第十二章 DMA/消息收發(fā)單元12.1 概述DMA/消息收發(fā)單元支持不同總線上兩個的處理器之間的通信,例如本地處理器和PCI總線上的處理器。該單元在運行時使用通用(generic)消息和門鈴寄存器。圖12-1是DMA/消息收發(fā)單元的結(jié)構(gòu)圖。圖12-1 DMA/消息收發(fā)單元結(jié)構(gòu)圖該部件還提供了DMA控制器,用于傳輸數(shù)據(jù)塊,不受本地處理器或PCI主設備的約束。DMA模塊擁有四個高速DMA通道,這四個通道共享I/O定序器(ISO I/O Sequencer)中的緩存空間,方便數(shù)據(jù)的收集和發(fā)送。12.2 特性DMA/消息收發(fā)單元包括下列特性:l 用于處理器間通信的消息和門鈴寄存器l DMA控制器n 四

2、個DMA通道n 跨多個通道的并發(fā)執(zhí)行,可編程帶寬控制n 非對齊傳輸能力n 數(shù)據(jù)鏈和直通模式n 在完成段、鏈和錯誤時產(chǎn)生中斷n 每個通道都具有可選的外部控制信號(REQ/ACK/DONE)12.3 外部信號說明本節(jié)介紹DMA信號12.3.1 詳細信號說明表12-1包含DMA接口信號的詳細說明。表12-1 DMA接口信號詳細信號說明信號I/O說明/DREQ0:3IDMA請求信號,每個通道一個。DMA請求信號指示DMA傳輸?shù)拈_始或繼續(xù)。/DREQn的下降沿引起DMAMRnCS置位,從而激活DMA通道。狀態(tài)含義有效如果DMAMRnEMSEN為1,則/DREQn有效啟動或恢復一個DMA傳輸。無效/DRE

3、Qn無效不起作用。時序有效可以異步有效。無效應一直保持有效,直到/DACKn有效或到外設的請求事務出現(xiàn)為止。/DACK0:3ODMA應答信號,每個通道一個。DMA應答信號反映DMAMRnCS的值。狀態(tài)含義有效正在進行DMA傳輸。無效DMA傳輸停止或完成。時序有效在內(nèi)部控制邏輯啟動或恢復DMA傳輸時異步有效。無效在內(nèi)部控制邏輯停止或完成DMA傳輸時異步無效。注意,在/DACKn無效后,在總線流水上可能還存在未完成的寫事務。/DDONE0:3ODMA完成信號,每個通道一個。DMA完成信號指示DMA傳輸已經(jīng)完成。狀態(tài)含義有效DMA傳輸完畢。無效DMA傳輸正在進行或停止。時序有效在內(nèi)部控制邏輯完成DM

4、A傳輸時異步有效。注意,在/DDONEn有效后,在總線流水上可能還存在未完成的寫事務。無效在內(nèi)部控制邏輯開始DMA傳輸時異步無效。12.4 內(nèi)存映射/寄存器定義表12-2列出了內(nèi)存映射模塊的地址和訪問方式。表12-2模塊的內(nèi)存映射偏移寄存器訪問復位節(jié)/頁0x0_8030OMISR外向(outbound)消息中斷狀態(tài)寄存器特殊0x0000_0000/12-40x0_8034OMIMR發(fā)送消息中斷屏蔽寄存器R/W0x0000_0000/12-40x0_8050IMR0內(nèi)向(inbound)消息寄存器0R/W0x0000_0000/12-40x0_8054IMR1接收消息寄存器1R/W0x0000_

5、0000/12-40x0_8058OMR0發(fā)送消息寄存器0R/W0x0000_0000/12-40x0_805COMR1發(fā)送消息寄存器1R/W0x0000_0000/12-40x0_8060ODR發(fā)送門鈴寄存器R/W0x0000_0000/12-40x0_8068IDR接收門鈴寄存器R/W0x0000_0000/12-40x0_8080IMISR接收消息中斷狀態(tài)寄存器R/W0x0000_0000/12-40x0_8084IMIMR接收消息中斷屏蔽寄存器R/W0x0000_0000/12-40x0_8100DMAMR0DMA 0模式寄存器R/W0x0000_0000.1/12-40x0_8104

6、DMASR0DMA 0狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8108DMACDAR0DMA 0當前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8110DMASAR0DMA 0源地址寄存器R/W0x0000_0000.4/12-40x0_8118DMADAR0DMA 0目的地址寄存器R/W0x0000_0000.5/12-40x0_8120DMABCR0DMA 0字節(jié)計數(shù)寄存器R/W0x0000_0000.6/12-40x0_8124DMANDAR0DMA 0下一個描述符地址寄存器R/W0x0000_0000.7/12-40x0_8180DMAMR1D

7、MA 1模式寄存器R/W0x0000_0000.1/12-40x0_8184DMASR1DMA 1狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8188DMACDAR1DMA 1當前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8190DMASAR1DMA 1源地址寄存器R/W0x0000_0000.4/12-40x0_8198DMADAR1DMA 1目的地址寄存器R/W0x0000_0000.5/12-40x0_81A0DMABCR1DMA 1字節(jié)計數(shù)寄存器R/W0x0000_0000.6/12-40x0_81A4DMANDAR1DMA 1下一個描述符地址寄

8、存器R/W0x0000_0000.7/12-40x0_8200DMAMR2DMA 2模式寄存器R/W0x0000_0000.1/12-40x0_8204DMASR2DMA 2狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8208DMACDAR2DMA 2當前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8210DMASAR2DMA 2源地址寄存器R/W0x0000_0000.4/12-40x0_8218DMADAR2DMA 2目的地址寄存器R/W0x0000_0000.5/12-40x0_8220DMABCR2DMA 2字節(jié)計數(shù)寄存器R/W0x0000_000

9、0.6/12-40x0_8224DMANDAR2DMA 2下一個描述符地址寄存器R/W0x0000_0000.7/12-40x0_8280DMAMR3DMA 3模式寄存器R/W0x0000_0000.1/12-40x0_8284DMASR3DMA 3狀態(tài)寄存器R/W0x0000_0000.2/12-40x0_8288DMACDAR3DMA 3當前描述符地址寄存器R/W0x0000_0000.3/12-40x0_8290DMASAR3DMA 3源地址寄存器R/W0x0000_0000.4/12-40x0_8298DMADAR3DMA 3目的地址寄存器R/W0x0000_0000.5/12-40x

10、0_82A0DMABCR3DMA 3字節(jié)計數(shù)寄存器R/W0x0000_0000.6/12-40x0_82A4DMANDAR3DMA31下一個描述符地址寄存器R/W0x0000_0000.7/12-40x0_82A8DMAGSRDMA通用狀態(tài)寄存器R0x0000_0000.8/12-40x0_82B00x0_82FF保留12.5 寄存器說明下面幾節(jié)介紹DMA/消息收發(fā)單元的配置、控制和狀態(tài)寄存器。注意,所有注釋為PCI總線可訪問的消息收發(fā)單元寄存器也可以從PCI總線訪問。但只有一個/INTA信號,所以建議用使用/INTA信號的PCI總線使用消息收發(fā)單元的發(fā)送部分。注意本節(jié)介紹的寄存器使用小端格式

11、字節(jié)序。運行在本地處理器上的使用大端格式模式的軟件必須交換數(shù)據(jù)的字節(jié)。從PCI總線訪問這些寄存器時不進行字節(jié)交換。12.5.1 發(fā)送消息中斷狀態(tài)寄存器(OMISR Outbound Message Interrupt status Register)OMISR包括門鈴和發(fā)送消息寄存器的中斷狀態(tài)。PCI設備將1寫入合適的狀態(tài)位應答發(fā)送消息中斷:OMISROM1I或OMISROM0I。置位其中的某一位清除中斷和對應的狀態(tài)位。本地處理器寫入兩個發(fā)送消息寄存器中的某一個激活發(fā)送消息中斷:OMR0或OMR1。可以從CSB或PCI總線訪問OMISR,但通常只從PCI總線訪問該寄存器。圖12-2顯示了OMI

12、SR的字段。圖12-2 發(fā)送消息中斷狀態(tài)寄存器(OMISR)表12-3說明了OMISR寄存器。表12-3 OMISR字段說明位名字說明314保留3ODI發(fā)送門鈴中斷。該只讀位指示ODR位的狀態(tài)。由OMIMRODIM屏蔽。0 無發(fā)送門鈴中斷。1 有發(fā)送門鈴中斷。2保留1OM1I發(fā)送消息1中斷。當置位時,指示有一個發(fā)送消息1中斷。向該位置寫入1清除該位。0 無發(fā)送消息1中斷。1 有發(fā)送消息1中斷。0OM0I發(fā)送消息0中斷。當置位時,指示有一個發(fā)送消息0中斷。向該位置寫入1清除該位。0 無發(fā)送消息0中斷。1 有發(fā)送消息0中斷。12.5.2 發(fā)送消息中斷屏蔽寄存器(OMIMR Outbound Mes

13、sage Interrupt Mask Register)OMIMR包括本地處理器產(chǎn)生的門鈴和消息寄存器事件的中斷屏蔽。可以從CSB或PCI總線讀取OMIMR,但只從PCI總線清除該寄存器。圖12-3顯示了OMIMR的字段。圖12-3 發(fā)送消息中斷屏蔽寄存器(OMIMR)表12-4說明了OMIMR寄存器。表12-4 OMIMR字段說明位名字說明314保留3ODIM發(fā)送門鈴中斷屏蔽。0 允許發(fā)送門鈴中斷。1 屏蔽發(fā)送門鈴中斷。2保留1OM1IM發(fā)送消息1中斷屏蔽。0 允許發(fā)送消息1中斷。1 屏蔽發(fā)送消息1中斷。0OM0IM發(fā)送消息0中斷屏蔽。0 允許發(fā)送消息0中斷。1 屏蔽發(fā)送消息0中斷。12.

14、5.3 接收消息寄存器(IMR0IMR1 Inbound Message Register)可以從主機或代理模式中的PCI總線或CSB讀取接收消息寄存器。只能從PCI總線寫入該寄存器。圖12-4顯示了IMR0和IMR1的字段。圖12-4 接收消息寄存器(IMR0,IMR1)表12-5說明了IMRn寄存器。表12-5 IMR0和IMR1字段說明位名字說明310IMSGn接收消息n。包括要在本地處理器和外部主設備之間傳遞的通用數(shù)據(jù)。12.5.4 發(fā)送消息寄存器(OMR0OMR1 Outbound Message Register)可以從主控或代理模式中的PCI總線或CSB讀取發(fā)送消息寄存器。只能從

15、CSB寫入該寄存器。圖12-5 發(fā)送消息寄存器(OMR0OMR1)表12-6說明了OMRn寄存器。表12-6 OMR0和OMR1字段說明位名字說明310OMSGn發(fā)送消息n。包括要在本地處理器和外部主設備之間傳遞的通用數(shù)據(jù)。12.5.5 門鈴寄存器(Doorbell Register)下面幾節(jié)介紹發(fā)送和接收門鈴寄存器。12.5.5.1 發(fā)送門鈴寄存器(ODR Outbound Doorbell Register)ODR對主機或代理模式中的PCI總線或CSB都是可訪問的。圖12-6顯示了ODRn的字段。圖12-6 發(fā)送門鈴寄存器(ODR)表12-7說明了ODRn寄存器。表12-7 ODR字段說明

16、位名字說明3129保留280ODRn發(fā)送門鈴n。從CSB寫入1置位。從PCI總線寫入1清除。寫入0不起作用。(從CSB寫入該寄存器的某一位引起中斷(/INTA)產(chǎn)生。)12.5.5.2 接收門鈴寄存器(IDR Inbound Doorbell Register)IDR對主機或代理模式中的PCI總線或CSB都是可訪問的。圖12-7顯示了IDRn的字段。圖12-7 發(fā)送門鈴寄存器(IDR)表12-8說明了IDRn寄存器。表12-8 IDR字段說明位名字說明31IMC接收機器檢查。從PCI總線寫入1置位。從CSB寫入1清除。寫入0不起作用。(從PCI總線寫入該寄存器的某一位引起到本地處理器的機器檢查

17、中斷。)300IDRn接收門鈴n。從PCI總線寫入1置位。從CSB寫入1清除。寫入0不起作用。(從PCI總線寫入該寄存器的某一位引起到本地處理器的機器檢查中斷。)12.5.6 接收消息中斷狀態(tài)寄存器(IMISR Inbound Message Interrupt status Register)IMISR包括門鈴和接收消息寄存器事件的中斷狀態(tài)。將1寫入IM1I清除該位。事件由PCI主設備產(chǎn)生。應只從CSB訪問IMISR,且只能為代理模式。從主機模式或從PCI總線訪問產(chǎn)生未定義的結(jié)果。圖12-8顯示了IMISR的字段。圖12-8 接收消息中斷狀態(tài)寄存器(IMISR)表12-9說明了IMISR寄存

18、器。表12-9 IMISR字段說明位名字說明315保留4MCI機器檢查中斷。指示是否出現(xiàn)了置位IDR31所產(chǎn)生的機器檢查中斷的情況。將1寫入IDR31清除該中斷。0 無機器檢查中斷。1 有機器檢查中斷。4IDI接收門鈴中斷。指示是否出現(xiàn)了接收門鈴中斷。0 無接收門鈴中斷。1 有接收門鈴中斷。2保留1IM1I接收消息1中斷。指示是否出現(xiàn)了接收消息1中斷。向該位置寫入1清除該位。0 無接收消息1中斷。1 有接收消息1中斷。0IM0I發(fā)送消息0中斷。指示是否出現(xiàn)了接收消息0中斷。向該位置寫入1清除該位。0 無接收消息0中斷。1 有接收消息0中斷。12.5.7 接收消息中斷屏蔽寄存器(IMIMR In

19、bound Message Interrupt Mask Register)該寄存器包括PCI主設備產(chǎn)生的門鈴和消息寄存器事件的中斷屏蔽。應只從CSB訪問IMIMR,且只能為代理模式。從主機模式或從PCI總線訪問產(chǎn)生未定義的結(jié)果。圖12-9顯示了IMIMR的字段。圖12-9 接收消息中斷屏蔽寄存器(IMIMR)表12-10說明了IMIMR寄存器。表12-10 IMIMR字段說明位名字說明315保留4MCIM機器檢查中斷屏蔽。0 允許從IDR產(chǎn)生機器檢查中斷。1 屏蔽機器檢查中斷。清除IMISRMCI。4IDIM接收門鈴中斷屏蔽。0 允許接收門鈴中斷。1 屏蔽接收門鈴中斷。清除IMISRIDI。

20、2保留1IM1IM接收消息1中斷屏蔽。0 允許接收消息1中斷。1 屏蔽接收消息1中斷。清除IMISRIM1I。0IM0IM發(fā)送消息0中斷屏蔽。0 允許接收消息0中斷。1 屏蔽接收消息0中斷。清除IMISRIM0I。12.5.8 DMA寄存器每個DMA通道都有一組七個32位的寄存器(模式、狀態(tài)、當前描述符地址、下一個當前描述符地址、源地址、目的地址和字節(jié)計數(shù))支持事務。下面幾節(jié)介紹DMA支持寄存器的格式。12.5.8.1 DMA模式寄存器(DMAMRn DMA Mode Register)本節(jié)介紹DMA模式寄存器。DMA模式寄存器允許軟件啟動DMA傳輸,并控制各種DMA傳輸特性。圖12-10顯示

21、了DMAMRn的字段。圖12-10 DMA模式寄存器(DMAMRn)表12-11說明了DMAMRn寄存器。表12-11 DMAMRn字段說明位名字說明3128保留2724DRCNTDMA請求計數(shù)。該字段指定當EMSEN為1時每個DMA請求有效所傳輸?shù)腸ache行的數(shù)量。如果EMSEM為0,則不使用該字段。0101 1個cache行0110 2個cache行0111 4個cache行1000 8個cache行1110 16個cache行1010 32個cache行其他保留2321BWC帶寬控制。僅在多個通道并發(fā)執(zhí)行傳輸時使用。該字段確定在給定的通道被準許訪問IOS接口之后、將接口釋放給下一個通道

22、之前,允許該給定通道傳輸多少個cache行。這樣就允許用戶定義DMA通道的優(yōu)先級。BWC的值如下所列:000 1個cache行001 2個cache行010 4個cache行011 8個cache行100 16個cache行其他保留20DMSEN直通模式監(jiān)聽允許。該位控制直通模式DMA事務的監(jiān)聽。0 禁止監(jiān)聽。1 允許監(jiān)聽。19IRQS中斷導向。該位確定DMA中斷的目的地。0 所有DMA中斷都發(fā)送給片上中斷控制器。1 所有DMA中斷都通過/INTA發(fā)送給PCI總線。18EMSEN外部主設備啟動允許。當DMA傳輸完成時清除該位,所以必須為每一次傳輸重新置位該位。0 由軟件置位CS位啟動通道。1

23、由硬件將/DREQ置為有效啟動通道。1716DAHTS目的地址保持傳輸長度。當DAHE為1時,該字段指示每個事務所使用的傳輸長度。字節(jié)計數(shù)寄存器必須為該長度的整數(shù)倍,且目的地址寄存器必須按該長度對齊。00 1個字節(jié)01 2個字節(jié)10 4個字節(jié)11 8個字節(jié)1514SAHTS源地址保持傳輸長度。當SAHE為1時,該字段指示每個事務所使用的傳輸長度。字節(jié)計數(shù)寄存器必須為該長度的整數(shù)倍,且源地址寄存器必須按該長度對齊。00 1個字節(jié)01 2個字節(jié)10 4個字節(jié)11 8個字節(jié)13DAHE目的地址保持允許。該位允許DMA控制器保持每個傳輸?shù)哪康牡刂凡蛔?。傳輸使用的長度由DAHTS指示。注意,對于該特性,

24、硬件僅支持對齊傳輸。0 不保持目的地址不變。1 保持目的地址不變。注意:DMA不支持同一傳輸中源和目的的同時地址保持。12SAHE源地址保持允許。該位允許DMA控制器保持每個傳輸?shù)脑吹刂凡蛔儭鬏斒褂玫拈L度由SAHTS指示。注意,對于該特性,硬件僅支持對齊傳輸。0 不保持源地址不變。1 保持源地址不變。注意:DMA不支持同一傳輸中源和目的的同時地址保持。1110PRCPCI讀命令。該字段指示使用的PCI讀命令的類型。00 1個PCI讀01 2個PCI讀行10 4個PCI讀多行11 8保留98保留7EOTIE傳輸結(jié)束中斷允許。該位確定在完成DMA傳輸時是否產(chǎn)生中斷。將傳輸結(jié)束定義為直通模式傳輸結(jié)

25、束,或在鏈模式中,鏈的最后一段傳輸結(jié)束。0 不產(chǎn)生EOT中斷。1 產(chǎn)生EOT中斷。64保留3TEM傳輸錯誤屏蔽。該位確定出現(xiàn)傳輸錯誤事件的DMA的響應。0 當出現(xiàn)傳輸錯誤時(DMASRnTE置位),DMA停止。1 不論是否出現(xiàn)傳輸錯誤(TE未置位),DMA都將完成傳輸。2CTM通道傳輸模式。0 鏈模式。1 直通模式。1CC通道繼續(xù)。該位僅用于鏈模式。置位該位指示應重復當前描述符段。一旦開始重復,DMA就清除CC,所以它只引起一次重復。0 正常鏈。1 不從DMANDAR裝入DMACDAR,重復當前描述符段。0CS通道啟動。當通道不忙時(DMASRnCB位為0),如果該位發(fā)生從0到1的跳變,則啟動

26、DMA處理。如果通道忙且出現(xiàn)了從0到1的跳變,則DMA通道從上次停止狀態(tài)重新啟動。當通道忙時(CB位為1),如果發(fā)生從1到0的跳變,則停止DMA處理。如果通道不忙且出現(xiàn)了從1到0的跳變,則什么也不會發(fā)生。在傳輸結(jié)束時,DMA清除該位。12.5.8.2 DMA狀態(tài)寄存器(DMASRn DMA Status Register)本節(jié)介紹DMA狀態(tài)寄存器。狀態(tài)寄存器報告DMA傳輸期間和之后的各種DMA狀態(tài)。將1寫入特定的、置位了的位清除該位。圖12-11顯示了DMASRn的字段。圖12-11 DMA狀態(tài)寄存器(DMASRn)表12-12說明了DMASRn寄存器。表12-12 DMASRn字段說明位名字

27、說明318保留7TE傳輸錯誤。在DMA傳輸期間出現(xiàn)錯誤時置位該位,并清除DMAMRnTEM位。63保留2CB通道忙。該位指示通道是否忙。下列任何一種情況都清除該位:DMA傳輸(1)錯誤,(2)停止,(3)完成。0 當前未進行DMA傳輸。1 當前正進行DMA傳輸。1EOSI段結(jié)束中斷。在傳輸了一個數(shù)據(jù)段之后,如果當前描述符地址寄存器中的DMACDARnEOSIE置位,則置位該位,并產(chǎn)生一個中斷。0EOCDI鏈/直通結(jié)束。當完成了最后一個DMA傳輸時,不論是在鏈模式中還是在直通模式中,如果DMAMREOTIE置位,則置位該位,并產(chǎn)生一個中斷。12.5.8.3 DMA當前描述符地址寄存器(DMACD

28、ARn DMA Current Descriptor Address Register)DMACDARn包括正在傳輸?shù)漠斍岸蚊枋龇牡刂贰T阪溎J街?,軟件必須初始化該寄存器,使其指向鏈中的第一個描述符。在處理完第一個描述符之后,DMA控制器將下一個描述符地址寄存器的內(nèi)容移動到DMACDAR中,將后面的描述符裝入到DMANDAR中,并執(zhí)行當前傳輸。圖12-12和圖12-13顯示了DMACDARn的字段。圖12-12 DMA當前描述符地址寄存器(DMACDARn)圖12-13 DMA當前描述符地址寄存器(DMACDARn)表12-13說明了DMACDARn寄存器。表12-13 DMACDARn字段

29、說明位名字說明315CDA當前描述符地址。該字段包括存貯器中的段描述符的當前描述符地址。它必須按8字邊界對齊。4SNEN監(jiān)聽允許。0 在當前段的DMA事務上禁止監(jiān)聽。1 在當前段的DMA事務上允許監(jiān)聽。3EOSIE段結(jié)束中斷允許。0 不產(chǎn)生段結(jié)束中斷。1 當完成當前描述符的當前DMA傳輸時,產(chǎn)生一個中斷。20保留12.5.8.4 DMA源地址寄存器(DMASARn DMA Source Address Register)DMASARn指示DMA控制器將從哪個地址讀取數(shù)據(jù)。軟件必須保證該地址正確。圖12-14顯示了DMASARn的字段。圖12-14 DMA源地址寄存器(DMASARn)表12-1

30、4說明了DMASARn寄存器。表12-14 DMASARn字段說明位名字說明310SADMA傳輸?shù)脑吹刂?。每次DMA讀操作之后都更新該字段的內(nèi)容。12.5.8.5 DMA目的地址寄存器(DMADARn DMA Destination Address Register)DMADARn指示DMA控制器將數(shù)據(jù)寫入哪個地址。軟件必須保證該地址正確。圖12-15顯示了DMADARn的字段。圖12-15 DMA目的地址寄存器(DMADARn)表12-15說明了DMADARn寄存器。表12-15 DMADARn字段說明位名字說明310DADMA傳輸?shù)哪康牡刂?。每次DMA寫操作之后都更新。12.5.8.6 D

31、MA字節(jié)計數(shù)寄存器(DMABCRn DMA Byte Count Register)DMABCRn包括每次傳輸?shù)淖止?jié)數(shù)(最大傳輸長度為64M字節(jié))。圖12-16顯示了DMABCRn的字段。圖12-16 DMA字節(jié)計數(shù)寄存器(DMABCRn)表12-16說明了DMABCRn寄存器。表12-15 DMABCRn字段說明位名字說明3126保留250BC字節(jié)計數(shù)。該字段包括要傳輸?shù)淖止?jié)數(shù)。每次DMA讀操作之后,該寄存器的值遞減。12.5.8.7 DMA下一個描述符地址寄存器(DMANDARn DMA Next Descriptor Address Register)DMANDARn包括鏈中下一個段描述

32、符的地址。在鏈模式中,將當前描述符地址寄存器指向的描述符的“下一個描述符”字段裝入到該寄存器。圖12-17顯示了DMANDARn的字段。圖12-17 DMA下一個描述符地址寄存器(DMANDARn)表12-17說明了DMANDARn寄存器。表12-17 DMANDARn字段說明位名字說明315NDA下一個描述符地址。該字段包括存貯器中的段描述符的下一個描述符地址。它必須按8字邊界對齊。4NSNEN下一個監(jiān)聽允許。0 在DMA事務上禁止監(jiān)聽。1 在DMA事務上允許監(jiān)聽。3NEOSIE下一個段結(jié)束中斷允許。0 不產(chǎn)生段結(jié)束中斷。1 當完成下一個描述符的DMA傳輸時,產(chǎn)生一個中斷。21保留0EOTD

33、傳輸結(jié)束描述符。0 該描述符包括到另一個描述符的鏈接。1 該描述符是要執(zhí)行的最后一個。12.5.8.8 DMA通用狀態(tài)寄存器(DMAGSR DMA General Status Register)DMAGSR將所有DMA通道的狀態(tài)位組合到一個寄存器中,提供對狀態(tài)位的更快速的訪問。該寄存器的每個字節(jié)都提供一個通道的DMA狀態(tài)寄存器的位70。對每個DMA狀態(tài)寄存器的寫操作?則清除這些位。圖12-18顯示了DMAGSR的字段。圖12-18 DMA通用狀態(tài)寄存器(DMAGSR)12.6 功能說明12.6.1 消息單元嵌入式處理器通常是包括許多處理器和分布式存貯器的更大系統(tǒng)的一部分。這些處理器在處理任務

34、時往往不受系統(tǒng)中的主處理器或其他外圍處理器的約束。由于任務的獨立性本質(zhì),有必要在外圍處理器和系統(tǒng)的其余部分之間提供通信機制。其中的一種方法是使用消息。該部件提供消息收發(fā)單元,進一步方便了主設備和外圍設備之間的通信。消息單元使用通用消息和門鈴寄存器。12.6.1.1 消息收發(fā)寄存器(IMR0IMR1)有兩個32位的接收消息寄存器(IMR0IMR1)和兩個32位的發(fā)送消息寄存器(OMR0OMR1)。IMR0和IMR1允許遠程主機或PCI主設備寫入32位的值,之后引起到片上中斷控制器的中斷請求,中斷控制器驅(qū)動到本地處理器的中斷線路。OMR0和OMR1允許本地處理器寫入發(fā)送的消息,之后引起發(fā)送中斷信號

35、/INTA有效。將1寫入合適的IMISR位清除到本地處理器的中斷。將1寫入合適的OMISR位清除到PCI(/INTA)的中斷。12.6.1.2 門鈴寄存器(IDR和ODR)該部件包括接收門鈴寄存器(IDR)和發(fā)送門鈴寄存器(ODR)。接收門鈴寄存器允許遠程處理器從PCI總線置位該寄存器中的某一位,之后引起到片上中斷控制器的中斷請求,中斷控制器驅(qū)動到本地處理器的中斷線路。本地處理器可以寫入ODR,它會引起發(fā)送中斷信號/INTA有效,進而中斷PCI總線上的遠程處理器。將1寫入合適的IDR位清除到本地處理器的中斷。將1寫入合適的ODR位清除到PCI(/INTA)的中斷。12.6.2 DMA控制器DM

36、A控制器傳輸一塊數(shù)據(jù),不受本地處理器或PCI主設備的約束。數(shù)據(jù)移動發(fā)生在PCI總線和/或CSB上。DMA模塊擁有四個高速DMA通道,它們共享IOS中的緩存空間,方便了數(shù)據(jù)的收集和發(fā)送。本地處理器和PCI主設備都可以啟動DMA傳輸。DMA控制器具有以下特性:l 四個DAM通道l 跨多個通道的并發(fā)執(zhí)行,可編程帶寬控制l 所有通道對本地處理器和PCI主設備都是可訪問的l 非對齊傳輸能力l 數(shù)據(jù)鏈和直通模式l 在完成段、鏈和錯誤時產(chǎn)生中斷圖12-19給出了該集成設備中DMA控制器的結(jié)構(gòu)圖。圖12-19 DMA控制器結(jié)構(gòu)圖12.6.3 DMA操作DMA控制器按下列兩種模式操作:l 直通模式。在直通模式中

37、,DMA控制器不從存貯器讀取描述符鏈,而是使用DMA寄存器中的當前參數(shù)啟動DMA傳輸。當字節(jié)計數(shù)寄存器規(guī)定的所有字節(jié)都被傳輸完之后,DMA傳輸完成。關于初始化步驟的更詳細信息參見節(jié)“直通模式中的初始化步驟”。l 鏈模式。在鏈模式中,DMA控制器在DMA傳輸之前從存貯器裝入描述符。DMA控制器根據(jù)為每個段裝入的描述符信息開始傳輸。一旦當前段完成,DMA控制器就從存貯器讀取下一個描述符,開始另一個DMA傳輸。如果當前描述符是鏈中的最后一個,則處理完成。關于初始化步驟的更詳細信息參見節(jié)“鏈模式中的初始化步驟”。在這兩種模式中,置位DMA模式寄存器中的啟動位開始DMA傳輸。DMA控制器支持源地址和目的

38、地址的非對齊傳輸。它在源地址處開始收集數(shù)據(jù),在將數(shù)據(jù)發(fā)送給目的之前將其對齊。DMA控制器假定源和目的地址是正確的PCI或CSB存貯器地址。對CSB存貯器的訪問與源和目的地址的對齊及傳輸?shù)拈L度有關。如果可能,DMA控制器就傳輸整個cache行。未對齊的目的地址導致在開始時和傳輸?shù)淖詈髱着臑閹讉€小于一個cache行的子傳輸,中間幾拍則傳輸整個cache行。配置DMA通道的地址保持模式DMAMRn避免cache行傳輸。PCI存貯器讀操作與模式寄存器中的PRC(PCI讀命令)字段、源地址對齊和傳輸長度有關。如果可能,DMA控制器就試圖讀取一個完整的cache行。寫入PCI存貯器與目的地址對齊和傳輸長度

39、有關。12.6.3.1 外部控制任何通道的DMA傳輸,不論是直通模式還是鏈模式,都可以用DMA請求輸入信號控制。置位外部主設備啟動允許(EMSEN)位而不是DMA模式寄存器(DMAMRn)中的通道啟動(CS)位,就可以允許外部控制。當使用外部控制時,有下列限制:l 源和目的地址必須與32個字節(jié)邊界對齊l 在鏈模式中,除最后一個外,所有的字節(jié)計數(shù)值都必須為32個字節(jié)的整數(shù)倍。/DREQn的下降沿置位DMAMRnCS啟動傳輸,并宣告對應的/DACKn輸出信號有效。傳輸DMA模式寄存器(DMAMRn)中的DMA請求計數(shù)(DRCNT)位規(guī)定的Cache行的數(shù)量(或剩余字節(jié)計數(shù),如果更?。缓笄宄鼵S

40、位,讓/DACKn輸出信號無效,停止傳輸,直到下一次/DREQn有效為止。當使用/DACKn握手信號時,應一直保持/DREQn有效,直到/DACKn有效為止,此時/DREQn可以無效。一旦/DACKn無效,/DREQn可以再次有效,恢復傳輸或啟動一個新的傳輸。如果未使用/DACKn握手信號,則應一直保持/DREQn有效,直到DMA傳輸?shù)牡谝粋€事務出現(xiàn)在外部接口上為止。此時/DREQn可以無效。在/DREQn無效后的最早一個時鐘周期,盡管當前傳輸還在進行,但/DREQn可以再次有效,恢復傳輸或啟動一個新的傳輸。在處理傳輸時,DMA控制器可以記錄新的/DREQn有效,一旦傳輸停止,就再次置位DMA

41、MRnCS。一旦傳輸完成,DMA控制器就清除DMAMRnEMSEN,并且在用戶置位DMAMRnEMSEN之前,不再置位DMAMRnCS。/DREQn有效和DMAMRnEMSEN置位可以任意次序出現(xiàn),后面出現(xiàn)的將激活DMA傳輸。當DMA傳輸完成時,/DDONEn輸出信號有效,即字節(jié)計數(shù)寄存器或描述符規(guī)定的所有字節(jié)都已經(jīng)被傳輸了??梢园言撔盘栍米鱾鬏?shù)腸ache行數(shù)可能小于DRCNT字段規(guī)定數(shù)的指示。注意/DACKn和/DDONEn輸出信號是用于/DREQn的握手信號的。它們根據(jù)DMA控制器內(nèi)部邏輯變?yōu)橛行Ш蜔o效。這些信號與出現(xiàn)在設備外部引腳上的事務并不同步。特別地,/DACKn 無效或/DDON

42、En有效并不意味著DMA傳輸?shù)乃惺聞障笤谕獠恳_上看到的那樣都已經(jīng)完成了。關于初始化步驟的更詳細信息參見節(jié)“利用外部信號的直通模式中的初始化步驟”和12.7.4節(jié)“利用外部信號的鏈模式中的初始化步驟”。12.6.3.2 DMA一致性四個DMA通道使用多達四個cache行(128個字節(jié))的IOS中的緩存空間和16個字節(jié)的本地空間。因為在這些內(nèi)部隊列中沒有地址監(jiān)聽,在進行DMA傳輸時,這些隊列存儲的數(shù)據(jù)對系統(tǒng)的其余部分是不可見的。應用軟件有責任保證在DMA處理期間正被傳輸區(qū)域的一致性。在DMA事務期間,可以選擇監(jiān)聽CPU或處理器數(shù)據(jù)cache。在DMA當前描述符地址寄存器(DMACDARn)和D

43、MA下一個描述符地址寄存器(DMANDARn)中提供了一個監(jiān)聽位,允許軟件按段控制何時監(jiān)聽cache。12.6.3.3 停止和錯誤情況清除DMA模式寄存器(DMAMRn)中的CS位或在遇到錯誤情況時,都停止DMA傳輸。不論哪一種情況,應用軟件都可以進行下列某個處理:l 繼續(xù)DMA傳輸l 重新配置DMA進行新的傳輸l 讓通道處于停止狀態(tài)當DMA通道停止時,其可編程模型是完全可訪問的。如果DMA由于錯誤情況而停止,則必須清除DMA狀態(tài)寄存器(DMASRn)中的TE(傳輸錯誤)位,然后才可以恢復傳輸或啟動一個新的傳輸。注意,硬件不自動清除TE位。12.6.4 DMA段描述符DMA段描述符包括數(shù)據(jù)段的

44、源和目的地址、段字節(jié)計數(shù)和到下一個描述符的鏈接。段描述符按cache行(32個字節(jié))邊界在CSB或PCI存貯器中建立,并用下一個描述符地址字段鏈接在一起形成鏈。表12-18 DMA段描述符字段描述符字段說明源地址包括DMA傳輸?shù)脑吹刂?。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA源地址寄存器(DMASARn)中。目的地址包括DMA傳輸?shù)哪康牡刂贰T贒MA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA目的地址寄存器(DMADARn)中。下一個描述符地址指向存貯器中的下一個描述符。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA下一個描述符地址寄存器(DMANDA

45、Rn)中。字節(jié)計數(shù)包括要傳輸?shù)淖止?jié)數(shù)。在DMA控制器從存貯器讀取描述符之后,將把該字段裝入到DMA字節(jié)計數(shù)寄存器(DMABCRn)中。應用軟件初始化DMA當前描述符地址寄存器(DMACDARn),讓它指向鏈中的第一個描述符。對于鏈中的每一個描述符,DMA控制器都用描述符規(guī)定的控制參數(shù)啟動一個新的DMA傳輸。DMA控制器遍歷描述符鏈,直到到達最后一個描述符為止(其EOTD位置位)。圖12-20 段描述符的DMA鏈12.6.4.1 大端格式模式中的描述符在大端格式模式中,CSB存貯器中的描述符應這樣設定:數(shù)據(jù)按有效字節(jié)升序順序出現(xiàn)。如果將段描述符寫入CSB中的存貯器,應將它門當作就好象它們是從大端格式轉(zhuǎn)換為小端格式的。例:大端格式模式描述符的數(shù)據(jù)結(jié)構(gòu)。注意,描述符結(jié)構(gòu)必須是按8字邊界對齊的。structdouble a;double b;/* 0x55667788aabbccdddouble word *

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論