日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種基于CPLD的DMA控制器IP核設計

出處:電子產品世界 發(fā)布于:2018-08-01 14:13:59


  1、前言

  單片機以其高可靠性,高性能價格比,在工業(yè)控制系統(tǒng)、數據采集系統(tǒng)、智能化儀器儀表、辦公自動化等諸多領域得到極為廣泛的應用。在單片機家族的眾多成員中,MSC一51系列單片機占領了廣闊的市場,成為國內單片機應用領域的主流。

  但是由于8013硬件結構和指令系統(tǒng)的限制,當需要高速率大批量數據傳送時,數據吞吐速率往往不能滿足設計要求。即使采用提升振蕩器頻率的辦法,結果仍不盡如人意,所以尋找一種新的數據傳輸方法顯得很有必要,這不僅使人想到通用計算機的DMA數據傳輸技術。

  2、DMA簡介

  DMA數據傳送是由DMA控制器完成的。進行數據傳輸時,DMA控制器從CPU完全接管對總線的控制,數據交換不經過CPU,而直接在內存和FO設備之間進行。DMA控制器將向內存發(fā)出地址和控制信號,修改地址,對傳送字的個數計數,并且以中斷方式向CPU傳送操作的結束。

  DMA方式的主要優(yōu)點是速度快。由于CPU不參與數據傳送操作,因此就省去了CPU取指令、取數、送數等操作。在數據傳送過程中,沒有保存現場、恢復現場之類的工作。內存地址修改、傳送字個數的計數等等,也不是由軟件實現,而是用硬件線路直接實現的。所以DMA方式能滿足高速FO設備的要求,也有利于CPU效率的發(fā)揮。

  3、標準8031數據傳輸與DMA數據傳輸對比

  MCS一15單片機讀寫外部數據存儲器的時序如圖1所示。

  在圖(1)a的外部數據存儲器讀周期中,P2口輸出外部RAM單元的高八位地址,P0口分時傳送低八位地址及數據。當地址鎖存信號ALE為高電平時,印口輸出的地址信息有效,A比的下降沿將此地址打人外部地址鎖存器,接著即口變?yōu)檩斎朔绞?,讀信號RD有效,選通外部RAM,相應存儲單元的內容送到印口上,由CPU讀人累加器。

  外部數據存儲器的寫周期波形如圖(1)b所示,其操作過程與讀周期類似。寫操作時,在A比下降為低電平以后,WR信號才有效,PO口上出現的數據寫人相應的RAM單元。

  CPU把數據從存儲器傳輸到FO口,需要以下步驟:

  ·MovxA,@DPrR;從存儲器讀取一字節(jié)數據(24個振蕩周期)

  ·MOVX@DPrR,A;將數據寫人到FO口(24個振蕩周期)

  DMA控制器把數據從存儲器傳輸到FO設備稱為讀傳送,在這個周期里,產生存儲器地址,并輸出存儲器讀(MEMR)和10口寫(row)信號。其時序如圖2所示。

  當數據準備好以后,設備向DMA控制器發(fā)出DMA請求DREQ信號,DMA控制器接到請求后向CPU發(fā)出總線請求信號HRQ,CPU在現行的機器周期結束后,發(fā)出總線保持信號HLDA,于是DMA控制器就接管總線,向地址總線發(fā)出地址信號,給出存儲器讀和ro口寫的命令,就可把存儲器中的數據送到FO口上。然后修改地址指針,增或減數據寬度計數器,檢查傳送是否結束,若未結束則循環(huán)至整個數據傳送完。

  整個數據傳送完后,DMA控制器撤銷總線請求信號HRQ,同時輸出傳送結束信號EOP。CPU接收到EOP信號后,在下一個周期就可以重新控制總線。

  從以上對比分析可以看出,從存儲器往FO口傳送一字節(jié)數據,使用標準8031至少需要48個振蕩周期,而用DMA控制器僅需2個振蕩周期,效率大大高于前者,尤其是在做塊傳送時,效果更為顯著。

  4、用CPLD實現DMA傳輸在顯示屏掃描卡上的應用

  顯示屏掃描卡的功能是將存儲在RAM中的圖像數據按照預定的顯示方式進行處理,再發(fā)送到比D顯示屏上。其中絕大部分時間,CPU的工作是將處理好的數據以很高的速率發(fā)送到LED顯示屏上,來保證良好的視覺效果。

  考慮到系統(tǒng)的簡化、靈活、高集成度,這里選擇用CPLD實現CPU停機方式DMA讀傳輸功能來完成數據從存儲器到LED顯示屏的傳送工作。

  整個數據傳輸工作分以下幾個步驟:①CPu準備數據;②CPU配置DMA控制器。例如數據傳送首地址,傳送字節(jié)數;③CPU向DMA控制器提出DMA請求(DREQ)。由于數據準備工作是由CPU完成的,所以傳送請求也由CPU提出;④DMA接到請求后,向CPU提出總線請求(HRQ);⑤CPU釋放總線,同時向DMA發(fā)出總線保持信號(HLDA);⑥DMA接管總線,進行數據傳輸。

  由于本系統(tǒng)中準備數據是由CPU完成的,也就是說CPU完全清楚何時需要釋放總線進行DMA傳送,所以可將步驟3、4省略,即DREQ和HRQ信號省略。其原理圖如圖3所示。

  圖3中,CTRL為中心控制核,它按照設定的傳輸字節(jié)數產生地址計數脈沖CLK,讀信號MR(該信號經742科驅動后成為存儲器讀和FO口寫信號),傳輸結束信號EOP。CTRL內部定義了一個8位鎖存器和一個9位減法計數器。WIDTH為置數控制端,當饑DTH為低電平時,數據總線上的傳送字節(jié)數送入CTRL中,WID儀為高電平時數據鎖存。EN為計數使能,為高時傳送字節(jié)數送人9位減法計數器的高8位中,減法計數器的位置0,同時CTRL將EOP腳(傳送結束信號)置高,EN變低后,減法計數器在時鐘XT下降沿作用下做減1計數,計數值減到0時CTRL停止減計數并將EOP信號置低,通知CPU傳送結束。其控制時序如圖4所示。

  cTRL的vHDL程序

  BEGIN

  cKL=cnt(0);一地址計數脈沖輸出

  MEMR=NOTcnt(0);一RAM讀信號輸出

  PROCESS(WIDTH)

  BEGIN

  FIiwDTH=0’THEN一置人傳送字節(jié)數

  圖3中,COUNT16是16位加法計數器。DPH、DPL是地址高8位和低8位置數控制端,低電平有效。EN為計數使能,為低時,在由CTRL產生的脈沖作用下做加1計數。

  平時CPU具有地址總線的控制權,DMA控制器的地址線A15一AO、存儲器讀MEMR、FO口寫IOW輸出均為高阻。當需要做DMA數據傳送時,首先CPu將傳送的數據寬度、被傳送數據在存儲器的首地址寫人DMA控制器,然后將HDLA置高,讓出地址總線控制權。DMA控制器檢測到HLDA變高后,cTRL按照預定的傳送數據寬度,輸出地址計數脈沖和數據存儲器讀信號MEMR,couN1T6在地址計數脈沖作用下,在首地址基礎上做加1計數,輸出16位地址。當數據傳送完畢,EOP輸出低電平,通知CPU數據傳送結束。CPU通過查詢或中斷方式檢測到EOP的低電平信號后,將HLDA拉低,DMA控制器接到HDLA變低的信號后將EOP信號置高,釋放地址總線控制權,結束整個DMA傳送過程。圖5是DMA控制器的仿真波形圖。

  8031操作DMA控制器的5C1程序

  void DMA(unsigned int address,unsignedcha

  len){

  WIDTH

  ADDL

  =len;/*設置傳送數據寬度*/

  =(unsi卯edchar)address%256;/*設置傳送數據首地址*/

  ADDH=(unsignedchar)address/256;

  EN=0;/*啟動DMA傳送*/

  while(IN功==1);/*等待傳輸結束*/

  EN=1;

  5、結束語

  以上所闡述的只是DMA控制器的一種使用特例,真正的DMA控制器功能要更為強大,但對于顯示屏掃描卡來說,這些已經完夠實現系統(tǒng)要求了,并且使數據傳輸速率有了顯著的提高。

關鍵詞:可編程邏輯器件,CPLD,VHDL語言,DMA控制器

版權與免責聲明

凡本網注明“出處:維庫電子市場網”的所有作品,版權均屬于維庫電子市場網,轉載請必須注明維庫電子市場網,http://www.hbjingang.com,違反者本網將追究相關法律責任。

本網轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯系人:

聯系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經采納,將有感恩紅包奉上哦!