官术网_书友最值得收藏!

基于DPRAM和中斷判決機制的嵌入式數據通信方法

李洪偉,章學鋒,付 紅

(四川九洲空管科技有限責任公司,四川綿陽 621000)

作者簡介:李洪偉(1978—),高級工程師,碩士研究生,主要研究領域為機載監視與防撞系統。E-mail:284361803@qq.com

摘 要:DPRAM作為多處理器嵌入式系統中廣泛應用的數據交互方法,具有應用便利、速度快、易于完成大數據量的數據傳輸的優點,隨著FPGA的發展和普及,它可以通過FPGA編程實現,可以降低成本,提高系統的可靠性。基于中斷機制的DPRAM通信依賴于中斷產生和響應機制,在復雜應用環境下,由于軟硬件因素,偶發性的丟中斷或響應異常現象可造成數據包丟失。本文引入中斷判決和補發機制,較好地解決了由于“中斷丟失”和“響應異常”導致的數據丟包現象。該設計成功應用于空中交通告警與防撞系統(TCAS)的工程項目,數據通信容量及實用性滿足系統要求,有效解決數據丟包問題。

關鍵詞:DPRAM;通信機制;中斷判決

中圖分類號:V241.6 文獻標識碼:A

Embedded Data Communication Method Based on DPRAM and Interrupt Decision Mechanism

Li Hongwei,Zhang Xuefeng,Fu Hong

(Sichuan Jiuzhou Aero Technology co.,ltd,Sichuan Province Mianyang City 621000,China)

Abstract:DPRAM which is the widely used method of data translated,has the many advantages,such as application convenience,fast translation speed,able to translate vast datum.Along with the development and popularization of FPGA,DPRAM could be integrated in FPGA by program,in favor of system cost reduction and reliability improvement.DPRAM communication method based on interrupt depends on the correct production and the timely respond of the interrupt.When it is used in the complex environment,the interrupts maybe lose once in a while,as a result,the data package will lose.This paper resolves the problem by interrupt adjustment and retrigger mechanism.This method has been successfully applied in TCAS engineering project.The practicability satisfies real time specification,the problem of the data lost has been worked out.

Key words:DPRAM;Communication mechanism;Interrupt decision

0 引言

在嵌入式系統廣泛應用的今天,隨著系統集成度、復雜度和綜合化程度的日益提高,經常需要設計多處理器協同完成信號處理和控制的復雜系統。多處理器系統設計技術的優點在于,可以通過計算能力的均勻分布,使系統具有較好的冗余能力、更快的處理速度、模塊化的體系結構,并且簡化編程難度。多處理器系統的應用越來越廣泛,如何解決多處理器數據共享和交互問題也變得越來越重要。常見的不同處理器之間的通信方式包括借助通信寄存器的通信方式、借助先進先出設備(FIFO)的通信方式、借助雙端口隨機存儲器的通信方式、串行通信方式等。如果需要在兩個處理器之間進行大量數據傳輸,借助雙端口隨機存儲器(DPRAM)則是最佳的選擇方案。DPRAM與普通單口RAM不同,DPRAM芯片具有兩組數據總線、兩組地址總線、兩組控制總線,只要不是同時訪問同一存儲單元,就允許兩個端口對片內任何單元同時進行獨立的讀/寫操作,而且互不干擾。借助DPRAM實現數據通信,工程實現時一般有“查詢”和“中斷”兩種機制:前者為上位機(信息接收方)定時/周期性讀取DPRAM進行處理,其設計簡單,缺點是實時性差;后者基于中斷機制,實時性較高,缺點是依賴中斷產生和響應機制,在復雜應用環境下,偶發性的丟中斷現象可造成數據包丟失。本文引入中斷判決和補發機制較好地解決了由于“中斷丟失”導致的數據丟包現象。

1 基于中斷機制的DPRAM通信一般方法

中斷機制具有實時性高、應用靈活等優點,基于中斷機制的DPRAM通信方法在工程設計中得到廣泛應用,其原理框圖如圖1所示。處理器1、2是兩個獨立的處理核心,兩者通過DPRAM完成數據交換。一般情況下,為避免數據沖突,兩者的寫操作地址空間是獨立的。地址空間1僅用于處理器1向處理器2發送數據,地址空間2則僅用于處理器2向處理器1發送數據。

圖1 DPRAM通信原理框圖

DPRAM的兩個端口一般各有一組特殊功能寄存器,包括接收狀態寄存器、中斷觸發寄存器和數據長度寄存器。通信過程依賴于寄存器的功能。以處理器1向處理器2發送數據為例,一次數據通信包括處理器1寫數據和處理器2讀數據兩個流程,前者通過中斷信號觸發后者。寫數據和讀數據的流程如圖2所示。

圖2 寫數據和讀數據的流程

2 DPRAM一般通信機制存在的問題及中斷判決機制原理

2.1 存在的問題

DPRAM通信一般流程的正常運作有賴于中斷機制的正確響應,即任何一次通信,發送方觸發的中斷信號,接收數據方都能及時響應并快速完成處理。這需要三個前提:其一,中斷產生穩定、可靠,無外部干擾;其二,中斷響應及時,處理迅速;其三,不存在中斷競爭等復雜情況。實際工程應用中,客觀存在以下問題:

