新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 通過LabVIEW FPGA加速嵌入式系統(tǒng)原型化的過程

通過LabVIEW FPGA加速嵌入式系統(tǒng)原型化的過程

——
作者:NI中國(guó)市場(chǎng)工程師 湯敏 時(shí)間:2006-12-15 來源:今日電子 收藏

的發(fā)展趨勢(shì)

一般是指一個(gè)獨(dú)立且具有專門用途的系統(tǒng),隨著半導(dǎo)體技術(shù)的飛速發(fā)展,正在滲入現(xiàn)代社會(huì)的各個(gè)方面,被廣泛應(yīng)用于航空航天、通信設(shè)備、消費(fèi)電子、工業(yè)控制、汽車、船舶等領(lǐng)域。巨大的市場(chǎng)需求推動(dòng)了嵌入式系統(tǒng)向更高的技術(shù)水平發(fā)展。

嵌入式系統(tǒng)的開發(fā)流程,一般可以分為三個(gè)階段:設(shè)計(jì),原型化及發(fā)布。設(shè)計(jì)主要是對(duì)產(chǎn)品本身以及其中牽涉到的算法、概念進(jìn)行設(shè)計(jì),原型化是對(duì)設(shè)計(jì)的可行性進(jìn)行驗(yàn)證或評(píng)估,發(fā)布是產(chǎn)品的最終實(shí)現(xiàn)。大部分情況下,整個(gè)開發(fā)流程中需要牽涉到多種軟件開發(fā)工具。比如在設(shè)計(jì)的時(shí)候,可能會(huì)使用文本數(shù)學(xué)工具進(jìn)行算法設(shè)計(jì)、建模、仿真,在原型化驗(yàn)證階段,圖形化的開發(fā)環(huán)境現(xiàn)在已經(jīng)成為仿真、驗(yàn)證的主流工具。在發(fā)布階段,可能會(huì)采用微處理器或,就會(huì)牽涉到相關(guān)的開發(fā)環(huán)境比如C或VHDL,甚至匯編語言。傳統(tǒng)的開發(fā)模式中,文本編程工具占了主流地位。

嵌入式軟件及其開發(fā)人員目前似乎都處于各自發(fā)展的十字路口。Venture Development公司(VDC)提供的行業(yè)統(tǒng)計(jì)數(shù)字表明,盡管軟件代碼的行數(shù)以每年大約26%的速度增長(zhǎng),但嵌入式開發(fā)人員的年增長(zhǎng)速度卻只有8%。對(duì)嵌入式系統(tǒng)設(shè)計(jì)人員而言,這兩個(gè)統(tǒng)計(jì)數(shù)字意味著工作量的增多。

不過,事情還遠(yuǎn)不止于此。除了以相對(duì)更少的人員完成更多的工作外,嵌入式開發(fā)者還必須在保證產(chǎn)品可靠性的前提下縮短系統(tǒng)設(shè)計(jì)周期。日益激烈的競(jìng)爭(zhēng)使得今天的電子產(chǎn)品市場(chǎng)對(duì)上市時(shí)間的壓力極為敏感。以消費(fèi)市場(chǎng)為例,一個(gè)典型的嵌入式產(chǎn)品設(shè)計(jì)周期是9個(gè)月,而推出產(chǎn)品的市場(chǎng)機(jī)會(huì)可能只有1~2個(gè)月之短。如果沒有從一開始就抓住市場(chǎng)先機(jī)推出產(chǎn)品,很可能會(huì)造成市場(chǎng)份額的大幅減少,甚至導(dǎo)致產(chǎn)品推廣的失敗。這些因素大大增加了嵌入式系統(tǒng)設(shè)計(jì)“一次設(shè)計(jì)成功”的壓力,反過來也推動(dòng)了系統(tǒng)級(jí)快速、高效、可靠的驗(yàn)證的需求,,也就是創(chuàng)建實(shí)速運(yùn)行在系統(tǒng)環(huán)境中的設(shè)計(jì)原型,這種必要性正日益增加。

在嵌入式系統(tǒng)中的優(yōu)勢(shì)

