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