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