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