(1)接收方響應中斷速度低于發送方再次寫入速度,導致發送方再次發送數據時,接收方仍未讀完上次的數據。

(2)外部使用環境復雜,干擾了中斷信號的產生或響應。

(3)接收方處于其他中斷處理過程中,錯過了本次中斷信號,發生數據丟包現象。

為提高上述數據交互的穩定性和可靠性,在嵌入式系統中,要找出上述問題的處理方法。

2.2 中斷判決機制原理

為解決中斷異常導致數據包丟失問題,在DPRAM通信機制中引入“中斷未響應”概念,并借助“接收狀態寄存器”用于識別該狀態,設計通信機制時據此采取針對性措施,可有效解決由于中斷響應問題導致的通信異常。具體實現方式為:數據接收方設置一個特殊功能寄存器——接收狀態寄存器,用于表征接收數據方是否響應了中斷,以及是否讀取完。通常,讀數時可寫為一個特定數值,讀數完成后在接收狀態寄存器中寫入一個“變量”(例如1~N循環值)。發送數據方通過檢查該寄存器狀態,并將該數據與上次操作的歷史值進行比較,據此采取相應的措施以保證通信的正常進行。

3 工程應用實例及分析

3.1 工程背景

本文中的DPRAM通信機制是以空中交通防撞系統(TCAS)應用為背景提出的。國內外的飛行試驗和使用經驗表明,TCAS能顯著地減小航空器相撞的危險性,有效地幫助駕駛員主動搜尋和目視發現可能的交通沖突。將TCAS系統分為監視子系統和防撞子系統,前者基于二次雷達原理,對空域中裝備了航管應答機或S模式應答機的其他飛機進行監視、跟蹤,獲取其距離、高度、方位等信息;后者則針對前者獲取的信息進行防撞算法處理和威脅評估,在必要時給出語音和視頻告警,提示飛行員注意潛在碰撞威脅或采取垂直方向的機動飛行。通過DPRAM進行監視子系統和防撞子系統之間的數據交換信息詳見表1。

表1 DPRAM通信數據信息

3.2 應用實例

空中交通與防撞系統的防撞主機,包括監視子系統和防撞子系統,均為嵌入式單板技術機,CPU為MPC8280,主頻為400MHz。兩個子系統通過DPRAM進行數據交互,應用框圖如圖3所示。

圖3 DPRAM在TCAS中的應用框圖

其中,DPRAM通過FPGA編程實現,統一地址空間分配為4KB,監視子系統和防撞子系統均可獨立操作該地址空間,地址空間操作和中斷產生分別使用獨立的進程實現,中斷信號寬度為5μs。以一個端口為例,其Verilog代碼如下:

兩個端口具有獨立的特殊功能寄存器。以左側端口為例,特殊功能寄存器定義見表2,右側端口也有三個特殊功能寄存器。

表2 特殊功能寄存器定義

引入接收狀態寄存器后,數據發送方和接收方操作該寄存器,獲取或設置當前狀態信息。對于接收方,響應中斷后,首先讀取并存儲該寄存器值,這里記為X,然后寫該寄存器為“忙”狀態并按數據長度讀取數據,最后更新該寄存器為X+1。對于發送方,再次發送數據時,首先要查詢該寄存器狀態并采取相應措施:

(1)查詢接收狀態寄存器是“就緒:值為X+1”狀態,進行寫數操作;

(2)查詢接收狀態寄存器是“忙:值為0Xfafa”狀態,則等待為就緒狀態直到超時推出;

(3)查詢接收狀態寄存器是“未響應:值為X,即上次寫入數值”狀態,則補發一次中斷信號,延時后再次查詢為“就緒狀態”,連續三次未響應,則退出。

寫數據流程圖和讀數據流程圖分別如圖4和圖5所示。

圖4 寫數據流程圖

圖5 讀數據流程圖

4 結束語

本文首先回顧了多處理器嵌入式系統數據通信交互方法,然后闡述了基于中斷機制的DPRAM一般方法,分析了其存在的問題。在此基礎上,引入了中斷判決機制的概念、方法和原理。通過數據長度寄存器、中斷觸發寄存器、接收狀態寄存器等特殊功能寄存器,表征數據通信過程的交互狀態,具有忙標志、中斷未響應時進行等待、中斷丟失判決和補發等機制,在保證數據通信實時性的同時,有效提高數據通信的可靠性。最后,結合TCAS應用的工程實例給出了試驗效果分析,數據交互穩定、可靠。

參考文獻

[1]中國民用航空局.關于TCAS使用的暫行規定[民航飛發〔1998〕188號],1998

主站蜘蛛池模板: 松阳县| 常山县| 怀集县| 江西省| 翁牛特旗| 南川市| 喀喇| 临桂县| 锦州市| 海口市| 宣城市| 八宿县| 合山市| 郁南县| 云林县| 山阳县| 紫云| 苍南县| 巴林右旗| 东台市| 古交市| 克什克腾旗| 徐州市| 建德市| 彭山县| 邹平县| 五大连池市| 泰兴市| 东港市| 广平县| 永吉县| 门头沟区| 吴江市| 自治县| 习水县| 麻栗坡县| 隆子县| 山丹县| 荔波县| 南丹县| 莱芜市|