實(shí)現(xiàn)這種原型驗(yàn)證的最具成本效益的技術(shù)是建立一個(gè)基于的原型。FPGA是一種具有可重配置邏輯門的芯片,與供應(yīng)商提供功能定義的ASIC芯片不同,F(xiàn)PGA可根據(jù)每個(gè)應(yīng)用的不同需要而進(jìn)行配置和重新配置。由于FPGA允許在硬件中實(shí)現(xiàn)自定義算法,因此它具有精確時(shí)序和同步、快速?zèng)Q策及并行任務(wù)同時(shí)執(zhí)行等優(yōu)點(diǎn)。在PC或帶有實(shí)時(shí)操作系統(tǒng)(RTOS)和微處理器的平臺(tái)上,處理器必須對(duì)多個(gè)任務(wù)進(jìn)行分時(shí)處理,而FPGA則可以配置為多個(gè)獨(dú)立的并行計(jì)算資源,簡(jiǎn)言之,就像芯片上有多個(gè)微處理器一樣,且這些微處理器都針對(duì)特定的任務(wù)進(jìn)行了優(yōu)化。

FPGA的性能和靈活性使其成為處理輸入輸出非常有效的技術(shù)。通過自定義數(shù)字協(xié)議進(jìn)行通信和生成PWM信號(hào)是這種類型很好的例子,比如,可以對(duì)FPGA進(jìn)行配置以利用自定義數(shù)字協(xié)議進(jìn)行通信,如對(duì)輸入信息進(jìn)行解碼,然后將信息組合編碼作為輸出數(shù)據(jù)包再發(fā)送出去。在一些情況下甚至需要同時(shí)進(jìn)行多個(gè)操作,并使得這些操作互相同步,且和其他輸入和輸出任務(wù)同步。如果是用一個(gè)基于軟件的系統(tǒng)完成此項(xiàng)工作,即使使用RTOS,輸出的性能也不一定能滿足要求。FPGA對(duì)于輸入輸出、并行性和實(shí)時(shí)性的出色性能使得它成為嵌入式驗(yàn)證的理想工具。Intel新一代多核處理器就選擇了FPGA作為其原型化的平臺(tái)。

通過 FPGA加速

將FPGA集成到嵌入式系統(tǒng)最大的挑戰(zhàn)是如何配置FPGA的邏輯,以及將傳感器輸入和控制輸出與它連接起來。許多嵌入式系統(tǒng)設(shè)計(jì)人員對(duì)于在實(shí)時(shí)操作系統(tǒng)下運(yùn)行的微處理器上編程非常熟練,但他們不喜歡在芯片級(jí)對(duì)硬件進(jìn)行定義,這需要有設(shè)計(jì)工具和語言如VHDL方面的知識(shí)。當(dāng)然,進(jìn)入芯片級(jí)領(lǐng)域還意味著需要設(shè)計(jì)和構(gòu)建芯片周邊的電路板,雖然這對(duì)于一些嵌入式系統(tǒng)設(shè)計(jì)人員來說已經(jīng)過時(shí)了,但仍然有許多設(shè)計(jì)人員寧愿盡可能地使用現(xiàn)成的硬件,特別是當(dāng)硬件必須精確地測(cè)量出傳感器數(shù)據(jù)并對(duì)其作數(shù)字化處理時(shí)。

FPGA配置工具的比較和選擇

目前有許多FPGA配置工具,有些工具需要VHDL或其他語言編碼完成硬件定義,有些工具提供了圖形配置環(huán)境,還有的工具允許你使用熟悉的工具編寫軟件,然后將代碼下載到FPGA中。在選擇哪種方式適合時(shí)需要考慮幾個(gè)問題,其中一個(gè)考慮因素是你的背景。你是否是一個(gè)富有經(jīng)驗(yàn)的硬件開發(fā)人員,并對(duì)FPGA的基本操作有深入的認(rèn)識(shí)?如果是,就可以利用低級(jí)工具充分發(fā)揮你的經(jīng)驗(yàn)并深入實(shí)地進(jìn)行配置。也許你不是硬件工程師,但你是一位優(yōu)秀的程序員并且能很容易掌握新的編程語言,那么你可能需要選擇一個(gè)能夠讓你充分運(yùn)用數(shù)據(jù)結(jié)構(gòu)和程序細(xì)節(jié)進(jìn)行編程的工具。另外一個(gè)可能是你既不是硬件專家也不是軟件專家,但由于你對(duì)整個(gè)系統(tǒng)內(nèi)在的理論或系統(tǒng)所投入的應(yīng)用非常熟悉而來設(shè)計(jì)系統(tǒng),如果是這種情況,

那么應(yīng)該選擇一個(gè)可以讓你以自己的語言進(jìn)行設(shè)計(jì)的工具,而不必學(xué)習(xí)復(fù)雜的FPGA或硬件描述語言。

