《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > PSoC Creator:面向嵌入式應(yīng)用的開發(fā)工具

PSoC Creator:面向嵌入式應(yīng)用的開發(fā)工具

2012-12-25
關(guān)鍵詞: 開發(fā)工具 PSoC

嵌入式系統(tǒng)是計(jì)算設(shè)備硬件中嵌入軟件作為其核心組件的應(yīng)用。我們身邊現(xiàn)在已經(jīng)被嵌入式系統(tǒng)包圍了,這些產(chǎn)品能為我們的生活帶來各種方便乃至奢華的功能,包括移動(dòng)手持設(shè)備、洗衣機(jī)、微波爐、ATM 機(jī)、空調(diào)等等。由于某些特定的應(yīng)用要求,工程師必須以不同于其它設(shè)計(jì)類型的特定方法進(jìn)行嵌入式設(shè)計(jì)。

以下簡(jiǎn)要介紹了進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)的幾個(gè)步驟:

1. 建議:一個(gè)能夠讓生活變得更輕松和/或減少完成任務(wù)所需人力的創(chuàng)新性理念或系統(tǒng)。

2. 定義:接下來需要設(shè)計(jì)整個(gè)系統(tǒng),包括在各種可能的輸入條件下系統(tǒng)的表現(xiàn)情況。定義或許是最關(guān)鍵的部分,因?yàn)樵诙x階段的任何錯(cuò)誤均會(huì)影響整個(gè)系統(tǒng)的工作。

I. 輸入/輸出考慮因素:定義在一個(gè)特定輸入下系統(tǒng)輸出會(huì)是什么,要把系統(tǒng)作為一個(gè)黑盒子來考慮;
II. 數(shù)學(xué)建模:設(shè)計(jì)讓系統(tǒng)按需工作的算法;
III. 功能建模:設(shè)計(jì)系統(tǒng)接受輸入并生成所需輸出的功能。

3. 技術(shù)選擇:基于上述幾點(diǎn),設(shè)計(jì)人員可評(píng)估可用的技術(shù),選擇哪些器件能夠滿足所有要求,同時(shí)平衡效率、成本和產(chǎn)品上市進(jìn)程。

4. 集成和 PCB 設(shè)計(jì):列出實(shí)現(xiàn)您想要的功能所需的所有組件,并設(shè)計(jì)它們?cè)赑CB 上的布局。布線和所有其它路徑都必須盡可能地降低電磁干擾 (EMI),而且應(yīng)避免各種錯(cuò)誤。設(shè)計(jì) PCB 時(shí),應(yīng)特別注意鋪地以及 PCB 上接地的所有組件。

