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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 雙DSP系統(tǒng)串口擴(kuò)展

          雙DSP系統(tǒng)串口擴(kuò)展

          作者: 時間:2011-07-13 來源:網(wǎng)絡(luò) 收藏

          在研制無線分組網(wǎng)絡(luò)路由控制器時,采用了雙結(jié)構(gòu)進(jìn)行數(shù)據(jù)處理,另外還需8個,很顯然這是本身所無法解決的,故必須進(jìn)行

          本文引用地址:http://www.ex-cimer.com/article/150473.htm

          常用方法:
          從本質(zhì)上講,所有的串口擴(kuò)展接口電路都是以并行數(shù)據(jù)形式與CPU接口,而以串行數(shù)據(jù)形式與外部邏輯接口。它們的基本功能是從外部邏輯接收串行數(shù)據(jù),轉(zhuǎn)換成并行數(shù)據(jù)后傳送給CPU;或者從CPU并行輸出的數(shù)據(jù),轉(zhuǎn)變成串行數(shù)據(jù)后輸出給外部邏輯。串行通信接口電路至少包括一個接收器和一個發(fā)送器,而接收器和發(fā)送器都分別包括一個數(shù)據(jù)寄存器和一個移位寄存器,以便實(shí)現(xiàn)CPU輸出→并行→串行→發(fā)送或接收→串行→并行→CPU輸入操作。


          串口擴(kuò)展的方法一般有三種,一是全部應(yīng)用硬件,由中小集成電路構(gòu)成串口,這種方法已很少使用;二是利用通用I/O口,由軟件來設(shè)定波特率;三是應(yīng)用串行接口器件(如UART、USRT、USART等)來擴(kuò)展串口,CPU只需通過這些接口器件所提供的接口來編程,就可以實(shí)現(xiàn)串行通信。

          SCC85C30的性能特點(diǎn)
          對一個需進(jìn)行實(shí)時多路并行數(shù)據(jù)處理的來說,選用一種高效可靠的串行通信接口器件是非常重要的。Zilog公司的串行通信控制器(SCC)85C30就是一種高性能的串行通信接口器件,其功能比其它USART(Universal Synchronous Asynchronous Receiver/Transmitter通用異步同步收發(fā)器)強(qiáng)大的多。85C30串行通信控制器(SCC)是一種雙通道、多規(guī)約數(shù)據(jù)通信外圍器件,該芯片為處理各種有效的串行通信規(guī)程提供多功能支持:可起到串-并、并-串的轉(zhuǎn)換器/控制器作用,它在程序控制下可滿足串行通信上廣泛多樣的用途;具有波特率發(fā)生器、數(shù)字鎖相環(huán)和晶體振蕩器,使外部邏輯得到簡化;能以多種方式產(chǎn)生和檢測CRC碼,并可通過多種方式編程來檢查數(shù)據(jù)的完整性,有同時在兩條通道上控制調(diào)制-解調(diào)的能力。在不需要這些控制的用途中,調(diào)制-解調(diào)控制器可作為通用I/O。

          85C30的每路信道可存取14個寫寄存器和7個讀寄存器,用戶可進(jìn)行配置使其能處理全部非同步格式,而與數(shù)據(jù)長度、停止位的數(shù)目或奇偶要求無關(guān)。還能處理所有的同步格式,包括按字符、按字節(jié)的存取規(guī)程。85C30還具有下列功能:通過檢查奇偶位改變規(guī)程;插入或刪除字符,生成CRC,并加以檢查;生成斷點(diǎn)和異常中止碼,并加以檢測;以及其它許多與規(guī)程有關(guān)的功能。

          85C30內(nèi)部結(jié)構(gòu)能提供連接多路轉(zhuǎn)換總線和非多路轉(zhuǎn)換總線所必要的全部中斷和控制邏輯。此外還有接口邏輯,用于監(jiān)視調(diào)制解調(diào)器和外圍控制輸入輸出。其控制信號都是通用的,不僅用于調(diào)制解調(diào)控制,而且適用于控制多種外圍設(shè)備。數(shù)據(jù)操作和控制聯(lián)接都通過內(nèi)部的讀和寫寄存器進(jìn)行,這些寄存器經(jīng)編程之后,可使85C30執(zhí)行各種功能(硬件開銷?。丛诔绦蚺抨?duì)之前或之中對寄存器賦值,以決定85C30如何建立一個給定的通信規(guī)程。

          85C30采用附加電路支持串行通信。設(shè)計(jì)人員可以選擇內(nèi)部波特率發(fā)生器,選擇頻率并對85C30中的幾個電路之一的輸出編程??稍诔绦蚩刂葡聦追N標(biāo)準(zhǔn)格式進(jìn)行編碼和譯碼。另外,還可為DPLL、波特率發(fā)生器接收器和發(fā)送器選擇各種定時部件。

          對多個SCC的控制設(shè)計(jì)
          對一個進(jìn)行實(shí)時并行多通道數(shù)據(jù)處理的雙DSP來說,其擴(kuò)展的串口也必須滿足的實(shí)行性要求。串行接口器件性能的好壞以及雙DSP對多個串行通信控制器(SCC)控制的好壞直接影響到系統(tǒng)的整體性能。

          雙DSP系統(tǒng)對多個SCC控制,采用4片Zilog公司的SCC(85C30)使雙DSP(TMS320F206)在原有2個異步串口和2個同步串口的基礎(chǔ)上又增加了8個串行口(可根據(jù)需要設(shè)定為異步口或設(shè)定為同步口)。

          85C30是較為復(fù)雜的器件,要充分利用其功能,需對其進(jìn)行合理編程。在編程時需對其諸多寄存器進(jìn)行操作,這在單個DSP情況下也是較為復(fù)雜的。用雙DSP對其控制,以及雙DSP對多SCC的控制情況更為復(fù)雜,需解決以下的問題:
          (1)對SCC訪問的優(yōu)先權(quán)問題;
          (2)數(shù)據(jù)線、地址線、選通控制線的方向問題;
          (3)雙DSP相互間握手、時序問題;
          (4)兩套總線間干擾的消除問題及總線切換時的誤動作問題;
          為解決這些問題,需采取硬件設(shè)計(jì)和軟件設(shè)計(jì)相結(jié)合的辦法,使DSP對SCC的控制更可靠,效率更高。
          在硬件的設(shè)計(jì)上:
          (1)采用了兩套獨(dú)立的數(shù)據(jù)線和地址線,重點(diǎn)解決了讀/寫、片選等切換邏輯的設(shè)計(jì)問題;
          (2)采用雙向三態(tài)總線驅(qū)動器(如74LS245)實(shí)現(xiàn)數(shù)據(jù)、地址、控制總線的隔離;
          (3)把DSP(TMS320F206)的IO0、IO1、IO2、IO3設(shè)置為對SCC的訪問控制線。實(shí)現(xiàn)DSP對SCC的分時復(fù)用。
          在軟件設(shè)計(jì)上:
          (1)對兩個DSP進(jìn)行了分工,設(shè)定DSP1負(fù)責(zé)接收數(shù)據(jù),DSP2負(fù)責(zé)發(fā)送數(shù)據(jù);
          (2)設(shè)定DSP1從第1個SCC開始向后查詢,DSP2從第三個SCC向后查詢,最大限度地降低二者忙閑比,提高了系統(tǒng)的實(shí)時性。
          (3)把IO0、IO1設(shè)定為發(fā)送端口,把IO2、IO3設(shè)定為接收端口。IO0-IO3值所表達(dá)含義如附表所示。
          (4)對SCC分時選通。訪問某一SCC前先查詢IO2、IO3以確定另一DSP是否正在訪問它,若另一DSP不訪問該SCC,則訪問之首先把該SCC的編號通過IO0、IO1發(fā)送給另一DSP;若另一DSP正訪問它,則跳過該SCC,訪問下一SCC,同樣也把該SCC的編號通過IO0、IO1發(fā)送給另一DSP。



          關(guān)鍵詞: 擴(kuò)展 串口 系統(tǒng) DSP

          評論


          相關(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); })();