1.2.1 PSoC 發(fā)展概述
當(dāng)今世界,嵌入式處理器無處不在。在過去三十年間,由于一方面,市場要求不斷地降低嵌入式系統(tǒng)的成本,另一方面要求嵌入式處理器處理及控制能力不斷提高這樣兩個(gè)因素的推動(dòng),嵌入式處理器的功能變得越來越復(fù)雜。所以,當(dāng)半導(dǎo)體市場出現(xiàn)越來越多的片上可編程系統(tǒng),設(shè)計(jì)者就不會(huì)感到奇怪了。這種PSoC 其實(shí)質(zhì)就是將CPU、模擬和數(shù)字子系統(tǒng)集成在單芯片上。最典型的,是世界著名的半導(dǎo)體廠商——美國Cypress 公司,率先在單芯片上實(shí)現(xiàn)了完整的模擬和數(shù)字系統(tǒng)的集成,其典型的代表作即PSoC1 、PSoC3 和PSoC5。
特別值得一提的是,PSoC3 和PSoC5 片上可編程系統(tǒng),由于在芯片內(nèi)部分別集成了業(yè)界流行的8051 CPU 硬核和ARM Cortex-M3 CPU 硬核,使其受到業(yè)界的高度關(guān)注。以PSoC 芯片和PSoC Creator2.0 軟件開發(fā)工具為代表的硬件設(shè)計(jì)平臺(tái)和軟件設(shè)計(jì)工具,引領(lǐng)著未來嵌入式系統(tǒng)設(shè)計(jì)的發(fā)展方向。
其設(shè)計(jì)方法的核心就是,以不同的數(shù)字和模擬IP 核“積木塊”為中心的“系統(tǒng)級(jí)”設(shè)計(jì),這種設(shè)計(jì)方法所體現(xiàn)出來的是對未來嵌入式設(shè)計(jì)者所要求的“重基礎(chǔ)”和“寬專業(yè)”的要求。因?yàn)?,這種PSoC 具有很高的集成度,所涉及的知識(shí)內(nèi)容也比較多,這就是“寬專業(yè)”;而要完成PSoC 的設(shè)計(jì),又要求設(shè)計(jì)者有非常好的基礎(chǔ)理論知識(shí),這就是“重基礎(chǔ)”。
作為新的嵌入式系統(tǒng)的設(shè)計(jì)平臺(tái),使用PSoC 進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)具有以下三個(gè)方面的優(yōu)點(diǎn)。
?。?)定制
基于PSoC 嵌入式系統(tǒng)的設(shè)計(jì)人員可以很靈活地選擇所要連接的外設(shè)和控制器。因此,設(shè)計(jì)人員可以設(shè)計(jì)出一個(gè)獨(dú)一無二的外設(shè),這個(gè)外設(shè)可以直接和總線連接。對于一些非標(biāo)準(zhǔn)的外設(shè),設(shè)計(jì)人員很容易使用PSoC 內(nèi)嵌的通用數(shù)字塊(Universal Digital Block,UDB )陣列實(shí)現(xiàn)對非標(biāo)準(zhǔn)外設(shè)的定制。比如,設(shè)計(jì)人員很容易在PSoC 上設(shè)計(jì)出多個(gè)UART 接口的嵌入式系統(tǒng),而這些在傳統(tǒng)的8051 單片機(jī)和嵌入式系統(tǒng)是無法實(shí)現(xiàn)的。因此,在PSoC 平臺(tái)中,向這樣類似的配置是很容易實(shí)現(xiàn)的。
?。?)降低元件成本
由于基于PSoC 平臺(tái)的嵌入式系統(tǒng)的功能多樣性,以前需要用很多元件才能實(shí)現(xiàn)的系統(tǒng),現(xiàn)在可以使用一個(gè)PSoC 芯片實(shí)現(xiàn)。比如,輔助I/O 芯片或協(xié)處理器與現(xiàn)有的處理器之間的連接。這樣減少在設(shè)計(jì)中所使用的元件的數(shù)量,不但可以降低元件的成本,而且可以大大縮小電路板的尺寸,提高系統(tǒng)的可靠性。
?。?)硬件加速
選擇PSoC 的一個(gè)重要的原因就是,PSoC 能在硬件和軟件之間進(jìn)行權(quán)衡,使嵌入式系統(tǒng)達(dá)到最大的效率和性能。比如,當(dāng)算法是嵌入式系統(tǒng)軟件性能的瓶頸時(shí),一個(gè)使用定制的協(xié)處理器引擎能用來實(shí)現(xiàn)算法,這個(gè)協(xié)處理器通過專用的,低延遲的通道與嵌入式處理器連接。使用現(xiàn)代的硬件設(shè)計(jì)工具,很容易將軟件瓶頸轉(zhuǎn)向硬件處理。
下面通過表1.2 詳細(xì)說明它們在軟件和硬件設(shè)計(jì)上的區(qū)別。
表1.2 PSoC5 和專用的基于ARM Cortex-M3 的微控制器芯片的區(qū)別
綜合上述,PSoC 是一個(gè)MCU,但是是一個(gè)高度的硬件和軟件可編程的MCU。在PSoC 的平臺(tái)上充滿了設(shè)計(jì)的創(chuàng)意。
1.2.2 PSoC 設(shè)計(jì)方法
1.2.2.1 設(shè)計(jì)背景
一個(gè)典型的嵌入式系統(tǒng)由下面三個(gè)主要模塊構(gòu)成:
處理器;
數(shù)字(外設(shè)和邏輯);
模擬(用于與傳感器和控制器的物理接口)。
系統(tǒng)根據(jù)硬件接口要求,由三個(gè)模塊連接構(gòu)成硬件平臺(tái)。然后,在這個(gè)硬件設(shè)計(jì)上,“構(gòu)建”軟件,來執(zhí)行所要求的處理和控制功能。
按照傳統(tǒng)的設(shè)計(jì)方法,一旦定制的“軟件”和“硬件”開始運(yùn)行,對這個(gè)設(shè)計(jì)需要進(jìn)行修改或更新時(shí),就成為一件令設(shè)計(jì)者異常痛苦的事情。眾所周知,這是一件耗錢和耗時(shí)的工作。
嵌入式系統(tǒng)設(shè)計(jì)者,希望支持其嵌入式系統(tǒng)設(shè)計(jì)的工具和元件能夠支持甚至最后幾分鐘的重要變化。這樣,使得它們能從容地面對這種變化,更加對設(shè)計(jì)充滿信心。當(dāng)然設(shè)計(jì)應(yīng)該充分地利用工業(yè)標(biāo)準(zhǔn)的“生態(tài)設(shè)計(jì)”,查一查相關(guān)資料就知道“生態(tài)設(shè)計(jì)”對未來嵌入式系統(tǒng)設(shè)計(jì)是多么重要。嵌入式系統(tǒng)設(shè)計(jì)發(fā)展到今天,設(shè)計(jì)者應(yīng)該充分利用眾多的嵌入式開發(fā)社區(qū)和標(biāo)準(zhǔn)的工具。充分利用這些資源可以少讓你走彎路,學(xué)會(huì)站在巨人的肩膀上工作,這樣你將享受到嵌入式設(shè)計(jì)帶來的樂趣。
這些挑戰(zhàn)其實(shí)可以歸結(jié)為一個(gè)事實(shí),即較長的設(shè)計(jì)周期,較高的市場要求變化概率和不同的需求。眾所周知,一點(diǎn)點(diǎn)設(shè)計(jì)變化,都將使得設(shè)計(jì)周期延長。縮短設(shè)計(jì)周期,不但擁有了財(cái)富上的優(yōu)勢,而且降低了不確定性,提供了早期消費(fèi)者提供的反饋信息,當(dāng)你擁有這些信息,對產(chǎn)品快速改進(jìn)時(shí),產(chǎn)品就成為市場的領(lǐng)導(dǎo)者。
1.2.2.2 IP 核復(fù)用技術(shù)
PSoC 設(shè)計(jì),本質(zhì)上就是在單芯片內(nèi)部,將不同功能的IP 核連接在一起,以滿足不同的應(yīng)用要求?,F(xiàn)在的PSoC 設(shè)計(jì),規(guī)模巨大而且功能復(fù)雜,設(shè)計(jì)人員不可能從頭開始進(jìn)行設(shè)計(jì)?,F(xiàn)在采用的方式是,在設(shè)計(jì)中盡可能使用現(xiàn)有的功能模塊,當(dāng)沒有現(xiàn)成的模塊可以使用時(shí),設(shè)計(jì)人員才需要自己花時(shí)間和精力設(shè)計(jì)新的模塊。
EDA 設(shè)計(jì)人員把這些現(xiàn)成的模塊通常稱為IP(intellectual Property )核。IP 核來源主要有三個(gè)方面:
前一個(gè)設(shè)計(jì)創(chuàng)建的模塊;
SoC 生產(chǎn)廠商的提供;
第三方IP 廠商的提供。
IP 核是具有知識(shí)產(chǎn)權(quán)核的集成電路芯核總稱,是經(jīng)過反復(fù)驗(yàn)證過的、具有特定功能的宏模塊,與芯片制造工藝無關(guān),可以移植到不同的半導(dǎo)體工藝中。
到了SoC 階段,IP 核設(shè)計(jì)已成為片上可編程系統(tǒng)解決方案廠商中非常重要的任務(wù),其所能提供的IP 核的資源數(shù)目,體現(xiàn)了廠商的實(shí)力。對于可編程SoC 芯片,其提供的IP 核越豐富,用戶的設(shè)計(jì)就越方便,其市場占用率就越高。目前,IP 核已經(jīng)成為系統(tǒng)設(shè)計(jì)的基本單元,并作為獨(dú)立設(shè)計(jì)成果被交換、轉(zhuǎn)讓和銷售。
從IP 核的提供方式上,通常將其分為軟核、硬核和固核這3 類。從完成IP 核所花費(fèi)的成本來講,硬核代價(jià)最大;從使用靈活性來講,軟核的可復(fù)用使用性最高。
?。?)軟核
軟核在EDA 設(shè)計(jì)領(lǐng)域指的是綜合之前的寄存器傳輸級(jí)(RTL )模型;具體在FPGA 設(shè)計(jì)中指的是對電路的硬件語言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。軟核只經(jīng)過功能仿真,需要經(jīng)過綜合以及布局布線才能使用。其優(yōu)點(diǎn)是靈活性高、可移植性強(qiáng),允許用戶自配置;缺點(diǎn)是對模塊的預(yù)測性較低,在后續(xù)設(shè)計(jì)中存在發(fā)生錯(cuò)誤的可能性,有一定的設(shè)計(jì)風(fēng)險(xiǎn)。軟核是IP 核應(yīng)用最廣泛的形式。比如:可以使用HDL 語言在PSoC 芯片內(nèi)部,通過UDB 資源生成設(shè)計(jì)者定制的外設(shè)控制器。
?。?)固核
固核在EDA 設(shè)計(jì)領(lǐng)域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在SoC 設(shè)計(jì)中可以看做帶有布局規(guī)劃的軟核,通常以RTL 代碼和對應(yīng)具體工藝網(wǎng)表的混合形式提供。將RTL 描述結(jié)合具體標(biāo)準(zhǔn)單元庫進(jìn)行綜合優(yōu)化設(shè)計(jì),形成門級(jí)網(wǎng)表,再通過布局布線工具即可使用。和軟核相比,固核的設(shè)計(jì)靈活性稍差,但在可靠性上有較大提高。目前,固核也是IP 核的主流形式之一。
(3)硬核
硬核指經(jīng)過驗(yàn)證的設(shè)計(jì)版圖;具體在PSoC 設(shè)計(jì)中指布局和工藝固定、經(jīng)過前端和后端驗(yàn)證的設(shè)計(jì),設(shè)計(jì)人員不能對其修改。不能修改的原因有兩個(gè):首先是系統(tǒng)設(shè)計(jì)對各個(gè)模塊的時(shí)序要求很嚴(yán)格,不允許打亂已有的物理版圖;其次是保護(hù)知識(shí)產(chǎn)權(quán)的要求,不允許設(shè)計(jì)人員對其有任何改動(dòng)。IP 硬核的不許修改特點(diǎn)使其復(fù)用有一定的困難,因此只能用于某些特定應(yīng)用,使用范圍較窄。比如:典型的PSoC3 內(nèi)部集成了8051CPU 硬核,PSoC5 內(nèi)部集成了ARM Cortex-M3 CPU 硬核。
1.2.2.3 設(shè)計(jì)重用技術(shù)
“設(shè)計(jì)重用”是PSoC 設(shè)計(jì)中一個(gè)非常重要的設(shè)計(jì)思想,“設(shè)計(jì)重用”比“IP 核復(fù)用”具有更高的設(shè)計(jì)靈活性。這個(gè)思想的提出,使得嵌入式系統(tǒng)設(shè)計(jì)方法進(jìn)入到一個(gè)嶄新的階段。當(dāng)然,這是眾多半導(dǎo)體廠商的最高理想境界。很多年前,“設(shè)計(jì)重用技術(shù)”就已經(jīng)提出來作為一個(gè)正在完成項(xiàng)目(從時(shí)間和預(yù)算方面)的一個(gè)必要的部分。這并不是一個(gè)新的思想,設(shè)計(jì)重用的目的就是使得不需要修改一個(gè)設(shè)計(jì)(或者盡可能少的修改),就可以使該設(shè)計(jì)可以在不同的平臺(tái)之間運(yùn)行和實(shí)現(xiàn)。實(shí)際上,到目前為止,設(shè)計(jì)重用都沒有完全實(shí)現(xiàn),通常的做法是單純的硬件(微處理器核,可重用的IP 核外設(shè),硬件加速器等)或者軟件(RTOS ,協(xié)議棧,實(shí)時(shí)庫等)的復(fù)用,而不是全部軟件和硬件的復(fù)用。
設(shè)計(jì)重用的思想非常吸引人,但是目前的標(biāo)準(zhǔn)的解決方式僅僅是迫使在項(xiàng)目的另一部分加入“定制”的開發(fā),這不能根本上解決問題。
使得IP 核重用利益最大化的方法是將軟件和硬件作為“同等地位”的“合作者”,不需要使得軟件或硬件的任何一方需要了解對方的具體實(shí)現(xiàn)過程。實(shí)現(xiàn)這個(gè)目的的方法是,在定義硬件IP 核的時(shí)候,順便也要考慮到軟件和開發(fā)工具,這樣在應(yīng)用程序和硬件之間的接口就非常方便、高效,同時(shí),彼此不需要“深入了解對方”。
Cypress 的PSoC Creator 開發(fā)平臺(tái)很好地實(shí)現(xiàn)了設(shè)計(jì)重用的思想,并將其變?yōu)楝F(xiàn)實(shí),即在生成硬件IP 時(shí),也同時(shí)提供了相應(yīng)所需要的軟件API 函數(shù),這樣使得設(shè)計(jì)更容易運(yùn)行,以更快的速度完成,更加容易維護(hù)和便攜。
當(dāng)使用HDL 語言開發(fā)IP 核時(shí),對其進(jìn)行綜合、仿真、驗(yàn)證、編寫測試平臺(tái)、編寫文檔。那么應(yīng)該為IP 核的使用者在IP 核開發(fā)工具中提供相同的工具,這個(gè)工具就是當(dāng)用戶在他的設(shè)計(jì)中例化所需要使用的IP 核時(shí),為每個(gè)例化的IP 核生成相應(yīng)的API 函數(shù)。
PSoC3/5 由嵌入式的處理器(8051 或Cortex-M3)、可編程的數(shù)字陣列和高精度的模擬資源構(gòu)成。PSoC Creator 軟件充分地顯示出其強(qiáng)大的設(shè)計(jì)重用功能,即硬件模塊或者元件能通過使用API 函數(shù)進(jìn)行封裝,來簡化軟件代碼的開發(fā),同時(shí)加速設(shè)計(jì)過程。
PSoC Creator 提供原理圖捕獲接口,在原理圖界面內(nèi),設(shè)計(jì)者通過從模擬和數(shù)字元件庫中拖拽元件來創(chuàng)建設(shè)計(jì)。一個(gè)元件由一個(gè)在原理圖界面內(nèi)可見的符號(hào)或者其他原理圖的實(shí)現(xiàn)來構(gòu)成。當(dāng)設(shè)計(jì)者建立(build)設(shè)計(jì)時(shí),軟件就根據(jù)元件的名字產(chǎn)生相應(yīng)的API 函數(shù)。
PSoC Creator 內(nèi)的元件都是參數(shù)化的,那些重要的設(shè)置選項(xiàng),比如UART 中的流控制和波特率,通過參數(shù)化圖形設(shè)置很容易將那些不必要的功能根據(jù)設(shè)置選項(xiàng)從實(shí)現(xiàn)中刪除。
下面給出一個(gè)例子來說明IP 核設(shè)計(jì)和軟件API 函數(shù)的“定制”。如圖1.2 所示,使用PSoC Creator 軟件工具創(chuàng)建UART_1 和UART_2 兩個(gè)例化的IP 核。UART_1 支持tx 和rx,中斷模式,硬件的發(fā)送使能信號(hào)tx_en 信號(hào)(用于RS-485) ;而UART_2 是一個(gè)簡單的實(shí)現(xiàn),即在輪詢方式下輸出數(shù)據(jù)流。在后一種情況下,PSoC Creator 不創(chuàng)建用于讀數(shù)據(jù)、中斷,檢查Rx 狀態(tài)和緩沖區(qū)管理的API 函數(shù),這樣可以減少混亂和錯(cuò)誤的產(chǎn)生。
圖1.2 API 函數(shù)的定制
通過參數(shù)化的設(shè)置,PSoC Creator 也支持交叉結(jié)構(gòu)。比如在PSoC5 的UART 有較大的緩沖區(qū),并且從GetBufferSize() 中返回值,比如可選擇是一個(gè)字符或者一個(gè)短值(8 位1-255,32 位1-65535),同時(shí)保證其在8051 結(jié)構(gòu)中是有效的。如圖1.3 所示,通過使用宏定義中斷例程,允許在任何編譯器中使用相同的代碼。在系統(tǒng)的頭文件中定義了宏,比如在8051 編譯器中(ARM 的Keil)識(shí)別定義“_C51_”,并且將中斷關(guān)鍵字添加到函數(shù)定義中。對于ARM GNU 編譯器(CodeSourcery),“_GNUC_ ”定義保證刪除不必要的關(guān)鍵字。
圖1.3 中斷代碼的重用
評(píng)論
查看更多