<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP芯片的分級分布式管理系統(tǒng)設(shè)計

          基于DSP芯片的分級分布式管理系統(tǒng)設(shè)計

          作者: 時間:2004-12-06 來源:網(wǎng)絡(luò) 收藏
          摘要:通過一個兩級圖像處理系統(tǒng)中管理計算機的實現(xiàn),闡述的控制電路的方法以及對兩級系統(tǒng)的協(xié)調(diào)控制;給出原理樣機的調(diào)試結(jié)果和進一步的討論。

          關(guān)鍵詞: 分布 FIFO 中斷

          1 概述

          1.1 背景

          數(shù)字信號處理器()一般是用來運行核心數(shù)據(jù)處理算法的,但在一些特殊的環(huán)境中,必須使用DSP來承擔(dān)管理控制單元的核心片芯。本文給出一套圖像處理系統(tǒng),其中的管理計算機的核心是AD公司的浮點DSP(ADSP21020)。它不僅承擔(dān)著對圖像處理系統(tǒng)的管理控制任務(wù),還必須實時響應(yīng)執(zhí)行上級1553總線的關(guān)鍵指令。本文重點討論DSP管理計算機對兩級分布式系統(tǒng)的協(xié)調(diào)控制。

          1.2 系統(tǒng)介紹

          此套圖像處理系統(tǒng)是一個分布式計算機系統(tǒng),共由5個模塊組成,包括預(yù)處理單元、海量存儲器、離線數(shù)據(jù)并行處理單元、通信單元和管理計算機。其中管理計算機是這套系統(tǒng)的控制核心,通過RS485總線管理內(nèi)部系統(tǒng),并通過1553總線和上級系統(tǒng)通信。

          管理計算機對內(nèi)部控制的功能分為兩類:實時控制和非實時控制。實時控制針對時序要求嚴格且需實時響應(yīng)的任務(wù)。管理計算機通過獨享的RS422串行總線向CCD探測器和通信單元提供控制脈沖。非實時控制針對不求時間精確,甚至可以被其它程序中斷的信號,即傳送指令、數(shù)據(jù)的串行總線RS485,作為控制核心的管理計算機,通過它和其它單元交換數(shù)據(jù),查詢健康狀態(tài)。

          管理計算機的關(guān)鍵在于兩級分布式系統(tǒng)間的協(xié)調(diào),包括RS485總線與1553總線的并行管理,以及接受外部控制和管理內(nèi)部單元兩種工作模式的切換。兩級分布式系統(tǒng)如圖1所示。本文主要針對這一部分進行討論。

          2 管理計算機的

          2.1 管理計算機的工作分析

          管理計算機有兩種工作方式:①接收1553總線指令和數(shù)據(jù);②管理控制圖像處理系統(tǒng)內(nèi)部單元。1553總線發(fā)來的信息主要包括處理任務(wù)類型、工作時間、工作次數(shù)、狀態(tài)檢測等。管理計算機對內(nèi)管理的任務(wù)包括相關(guān)圖像公用信息的傳輸,比如圖像生成時間、地點等,以及健康狀態(tài)檢測。

          管理計算機接收1553總線指令和數(shù)據(jù)的優(yōu)先級顯然要高于對內(nèi)部管理的工作。一般情況下,管理計算機總是處于對內(nèi)部管理工作狀態(tài),因此當(dāng)1553總線有命令發(fā)來時,必須中斷其對內(nèi)的管理工作,保存工作狀態(tài),響應(yīng)上層1553總線的命令。

          1553總線中斷管理計算機的工作可以有兩種不同的方式:精確中斷和不精確中斷。精確中斷即是無論管理計算機正在進行什么工作,必須立刻中止。不精確中斷是指必須等待管理計算機將本次通信任務(wù)執(zhí)行完畢,再響應(yīng)1553總線中斷??紤]到1553總線發(fā)來的命令沒有非常荷刻的時間要求,同時考慮到設(shè)計的復(fù)雜性,在圖像處理系統(tǒng)中采用了第二種策略,即不精確中斷。

          由于設(shè)計采用不精確中斷,則1553總線發(fā)來的命令得不到及時的響應(yīng),必須使用緩沖策略。這里采用具有先進先出功能的FIFO雙口存儲器。它可以自動接收并暫時存儲來自1553總線的數(shù)據(jù),同時管理計算機也通過FIFO向1553總線發(fā)送數(shù)據(jù)。

          管理計算機單元的功能框圖如圖2所示。

          2.2 1553總線接口設(shè)計

          1553總線RT板卡與管理計算機的接口通過一塊共享雙口FIFO緩沖存儲器實現(xiàn)。FIFO要用CY7C439雙向存儲器。

          1553總線接口設(shè)計如圖3所示。

          2.3 RS485接口設(shè)計

          RS485接口由并串轉(zhuǎn)換TL16C550和RS485驅(qū)動接收器MAX489實現(xiàn),如圖4所示。

          2.4 1553總線與RS485總線的協(xié)調(diào)

          管理計算機的程序包括三部分:1553總線通信程序、RS485通信程序和RS485狀態(tài)保存程序。它們的通信方式都是通過中斷進行的。1553總線通信程序通過FIFO的中斷方式實現(xiàn),而RS485總線通信程序響應(yīng)TL16C550的中斷。DSP有四根用戶中斷線。由于1553總線中斷的優(yōu)先級大于RS485總線,因此,在DSP內(nèi)部將中斷向量1553總線設(shè)在優(yōu)先級更高的部分。

          程序控制流程如圖5所示。

          3 原理樣機調(diào)試結(jié)果

          3.1 RS485總線調(diào)試

          RS485總線通信協(xié)議采用NRM(正常響應(yīng)模式)。系統(tǒng)中其它單元不能直接向管理計算機發(fā)送信息,必須由管理計算機發(fā)送命令,由它們響應(yīng)命令。各被控單元之間的通信必須通過管理計算機進行。相應(yīng)的數(shù)據(jù)傳輸包括圖像時間、圖像區(qū)域、儀器的工作狀態(tài)(溫度、壓力等)、工作模態(tài)。數(shù)據(jù)幀格式如下:

          標志7位地址7位控制7位信息幀校驗標志7位

          控制字:指令、數(shù)據(jù)標識。

          測試結(jié)果:

          ①各類數(shù)據(jù)接收無誤;

          ②收方可以啟動自檢程序,并返回相應(yīng)信息。

          3.2 1553總線接口調(diào)試

          FIFO中斷線連接到DSP的最高優(yōu)先級INTR0,管理計算機作為1553總線的RT,解釋執(zhí)行1553標準幀格式指令。

          測試結(jié)果:

          ①當(dāng)管理計算機空閑時,可以及時響應(yīng)1553總線中斷;

          ②當(dāng)管理計算機向RS485發(fā)送信息時,可以正確響應(yīng)1553總線中斷;

          ③當(dāng)管理計算機接收RS485信息時,發(fā)送方無法得知中斷狀態(tài),仍然繼續(xù)發(fā)送。解決方法是中斷返回后,管理計算機向該設(shè)備發(fā)送要求重新傳送的指令。

          結(jié)語

          本文討論了DSP的設(shè)計,重點是兩級分布式系統(tǒng)之間的協(xié)調(diào)。在1553總線中斷上,如果采用精確中斷,程序會很復(fù)雜,但對于實時控制系統(tǒng)會有很大益處。由于這套系統(tǒng)高層命令的實時性并不是很強,采用非精確中斷就足夠了。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();