新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 使用圖形化的開發(fā)環(huán)境――LabView開發(fā)嵌入式系統(tǒng)

使用圖形化的開發(fā)環(huán)境――LabView開發(fā)嵌入式系統(tǒng)

作者: 時間:2012-05-14 來源:網絡 收藏

快速構建原型—溝通虛擬世界與物理世界的橋梁

如前所述,很多設計比預期時間晚上市,并且有一些在投入市場以后發(fā)現(xiàn)未達到預定的功能和指標,因此必須采取一定的措施來加快設計流程、提高設計質量。一種解決方案就是更早地將真實世界的信號和硬件引入到設計流程之中,進行更好的原型化,從而在早期就發(fā)現(xiàn)并修正潛在的問題。

但是在任何設計和流程中,基于軟件設計和仿真工具的虛擬世界與電子或機械測量的物理世界之間有一個很大的鴻溝,而LabVIEW平臺最明顯的價值就是在虛擬和物理世界的鴻溝上建一座橋梁。物理測量是與設計和仿真完全不同的挑戰(zhàn),要求與廣泛的測量和控制硬件緊密集成,并以優(yōu)化的性能處理大量的通道數(shù)或超高速吞吐量。LabVIEW平臺經過不斷演進,在物理測量領域具有很高的性能和靈活性。更重要的是,LabVIEW平臺是開放的,設計人員可以將測量數(shù)據(jù)與仿真結果相映射,甚至互換仿真和物理數(shù)據(jù),以用于設計中的行為建?;蛘咭苑抡婕铗寗游锢頊y試,從而更有效快速地進行原型構建。

人員如果要定制硬件用于最終的發(fā)布,很難同時并行地軟件和硬件。而如果直到系統(tǒng)集成測試的時候才引入I/O用真實世界的信號檢驗設計,一旦發(fā)現(xiàn)存在問題,那就意味著很難在預期時間完成設計任務了。大多數(shù)設計師當前用評估板來進行系統(tǒng)的原型化,但是,原型板往往只具備少量的模擬和數(shù)字I/O通道,也很少支持視覺、運動或同步的功能。此外,設計師經常因為需要傳感器或特殊I/O的支持而花費大量時間來開發(fā)定制的原型板,而這些僅僅是為了設計概念的驗證。靈活的、商業(yè)化的原型平臺可以大大簡化這個過程,消除其中硬件驗證和板級設計的大量工作。對于大多數(shù)系統(tǒng),原型化平臺必須包括最終發(fā)布系統(tǒng)的同樣部件,比如用于執(zhí)行算法的實時處理器、用于高速處理的可編程邏輯器件,或者將實時處理器接口到其他部件。因此,如果這個商業(yè)化的系統(tǒng)不能滿足所有的要求,那么這個平臺必須是可擴展的,并且支持自定義。NI提供了各種硬件平臺與LabVIEW集成,完成從設計、原型到部署的全過程。例如LabVIEW和NI可重復配置I/O(RIO)設備或NICompactRIO平臺,可以快速而便捷地創(chuàng)建系統(tǒng)的原型。

例如BostonEngineering公司要開發(fā)一種牽力控制機用于數(shù)碼照片打印系統(tǒng)。其中,彩色墨盒通過驅動馬達饋送到打印頭,由卷帶電機和推進電機來控制牽力。切割機底盤的振動、每次打印的照片數(shù)目和每個電機的速度變化都會影響到底層的牽力??刂葡到y(tǒng)通過兩個電機的位置來保證卷帶和推進的牽力處于設定范圍之內,否則就會有色差。設計的牽力控制硬件需要兩個脈寬調制輸出來控制電機,兩個編碼器將轉速反饋給電機,兩個模擬輸入通道連接霍爾傳感器用來測量位置,兩根數(shù)字線用于信令。傳統(tǒng)的原型板無法滿足這些要求,需要可以自定義I/O的原型平臺,因此他們使用CompactRIO平臺來進行原型化工作。他們在控制器中運行管理程序,在FPGA中運行電機控制算法,這種資源配置使得原型化構建和最終系統(tǒng)發(fā)布在編程模式上是非常相似的。為了在FPGA中運行控制算法,他們將ZPK(zero-pole-gain)模型轉化為LabVIEW數(shù)字濾波器設計工具包中提供的一種濾波器,由于這個工具包支持LabVIEWFPGA代碼的自動生成和優(yōu)化,所以原先的ZPK模型就可以直接轉化成能夠在FPGA上運行的代碼。另外,他們還使用這個工具包對原先的浮點算法進行了定點轉換,以節(jié)約FPGA資源,并對量化后的模型進行測試、驗證、修正從而得到預期的結果。通過這種原型化方式,他們節(jié)約了大量的開發(fā)時間。

