通過LabVIEW FPGA加速嵌入式系統(tǒng)原型化的過程
掃描二維碼
隨時(shí)隨地手機(jī)看文章
ni中國市場工程師 湯敏嵌入式系統(tǒng)的發(fā)展趨勢 嵌入式系統(tǒng)一般是指一個(gè)獨(dú)立且具有專門用途的系統(tǒng),隨著半導(dǎo)體技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)正在滲入現(xiàn)代社會的各個(gè)方面,被廣泛應(yīng)用于航空航天、通信設(shè)備、消費(fèi)電子、工業(yè)控制、汽車、船舶等領(lǐng)域。巨大的市場需求推動了嵌入式系統(tǒng)向更高的技術(shù)水平發(fā)展。 嵌入式系統(tǒng)的開發(fā)流程,一般可以分為三個(gè)階段:設(shè)計(jì),原型化及發(fā)布。設(shè)計(jì)主要是對產(chǎn)品本身以及其中牽涉到的算法、概念進(jìn)行設(shè)計(jì),原型化是對設(shè)計(jì)的可行性進(jìn)行驗(yàn)證或評估,發(fā)布是產(chǎn)品的最終實(shí)現(xiàn)。大部分情況下,整個(gè)開發(fā)流程中需要牽涉到多種軟件開發(fā)工具。比如在設(shè)計(jì)的時(shí)候,可能會使用文本數(shù)學(xué)工具進(jìn)行算法設(shè)計(jì)、建模、仿真,在原型化驗(yàn)證階段,圖形化的開發(fā)環(huán)境現(xiàn)在已經(jīng)成為仿真、驗(yàn)證的主流工具。在發(fā)布階段,可能會采用微處理器或fpga,就會牽涉到相關(guān)的開發(fā)環(huán)境比如c或vhdl,甚至匯編語言。傳統(tǒng)的開發(fā)模式中,文本編程工具占了主流地位。 嵌入式軟件及其開發(fā)人員目前似乎都處于各自發(fā)展的十字路口。venture development公司(vdc)提供的行業(yè)統(tǒng)計(jì)數(shù)字表明,盡管軟件代碼的行數(shù)以每年大約26%的速度增長,但嵌入式開發(fā)人員的年增長速度卻只有8%。對嵌入式系統(tǒng)設(shè)計(jì)人員而言,這兩個(gè)統(tǒng)計(jì)數(shù)字意味著工作量的增多。 不過,事情還遠(yuǎn)不止于此。除了以相對更少的人員完成更多的工作外,嵌入式開發(fā)者還必須在保證產(chǎn)品可靠性的前提下縮短系統(tǒng)設(shè)計(jì)周期。日益激烈的競爭使得今天的電子產(chǎn)品市場對上市時(shí)間的壓力極為敏感。以消費(fèi)市場為例,一個(gè)典型的嵌入式產(chǎn)品設(shè)計(jì)周期是9個(gè)月,而推出產(chǎn)品的市場機(jī)會可能只有1~2個(gè)月之短。如果沒有從一開始就抓住市場先機(jī)推出產(chǎn)品,很可能會造成市場份額的大幅減少,甚至導(dǎo)致產(chǎn)品推廣的失敗。這些因素大大增加了嵌入式系統(tǒng)設(shè)計(jì)“一次設(shè)計(jì)成功” 的壓力,反過來也推動了系統(tǒng)級快速、高效、可靠的驗(yàn)證的需求,系統(tǒng)原型化,也就是創(chuàng)建實(shí)速運(yùn)行在系統(tǒng)環(huán)境中的設(shè)計(jì)原型,這種必要性正日益增加。 fpga在嵌入式系統(tǒng)中的優(yōu)勢 實(shí)現(xiàn)這種原型驗(yàn)證的最具成本效益的技術(shù)是建立一個(gè)基于fpga的原型。fpga是一種具有可重配置邏輯門的芯片,與供應(yīng)商提供功能定義的 asic芯片不同,fpga可根據(jù)每個(gè)應(yīng)用的不同需要而進(jìn)行配置和重新配置。由于fpga允許在硬件中實(shí)現(xiàn)自定義算法,因此它具有精確時(shí)序和同步、快速決策及并行任務(wù)同時(shí)執(zhí)行等優(yōu)點(diǎn)。在pc或帶有實(shí)時(shí)操作系統(tǒng)(rtos)和微處理器的平臺上,處理器必須對多個(gè)任務(wù)進(jìn)行分時(shí)處理,而fpga則可以配置為多個(gè)獨(dú)立的并行計(jì)算資源,簡言之,就像芯片上有多個(gè)微處理器一樣,且這些微處理器都針對特定的任務(wù)進(jìn)行了優(yōu)化。 fpga的性能和靈活性使其成為處理輸入輸出非常有效的技術(shù)。通過自定義數(shù)字協(xié)議進(jìn)行通信和生成pwm信號是這種類型很好的例子,比如,可以對fpga進(jìn)行配置以利用自定義數(shù)字協(xié)議進(jìn)行通信,如對輸入信息進(jìn)行解碼,然后將信息組合編碼作為輸出數(shù)據(jù)包再發(fā)送出去。在一些情況下甚至需要同時(shí)進(jìn)行多個(gè)操作,并使得這些操作互相同步,且和其他輸入和輸出任務(wù)同步。如果是用一個(gè)基于軟件的系統(tǒng)完成此項(xiàng)工作,即使使用rtos,輸出的性能也不一定能滿足要求。fpga對于輸入輸出、并行性和實(shí)時(shí)性的出色性能使得它成為嵌入式系統(tǒng)原型化驗(yàn)證的理想工具。intel新一代多核處理器就選擇了fpga作為其原型化的平臺。 通過labview fpga加速系統(tǒng)原型化 將fpga集成到嵌入式系統(tǒng)最大的挑戰(zhàn)是如何配置fpga的邏輯,以及將傳感器輸入和控制輸出與它連接起來。許多嵌入式系統(tǒng)設(shè)計(jì)人員對于在實(shí)時(shí)操作系統(tǒng)下運(yùn)行的微處理器上編程非常熟練,但他們不喜歡在芯片級對硬件進(jìn)行定義,這需要有設(shè)計(jì)工具和語言如vhdl方面的知識。當(dāng)然,進(jìn)入芯片級領(lǐng)域還意味著需要設(shè)計(jì)和構(gòu)建芯片周邊的電路板,雖然這對于一些嵌入式系統(tǒng)設(shè)計(jì)人員來說已經(jīng)過時(shí)了,但仍然有許多設(shè)計(jì)人員寧愿盡可能地使用現(xiàn)成的硬件,特別是當(dāng)硬件必須精確地測量出傳感器數(shù)據(jù)并對其作數(shù)字化處理時(shí)。 fpga配置工具的比較和選擇 目前有許多fpga配置工具,有些工具需要vhdl或其他語言編碼完成硬件定義,有些工具提供了圖形配置環(huán)境,還有的工具允許你使用熟悉的工具編寫軟件,然后將代碼下載到fpga中。在選擇哪種方式適合時(shí)需要考慮幾個(gè)問題,其中一個(gè)考慮因素是你的背景。你是否是一個(gè)富有經(jīng)驗(yàn)的硬件開發(fā)人員,并對fpga的基本操作有深入的認(rèn)識?如果是,就可以利用低級工具充分發(fā)揮你的經(jīng)驗(yàn)并深入實(shí)地進(jìn)行配置。也許你不是硬件工程師,但你是一位優(yōu)秀的程序員并且能很容易掌握新的編程語言,那么你可能需要選擇一個(gè)能夠讓你充分運(yùn)用數(shù)據(jù)結(jié)構(gòu)和程序細(xì)節(jié)進(jìn)行編程的工具。另外一個(gè)可能是你既不是硬件專家也不是軟件專家,但由于你對整個(gè)系統(tǒng)內(nèi)在的理論或系統(tǒng)所投入的應(yīng)用非常熟悉而來設(shè)計(jì)系統(tǒng),如果是這種情況那么應(yīng)該