5. 固件開發(fā)和調(diào)試:由于硬件需要指令來按我們想要的方式加以執(zhí)行,我們需要為硬件使用的每個(gè)組件編寫代碼。這也正是固件(即應(yīng)用代碼)所做的工作。固件應(yīng)當(dāng)最大限度地降低復(fù)雜性。此外,我們?cè)诰帉懘a時(shí),可能會(huì)遇到許多錯(cuò)誤和故障,這些都需要適當(dāng)?shù)恼{(diào)試協(xié)議。

6. 測(cè)試:調(diào)試時(shí)需要測(cè)試代碼部分,而在測(cè)試過程中,我們需要檢測(cè)整個(gè)系統(tǒng),也就是硬件以及驅(qū)動(dòng)該硬件的軟件。

7. 文檔:任何瀏覽您完整應(yīng)用設(shè)計(jì)的人都不應(yīng)該問您“這是什么意思?”“這個(gè)東西怎么操作?”為了避免被這樣的問題所困擾,我們應(yīng)當(dāng)準(zhǔn)備好全面完整的文檔。

當(dāng)前設(shè)計(jì)流程中存在的問題:

在開發(fā)嵌入式應(yīng)用時(shí),我們應(yīng)當(dāng)充分了解不同的芯片及其功能和復(fù)雜的架構(gòu),然后再創(chuàng)建系統(tǒng)設(shè)計(jì)流程。接下來,我們需要一款應(yīng)用來為我們的產(chǎn)品和組件提供功能,為此我們必須要編寫代碼。在編寫代碼時(shí),系統(tǒng)要求會(huì)不斷變化,設(shè)計(jì)人員需要相關(guān)工具,為不同的調(diào)試協(xié)議提供支持。我們或許無法重復(fù)使用代碼,我們希望在單個(gè)系統(tǒng)中集成多種特性。鑒于上述問題,嵌入式系統(tǒng)設(shè)計(jì)需要考慮整個(gè)系統(tǒng)價(jià)格、性能、加速產(chǎn)品上市進(jìn)程、尺寸、功耗、可維護(hù)性、安全性、存儲(chǔ)器容量等各種問題。此外,嵌入式系統(tǒng)的開發(fā)人員還希望在單個(gè)芯片上實(shí)現(xiàn)可編程模擬和數(shù)字外設(shè)。因此,片上系統(tǒng) (SOC) 的開發(fā)工作對(duì)于開發(fā)人員來說是相當(dāng)繁瑣的。

嵌入式系統(tǒng)日益復(fù)雜,幾乎在任何情況下都需要可編程性。為此,設(shè)計(jì)人員需要工具來應(yīng)對(duì)這種困難的局面,同時(shí)提供用戶友好型環(huán)境來開發(fā)應(yīng)用。雖然我們有一些SOC工具的市場(chǎng),但我們并不完全了解這些工具的功能。此外,工具還必須能夠最大限度地發(fā)揮產(chǎn)品的特性潛力。為了說明這一點(diǎn),我們不妨舉一個(gè)采用復(fù)雜架構(gòu)芯片的例子,在單個(gè)芯片上集成了幾乎所有的模擬和數(shù)字可編程外設(shè)。我們或許會(huì)發(fā)現(xiàn),閱讀和了解相關(guān)的配置寄存器以及使用器件相關(guān)的其它底層信息可能比較復(fù)雜,因此我們需要一款直觀易用的系統(tǒng)設(shè)計(jì)工具把底層信息隱藏起來,讓我們更方便地集中了解系統(tǒng)應(yīng)用。

簡(jiǎn)而言之,我們需要這樣一款工具,它不僅可加速產(chǎn)品的上市進(jìn)程,直觀高效地處理所有的開發(fā)考慮因素,而且成本不能太高,還能根據(jù)要求的變化支持項(xiàng)目在不同芯片之間的移植。

PSoC Creator:

可編程片上系統(tǒng) (PSoC) 制造商已經(jīng)充分認(rèn)識(shí)到,開發(fā)人員需要在單個(gè)芯片上擁有完整的系統(tǒng),而且要同時(shí)具備模擬和數(shù)字功能,同時(shí)該模擬和數(shù)字功能也應(yīng)該完全具有可編程性。為了開發(fā)可在這些芯片上工作的嵌入式應(yīng)用,以及為上述所有問題提供解決方案,賽普拉斯半導(dǎo)體公司推出了 PSoC Creator。PSoC Creator 通過其獨(dú)特的基于原理圖的格式能讓設(shè)計(jì)人員無需手動(dòng)管理架構(gòu)或配置寄存器即可開發(fā)應(yīng)用?,F(xiàn)在,我們要做的就是思考出設(shè)計(jì)方案,然后通過把組件從賽普拉斯組件庫(kù)或我們自己的組件庫(kù)中拖放到設(shè)計(jì)原理圖中即可繪制出設(shè)計(jì)。這就好像繪制系統(tǒng)方框圖一樣,不用考慮使用的是什么器件。正是由于革命性的圖形設(shè)計(jì)編輯器支持獨(dú)特而功能強(qiáng)大的軟硬件協(xié)同設(shè)計(jì)環(huán)境,我們才能實(shí)現(xiàn)這一目標(biāo)。請(qǐng)注意,該工具不僅是將軟件開發(fā)環(huán)境和直觀的圖形設(shè)計(jì)編輯器完美地結(jié)合在一起,同時(shí)還支持全新理念的即時(shí)測(cè)試,能夠快速響應(yīng)于硬件變化,創(chuàng)建可共享的設(shè)計(jì)組件庫(kù),提供定制外設(shè),支持片上外設(shè)的無差錯(cuò)互動(dòng),并能使用內(nèi)置的調(diào)試器實(shí)現(xiàn)完整的設(shè)計(jì)。

簡(jiǎn)而言之,該工具的功能和使用可如下圖所示分為 4 步:

步驟 1:設(shè)計(jì)與配置拖放組件 連接外設(shè) I/O 到引腳 設(shè)置時(shí)鐘頻率
步驟 2:開發(fā)調(diào)用內(nèi)置 API C/匯編語(yǔ)言編程無差錯(cuò)&更方便
步驟 3:調(diào)試內(nèi)置調(diào)試器在運(yùn)行時(shí)查看任何變量的類型、地址和值在運(yùn)行時(shí)查看協(xié)議棧、存儲(chǔ)器和寄存器
步驟 4:重復(fù)使用快速方便地創(chuàng)建未來設(shè)計(jì)將工作設(shè)計(jì)集成到可重復(fù)使用的組件中

1.gif


圖 1. 使用 PSoC Creator 創(chuàng)建項(xiàng)目的步驟

PSoC Creator 將基于 C 語(yǔ)言的開發(fā)流程與自動(dòng)生成的組件 API 在您的設(shè)計(jì)中相結(jié)合。它能根據(jù)后續(xù)階段要求的變化在器件之間(比如8位到32位)實(shí)現(xiàn)無縫移植。即便要在不同的器件系列之間進(jìn)行移植,我們也無需考慮存儲(chǔ)器映射、助記符等問題。這里的一個(gè)獨(dú)特優(yōu)勢(shì)在于,設(shè)計(jì)過程中不必考慮目標(biāo)芯片屬于什么系列的問題,因?yàn)樵O(shè)計(jì)人員能在開發(fā)周期中的任何時(shí)間更改器件,而且無需修改項(xiàng)目中的任何東西。