發(fā)布到任何32位處理器

LabVIEW包括一個廣泛的工具集,該工具集構成了一個用于設計、控制和測試的化開發(fā)平臺。新的NILabVIEW嵌入式開發(fā)模塊是LabVIEW化編程的一款全新附加模塊,是一個開放的框架,它可以集成任意的第三方工具鏈,將生成的C代碼與LabVIEW運行庫函數(shù)和板卡支持程序包,編譯成為針對某一目標并能在之上運行的二進制代碼。通過LabVIEW嵌入式開發(fā)模塊和工具鏈,可以發(fā)布到運行任何操作系統(tǒng)的任何的32位處理器。該模塊包含了近千個內建的庫函數(shù),涵蓋了高等算法、文件I/O、邏輯和信號處理各個方面。原先無法利用到嵌入式編程的工程師們都可以進入32位微處理器的領域之中,通過LabVIEW中附加的狀態(tài)圖、控制圖表、信號處理庫函數(shù)等這一完整的工具來設計他們的應用,解決各種問題。此外,通過LabVIEW嵌入式方式,工程師和科學家可以使用一種叫做內聯(lián)C節(jié)點(InlineCNode)的新特性,整合現(xiàn)有的嵌入式代碼,來保持LabVIEW的開放架構。另外,在LabVIEW嵌入式項目中,還可以直接添加用C或者匯編開發(fā)的源代碼,或者庫文件,幫助開發(fā)人員充分利用以前的工作成果。

圖2內聯(lián)C節(jié)點

LabVIEW嵌入式的調試功能非常強大。除了用于快速調試的化用戶接口顯示件、探針、斷點和函數(shù)單點調試之外,LabVIEW嵌入式開發(fā)模塊為代碼調試提供了另外兩種無縫的接口。在嵌入式目標平臺上,工程師可以使用“儀器調試”通過TCP/IP、RS232或CAN進行調試。使用內建的片上調試接口,工程師可在不影響程序性能基礎上通過工業(yè)標準協(xié)議如JTAG、BDI和Nexus等進行調試。

減少與特定硬件以及操作系統(tǒng)的相關性

基于平臺的工具,需要能夠表達整個系統(tǒng),而減少與特定硬件以及操作系統(tǒng)的相關性。在傳統(tǒng)的開發(fā)模式中,嵌入式目標本身要求程序員在編寫代碼之前對目標有深入的了解。程序需要知道板卡上各種關于內存映射和寄存器的信息,才能在板卡上執(zhí)行他們的代碼。另外,大部分代碼是專為某一特定目標編寫的。這樣,在一塊板卡上使用不同的微處理器或是不同的外圍設備,可能就需要重新編寫大部分已有的代碼,或是完全從頭開始。這意味著最終產品的擴展性方面是有缺陷的。使用LabVIEW嵌入式開發(fā)模塊,工程師和科學家們不需要了解最終的目標就可以進行代碼開發(fā),因為軟件生成的是LabVIEW應用的ANSIC代碼,而不是針對某個特定目標的二進制代碼。如圖3所示,灰色區(qū)域的部分對于開發(fā)員來說是透明的,他們在開發(fā)過程中不需要了解目標硬件上內存映射和寄存器的情況。同時,LabVIEW嵌入式方式是一個開放的框架,它可以整合任意的第三方工具鏈,將生成的C代碼、LabVIEW運行庫函數(shù)和板卡支持程序包(BSP)編譯成為針對某一目標并能在這個目標上運行的二進制代碼。BSP是一種作為C代碼與板上外圍硬件接口的底層代碼。因此,如果板卡需要升級,工程師可以簡單地將不同的BSP鏈接到LabVIEW中,在現(xiàn)有的圖形化代碼上作一小部分改動就可以完成。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