基于PSoC3的多通訊接口時的DMA設(shè)計
圖3 是DFB 的模塊框圖,典型應(yīng)用是將某個片內(nèi)數(shù)據(jù)源(例如ADC 或某個DMA)的數(shù)據(jù)連接到DFB,經(jīng)DFB 處理后將結(jié)果輸出到另一個片內(nèi)數(shù)據(jù)源(例如DAC 或另一個DMA)。數(shù)據(jù)的移入和移出可以設(shè)定由特定的DMA 控制,也可以由MCU 直接移動。
圖3 DFB 結(jié)構(gòu)圖
除了可編程的資源之外,PSoC3內(nèi)部還提供了特定功能的模塊。這些模塊可以不占用模擬,數(shù)字可編程以及MCU資源,完成相應(yīng)的功能。這些模塊包括:
·支持高達(dá)1MBPS的Can總線控制器,兼容ISO-11898-1標(biāo)準(zhǔn)。
·全速USB2.0控制器,支持8個端點和DMA數(shù)據(jù)傳輸控制。
·支持50k/100k/400k/1M BPS的I2C主/從總線控制器,兼容Philips ‘The I2C Specification’ Version 2.1。
·16 Bit專用的定時,計數(shù)和PWM等常用的嵌入式系統(tǒng)模塊。
二、 Cypress PSoC®Creator#8482; 集成開發(fā)環(huán)境
Cypress PSoC Creator 開發(fā)環(huán)境是Cypress 為PSoC3 / PSoC5可編程片上系統(tǒng)提供的高效,易用的繼承開發(fā)環(huán)境。
該獨特的新型設(shè)計軟件使得工程師能夠按照自己的思維方式進(jìn)行設(shè)計。使用基于電路圖的方式完成對可編程模擬,數(shù)字以及布線資源的設(shè)計。該軟件還提供了特有的嵌入式系統(tǒng)的組件庫來應(yīng)用其內(nèi)部的資源,通過在組件庫中選擇組件并使用基于電路圖的方式可以使得整個開發(fā)過程就像搭積木一樣,簡單高效的實現(xiàn)工程師的設(shè)計。該軟件工具通過電路綜合可以自動的把用戶的設(shè)計轉(zhuǎn)化成對可編程電路的配置,使得用戶即使不了解芯片的細(xì)節(jié)也可以完成復(fù)雜的電路設(shè)計。使用PSoC Creator進(jìn)行設(shè)計的時候,客戶是根據(jù)應(yīng)用需求急性設(shè)計,而不是目標(biāo)器件的限制。重新構(gòu)建設(shè)計就像修改程序一樣,不需要復(fù)雜的電路板級修改。
PSoC Creator將一個最新的軟件開發(fā)IDE與一個*性的圖形設(shè)計編輯器結(jié)合在一起,構(gòu)成一個獨特的強(qiáng)有力的軟硬件同步設(shè)計環(huán)境。它提供內(nèi)容豐富的、存有幾十個預(yù)先配置過的模擬和數(shù)字外設(shè)庫,可以方便地拖放進(jìn)電路圖設(shè)計界面并組成強(qiáng)大的系統(tǒng)。該工具還可以自動為所有片上信號分配管腳,如有需要,甚至還能將I/O分配到最佳管腳。每個外設(shè)元件的參數(shù)均經(jīng)過仔細(xì)的配置,以保證應(yīng)用效果能最好地滿足設(shè)計者的要求,且沒有資源浪費。構(gòu)建過程會為每一個元件產(chǎn)生一個一致的、容易記住的API系列,這樣,軟件開發(fā)者即可控制硬件,而無需為基本執(zhí)行指令操心。 定制的設(shè)計及其相關(guān)的API還可以方便地存儲在庫中,用于將來的項目或在組織內(nèi)部分享。
PSoC Creator內(nèi)部包含了全功能免費的編譯器,其獨特的綜合布線工具能夠自動綜合客戶的設(shè)計輸入,并生成相應(yīng)的API。PSoC3的工程采用了工業(yè)界常用的Keil CA51編譯器,而GNU GCC-ARM編譯器也包含其中,能夠針對PSoC5的設(shè)計進(jìn)行編譯。在綜合,編譯等完成之后,生成兼容Intel Hex格式的配置文件對芯片進(jìn)行配置。
PSoC Creator目前的版本是: PSoC Creator 1.0 Production. 該軟件運行界面如下圖4。
圖4 PSoC Creator 運行界面
PSoC Creator提供給用戶的設(shè)計入口如下:
● 原理圖編輯器:該編輯器是創(chuàng)建設(shè)計的主要工具。支持對設(shè)計進(jìn)行原理圖編輯。
● 文本編輯器:該工具允許用戶編輯C,匯編,Verilog, C#等語言代碼。
● 設(shè)計資源編輯器:該工具用于配置整個設(shè)計的參數(shù),包括電源,編譯開關(guān),調(diào)試開關(guān),F(xiàn)LASH保護(hù)信息,以及管腳分配等。
● 圖標(biāo)編輯器:允許用戶創(chuàng)建自己的模塊圖標(biāo)
● 其他工具:
- 原理圖宏編輯器:允許用戶對原理圖設(shè)置不同的宏以完成不同的功能。
- 原理圖模板編輯器:允許用戶對原理圖的模板進(jìn)行編輯
- 圖標(biāo)形狀編輯器:允許用戶在創(chuàng)建模塊以及原理圖中使用自定義的形狀。
PSoC Creator在用戶通過設(shè)計入口完成設(shè)計之后,對設(shè)計進(jìn)行一系列的處理并完成最終的結(jié)果輸出。該工具的對工程的構(gòu)建過程如圖5所示。
圖5 PSoC Creator工程構(gòu)建過程
從圖5中可以看出,工程構(gòu)建過程包括以下步驟:
·通過設(shè)計輸入接口完成設(shè)計
·綜合器完成對電路圖的綜合,并進(jìn)行布局,布線,映射等工作
·代碼生成器生成對應(yīng)電路的API控制接口
·構(gòu)建器準(zhǔn)備設(shè)計源文件,讀取構(gòu)建數(shù)據(jù)庫,獲得構(gòu)建配置,庫文件等信息
·編譯器完成編譯,鏈接器對生成的文件進(jìn)行鏈接
·輸出配置Hex文件。
三、 Cypress PSoC3應(yīng)用于多通訊接口的DMA設(shè)計
DMA是PSoC3中用于處理快速數(shù)據(jù)搬運的模塊。DMA的控制器可以在不需要CPU干預(yù)的情況下處理數(shù)據(jù)的傳輸。通過DMA處理數(shù)據(jù)傳輸可以有效地降低CPU的負(fù)擔(dān),同時也能夠提高數(shù)據(jù)傳輸?shù)臅r間。PSoC3內(nèi)置的DMA可以完成四種基本的數(shù)據(jù)傳輸:
·內(nèi)存到內(nèi)存
·內(nèi)存到外設(shè)
·外設(shè)到內(nèi)存
·外設(shè)到外設(shè)
PSoC3中,采用PHUB來連接各個內(nèi)部設(shè)備。DMA和CPU都需要使用PHUB來完成數(shù)據(jù)傳輸。PHUB上的兩個主設(shè)備分別是DMA和CPU,而從設(shè)備是內(nèi)存,外設(shè)以及控制和配置寄存器。PSoC3支持多個DMA的通道,DMA主控制器對通道的請求按照優(yōu)先級進(jìn)行仲裁。單個DMA的通道可以傳輸高達(dá)64KB的數(shù)據(jù)。
PSoC3的DMA控制器支持如下特性:
·支持24個DMA通道
·8優(yōu)先級判決
·128個事務(wù)描述符
8/16/32 位的數(shù)據(jù)傳輸
·完全可配置的源和目標(biāo)地址
·兼容不同數(shù)端
·在完成數(shù)據(jù)傳輸之后能夠生成中斷
·DMA 向?qū)軌蚣铀倩贒MA 的開發(fā)
·DMA 事務(wù)可以有可編程數(shù)字邏輯或者CPU 觸發(fā)
·支持多個DMA 通道和描述符的級聯(lián)以完成復(fù)雜的功能。
3.1 在PSoC Creator 中使用DMA
PSoC Creator 做為PSoC3 和PSoC5 開發(fā)的設(shè)計工具,其內(nèi)部集成了DMA 模塊來配置DMA 和生成相關(guān)的控制代碼,同時提供的DMA 向?qū)崿F(xiàn)了圖形化操作界面。
DMA 模塊位于組件窗口的System 目錄下,如圖所示。
圖6 DMA 模塊位置
評論