作者: Mark Saunders 采用嵌入式CPU內核的可編程器件為應對各種設計挑戰提供了有效途徑,而這些挑戰僅僅通過軟件或硬件的方法可謂舉步維艱,或者說解決成本非常高昂。這些器件結合了能再編程的數字與模擬硬件資源,能提供您切實所需的功能。此外,設計工具能消除與可編程邏輯通常相關的大多數復雜性問題。例如,賽普拉斯半導體公司推出的PSoC Creator就是專為簡化上述工作而精心設計的。借助PSoC Creator,用戶不必一定要有完美的電路設計,僅需提供相關的設計元素即可,有點像在白板上繪畫的感覺。隨后,該工具能提供外設模塊(即組件)的最佳布局和布線方案,并設置所需的時鐘和電源配置,進而為用戶優化設計。 下面以采用PSoC Creator進行設計為例,給出了如何在無需軟件工程師而成為硬件專家的情況下協助開展軟/硬件協同設計。作為一款混合信號器件,PSoC包含集成型數模轉換器(DAC),可用于將電壓(或電流)輸出到引腳或器件的其它部分。大家可將兩個組件拖放到原理圖上,并通過線路將其連接在一起,從而實現將DAC連接到引腳上。僅需幾秒鐘即能對組件進行定位,并將其復制到原理圖上。 ![]() 圖1:采用PSoC Creator將DAC輸出連接到模擬引腳 請注意,DAC沒有“輸入”,也就是既沒有電源線路和Vref輸入,也沒有繁雜得可怕的總線接口問題,有的只是一個可連線至引腳的統一供電電壓源。另外,引腳同樣也非常簡單。事實上,PSoC引腳能通過各種驅動模式支持令人炫目的GPIO、SIO和模擬功能組合,此外還提供啟用和同步等特性。但是,我們在此使用的模擬引腳已針對您的需求將物理引腳配置就緒,因而無需擔心如何在不影響DAC信號的情況下安全地關閉有關特性。 讓設計人員與潛在混亂的低層實現細節相隔離,這一理念是PSoC Creator設計方案的核心,能幫助設計人員將精力集中在功能設計上。該工具可提供經全面驗證的一整套200個組件,其中包括模數轉換器(ADC)、DAC和放大器;UART與I2C以及PWM和定時器等,這些與傳統原理圖捕獲工具中的原始IP模塊相比,擁有高得多的易用性。在這些組件中,我們將實現細節進行了抽象化,而且設計項目能夠確保第一次就無差錯。用戶可在參數編輯器(即定制器對話框)中選擇功能,而工具則決定實現用戶要求所需的器件配置。大家所要做的就是,將組件放到頁面上,并雙擊進行定制器選擇即可。 下面以UART為例進行說明。這通常是以固件為導向的組件,因而定制器提供的配置選項非常便于工程師開展工作。您要做的不是考慮時鐘輸入和過采樣速率,而是直接考慮需要什么樣的波特率,這樣工具就能自動創建可為組件提供相應頻率的時鐘源。 ![]() 圖2:配置UART組件。請注意,選項與功能相關而不是與外設實現相關。 為什么不是所有工具都能采用這種工作原理?作為器件的制造商,我們已經知道如何才能解決這些問題了。為什么要迫使用戶來做這些設計工作?設計選擇應作為選項提供,而不是成為設計障礙。以硅芯片硬件為核心的設計方法過于低級別,工程師不值得在這上面耗費精力。可編程SoC用戶需要比傳統工具更高級的設計。在PSoC Creator中,用戶可邏輯布局所需的功能,并用工具將此轉換為特定的器件配置。用戶可直接通過參數來設置外設行為。 帶集成型CPU的可編程器件需要獲得也集成了軟硬件開發任務的工具的支持。以硅芯片為核心的工具的另一個原有問題就是,軟件工程師通常不得不使用他們不太喜歡的工具,而且還必須應對原始存儲器和寄存器級外設接口等問題。換言之,沒有正確的軟件工具,可編程SoC只能讓硬件設計人員受益,而軟件開發團隊則比較“倒霉”。在硬件方面,不但工作進展會大幅加速,而且風險也會降到最低,尤其是跟ASIC流程相比更是如此,但確保設計有效實現的壓力卻被轉嫁給了軟件開發團隊。 ![]() 圖3:PSoC Creator IDE,左側為工作區資源管理器(Workspace Explorer),中間為原理圖編輯器,右側為組件目錄。 此外,PSoC Creator還能將工程師從開發自己的SoC功能接口工作中解放出來,讓他們能選擇集成開發環境(IDE)來進行應用開發。幾乎所有的組件都有軟件接口(LUT、邏輯門和多路復用器等低級組件例外),這就使得通過C語言代碼來驅動外設變得非常簡便。我們并非意在提供一系列存儲器映射的寄存器再加上晦澀難懂的比特位字段和通常無文檔記錄的負面效應,而是在C語言API調用中讓組件綁定典型功能。要啟動定時器運行,用戶可調用Timer_1_Start()等API。(您不必猜測如何停止。)通過使用Timer_1_ReadCounter()的返回值即可讀取定時器的當前值。一旦熟悉了API的這種風格,您通常就能猜出從未使用過的組件的API名稱。如果您沒猜對,那么始終可以參考定制器對話框中完整的數據表或右鍵點擊組件查詢。 您或許已經注意到以上API示例中的“_1_”。它提示了API在工具中的生成方式。您拖放(或拷貝粘貼)到設計中的每個組件都具有唯一的名稱。該名稱默認為組件的基礎名稱,如“UART”,而“_n”作為后綴說明這是相同組件的多個實例之一。用戶能根據需求在定制器對話框中更改名稱。在上面的例子中,我刪除了下劃線部分,因為項目中只有一個UART,因而加上這個數字是多余的。如果您按下“創建”按鈕或F6鍵,那么工具會為原理圖中的所有組件生成API文件。組件實例名稱始終是附在所生成的API上。 一旦完成了硬件設計,固件開發就能獲得內置調試器的支持。用戶可通過常見的JTAG或SWG接口連接至目標器件。賽普拉斯開發套件包含板上調試芯片(當然也是另一個PSoC),其取代了傳統的調試器探詢。用戶連接上USB線纜就能啟動調試工作。用戶針對自己的硬件,可以購買比較便宜的MiniProg3調試器探針,以連接到標準的10引腳報頭上。 所有組件API都可作為C語言中的源代碼提供,從而使調試軟硬件互動變得非常簡單。構造中不包含庫,因而用戶無需查詢Web頁面來查找設備驅動程序(似乎總有針對其它器件的)。對于斷點放置和調試過程中的代碼步進也沒有限制。用戶在調試組件行為時幾乎不需要切換到匯編器視圖。 賽普拉斯認識到,不是所有軟件工程師都希望或能夠轉為采用PSoC Creator環境。多年來,獨立的嵌入式開發軟件IDE廠商一直在完善工具,同時他們還能提供可加速設計周期、降低風險以及擴大測試覆蓋面的眾多高端特性。ARM Ltd的微控制器開發套件(MDK)和IAR Systems的嵌入式工作臺(Embedded Workbench)工具等,都是這些工具中一些非常好的例子。 當前的開發工作往往劃分為軟件和硬件團隊。軟件團隊不見得在同一辦公地點工作,甚至不見得在同一個國家工作,他們當然不希望工具選擇完全由硬件團隊決定。這不僅僅是個人偏好的問題。公司為工具、調試解決方案、維護合同等投入大量時間和資金,這是工程開發流程中規劃最完善的組成部分,而且在來源控制和文檔管理等公司系統中實現了高度集成。轉而采用新的軟件開發環境往往是不實際的。 在此環境下,較好的方案是將PSoC Creator作為“芯片配置”工具來使用,而不是取代原有的IDE。硬件工程師可使用此工具生成設計以及所有的配置數據和API。軟件團隊僅需將這些文件集成到其現有的IDE中,并繼續按照熟悉的編輯—構建—調試周期進行工作。硬件團隊可自行使用PSoC Creator來構建針對其設計和設計所用電路板的測試臺。您甚至能創建可與軟件團隊共享的電路板支持套件(BSP)或硬件抽象層(HAL),從而簡化與器件的互動機制,盡可能避免錯誤。在“芯片配置”中需要使用多少軟件,完全由您來決定。 ![]() 圖4:ARM μVision IDE調試PSoC項目 把全新的電路板交給軟件工程師來處理往往會產生很多問題。這些問題肯定是要發生的,也是整個產品開發過程中最容易產生誤解和挫折感的地方。我們都聽說過抑或是經歷過這樣的情況,有人說“問題是硬件帶的”,而有人則堅稱“不,問題來自軟件”。這種意見分歧的根源往往就在于在如何使用硬件方面溝通不暢。為了解決這個問題,PSoC Creator提供了可生成PSoC設計數據表的功能。器件配置信息、時鐘設置、引腳選擇和所有已生成組件API的描述都直接從工具輸出到統一的數據表文件中。文檔由機器生成,因此不存在剪切粘貼錯誤或某個信息被遺漏的風險。 這只是PSoC Creator功能和如何在現有設計流程中使用它的一個簡單概覽。我們認為,其針對采用嵌入式CPU的可編程器件的設計問題采用了獨特的基本方法。此外,它還是一款完全免費的工具。 多年來,嵌入式工程師一直都需要為每一個項目做出明確的方案選擇。或許可以為定制IC進行大量投入以確保能夠完美滿足用戶的需求,但這需要好幾個月的時間,而且一旦設計變成了芯片就無法改變。此外,您也可以直接采用FPGA開始設計,這樣做具有非常大的靈活性而且設計發生變動時也可以快速完成,但在單位成本或功耗方面的競爭力卻差強人意。當然,在兩種情況下,用戶仍然不得不選擇、采購和集成CPU,但至少ARM在微控制器內核領域的強大競爭力已使這一選擇非常簡單了。但是,您是否需要購買內核并將其設計到您的器件中呢? 如今已出現一條中間道路,賽普拉斯的PSoC等器件橫空出世,具有令人振奮的功能特性,似乎能在各個領域全面實現最佳的性能效果。這種基于ARM Cortex M的可編程器件具備各種CPU選項、速度和功能,無需集成IP,也不必擔心總線接口或開發啟動代碼。此外,硬件完全可編程,因而能實現類似于ASIC的性能和功耗,同時具有非常強大的價格競爭優勢,并且能立即獲得可滿足量產需求且在產品出貨之前隨時可以修改(再編程)的器件。最出色的地方還在于,這種產品擁有強大的片上模擬功能,如模數轉換器、比較器和放大器等,這些是在FPGA產品中所缺失的。如此說來,將定制化IC設計和耗電量高的FPGA大規模遷移到這種新型設計上還有什么障礙呢? 答案非常簡單,障礙來自于軟件方面。為了充分發揮器件的作用,工程師需要軟件工具來集成軟硬件技術,同時又不能把項目的所有人都限制在單一的單片式IDE中。 |