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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式應用中的互連技術應用

          嵌入式應用中的互連技術應用

          作者: 時間:2011-07-12 來源:網絡 收藏

          連接外圍器件似乎是設計工程師必須面對的處理過程。在很多情況下,串行網絡具有足夠的性能來完成該工作并最小化器件間的連接。這對于器件間距離大于數厘米的情況非常重要。

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

            目前已有多種方案可用。而許多其它的方案可以從現場總線、具有專利的接口和專用串行接口中選擇。它們之間常常會有直接競爭關系,但是大部分方案都有其利基市場。

            通常,一個串行互連包含的電線數目不會超過6根,其中可能包括電源線和地線(不過情況可能會有變化)。例如,像美信公司1-Wire這樣的器件需要連接地線。這也是一個互連的多種參考設計在計算電線數目時沒有將電源線計算在內的原因。

            目前存在很多不同的架構和協議,對于單主機和多主機網絡而言也存在這種情況。以太網、PCI Express和Serial RapidIO(SRIO)等諸多架構都需要一個交換結構。

            當處理串行網絡的集成接口時,性能和簡易性往往都是問題。8位或性能更強微控制器必須支持I2C、串行外設接口(SPI)、控制器區(qū)域網絡(CAN)、本地互連網絡(LIN)和1-Wire接口。而多功能串行端口通??芍С稚鲜鼋涌谝约邦愃芌S-485的標準串行接口(雖然RS-485和CAN一般都需要采用外部收發(fā)芯片)。

            大部分其它接口采用標準微控制器輸出,并允許器件之間的直接連接。由NXP公司推出的I2C通信鏈路是可提供這類支持(圖1)的一種雙線解決方案。它不包含任何錯誤檢查功能,但支持多主機操作。

            

          圖1:一個ISUP>2/SUP>C主器件提供時鐘和初始地址。根據主器件R/W位的值決定是由主器件還是從器件傳送數據,基于每字節(jié)來識別數據傳送。最高有效位(MSB)位是最先被傳送的位。

            圖1:一個I2C主器件提供時鐘和初始地址。根據主器件R/W位的值決定是由主器件還是從器件傳送數據,基于每字節(jié)來識別數據傳送。最高有效位(MSB)位是最先被傳送的位。

            數據包包括一個用來指示主器件或從器件是否發(fā)送數據的地址和方向位。此外,I2C屬于PMBus、SMBus和智能平臺管理接口(IPMI)等功率管理和系統管理標準的一部分,以上標準可利用I2C的多主機模式。而且I2C沒有版稅問題。

            I2C的主要對手是SPI(圖2)。作為一種主/從器件的互連接口,SPI通常用于將外圍芯片連接到主處理器上,其芯片選擇架構的硬件和軟件實現十分簡單。SPI可提供比I2C更快的傳輸速率,但需要以采用更多電線為代價。在硬件端,僅需一個移位寄存器和一些邏輯門就可以實現。此外,SPI還可提供一個相對于I2C的基址寄存器尋址方式而言非常低級的接口。

            

          嵌入式應用中的互連技術 linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(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); })();