另一個(gè)很重要的考慮因素是你計(jì)劃設(shè)計(jì)的系統(tǒng)所要求達(dá)到的功能是什么。如果正在設(shè)計(jì)多個(gè)不同類型的系統(tǒng),可能通用硬件設(shè)計(jì)工具最為適合。有許多人花費(fèi)很多時(shí)間成為使用這些工具的專家,你也可以加入其中。如果想將涉及面縮小一些,那么也有工具去處理那些“常規(guī)”事務(wù),而讓你專注于可以自己的研究領(lǐng)域。舉個(gè)例子,有許多工具可以幫助你很快開發(fā)出信號(hào)處理系統(tǒng)并將其發(fā)布到FPGA中去,也有一些經(jīng)優(yōu)化的工具專門用來增加測(cè)量和控制功能。

還需要考慮系統(tǒng)配置的問題。要有怎樣的尺寸?與PC連接嗎?有的FPGA開發(fā)工具要求你開發(fā)FPGA周邊所有硬件,另一些則要求使用一種特殊的內(nèi)建有FPGA的電路板。對(duì)于后者,很多和板上其他資源如I/O與總線連接的工作都已做好,這樣可以大大加快開發(fā)的進(jìn)度,因?yàn)槟銦o須關(guān)注諸如抗噪性、穩(wěn)定時(shí)間和串?dāng)_之類的事項(xiàng)。如果系統(tǒng)需要大量與運(yùn)行Windows或RTOS的PC連接,那么應(yīng)選擇那些能夠跨平臺(tái)的設(shè)計(jì)工具。

FPGA圖形化的開發(fā)環(huán)境

過去,對(duì)于FPGA的編程需要深入掌握VHDL或者其他的低級(jí)設(shè)計(jì)工具,這需要一個(gè)較長(zhǎng)的學(xué)習(xí)過程。通過 FPGA,可以用圖形化的環(huán)境來定義FPGA邏輯,使更多的工程師們不需要掌握VHDL或硬件設(shè)計(jì)的專門知識(shí),就能夠利用FPGA技術(shù)來進(jìn)行系統(tǒng)的設(shè)計(jì)和原型化。

另外,通過和LabVIEW中的一些工具包相配合,比如數(shù)字濾波器設(shè)計(jì)工具包,LabVIEW FPGA可以幫助工程師很快開發(fā)出信號(hào)處理系統(tǒng)并將其發(fā)布到FPGA中去,并提供了很多專門的測(cè)量和控制函數(shù)。比如,LabVIEW FPGA內(nèi)置了多種函數(shù),可用于閉環(huán)PID控制、5階FIR濾波、一維查找表、線性插值、過零檢測(cè)和正弦波的直接數(shù)字合成。

對(duì)于系統(tǒng)的配置和I/O連接,工程師們可以利用LabVIEW FPGA和NI RIO設(shè)備來大大加快開發(fā)的進(jìn)度,因?yàn)镹I RIO設(shè)備將I/O與總線連接的工作都已做好,工程師們可以通過LabVIEW FPGA快速的定制I/O或控制硬件電路,而且這些電路所具有的性能媲美經(jīng)廠商定義并優(yōu)化的硬件性能。使用LabVIEW FPGA模塊,工程師可以在運(yùn)行Windows的主機(jī)上開發(fā)FPGA程序,然后用LabVIEW 進(jìn)行編譯并在硬件上運(yùn)行這些代碼程序。由于LabVIEW FPGA是用硬件來實(shí)現(xiàn)程序算法,它對(duì)于算法的執(zhí)行性能要比基于軟件的系統(tǒng)好得多。

對(duì)于時(shí)間和并行性的支持

和傳統(tǒng)的文本編程相比,LabVIEW天生是一種并行結(jié)構(gòu)的編程語言,非常適用于FPGA的并行結(jié)構(gòu),用以實(shí)現(xiàn)同步或異步的并行任務(wù)??紤]一個(gè)包含8PID控制循環(huán)的應(yīng)用,如圖1所示,應(yīng)用程序?qū)⒃贔PGA上創(chuàng)建了2個(gè)完全獨(dú)立的處理器,可以和FPGA時(shí)鐘同步或異步的運(yùn)行。甚至在同一個(gè)while循環(huán)或類似結(jié)構(gòu)中,我們都可以通過對(duì)代碼的流程線操作進(jìn)行并行化來提高執(zhí)行速度。將處理過程分割成數(shù)個(gè)片斷,并在連續(xù)的循環(huán)中依次執(zhí)行這些片斷。如圖1所示,我們將控制算法就分成了2個(gè)片斷。while循環(huán)的每次執(zhí)行都會(huì)更新PID控制輸出,但是模擬輸入(AI)及控制算法1,與模擬輸出(AO)及控制算法2是并行執(zhí)行的。結(jié)果顯示,通過這種方式,算法的執(zhí)行速度要比順序處理的結(jié)構(gòu)快得多。

 代碼流程線操作的并行化

