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