基于NI LabVIEW 2010和NI RIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)_第1頁(yè)
基于NI LabVIEW 2010和NI RIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)_第2頁(yè)
基于NI LabVIEW 2010和NI RIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)_第3頁(yè)
基于NI LabVIEW 2010和NI RIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)_第4頁(yè)
基于NI LabVIEW 2010和NI RIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于NILabVIEW2010和NIRIO構(gòu)建精確定時(shí)的嵌入式系統(tǒng)1、介紹在構(gòu)建嵌入式系統(tǒng)時(shí),不論是為了確??刂蒲h(huán)能夠可靠的執(zhí)行,還是保證I/O信號(hào)能夠被及時(shí)響應(yīng),或是讓處理速度達(dá)到系統(tǒng)應(yīng)用的要求,定時(shí)都是其中的關(guān)鍵。構(gòu)建一套可以滿(mǎn)足定時(shí)要求的系統(tǒng),首先從硬件開(kāi)始進(jìn)行選擇,必須在尺寸、功耗、處理能力和延遲等方面進(jìn)行很好的平衡。另外,嵌入式系統(tǒng)的軟件在執(zhí)行調(diào)節(jié)、中斷響應(yīng)和計(jì)算任務(wù)之間的時(shí)間平衡幾個(gè)方面扮演著重要的角色。在考慮定時(shí)性能的前提下進(jìn)行嵌入式軟硬件集成將是一件極其耗時(shí)的挑戰(zhàn)。但是,在NILAbVIEW2010軟件平臺(tái)和RIO硬件平臺(tái)的幫助下,構(gòu)建一套可以滿(mǎn)足絕大部分系統(tǒng)應(yīng)用需求的可靠的精確定時(shí)系統(tǒng)所需要付出的代價(jià)將極大降低。繼續(xù)深入下去,了解集成了實(shí)時(shí)CPU和FPGA的NIRIO硬件系統(tǒng),以及定時(shí)特性是如何與LabVIEW2010無(wú)縫集成的,可以幫助工程師、科學(xué)家和嵌入式設(shè)計(jì)人員們利用這套硬件系統(tǒng)構(gòu)建出健壯的實(shí)時(shí)響應(yīng)系統(tǒng)。2、集成實(shí)時(shí)CPU和高性能FPGA的NIRIO硬件NI嵌入式硬件的目標(biāo)系統(tǒng)是基于RIO架構(gòu)的,包括了一個(gè)一般用于運(yùn)行實(shí)時(shí)操作系統(tǒng)的CPU和一套或多套FPGA。在這樣的集成架構(gòu)下,用戶(hù)可以在FPGA上完成那些需要納秒級(jí)定時(shí)精度或者大量并行的任務(wù);在CPU上完成諸如浮點(diǎn)計(jì)算等密集計(jì)算任務(wù)。FPGA和CPU之間通過(guò)PCI總線(xiàn)進(jìn)行通信,通過(guò)NI-RIO驅(qū)動(dòng)模塊提供的直接明了、功能強(qiáng)大的數(shù)據(jù)傳輸接口,使用LabVIEW或C可以很容易的進(jìn)行相關(guān)開(kāi)發(fā)。最終的結(jié)論是:NI-RIO是可以適用于范圍廣泛的嵌入式原型設(shè)計(jì),并且具有很高靈活性的平臺(tái)。同時(shí),由于NI-RIO框架是很多不同NI硬件目標(biāo)系統(tǒng)的標(biāo)準(zhǔn)架構(gòu),例如NISingle-BoardRIO和NICompactRIO,用戶(hù)在部署軟件時(shí),不論是堅(jiān)固型系統(tǒng)還是經(jīng)濟(jì)型系統(tǒng),都可以最大限度地實(shí)現(xiàn)代碼的復(fù)用。圖1.NI-RIO嵌入式設(shè)備均基于集成了CPU、FPGA和模塊化I/O的統(tǒng)一架構(gòu)例如,Ventura市航空中心使用LabVIEW和NISingle-BoardRIO開(kāi)發(fā)了一套火情監(jiān)控系統(tǒng),用于在聯(lián)邦快遞公司的運(yùn)輸機(jī)上防控火災(zāi)。在這套系統(tǒng)中,實(shí)時(shí)CPU負(fù)責(zé)運(yùn)行確定性控制算法、網(wǎng)絡(luò)通訊和數(shù)據(jù)記錄,F(xiàn)PGA硬件上則執(zhí)行其他的關(guān)鍵任務(wù)。3、LabVIEW2010和內(nèi)置的定時(shí)特性簡(jiǎn)化了確定性可靠系統(tǒng)的編程LabVIEW不單可以使用圖形化的編程界面來(lái)編寫(xiě)目標(biāo)CPU(包括了運(yùn)行實(shí)時(shí)操作系統(tǒng)的CPU)和FPGA(包括RIO目標(biāo)硬件上的FPGA)程序,同時(shí)LabVIEW圖形化編程語(yǔ)言本身也是基于定時(shí)和同步概念而設(shè)計(jì)的。下面的一些例子將說(shuō)明,LabVIEW結(jié)合Real-Time模塊和FPGA模塊是如何讓嵌入式系統(tǒng)的定時(shí)變得簡(jiǎn)潔明了的。4、LabVIEWReal-Time模塊集成的定時(shí)特性使用Real-Time模塊和TimedLoop進(jìn)行確定性的閉環(huán)系統(tǒng)編程LabVIEW2010Real-Time模塊把LabVIEW圖形化編程擴(kuò)展到了NI實(shí)時(shí)硬件系統(tǒng)(包括RIO設(shè)備)特定的第三方PC上。根據(jù)使用的目標(biāo)硬件不同,LabVIEWReal-Time模塊會(huì)自動(dòng)在目標(biāo)硬件上部署與標(biāo)準(zhǔn)的VxWorks或ETS實(shí)時(shí)操作系統(tǒng)相對(duì)應(yīng)的組件,以保證確定性和精確的實(shí)時(shí)性。當(dāng)使用LabVIEWReal-Time模塊進(jìn)行閉環(huán)控制系統(tǒng)的編程時(shí),通過(guò)使用TimedLoop,只需要輕點(diǎn)幾下鼠標(biāo),就可以實(shí)現(xiàn)周期性執(zhí)行代碼,硬件控制循環(huán)速率同步,定義多種循環(huán)執(zhí)行優(yōu)先級(jí),甚至可以指定某一循環(huán)在某一個(gè)CPU內(nèi)核上執(zhí)行。另外,用戶(hù)還可以選擇KHz、MHz或者自定義的外部時(shí)鐘來(lái)作為循環(huán)定時(shí)的基準(zhǔn)時(shí)鐘。圖2.LabVIEWTimedLoop可以讓用戶(hù)通過(guò)簡(jiǎn)潔明了的方式實(shí)現(xiàn)配置循環(huán)定時(shí)、通過(guò)硬件I/O進(jìn)行同步、控制實(shí)時(shí)代碼執(zhí)行優(yōu)先級(jí)、指定代碼執(zhí)行CPU內(nèi)核等在多系統(tǒng)間實(shí)現(xiàn)TimedLoop的同步在使用LabVIEWReal-Time模塊編程的嵌入式硬件設(shè)備上,用戶(hù)可以使用IEEE1588同步協(xié)議進(jìn)行多系統(tǒng)間的同步,以保證給定的任務(wù)在多系統(tǒng)上是同步執(zhí)行的。根據(jù)用戶(hù)使用的硬件設(shè)備不同,IEEE1588同步協(xié)議可以通過(guò)軟件、硬件或者軟硬結(jié)合這幾種不同方式來(lái)實(shí)現(xiàn)。使用LabVIEWReal-Time模塊實(shí)現(xiàn)多硬件設(shè)備間的軟件同步,將TimedLoop設(shè)置為使用絕對(duì)時(shí)間源即可。在設(shè)置好Timed-Loop后,只需要再連接一個(gè)起始時(shí)間戳,然后選擇運(yùn)行,就可以在多硬件設(shè)備間同時(shí)開(kāi)始循環(huán)的執(zhí)行。圖3.用戶(hù)可以使用LabVIEWTimed-Loop來(lái)實(shí)現(xiàn)IEEE1588同步協(xié)議,在多個(gè)分布式的嵌入式設(shè)備中實(shí)現(xiàn)同步控制(上圖為NICompactRIO)使用NIReal-Time執(zhí)行跟蹤工具包進(jìn)行定時(shí)的細(xì)節(jié)分析在LabVIEWReal-Time模塊下使用Real-Time執(zhí)行跟蹤工具包,可以獲取線(xiàn)程和子VI的執(zhí)行時(shí)間、優(yōu)先級(jí)、繼承關(guān)系等多種詳細(xì)信息。通過(guò)這套工具包,不但可以幫助用戶(hù)優(yōu)化實(shí)時(shí)程序的執(zhí)行情況,更可以幫助用戶(hù)發(fā)現(xiàn)諸如優(yōu)先級(jí)設(shè)置不當(dāng)、資源競(jìng)爭(zhēng)等潛在的不穩(wěn)定因素。在實(shí)時(shí)硬件上確定性的運(yùn)行m文件如果已經(jīng)有了現(xiàn)成的m文件,用戶(hù)可以通過(guò)LabVIEWMathScriptRT模塊,在使用LabVIEWReal-Time模塊編程的嵌入式系統(tǒng)中使用這些代碼。這種方式從根本上改變了以往從m文件到實(shí)時(shí)硬件代碼的復(fù)雜而繁瑣的遷移過(guò)程,使其變得簡(jiǎn)潔而迅速。只需要將用戶(hù)的m文件通過(guò)MathScript節(jié)點(diǎn)嵌入到LabVIEW圖形代碼中,再在LabVIEW項(xiàng)目中將其拖放到實(shí)時(shí)硬件上,整個(gè)遷移過(guò)程就完成了。5、LabVIEWFPGA模塊內(nèi)置的定時(shí)特性使用單周期定時(shí)循環(huán)優(yōu)化FPGA程序LabVIEW2010FPGA模塊中的單周期定時(shí)循環(huán)移除了循環(huán)內(nèi)部的寄存器,用戶(hù)可以在其中最優(yōu)化地運(yùn)行與之相兼容的代碼。這項(xiàng)措施可以使那些需要在硬件上可靠運(yùn)行的關(guān)鍵操作達(dá)到最高40MHz的循環(huán)速率。另外,在單周期定時(shí)循環(huán)內(nèi)執(zhí)行的代碼占用的FPGA資源更少,從而可以節(jié)省出更多的資源給其他的任務(wù)。圖4.LabVIEWFPGA模塊中的單周期定時(shí)循環(huán)可以讓用戶(hù)的這部分代碼達(dá)到最高40MHz的循環(huán)速率使用循環(huán)定時(shí)器來(lái)調(diào)整FPGA代碼的執(zhí)行想要在FPGA上周期性地執(zhí)行操作其實(shí)很簡(jiǎn)單,只需要在LabVIEWFPGA的代碼框圖里添加一個(gè)循環(huán),然后在其中放置一個(gè)循環(huán)定時(shí)器就可以了。循環(huán)定時(shí)器的定時(shí)控制可以根據(jù)需要選擇循環(huán)周期為納秒級(jí)、微秒級(jí)或者毫秒級(jí)的不同硬件時(shí)鐘作為定時(shí)基準(zhǔn)。在默認(rèn)的40MHz時(shí)鐘速率下,循環(huán)定時(shí)器可以實(shí)現(xiàn)25ns整數(shù)倍的定時(shí)周期。通過(guò)中斷對(duì)實(shí)時(shí)程序和FPGA程序的定時(shí)進(jìn)行同步在FPGA硬件系統(tǒng)中,用戶(hù)可以在FPGA程序中產(chǎn)生中斷,通知實(shí)時(shí)程序各種事件的發(fā)生,例如數(shù)據(jù)采集完畢,發(fā)生錯(cuò)誤,任務(wù)已經(jīng)完成等等。使用LabVIEWFPGA模塊中的相關(guān)中斷函數(shù)結(jié)合LabVIEWReal-Time模塊中的WaitonInterrupt方法,用戶(hù)可以實(shí)現(xiàn)整個(gè)嵌入式系統(tǒng)中CPU和FPGA之間的同步。一個(gè)系統(tǒng)中最多能夠使用32個(gè)中斷。使用關(guān)鍵路徑高亮幫助確定系統(tǒng)瓶頸。在開(kāi)發(fā)過(guò)程中,確定和修正時(shí)序錯(cuò)誤的FPGA代碼是一件耗時(shí)費(fèi)力的事情。為了簡(jiǎn)化這一過(guò)程,可以使用LabVIEWFPGA模塊的關(guān)鍵路徑高亮功能來(lái)突出關(guān)鍵路徑上的每一步操作,迅速跳轉(zhuǎn)到出現(xiàn)瓶頸的代碼部分,編寫(xiě)更高效的代碼或者流水線(xiàn)來(lái)對(duì)瓶頸進(jìn)行修正。圖5.LabVIEWFPGA模塊的關(guān)鍵路徑高亮功能可以幫助用戶(hù)迅速確定FPGA程序中的瓶頸所在6、在您的下一次嵌入式原型或設(shè)計(jì)中使用LabVIE

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論