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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于SPI總線技術的同步422接口設計

          基于SPI總線技術的同步422接口設計

          作者: 時間:2010-11-30 來源:網絡 收藏


          4 轉換電路設計

          由于RS-422采用的電平與SPI不同,所以必須使用電平轉換芯片。這里采用MAXIM公司的MAX3088[10]。這是一款用于RS-422通信的一路高速低功耗電平轉換收發(fā)芯片,半雙工通信,傳輸速率最大可達10 Mb/s。它有8個引腳:5號引腳為電源引腳,8號引腳為接地引腳,6號(A)、7號(B)是差分引腳。其他幾個引腳分別為:1(RO)是接收器輸出;2()是接收器輸出使能,3(DE)是驅動器輸出使能,4(DI)是驅動器輸入。要使其工作在發(fā)送模式,只需將和DE同時置1,此時,若輸入DI為1,則輸出的A為1,B為0;若DI為0,則A 為0,B為1。它與S3C2450X的連接圖如圖4所示。
          4.JPG

          圖4中將S3C2450X的SPICLK0和SPIMOSI0引腳分別接到2個MAX3088的DI引腳上,DE和RE接5 V直流電源,A和B為差分對輸出,C1、C2為旁路電容。由于只使用SPI的發(fā)送功能,所以忽略了SPIMISO0引腳。

          5 接口電路調試

          由于RS-422只是規(guī)定了電壓標準而無具體實現細節(jié),所以接口的軟件調試主要是對S3C2450X的SPI模塊進行設置。其具體編程步驟如下:

          (1)通過SPI配置寄存器CH_CFG設置數據傳輸格式。

          (2)設置時鐘配置寄存器Clk_CFG,決定同步時鐘頻率。

          (3)設置SPI模式寄存器MODE_CFG,包括傳送數據的單位以及是否啟用DMA模式等。

          (4)設置中斷使能寄存器,包括是否響應FIFO溢出以及為空時所產生的中斷等。

          (5)通過設置CH_CFG中的RxChOn和TxChOn打開數據傳輸通道。

          (6)發(fā)送數據,檢查發(fā)送準備好標志(TxFifoRdy=1),然后寫數據到數據發(fā)送寄存器TX_DATA。

          (7)接收數據,檢查接收準備好標志(RxFifoRdy=1),接著數據接收寄存器RX_DATA自動從讀緩沖區(qū)讀出數據,之后從RX_DATA中讀數據。

          將S3C2450X產生的SPIMOSI傳輸至驅動芯片MAX3088,用示波器測得轉換前后信號的波形如圖5所示。


          從圖5中可以看出轉換后的2個差分信號VA和VB之差與轉換前的單端信號DI保持了邏輯上的一致,只是由于芯片在信號轉換中需要耗時,所以產生了約25 ns的延時。
          5.JPG
          通過將SPI總線由單端不平衡傳輸轉換為雙端平衡傳輸,解決了SPI信號易受干擾的問題。又由于其同步通信的高效性使得它非常適用于圖像傳輸。另外,如果對傳輸速率的要求不是太高,則RS-422也可以進行遠距離傳輸,這大大擴展了SPI器件的使用范圍。隨著技術的發(fā)展,以RS-422為代表的雙端平衡傳輸模式將會得到越來越廣泛的應用。

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

          上一頁 1 2 3 下一頁

          關鍵詞: 控制器 信號

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();