現(xiàn)在讓我們通過一個(gè)項(xiàng)目范例來更好地了解 PSoC Creator 在實(shí)際環(huán)境中開發(fā)嵌入式應(yīng)用的功能和可用性。這個(gè)項(xiàng)目范例演示了如何通過使用脈沖寬度調(diào)制 (PWM) 來控制 LED 的亮度。

2.jpg


圖2:PSoC Creator 的示意圖

圖 2 給出了從組件窗口拖放所需組件(即 PWM、輸入引腳、輸出引腳和時(shí)鐘)后所形成的示意圖。組件訪問得以簡(jiǎn)化,此外,開發(fā)人員還能創(chuàng)建他們自己的組件。創(chuàng)建新組件就像繪制設(shè)計(jì)一樣簡(jiǎn)單,而且能通過工具生成新組件的標(biāo)志。將新組件放進(jìn)庫(kù)中,這個(gè)組件就能重復(fù)使用了。任何引用組件庫(kù)的設(shè)計(jì)項(xiàng)目都將發(fā)現(xiàn)目錄中的新組件,而且能像任何其它內(nèi)置組件一樣加以使用。通過充分發(fā)揮 PSoC Creator 中設(shè)計(jì)的重復(fù)使用優(yōu)勢(shì),開發(fā)人員能夠快速構(gòu)建設(shè)計(jì)庫(kù),因此無論他們實(shí)施什么新項(xiàng)目,都能集中精力進(jìn)行創(chuàng)新工作,而不用為傳統(tǒng)功能而費(fèi)心。

3.jpg


