可編程器件固件開發(fā)的現(xiàn)代化方法
如果您是硬件設(shè)計(jì)人員,您一定覺得可編程器件很好用且功能強(qiáng)大。可如果您是軟件開發(fā)人員,這些可編程器件一定會(huì)讓您很頭疼,因?yàn)槟€得為這些器件編寫固件,滿足不斷變化的目標(biāo)需求。器件廠商通常在他們工具中集成軟件開發(fā)特性,創(chuàng)建一個(gè)整體環(huán)境來支持軟硬件兩方面需求,從而解決這一問題。
本文引用地址:http://www.ex-cimer.com/article/137421.htm這種解決方案的難點(diǎn)在于,它將使軟件工程師不得不采用硬件設(shè)計(jì)人員使用的工具,而考慮到通常項(xiàng)目中軟硬件設(shè)計(jì)人員比例嚴(yán)重失調(diào),這種做法往往不夠理想。有時(shí)采用一種工具沒問題,但有經(jīng)驗(yàn)且有成熟開發(fā)流程的分散的工程師團(tuán)隊(duì)來說不太適宜。工程師需要工具對(duì)思維進(jìn)行逆向工程,并將硬件設(shè)計(jì)集成在現(xiàn)有第三方軟件開發(fā)流程中,比方說賽普拉斯的 PSoC Creator 配合 ARM 的 μVision IDE。這種完美組合能滿足兩方面的需求,既能讓硬件工程師集中精力進(jìn)行芯片創(chuàng)新,又不會(huì)造成軟件開發(fā)方面的瓶頸。
正如當(dāng)今可編程器件的可編程能力和 CPU 性能大相徑庭一樣,可編程器件的設(shè)計(jì)團(tuán)隊(duì)的規(guī)模和成員也各有不同。雖然仍有不少成功的應(yīng)用是由一個(gè)兼具軟硬件專業(yè)技術(shù)的工程師實(shí)現(xiàn)的,但是在越來越多的情況下,產(chǎn)品設(shè)計(jì)是由角色分工相當(dāng)明確的小團(tuán)隊(duì)完成的,也就是說硬件專家負(fù)責(zé)器件配置,只需編寫一點(diǎn)軟件來驗(yàn)證系統(tǒng)能夠根據(jù)預(yù)期工作,而剩下的則由軟件團(tuán)隊(duì)來開發(fā)應(yīng)用代碼。這種分散的團(tuán)隊(duì)里的各個(gè)成員可能并不在同一幢大樓里工作,甚至根本不在同一個(gè)國家。
您的工具,您的成功之路
所有用戶均可從軟件開發(fā)的集成工具中大獲裨益。一人獨(dú)自工作,通常沒有時(shí)間去學(xué)習(xí)新工具的使用。小規(guī)模軟件團(tuán)隊(duì)都有自己慣用的產(chǎn)品,并不希望新的軟件環(huán)境強(qiáng)加在他們身上。多站點(diǎn)工作團(tuán)隊(duì)在基礎(chǔ)架構(gòu)方面已經(jīng)進(jìn)行了大量投資,不能為了每個(gè)基于當(dāng)前芯片的項(xiàng)目都開辟新的環(huán)境。簡而言之,雖然在硬件配置工具中集成軟件開發(fā)功能是一項(xiàng)不錯(cuò)的特性,但是為商業(yè)和其它流行軟件 IDE 提供功能豐富和可靠的支持則顯得至關(guān)重要。
在詳細(xì)介紹如何將軟件 IDE集成到硬件環(huán)境中之前,我們應(yīng)了解一下 PSoC 及其設(shè)計(jì)環(huán)境。PSoC 是一款完全可編程的嵌入式片上系統(tǒng),其在單個(gè)芯片上集成了可配置的模擬和數(shù)字外設(shè)功能、存儲(chǔ)器以及微控制器等。雖然技術(shù)有很大不同,模擬內(nèi)容大幅增加,但設(shè)計(jì)流程仍類似于目前您所能看見的 FPGA 器件,特別是集成了硬件微控制器內(nèi)核的器件。
PSoC Creator 工具可提供非常靈活的可視化嵌入式設(shè)計(jì)方法,其中包括預(yù)配置、自定義外設(shè)和分層原理圖輸入等。當(dāng)在這款工具中構(gòu)建設(shè)計(jì)時(shí),許多軟件文件已經(jīng)創(chuàng)建完成了,最明顯的就是每個(gè)元件所用的 API 文件都已經(jīng)生成并放置在項(xiàng)目之中了。通過 Counter_Start() 和 ADC_SetValue() 等容易記住的名字,這些 API 構(gòu)成了一種簡單一致、易于使用的控制硬件外設(shè)的方法,而且無需了解全部實(shí)施細(xì)節(jié)。所有用于可編程器件的良好工具都應(yīng)生成軟件接口,因?yàn)?ldquo;通過構(gòu)建”是確保有效無誤代碼的唯一方法。除了 API 之外,還有包含配置可編程陣列代碼的引導(dǎo)文件。應(yīng)用總是使用這些文件,但通常不做修改,這些文件也是 IDE 導(dǎo)出特性的重要組成部分。
除了以硬件為中心的功能之外,PSoC Creator 還包括開發(fā)人員所期待的常用的軟件特性:源代碼編寫、項(xiàng)目管理、集成型編譯器、器件編程和片上調(diào)試。在現(xiàn)代化工具中,這些都很常見,但這種方法的問題也很簡單,喜歡使用 PSoC 的人很多,但不是他們所有人都愿意在應(yīng)用開發(fā)中使用賽普拉斯的軟件工具。
樣片設(shè)計(jì)
讓我們先從一個(gè)簡單的 PSoC 設(shè)計(jì)開始,便于講解說明。PSoC Creator 的原理圖捕獲和參數(shù)化元件可讓您輕松繪制峰值檢波器電路圖?! ?/p>
這項(xiàng)設(shè)計(jì)使用了兩個(gè)主要元件:一個(gè)比較器 (Comp) 和一個(gè)混頻器 (Peak_Mixer)。比較器可簡單地比較兩個(gè)輸入模擬電壓并輸出數(shù)字結(jié)果。混頻器被配置為采樣模式,輸出參考和輸入信號(hào)之間的差值并在每個(gè)時(shí)鐘周期上更新該值。由于設(shè)計(jì)中的參考電壓接地 (Vssa),因此混頻器始終將采樣的輸入電壓輸出到另一個(gè)引腳(峰值)。
此外,混頻器的輸出也反饋到比較器的參考輸入 (-)。當(dāng)引腳 (Sig_In) 上的電壓為低時(shí),比較器輸出也為低,并且混頻器時(shí)鐘被 AND 門阻塞。因此,混頻器不會(huì)采樣電壓,并繼續(xù)輸出其最后采樣的峰值電壓。當(dāng)引腳電壓升高時(shí),比較器改變輸出,時(shí)鐘不再進(jìn)行門控,混頻器則用新的峰值電壓更新其輸出。
構(gòu)建這款設(shè)計(jì)會(huì)生成大量的 API。我們這里的目的只是想要接通電路:
? Comp_Start()
? Peak_Mixer_Start()
如果想要編寫代碼,我們需要?jiǎng)?chuàng)建 μVision 項(xiàng)目。在 PSoC Creator 項(xiàng)目菜單中選擇“導(dǎo)出到 IDE”向?qū)?。 ?/p>
評(píng)論