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