圖3:組件配置向?qū)?br />
圖 3 所示為組件配置向?qū)?。右鍵單擊組件就能彈出配置向?qū)?。該向?qū)Э蓭椭覀冊(cè)O(shè)置組件的各個(gè)參數(shù)。舉例來說,對(duì)于 PWM 而言,我們可設(shè)置位數(shù)、周期、比較值等參數(shù)。同樣地,每個(gè)組件都有自己的參數(shù),我們可根據(jù)應(yīng)用需要加以設(shè)置。此外,每個(gè)組件都配套提供組件數(shù)據(jù)手冊(cè),介紹了組件的功能、參數(shù)、電氣規(guī)范、API 等。同樣,我們還為定制組件提供 API 和數(shù)據(jù)手冊(cè),這樣我們就能像對(duì)內(nèi)置組件一樣對(duì)其進(jìn)行配置了。

4.jpg


圖 4:引腳圖和配置

現(xiàn)在我們需要對(duì)應(yīng)用中所用引腳的映射進(jìn)行配置,引腳圖(如圖 4 所示)根據(jù)配置而相應(yīng)變化。在圖的底部,有時(shí)鐘、DMA、中斷、系統(tǒng)等不同配置選項(xiàng)卡。內(nèi)置配置工具將設(shè)計(jì)映射到器件中,并自動(dòng)計(jì)算出時(shí)鐘設(shè)置和路由,這可讓開發(fā)人員的工作變得非常簡(jiǎn)單。

5.jpg


圖 5:應(yīng)用代碼

圖 5 所示為我們編寫應(yīng)用代碼、執(zhí)行所需功能的截屏,同時(shí)也演示了有助于調(diào)試工作的斷點(diǎn)分析,提供了運(yùn)行時(shí)的參數(shù)值、寄存器和存儲(chǔ)器等。在代碼中,我們調(diào)用了內(nèi)置 API,在運(yùn)行時(shí)與組件進(jìn)行通信。API 可減少編碼錯(cuò)誤,確保同外設(shè)的正確交互,從而提高整體軟件開發(fā)的速度,簡(jiǎn)化開發(fā)工作,并減少錯(cuò)誤。

調(diào)試是產(chǎn)品開發(fā)生命周期中最重要的階段。對(duì)于應(yīng)用調(diào)試而言,PSoC Creator 可提供交叉調(diào)試器所具備的全部現(xiàn)代特性,而且還能提供獨(dú)特的外設(shè)調(diào)試窗口,用于顯示片上組件的內(nèi)部狀態(tài)。此外,它還支持 JTAG 和 SWD 調(diào)試模式。其它有用的特性包括“懸停”功能,即在鼠標(biāo)懸停情況下能夠顯示類型、地址和任何變量值等。此外,開發(fā)人員無需為寄存器、存儲(chǔ)器、調(diào)試協(xié)議、功耗、芯片選擇、函數(shù)調(diào)用等操心太多就能設(shè)計(jì)出一個(gè)完整的項(xiàng)目。

由于設(shè)計(jì)嵌入式系統(tǒng)本身是一項(xiàng)復(fù)雜的工作,在同一芯片上放置模擬和數(shù)字功能則將工作變得非常繁瑣。此外,開發(fā)人員希望在設(shè)計(jì)的任何階段都可實(shí)現(xiàn)芯片之間設(shè)計(jì)的輕松移植,確??捎觅Y源能夠直觀地實(shí)現(xiàn)最大限度的利用。我們接著還分析了軟件工具 PSoC Creator,這款工具以其獨(dú)特的特性(如面向所有組件的 API 支持、靈活的調(diào)試支持、定制和可重復(fù)使用的組件創(chuàng)建以及根據(jù)應(yīng)用要求修改現(xiàn)有的庫(kù)組件等)能夠完美解決上述問題。簡(jiǎn)而言之,如果我們希望讓數(shù)字模塊在運(yùn)行時(shí)根據(jù)要求能夠動(dòng)態(tài)地當(dāng)作定時(shí)器、計(jì)數(shù)器和 DAC 來工作,那么可提供通用數(shù)字模塊 (UDB) 能讓我們根據(jù)需要進(jìn)行配置的 PSoC Creator 就是一款理想的工具。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。