圖形界面設(shè)計(jì)工具加速嵌入式系統(tǒng)的開(kāi)發(fā)
當(dāng)今的大多數(shù)嵌入式處理應(yīng)用中,控制和實(shí)時(shí)編程都是通過(guò)C/C++和優(yōu)化的匯編代碼庫(kù)聯(lián)合實(shí)現(xiàn)的。在開(kāi)源端,一旦為給定的體系結(jié)構(gòu)寫(xiě)好了底層的驅(qū)動(dòng)程序,所有的操作系統(tǒng)內(nèi)核上層的其它代碼都能自動(dòng)“繼承”。在購(gòu)買(mǎi)部分或完整的解決方案(例如嵌入式VoIP參考設(shè)計(jì))時(shí),大部分基礎(chǔ)工作已經(jīng)完成,剩下的需要處理的只是整個(gè)系統(tǒng)的一小部分。比如,設(shè)計(jì)工程師可能只要在已有的核心解決方案中增加一些用戶(hù)接口調(diào)整和機(jī)構(gòu)增強(qiáng)就行了。
現(xiàn)在使用的另一種省時(shí)的方法是基于圖形界面的嵌入式設(shè)計(jì)。它也是建立在軟件驅(qū)動(dòng)程序的代碼基礎(chǔ)上,但是編程的模式變成可視系統(tǒng)設(shè)計(jì)。通過(guò)在系統(tǒng)層編程,比較低層的功能被抽象成多層以簡(jiǎn)化系統(tǒng)設(shè)計(jì)。在圖形編輯器下工作時(shí),允許工程師可以從框圖層開(kāi)始建立一個(gè)應(yīng)用程序。
過(guò)去,這種方法適于在PC機(jī)或工作站上的原型制作,因?yàn)閷⑺惴ㄒ浦驳角度胧江h(huán)境之前要確保其有效。它也是控制工業(yè)流和儀器的非常有用的方法。然而在早期,這種圖形化方法不能生成足夠的有效代碼在開(kāi)箱即用的嵌入式系統(tǒng)上運(yùn)行(例如,重新寫(xiě)入的重要部分不能允許按照算法實(shí)時(shí)運(yùn)行)。另外,幾乎沒(méi)有支持實(shí)際數(shù)據(jù)流實(shí)時(shí)輸入輸出系統(tǒng)的集成外設(shè)。
因此,最近的問(wèn)題已經(jīng)比較突出地集中在簡(jiǎn)化基于PC機(jī)的設(shè)計(jì)過(guò)程提高傳輸?shù)角度胧教幚砥鞯男?。這個(gè)問(wèn)題包含以下三個(gè)方面:
1. 生成在目標(biāo)處理器上運(yùn)行的有效代碼
2. 無(wú)縫地集成外圍設(shè)備
3. 在處理器的圖形化工具設(shè)備和原生工具設(shè)備之間有效地轉(zhuǎn)換
這三個(gè)方面非常重要,因?yàn)樗麄兪沟眯碌囊活?lèi)程序員接觸到嵌入式處理器。比如,有更多科學(xué)背景的工程師能用直覺(jué)的方法編程并調(diào)試“數(shù)據(jù)流程序” 。我們不要求成為了解某一具體結(jié)構(gòu)特性或外圍設(shè)備怎樣工作的專(zhuān)家。當(dāng)然,經(jīng)驗(yàn)豐富的程序員也喜歡采用帶圖形界面的直觀(guān)設(shè)計(jì)方法。
上述第三點(diǎn)值得更進(jìn)一步的討論。抽象體系結(jié)構(gòu)和外圍設(shè)備層很重要,但不完全關(guān)閉訪(fǎng)問(wèn)也很重要。在工具設(shè)備之間的變換能力需要進(jìn)一步的優(yōu)化、系統(tǒng)的調(diào)試和確認(rèn)。
為適應(yīng)嵌入式系統(tǒng)對(duì)圖形界面設(shè)計(jì)工具的需求,美國(guó)國(guó)家儀器(NI)去年就宣布開(kāi)始研究。特別是為ADI公司的Blackfin處理器設(shè)計(jì)的LabVIEW嵌入式處理模塊為嵌入式設(shè)計(jì)工程師提供了一套完整的圖形界面開(kāi)發(fā)方法。ADI公司和NI公司強(qiáng)強(qiáng)聯(lián)合,將兩家公司各自的優(yōu)勢(shì)融合在一起。由此開(kāi)發(fā)的產(chǎn)品無(wú)縫集成NI LabVIEW與ADI VisualDSP++開(kāi)發(fā)環(huán)境。
傳統(tǒng)的嵌入式編程方法是在文本編輯器中輸入代碼,而Labview使用一組“pallets”構(gòu)成系統(tǒng)。所有我們熟悉的編程結(jié)構(gòu)(分支語(yǔ)句、循環(huán)等)仍可提供。另外,操作數(shù)也可用,不過(guò)使用LabVIEW真正的好處在于擴(kuò)展了對(duì)信號(hào)處理和分析庫(kù)的支持。
從NI公司的角度來(lái)看,這項(xiàng)工作擴(kuò)展了用于嵌入式開(kāi)發(fā)的LabVIEW圖形界面系統(tǒng)設(shè)計(jì)。使用常用工具進(jìn)行傳統(tǒng)設(shè)計(jì)和制造測(cè)試,同時(shí)在半導(dǎo)體上編程,所以能夠真正縮短了產(chǎn)品上市時(shí)間。
從ADI公司的角度來(lái)看,LabVIEW嵌入式系統(tǒng)為Blackfin處理器開(kāi)發(fā)商提供了數(shù)百種數(shù)學(xué)和信號(hào)處理功能位于集成的I/O庫(kù)頂層。它還允許使用利用VisualDSP++開(kāi)發(fā)的庫(kù)中已有的代碼。另外,使用一種稱(chēng)作設(shè)備驅(qū)動(dòng)程序的常用應(yīng)用編程接口(API)體系結(jié)構(gòu),很容易對(duì)常用器件驅(qū)動(dòng)程序〔例如模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)以及音頻和視頻編解碼器〕進(jìn)行設(shè)置。
LabVIEW嵌入式系統(tǒng)建立其自己的一套設(shè)備驅(qū)動(dòng)程序用于將多種外圍設(shè)備連接到應(yīng)用設(shè)備??商峁┒喾N驅(qū)動(dòng)程序用于覆蓋多種應(yīng)用。即使某種設(shè)備不在LabVIEW pallet的備選范圍內(nèi),仍然為原生外圍設(shè)備提供基本的設(shè)備驅(qū)動(dòng)程序。這樣在合適的LabVIEW 系統(tǒng)內(nèi),很容易增加用戶(hù)指定的設(shè)備驅(qū)動(dòng)程序。
LabVIEW嵌入式系統(tǒng)還包括一個(gè)由VisualDSP++支持的實(shí)時(shí)內(nèi)核(VDK)。NI公司使用了一套虛擬儀器(VI),建立連接目標(biāo)體系結(jié)構(gòu)的接口?,F(xiàn)在我們可提供多種應(yīng)用實(shí)例,包括連接到CMOS傳感器的基于視覺(jué)的系統(tǒng)、音頻實(shí)例以及連接到教室機(jī)器人應(yīng)用的“Handy Board”控制卡(見(jiàn)下面的鏈接)。
在每項(xiàng)應(yīng)用中,都使用LabVIEW嵌入式系統(tǒng)構(gòu)建流程。當(dāng)用戶(hù)想要做一些修改以匹配他們的應(yīng)用時(shí),幾乎所有的修改都是在VI層上進(jìn)行的(例如濾波器長(zhǎng)度,匹配模式特性等)。通過(guò)運(yùn)行"under the hood"將這些修改自動(dòng)傳播生成C代碼。
該系統(tǒng)除了基本的系統(tǒng)設(shè)計(jì)工具,還有許多高級(jí)調(diào)試能力,這正是VisualDSP++工具非常寶貴之處。工程師能將工具與要調(diào)試的硬件直接連接起來(lái),以迅速檢查出處理器和隔離問(wèn)題。
LabVIEW嵌入式模塊還為Blackfin處理器提供了一個(gè)評(píng)估平臺(tái),其中包括NI公司的“虛擬儀器教學(xué)套件(ELVIS)”連接器。這種連接器能用來(lái)與提供連接到各種NI數(shù)據(jù)采集卡和不同種類(lèi)硬件產(chǎn)品的專(zhuān)用適配器連用。
欲獲知有關(guān)LabVIEW嵌入式系統(tǒng)模塊的更多信息,請(qǐng)?jiān)L問(wèn)下面的鏈接:
http://www.ni.com/labview/blackfin/
您也可以從下面進(jìn)入我們的在線(xiàn)培訓(xùn)單元:
http://www.analog.com/processors/learning/index.html
欲知更多有關(guān)Blackfin Handy Board 控制卡的信息,請(qǐng)?jiān)L問(wèn):http://sine.ni.com/csol/cds/item/vw/p/id/686/nid/124400
評(píng)論