圖1  代碼流程線操作的并行化

通過LabVIEW FPGA和NI RIO設(shè)備進(jìn)行原型化

很多設(shè)計(jì)比預(yù)期時(shí)間晚上市,并且有一些在投入市場(chǎng)以后發(fā)現(xiàn)未達(dá)到預(yù)定的功能和指標(biāo),因此必須采取一定的措施來加快設(shè)計(jì)流程,提高設(shè)計(jì)質(zhì)量。一種解決方案就是更早地將真實(shí)世界的信號(hào)和硬件引入到設(shè)計(jì)流程之中,進(jìn)行更好的系統(tǒng)原型化,從而在早期就發(fā)現(xiàn)并修正潛在的問題。

但是在任何設(shè)計(jì)和開發(fā)流程中,在基于軟件設(shè)計(jì)和仿真工具的虛擬世界,與電子或機(jī)械測(cè)量的物理世界之間有一個(gè)很大的鴻溝。LabVIEW平臺(tái)最明顯的價(jià)值就是在虛擬世界和物理世界間的鴻溝之間建立一座橋梁。物理測(cè)量是與設(shè)計(jì)和仿真完全不同的挑戰(zhàn),要求與廣泛的測(cè)量和控制硬件緊密集成,并以優(yōu)化的性能處理大量的通道數(shù)或超高速吞吐量。LabVIEW平臺(tái)經(jīng)過不斷演進(jìn),在物理測(cè)量領(lǐng)域提供極高的性能和靈活性。更重要的是,LabVIEW平臺(tái)是開放的,因此,設(shè)計(jì)人員可以將測(cè)量數(shù)據(jù)與仿真結(jié)果相映射,甚至互換仿真和物理數(shù)據(jù),以用于設(shè)計(jì)中的行為建模,或者以仿真的激勵(lì)驅(qū)動(dòng)物理測(cè)試,從而更為有效快速的進(jìn)行系統(tǒng)原型構(gòu)建。

嵌入式系統(tǒng)開發(fā)人員如果要定制硬件用于最終的發(fā)布,很難同時(shí)并行開發(fā)軟件和硬件,因?yàn)橹钡较到y(tǒng)集成步驟之前,軟件從未在有代表性的硬件上經(jīng)過測(cè)試。此外,設(shè)計(jì)師們也不希望軟件開發(fā)是純理論的進(jìn)行,如果直到系統(tǒng)集成測(cè)試的時(shí)候才引入I/O,用真實(shí)世界的信號(hào)檢驗(yàn)設(shè)計(jì),一旦發(fā)現(xiàn)存在問題,那就意味著很難在預(yù)期時(shí)間完成設(shè)計(jì)任務(wù)了。

大多數(shù)設(shè)計(jì)師當(dāng)前用評(píng)估板來進(jìn)行系統(tǒng)的原型化,但是,原型板往往只具備少量的模擬和數(shù)字I/O通道,也很少支持視覺、運(yùn)動(dòng)或同步的功能。此外,設(shè)計(jì)師經(jīng)常因?yàn)樾枰獋鞲衅骰蛱厥釯/O的支持而花費(fèi)大量時(shí)間來開發(fā)定制的原型板,而這些僅僅是為了設(shè)計(jì)概念的驗(yàn)證。使用靈活的、商業(yè)化的原型平臺(tái)可以大大簡(jiǎn)化這個(gè)過程,消除其中硬件驗(yàn)證和板級(jí)設(shè)計(jì)的大量工作。對(duì)于大多數(shù)系統(tǒng),原型化平臺(tái)必須包括最終發(fā)布系統(tǒng)的同樣部件,比如用于執(zhí)行算法的實(shí)時(shí)處理器、用于高速處理的可編程邏輯器件,或者將實(shí)時(shí)處理器接口到其他部件。因此,如果這個(gè)商業(yè)化的系統(tǒng)不能滿足所有的要求,那么這個(gè)平臺(tái)必須是可擴(kuò)展的,并且支持自定義。NI提供了各種硬件平臺(tái)與LabVIEW集成,完成從設(shè)計(jì)、原型到部署的全過程。例如使用LabVIEW和NI可重復(fù)配置I/O(RIO)設(shè)備或NI CompactRIO平臺(tái),可以快速而便捷地創(chuàng)建嵌入式系統(tǒng)的原型。從圖2可以看到,通過LabVIEW FPGA可以對(duì)多種NI RIO設(shè)備進(jìn)行配置。

LabVIEW FPGA程序框圖和RIO硬件平臺(tái)

