1. 嵌入式系統的發展趨勢
嵌入式系統一般是指一個獨立且具有專門用途的系統,隨著半導體技術的飛速發展,嵌入式系統正在滲入現代社會的各個方面,被廣泛地應用于航空航天、通信設備、消費電子、工業控制、汽車、船舶等領域。巨大的市場需求推動了嵌入式系統向更高的技術水平發展。
嵌入式系統的開發流程,一般可以分為三個階段:設計,原型化、以及發布。設計主要是對產品本身以及其中牽涉到的算法、概念進行設計,原型化是對設計的可行性進行驗證或評估,發布是產品的最終實現。大部分情況下整個開發流程中需要牽涉到多種軟件開發工具。比如在設計的時候,可能會使用文本數學工具進行算法設計、建模、仿真,在原型化驗證階段,圖形化的開發環境現在已經成為仿真、驗證的主流工具。在發布階段,可能會采用微處理器或FPGA,就會牽涉到相關的開發環境比如C或VHDL,甚至匯編。傳統的開發模式中,文本編程工具占了主流地位。
嵌入式軟件及其開發人員目前似乎都處于各自發展的十字路口。Venture Development公司(VDC)提供的行業統計數字表明,盡管軟件代碼的行數以每年大約26%的速度增長,但嵌入式開發人員的年增長速度卻只有8%。對嵌入式系統設計人員而言,這兩個統計數字意味著工作量的增多。
不過,事情還遠不止此。除了以相對更少的人員完成更多的工作外,嵌入式開發者還必須在保證產品可靠性的前提下縮短系統設計周期。日益激烈的競爭使得今天的電子產品市場對上市時間的壓力極為敏感。以消費市場為例,一個典型的嵌入式產品設計周期是9個月,而推出產品的市場機會可能只有1到2個月之短。如果沒有一開始就抓住市場先機推出產品,很可能會造成市場份額的大幅減少,甚至導致產品推廣的失敗。這些因素大大增加了嵌入式系統設計“一次設計成功”的壓力,反過來也推動了系統級快速、高效、可靠的驗證的需求,系統原型化,也就是創建實速運行在系統環境中的設計原型,這種必要性正日益增大。
2. FPGA在嵌入式系統中的優勢
實現這種原型驗證的最具成本效益的技術是建立一個基于FPGA的原型。FPGA是一種具有可重配置邏輯門的芯片,與供應商提供功能定義的ASIC芯片不同,FPGA可根據每個應用的不同需要而進行配置和重新配置。由于FPGA允許在硬件中實現自定義算法,因此它具有精確時序和同步、快速決策及并行任務同時執行等優點。在PC或帶有實時操作系統(RTOS)和微處理器的平臺上,處理器必須對多個任務進行分時處理,而FPGA則可以配置為多個獨立的并行計算資源,簡言之,就像芯片上有多個微處理器一樣,且這些微處理器都針對特定的任務進行了優化。
FPGA的性能和靈活性使得它們成為處理輸入輸出非常有效的技術。通過自定義數字協議進行通信和生成PWM信號是這種類型很好的例子,比如,可以對FPGA進行配置以利用自定義數字協議進行通信,如對輸入信息進行解碼,然后將信息組合編碼作為輸出數據包再發送出去。在一些情況下甚至需要同時進行多個操作,并使得這些操作互相同步,且和其它輸入和輸出任務同步。如果是用一個基于軟件的系統完成此項工作,即使使用RTOS,輸出的性能也可能不一定夠。FPGA對于輸入輸出、并行性和實時性的出色性能使得它成為嵌入式系統原型化驗證的理想工具。Intel新一代多核處理器就選擇了FPGA作為其原型化的平臺。
3. 通過圖形化開發環境——LabVIEW FPGA加速系統原型化
將FPGA集成到嵌入式系統最大的挑戰是如何配置FPGA的邏輯,以及將傳感器輸入和控制輸出與它連接起來。許多嵌入式系統設計人員對于在實時操作系統下運行的微處理器上編程非常熟練,但他們不喜歡在芯片級對硬件進行定義,這需要有設計工具和語言如VHDL方面的知識。當然,冒昧進入芯片級領域還意味著需要設計和構建芯片周邊的電路板,雖然這對于一些嵌入式系統設計人員來說已經過時了,但仍然有許多設計人員寧愿盡可能地使用現成的硬件,特別是當硬件必須精確地測量出傳感器數據并對其作數字化處理時。
FPGA配置工具的比較和選擇
目前有許多FPGA配置工具,有些工具需要VHDL或其它語言編碼完成硬件定義,有些工具提供了圖形配置環境,還有的工具允許你使用熟悉的工具編寫軟件,然后將代碼下載到FPGA中。在選擇哪種方式適合時需要考慮幾個問題,其中一個考慮因素是你的背景。你是否是一個富有經驗的硬件開發人員并對FPGA的基本操作有深入的認識?如果是,就可以利用低級工具充分發揮你的經驗并深入實地進行配置。也許你不是硬件工程師,但你是一位優秀的程序員并且能很容易掌握新的編程語言,那么你可能需要選擇一個能夠讓你充分運用數據結構和程序細節進行編程的工具。另外一個可能是你既不是硬件專家也不是軟件專家,但由于你對整個系統內在的理論或系統所投入的應用非常熟悉而來設計系統,如果是這種情況,那么應該選擇一個可以讓你以自己的語言進行設計的工具,而不必學習復雜的FPGA或硬件描述語言。
另一個很重要的考慮因素是你計劃設計的系統所要求達到的功能是什么。如果正在設計多個不同類型的系統,可能通用硬件設計工具最為適合。有許多人花費很多時間成為使用這些工具的專家,你也可以加入其中。如果想將涉及面縮小一些,那么也有工具去處理那些“常規”事務,而讓你專注于可以自己的研究領域。舉個例子,有許多工具可以幫助你很快開發出信號處理系統并將其發布到FPGA中去,也有一些經優化的工具專門用來增加測量和控制功能。
還需要考慮系統配置的問題。要有怎樣的尺寸?與PC連接嗎?有的FPGA開發工具要求你開發FPGA周邊所有硬件,另一些則要求使用一種特殊的內建有FPGA的電路板。對于后者,很多和板上其它資源如I/O與總線連接的工作都已做好,這樣可以大大加快開發的進度,因為你無須關注諸如抗噪性、穩定時間和串擾之類的事項。如果系統需要大量與運行Windows或RTOS的PC連接,那么應選擇那些能夠跨平臺的設計工具。
LabVIEW FPGA圖形化的開發環境
20年來,科學家和工程師一直在使用LabVIEW為他們的設計實驗室、驗證實驗室和生產現場構建自動化數據采集和儀器控制解決方案,并在這些應用領域成為業界的事實標準。其核心在于,LabVIEW圖形化編程語言使得沒有經過正規編程培訓或相關背景的技術專家能夠快速搭建高級自動化測量和控制系統。
過去,對于FPGA的編程需要深入掌握VHDL或者其他的低級設計工具,這需要一個較長的學習過程。通過LabVIEW FPGA,可以用圖形化的環境來定義FPGA邏輯,使更多的工程師們不需要掌握VHDL或硬件設計的專門知識,就能夠利用FPGA技術來進行系統的設計和原型化。工程師們可以用圖形化語言進行編程,而不必學習復雜的FPGA或硬件描述語言。
另外,通過和LabVIEW中的一些工具包相配合,比如數字濾波器設計工具包,LabVIEW FPGA可以幫助工程師很快開發出信號處理系統并將其發布到FPGA中去,并提供了很多專門的測量和控制函數。比如,LabVIEW FPGA內置了多種函數,可用于閉環PID控制,5階FIR濾波,一維查找表,線性插值,過零檢測和正弦波的直接數字合成,使得工程師們不用花太多時間在一些“常規”事務上,而可以專注于自己的研究領域。
對于系統的配置和I/O連接,工程師們可以利用LabVIEW FPGA和NI RIO設備來大大加快開發的進度,因為NI RIO設備將I/O與總線連接的工作都已做好,工程師們可以通過LabVIEW FPGA快速的定制I/O或控制硬件電路,而且這些電路所具有的性能媲美經廠商定義并優化的硬件性能。使用LabVIEW FPGA模塊,工程師可以在運行Windows的主機上開發FPGA程序,然后用LabVIEW 進行編譯并在硬件上運行這些代碼程序。由于LabVIEW FPGA是用硬件來實現程序算法,它對于算法的執行性能要比基于軟件的系統好得多。
對于時間和并行性的支持
和傳統的文本編程相比,LabVIEW天生是一種并行結構的編程語言,非常適用于FPGA的并行結構,用以實現同步或異步的并行任務。考慮一個包含8PID控制循環的應用,如圖1所示,應用程序將在FPGA上創建了2個完全獨立的處理器,可以和FPGA時鐘同步或異步的運行。甚至在同一個while循環或類似結構中,我們都可以通過對代碼的流程線操作進行并行化來提高執行速度。將處理過程分割成數個片斷,并在連續的循環中依次執行這些片斷。如圖1所示,我們將控制算法就分成了2個片斷。While循環的每次執行都會更新PID控制輸出,但是模擬輸入(AI)及控制算法1,與模擬輸出(AO)及控制算法2是并行執行的。結果顯示,通過這種方式,算法的執行速度要比順序處理的結構快得多。
圖 1. 代碼流程線操作的并行化
通過LabVIEW FPGA和NI RIO設備對嵌入式系統進行原型化
很多設計比預期時間晚上市,并且有一些在投入市場以后發現未達到預定的功能和指標,因此必須采取一定的措施來加快設計流程,提高設計質量。一種解決方案就是更早地將真實世界的信號和硬件引入到設計流程之中,進行更好的系統原型化,從而在早期就發現并修正潛在的問題。
但是在任何設計和開發流程中,在基于軟件設計和仿真工具的虛擬世界,與電子或機械測量的物理世界之間有一個很大的鴻溝。LabVIEW平臺最明顯的價值就是在虛擬世界和物理世界間的鴻溝之間建立一座橋梁。物理測量是與設計和仿真完全不同的挑戰,要求與廣泛的測量和控制硬件緊密集成,并以優化的性能處理大量的通道數或超高速吞吐量。LabVIEW平臺經過不斷演進,在物理測量領域提供無與匹敵的性能和靈活性。更重要的是,LabVIEW平臺是開放的,因此,設計人員可以將測量數據與仿真結果相映射,甚至互換仿真和物理數據,以用于設計中的行為建模,或者以仿真的激勵驅動物理測試,從而更為有效快速的進行系統原型構建。
嵌入式系統開發人員如果要定制硬件用于最終的發布,很難同時并行的開發軟件和硬件,因為直到系統集成步驟之前,軟件從未在有代表性的硬件上經過測試。此外,設計師們也不希望軟件開發是純理論的進行,如果直到系統集成測試的時候才引入I/O用真實世界的信號檢驗設計,一旦發現存在問題,那就意味著很難在預期時間完成設計任務了。
大多數設計師當前用評估板來進行系統的原型化,但是,原型板往往只具備少量的模擬和數字I/O通道,也很少支持視覺,運動或同步的功能。此外,設計師經常因為需要傳感器或特殊I/O的支持而花費大量時間來開發定制的原型板,而這些僅僅是為了設計概念的驗證。使用靈活的、商業化的原型平臺可以大大簡化這個過程,消除其中硬件驗證和板級設計的大量工作。對于大多數系統,原型化平臺必須包括最終發布系統的同樣部件,比如用于執行算法的實時處理器、用于高速處理的可編程邏輯器件,或者將實時處理器接口到其他部件。因此,如果這個商業化的系統不能滿足所有的要求,那么這個平臺必須是可擴展的,并且支持自定義。NI提供了各種硬件平臺與LabVIEW集成,完成從設計、原型到部署的全過程。例如使用LabVIEW和NI 可重復配置I/O(RIO)設備或NI CompactRIO平臺,可以快速而便捷地創建嵌入式系統的原型。從圖2可以看到,通過LabVIEW FPGA可以對多種NI RIO 設備進行配置。
圖2. LabVIEW FPGA 程序框圖 和RIO 硬件平臺
一個客戶案例是Boston Engineering公司。他們要開發一種牽力控制機用于數碼照片打印系統。其中,彩色墨盒通過驅動馬達饋送到打印頭,由卷帶電機和推進電機來控制牽力。切割機底盤的振動、每次打印的照片數目和每個電機的速度變化都會影響到底層的牽力。控制系統通過兩個電機的位置來保證卷帶和推進的牽力處于設定范圍之內,否則就會有色差。設計的牽力控制硬件需要兩個脈寬調制輸出來控制電機,兩個編碼器將轉速反饋給電機,兩個模擬輸入通道連接霍爾傳感器用來測量位置,兩根數字線用于信令。由于傳統的原型板無法滿足這些要求,所以需要使用可以自定義I/O的原型平臺,因此他們使用CompactRIO平臺來進行原型化工作。CompactRIO系統包含一個266 MHz的嵌入式微處理器,以太網控制器,以及背板上的1M 門FPGA。通過LabVIEW FPGA對背板上的FPGA編程,由于LabVIEW FPGA是一種圖形化的編程環境,不需要VHDL的經驗,他們的控制、機械和電子工程師就可以直接參與到編程工作中。他們在嵌入式控制器中運行管理程序,在FPGA中運行電機控制算法,這種資源配置使得原型化構建和最終系統發布在編程模式上是非常相似的。為了在FPGA中運行控制算法,他們將ZPK(zero-pole-gain)模型轉化為LabVIEW數字濾波器設計工具包中提供的一種濾波器,由于這個工具包支持LabVIEW FPGA代碼的自動生成和優化,所以原先的ZPK模型就可以直接轉化成能夠在FPGA上運行的代碼。另外,他們還使用這個工具包對原先的浮點算法進行了定點轉換,以節約FPGA 資源,并對量化后的模型進行測試、驗證、修正從而得到預期的結果。通過這種原型化方式,他們節約了大量的開發時間。
4. 結論
隨著嵌入式系統復雜性的不斷增加,設計師們正在面對嚴峻的挑戰。產品上市時間的壓力大大增加了嵌入式系統設計“一次設計成功”的壓力,反過來也推動了系統級快速、高效、可靠的驗證的需求,系統原型化的必要性正日益增大。由于FPGA具有高性能、可重新配置、小尺寸和較低的工程開發成本等諸多優異特性,特別是對于輸入輸出、并行性和實時性的出色性能使得它成為嵌入式系統原型化驗證的理想工具。
LabVIEW FPGA模塊為NI RIO硬件上的FPGA芯片提供了圖形化的開發環境。使用LabVIEW FPGA模塊,工程師們可以在運行Windows的主機上開發FPGA程序,然后用LabVIEW 進行編譯并在硬件上運行這些代碼程序。利用LabVIEW FPGA模塊,無需先掌握硬件設計知識或VHDL,就可以自己定制I/O或控制硬件電路,加速嵌入式系統原型化的過程。圖形化的編程模式使得更多的工程師和科學家可以使用他們的專業知識開發嵌入式應用。使用統一的環境進行設計、原型到發布,LabVIEW為嵌入式系統開發提供了前所未有的革新方式。
評論
查看更多