為什么要創建功能性原型呢?對于這個問題,我們首先要從嵌入式應用及其開發方式談起。 談到嵌入式系統,其范疇和定義是非常廣泛的,我們首先想到的往往是日常使用的手機,mp3,數碼相機這些小型的消費電子產品,但是嵌入式系統的范圍其實要廣泛得多,醫院里的心電監視儀,B超設備,核磁共振儀也是嵌入式系統,甚至汽車引擎控制器,智能移動機器人、風力發電機的主控與監測設備都是嵌入式系統。這里我們主要針對的是一些專業領域中,對系統的實時性、確定性、可靠性有較高要求的嵌入式應用。根據其需求和特點,我們把這些應用分為三類,分別是實時控制、比如汽車和航空控制器設計中經常涉及的快速控制原型、硬件在環仿真,還有屬于前沿研究領域的移動機器人、無人車、無人機控制等等;第二類是在線監測,比如結構監測,包括建筑和橋梁、公路等基礎設施的結構健康監測,地震監測,或者用于設備和機器維護的機器狀態監測等等;此外集成的測試與控制也是非常廣泛的一類應用,比如一些風洞測試,盡管主要是實時數據采集,但也要做快速計算出是否接近共振條件,從而控制風速以免損壞設備 我們剛才列舉了專業領域的一些典型實時與嵌入式應用,這些應用的開發從比較概括的說可以分為兩個階段,階段一通常由領域專家,比如生物醫學、無線通信或汽車工程方面的研發人員,使用文本數學工具進行算法設計、建模、仿真。這一階段的成果是特定的、達到一定目的的浮點算法。通常這部分的工作以軟件平臺為主。階段二的主要任務將算法移植到實時嵌入式硬件平臺之中加以實現,這部分任務通常由具有電子工程背景的嵌入式系統的開發人員加以完成,硬件平臺常會采用微處理器,微控制器或FPGA,就會牽涉到相關的開發環境比如C或VHDL,甚至匯編。 因此,在這兩個階段之間存在著一個銜接的問題。一方面,從文本數學平臺下開發的浮點算法需要移植為能夠在嵌入式系統下運行的代碼,比如C代碼甚至定點算法,這個轉換過程的銜接,如果嵌入式系統開發人員對專業領域知識缺乏一定深度的了解和掌握,往往會產生算法移植的偏差,甚至導致返工。另一方面,這樣的銜接和移植并不是一次性就能完成的,而且需要多次的循環往復,在階段二發現算法存在的問題后,需要領域專家修改調整算法,然后再進行重新的移植和系統實現,其工作量可能相當的大。 ![]() 在這個過程中,系統開發所面臨的挑戰和需要解決的問題主要包括兩方面。對于設計階段,我們需要在早期階段就能引入實際數據并在其基礎上調整模型,以減少算法移植后的改動,從而減少兩個階段之間的循環往復。對于實現階段,由于需要用實時系統的編程語言,且確定性執行的編程、調試和驗證很困難,而且實際系統往往需要連接到多種傳感器和接口,因此從離線仿真到實際系統實現之間存在的很大的距離,而且前端設計的變化經常會導致后期的大量返工,導致開發周期的延遲。據《嵌入式軟件發展:問題與挑戰》(Embedded Software Development: Issues and Challenges, 2003年7月)統計,將近50%的設計投放市場的時間都太晚甚至沒有投放市場,而30%的設計在正式發布后都是不成功的。顯然,產品設計過程中總會充滿著沒有預料到的困難。 因此,一種更好的開發方法是在開發流程中引入原型階段,也就是在開發的早期階段創建實速運行在系統環境中的設計原型,從而進行系統級快速、高效、可靠的驗證。比如說,我們在開發引擎控制器的時候,在進行板級設計完成最終系統之前,先將控制算法下載到一定的硬件平臺,并連接到真實的受控對象和各種傳感器,在接近實際運行條件的情況下,對算法進行早期、硬件級的評估和驗證。 ![]() 通過引入原型階段,我們可以在開發早期進行覆蓋面更廣的測試,及時發現問題,減少后期風險,從而可以從總體上縮短開發時間,降低開發成本,并提高產品和系統的可靠性和質量。 一種更為釜底抽薪的解決方案是將設計和實現這兩個階段的工作移植到統一開發平臺之中,即在一個開發平臺下集成算法和硬件:一方面,在算法設計階段引入硬件I/O進行前期的驗證,可以在更早階段發現并修正潛在的錯誤;另一方面,由于使用同樣的開發環境,算法設計的代碼可以在原型驗證的過程中被重用,從而簡化編程的復雜性,降低了對算法設計人員和嵌入式開發人員在系統設計流程中各個步驟的要求。從根本上加快循環遞進的過程,從而縮短系統的開發時間。 NI的嵌入式硬件平臺CompactRIO非常適合進行快速原型,它上面集成了實時的嵌入式處理器和FPGA,可以執行各種算法,同時可以通過自定義選擇不同的I/O模塊快速為算法添加硬件I/O,從而完成實體原型的建立和測試。除了適合進行原型階段的開發,NI的圖形化系統設計理念可以貫穿設計、原型、發布這個過程的始終。借由圖形化系統設計軟件LabVIEW,我們可以設計并仿真算法和模型(這是純軟件工作),再在CompactRIO上為算法添加I/O完成原型驗證,之后同樣的算法不需要進行任何修改就可以通過低成本的Single-Board RIO單板嵌入式平臺完成大量發布。 今日,許多世界著名的廠商都把原型設計階段提升到產品設計過程中非常重要的位置。事實上,除了降低風險和成本、縮短上市周期等優勢之外,快速原型也是一個搶的商業先機的手段。通過快速原型,你可以很快地將你的想法在硬件上實現出來,向客戶展示并說明最終的功能,這樣可以博得客戶的信任,有時還能幫助贏得投資。 要繼續原型開發過程的后續步驟,請返回功能原型系統系列。 作者:NI公司應用工程師徐征 NI公司供稿 |