圖2  LabVIEW F

PGA程序框圖和RIO硬件平臺(tái)

一個(gè)客戶案例是Boston Engineering公司。他們要開發(fā)一種牽力控制機(jī)用于數(shù)碼照片打印系統(tǒng)。其中,彩色墨盒通過驅(qū)動(dòng)馬達(dá)饋送到打印頭,由卷帶電機(jī)和推進(jìn)電機(jī)來控制牽力。切割機(jī)底盤的振動(dòng)、每次打印的照片數(shù)目和每個(gè)電機(jī)的速度變化都會(huì)影響到底層的牽力??刂葡到y(tǒng)通過兩個(gè)電機(jī)的位置來保證卷帶和推進(jìn)的牽力處于設(shè)定范圍之內(nèi),否則就會(huì)有色差。設(shè)計(jì)的牽力控制硬件需要兩個(gè)脈寬調(diào)制輸出來控制電機(jī),兩個(gè)編碼器將轉(zhuǎn)速反饋給電機(jī),兩個(gè)模擬輸入通道連接霍爾傳感器用來測(cè)量位置,兩根數(shù)字線用于信令。

由于傳統(tǒng)的原型板無法滿足這些要求,所以需要使用可以自定義I/O的原型平臺(tái),因此他們使用CompactRIO平臺(tái)來進(jìn)行原型化工作。CompactRIO系統(tǒng)包含一個(gè)266MHz的嵌入式微處理器、以太網(wǎng)控制器,以及背板上的1百萬門FPGA。通過LabVIEW FPGA對(duì)背板上的FPGA編程,他們的控制、機(jī)械和電子工程師就可以直接參與到編程工作中。他們?cè)谇度胧娇刂破髦羞\(yùn)行管理程序,在FPGA中運(yùn)行電機(jī)控制算法,這種資源配置使得原型化構(gòu)建和最終系統(tǒng)發(fā)布在編程模式上是非常相似的。為了在FPGA中運(yùn)行控制算法,他們將ZPK(zero-pole-gain)模型轉(zhuǎn)化為L(zhǎng)abVIEW數(shù)字濾波器設(shè)計(jì)工具包中提供的一種濾波器,由于這個(gè)工具包支持LabVIEW FPGA代碼的自動(dòng)生成和優(yōu)化,所以原先的ZPK模型就可以直接轉(zhuǎn)化成能夠在FPGA上運(yùn)行的代碼。另外,他們還使用這個(gè)工具包對(duì)原先的浮點(diǎn)算法進(jìn)行了定點(diǎn)轉(zhuǎn)換,以節(jié)約FPGA資源,并對(duì)量化后的模型進(jìn)行測(cè)試、驗(yàn)證、修正從而得到預(yù)期的結(jié)果。通過這種原型化方式,他們節(jié)約了大量的開發(fā)時(shí)間。

結(jié)論

隨著嵌入式系統(tǒng)復(fù)雜性的不斷增加,設(shè)計(jì)師們正在面對(duì)嚴(yán)峻的挑戰(zhàn)。產(chǎn)品上市時(shí)間的壓力大大增加了嵌入式系統(tǒng)設(shè)計(jì)“一次設(shè)計(jì)成功”的壓力,反過來也推動(dòng)了系統(tǒng)級(jí)快速、高效、可靠的驗(yàn)證的需求,系統(tǒng)原型化的必要性正日益增大。由于FPGA具有高性能、可重新配置、小尺寸和較低的工程開發(fā)成本等諸多優(yōu)異特性,特別是對(duì)于輸入輸出、并行性和實(shí)時(shí)性的出色性能使得它成為嵌入式系統(tǒng)原型化驗(yàn)證的理想工具。

使用LabVIEW FPGA模塊,工程師們可以在運(yùn)行Windows的主機(jī)上開發(fā)FPGA程序,然后用LabVIEW 進(jìn)行編譯并在硬件上運(yùn)行這些代碼程序。利用LabVIEW FPGA模塊,無須先掌握硬件設(shè)計(jì)知識(shí)或VHDL,就可以自己定制I/O或控制硬件電路,加速嵌入式系統(tǒng)原型化的過程。圖形化的編程模式使得更多的工程師和科學(xué)家可以使用他們的專業(yè)知識(shí)開發(fā)嵌入式應(yīng)用。使用統(tǒng)一的環(huán)境進(jìn)行設(shè)計(jì)、原型到部署,LabVIEW為嵌入式系統(tǒng)開發(fā)提供了極為高效的開發(fā)方式。

霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


霍爾傳感器相關(guān)文章:霍爾傳感器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