- 相關(guān)推薦
RTLinux下的一種實時應(yīng)用通信機制
摘要:RTLinux實時應(yīng)用程序的開發(fā)模式;詳細(xì)說明兩種在實時模塊與非實時模塊之間進行通信的主要通信接口的實現(xiàn)和使用方式;提出一種將以上兩種接口有機結(jié)合的實時應(yīng)用內(nèi)部通信機制,并通過實驗證該方法的可操作性。關(guān)鍵詞:RTLinux 通信接口 實時 共享內(nèi)存 RT_FIFO
實時性是多任務(wù)嵌入式系統(tǒng)的基本特征之一,主要表現(xiàn)為對重要性各不相同的任務(wù)進行統(tǒng)籌兼顧的合理調(diào)度能力。根據(jù)應(yīng)用系統(tǒng)對時限要求的嚴(yán)格程度又分為軟實時和硬實時。
RTLinux作為Linux最為通用的幾種硬實時擴展之一,表現(xiàn)了良好的硬實時性。同時,為了更有效地為各種實時應(yīng)用服務(wù),提供了多種與Linux中非實時進行通信的接口,主要有共享內(nèi)存、RT_FIFO和線程信號驅(qū)動機制,三者的應(yīng)用重點各不相同。其中前兩種較為常用[1]。由于不的實現(xiàn)機理,這兩種接口的應(yīng)用范疇各有側(cè)重。經(jīng)過實踐,筆者認(rèn)為將以上兩種接口有機地結(jié)合,利用共享內(nèi)存?zhèn)魉痛笕萘、對讀/寫時序要求不高的數(shù)據(jù)信息;同時,利用RT_FIFO輔助實現(xiàn)對該共享內(nèi)存的同步控制,能夠綜合兩者的優(yōu)勢,是RTLinux下一種十分有效的實時應(yīng)用通信模式。
1 RTLinux的結(jié)構(gòu)和應(yīng)用程序開發(fā)模式
作為Linux的硬實時擴展,RTLinux一個重要的計準(zhǔn)則在于:盡可能多地利用Linux內(nèi)核所能提供的功能[2]。
顯示、記錄、設(shè)備初始化、阻塞式動態(tài)資源分配和模塊化內(nèi)核管理等無實時要求或者與硬實時性要求相悖的服務(wù)均由Linux提供。RTLinux內(nèi)核則主要為實時任務(wù)提供對硬件的直接訪問,使得它們具有最小的延遲和最優(yōu)先的處理器利用權(quán)。
基于以上準(zhǔn)則,RTLinux中的實時應(yīng)用程序開發(fā)通常具有一個通用的模式,如圖1所示。按照運行環(huán)境和對實時要求的嚴(yán)格程度分為實時和非實時兩個模塊。非實時模塊的功能包括結(jié)果數(shù)據(jù)顯示。用戶交互、數(shù)據(jù)存儲等;實時模塊主要負(fù)責(zé)響應(yīng)數(shù)據(jù)采集外設(shè)的中斷,結(jié)果數(shù)據(jù)的采集。兩者通過RT_FIFO或者共享內(nèi)存進行通信,組成一個完整的實時數(shù)據(jù)采集程序。
2 RTLinux中的兩種通信接口
RTLinux提供了RT_FIFO和共享內(nèi)存兩種標(biāo)準(zhǔn)通信接口,用于實時任務(wù)和非實時任務(wù)之間的交互。
2.1 RT_FIFO
RT_FIFO(First-In-First-Out,先進先出)是一種提案隊列機制組織的字符設(shè)備。在Linux文件系統(tǒng)中,主設(shè)備號為150。一個系統(tǒng)
[1] [2] [3] [4] [5]
【RTLinux下的一種實時應(yīng)用通信機制】相關(guān)文章:
RTLinux在雷達信號采集處理系統(tǒng)的應(yīng)用04-27
實時通信在調(diào)車作業(yè)中的設(shè)計與實現(xiàn)04-27
實時熒光定量PCR技術(shù)及其應(yīng)用05-03
實時稱重系統(tǒng)在斜拉橋監(jiān)控中的應(yīng)用04-26
基于實時動態(tài)技術(shù)的城市控制測量應(yīng)用04-30
一種混合WDM網(wǎng)絡(luò)的實時傳輸策略04-28
高速公路車輛實時測速聯(lián)動系統(tǒng)的應(yīng)用04-28
GPS實時動態(tài)定位技術(shù)的發(fā)展與應(yīng)用研究04-28
交通信息采集與融合技術(shù)在寒冷地區(qū)冬季交通環(huán)境下的研究與應(yīng)用04-27
一種血流變參數(shù)在體實時探測方法05-01