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