<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 應對嵌入式系統設計中的接口不兼容性

應對嵌入式系統設計中的接口不兼容性

作者: 時(shí)間:2011-11-05 來(lái)源:網(wǎng)絡(luò ) 收藏
  就像圣經(jīng)里描述的巴別塔語(yǔ)言障礙一樣,現代系統設計人員同樣也面臨著(zhù)全球不同 IC 廠(chǎng)商和標準機構所定義的通用接口/協(xié)議之間不兼容的問(wèn)題。

  自上世紀 60 年代初 IBM 推出具備 8 位 ASCII 代碼存儲的計算機,以及 Gordon Bell 設計出可讓 PDP 系列計算機在 MCU 和外設之間傳輸數據的通用異步收發(fā)器 (UART) 以來(lái),數字通信協(xié)議的數量就在不斷增長(cháng)。UART 的主要特點(diǎn)是簡(jiǎn)單易用,標準通用,使用壽命長(cháng),而且通過(guò)編程選項可以提供多通道的靈活性。UART 通過(guò)內置的故障檢查機制來(lái)管理通信通道,而且通過(guò) FIFO 在發(fā)送/接收前后對數據進(jìn)行緩沖, 從而減輕 MCU 的工作負載。

  隨后,出現了被認為與 UART 具有兄弟關(guān)系的 I2C 和 SPI 標準,二者自 1980 年以來(lái)都很受青睞。都便于進(jìn)行設計和故障調試、測試非常迅速、因為信號線(xiàn)較少,因而占用的 PCB 面積也較小。不過(guò)由于二者在功能和實(shí)施方案方面比較相似,所以在用于特定應用時(shí),工程師們常常不知道如何在這兩種通用且高效的接口中做出選擇。

  以下,我們就不同應用要求給出一些可資借鑒的小竅門(mén):

  SPI 與 I2C 不一樣,不限于 8 位接口,因此能發(fā)送具有任意內容和用途的各類(lèi)消息。相對于 I2C 而言,SPI 還能支持較高的數據傳輸速率,而這主要歸功于其雙工功能。

  SPI 接口不需要上拉電阻,因而可降低功耗。

  I2C 的線(xiàn)路較少,更加簡(jiǎn)單,因此橋接到 IC 所需的引腳較少。而與此形成對比的是,SPI 需要 4 條線(xiàn)。

  I2C 不需要片選信號線(xiàn)來(lái)進(jìn)行從機確認,具有支持帶內尋址的優(yōu)勢。利用 SPI,主機可不用向任何一方發(fā)送數據且無(wú)需確認。


  系統管理總線(xiàn) (SMBus) 和電源管理總線(xiàn) (PMBus) 是上世紀 90 年代中期開(kāi)發(fā)的 I2C總線(xiàn)的兩種常見(jiàn)衍生標準。二者的數據傳輸速率、超時(shí)和最小時(shí)鐘速度、電壓電平、上拉電阻值和電流大小等都不盡相同。SMBus 為系統和電源管理相關(guān)任務(wù)提供了控制總線(xiàn)。采用 SMBus 的系統在器件間發(fā)送消息,而非斷開(kāi)單條控制線(xiàn)路;而 PMBus 器件則必須使用實(shí)施于業(yè)界標準 SMBus 串行接口之上的 SMBus Version 1.1。PMBus 協(xié)議有助于符合標準的功率轉換產(chǎn)品的編程、控制和實(shí)時(shí)監控[1,2]。

  接下來(lái)出現的就是我們都頗為熟悉的通用串行總線(xiàn) (USB) 標準了,自 1995 年以來(lái)該標準就取代陳舊的 RS-232 接口而不斷受到設計工程師的青睞。這是一種簡(jiǎn)單而精致的通信技術(shù),能實(shí)現多達 126 個(gè)互聯(lián)設備的通信,其采用的協(xié)議定義完善,可確保通過(guò)統一的標準化接口插槽連接多個(gè)外設。此外,它還通過(guò)熱拔插支持即插即用功能。USB 為四線(xiàn)電纜接口,無(wú)需另外的電源線(xiàn)(USB 電纜本身即可供電)。


  設計挑戰

  幾乎任何(如醫療設備、電信設備、銷(xiāo)售點(diǎn)系統及其他不同種類(lèi)應用)的設計都會(huì )采用上述各種接口中的一種或多種。此外,每種接口標準都在不斷發(fā)展,帶來(lái)更多可供設計人員應用的衍生接口。例如,此前必須的時(shí)鐘拉伸特性現在已經(jīng)成為可選特性了,從而可讓主從機的 SCL 線(xiàn)保持在低電平,以阻止總線(xiàn)上的數據事務(wù)處理(也就是說(shuō)沒(méi)有 SCL 驅動(dòng)器的從機不能拉伸時(shí)鐘)。再如,大多數微處理器生成的 RS-232 信號電壓為 0 至 5 伏特之間的 TTL 水平,這通常需要電平轉換器芯片(如 MAX232)將 0 至 5 伏特的電壓轉換到標準的 RS-232 電壓水平(-15V 至 +15V)。如前所述,UART 在 I2C、SPI 和 USB 出現之前一直在串行數據事務(wù)處理接口領(lǐng)域占據著(zhù)主導地位,由于設計人員已經(jīng)很熟悉 UART 且習慣于以這種標準進(jìn)行設計工作,從而導致了許多系統只支持 UART 這一種接口。因此,我們現在需要確保 UART 能與其他數據協(xié)議相互兼容,這樣才能讓這種系統與其他系統橋接起來(lái)。

  設計人員面臨的挑戰是如何在不改變目前的 CPU 或 ASIC 的情況下解決傳統系統和新系統之間的不兼容性問(wèn)題(比如,這些系統采用了不同的接口)。例如,I2C 和 SPI 之間的橋接問(wèn)題。I2C 接口的數據控制 (SDA) 和時(shí)鐘 (SCL) 信號通過(guò)橋接到兩個(gè)專(zhuān)門(mén)的 GPIO 引腳提供給外部I2C接口。通過(guò)輪詢(xún)和中斷實(shí)現固件同步。SPI 主機可通過(guò) Tx 緩沖、Rx 緩沖實(shí)施。SPIM 硬件從主出從入 (MOSI) 信號上的主 SPI 器件發(fā)送數據,并同時(shí)從主入從出 (MISO) 信號上選定的從 SPI 器件接收數據。同樣的 SCLK 信號還用于主從數據的發(fā)送和接收。I2C 與 SPI 橋接時(shí)將I2C 作為從機,將 SPI 作為主機,其從I2C主機接收命令,并根據接收到的命令向 SPI 從機寫(xiě)入或讀取數據。



  還有一個(gè)突出的例子就是 SPI 到 UART 的橋接。UART 接口通過(guò) Rx 線(xiàn)路接收數據。數據通過(guò) SPI 接口發(fā)送到 SPI 從機。從 SPI 從機接收到的數據通過(guò) UART 的 Tx 線(xiàn)路發(fā)送回 “UART 主機”。

  不同接口之間的橋接可通過(guò)作為微處理器的分立或集成組件的可編程邏輯加以實(shí)施。在帶有可編程邏輯的微處理器上實(shí)施時(shí),我們可根據應用需要嵌入一些智能邏輯,分析接收到的數據并根據接收到的命令執行操作。也可將其他的數字和模擬塊配置為 PWM、計時(shí)器、計數器、ADC、DAC、比較器或其他的通信外設(如 IrDA 和I2C)。此外還可將多個(gè) SPI 器件連接到橋接器上,從而讓單一的 UART 與多個(gè) SPI 從器件進(jìn)行通信。

  在簡(jiǎn)單的橋接實(shí)施方案中,器件固件通過(guò)寄存器的讀取和寫(xiě)入與I2C 塊互動(dòng)。SPI 信號可通過(guò)不同的行和全局互聯(lián)路由到任何 GPIO。SPI 塊可選擇兩種中斷源:TX Reg Empty(默認)中斷與 SPI Complete 中斷。I2C 從中斷也可通過(guò)設置寄存器中的位啟用或禁用。

  在微處理器上實(shí)施橋接還能使設計人員根據特定的應用修改接口以創(chuàng )建定制接口。片上資源可分配用于調節不同通信協(xié)議的數量和變異性。上述資源還可根據需要進(jìn)行再配置,以實(shí)施不同的接口,使器件適應于需要與之通信的其他器件。此外,特別是在需要降低成本的環(huán)境中,可再配置資源的可用性使得工程師能重用橋接資源,實(shí)施電容感應和/或電壓/電流監控功能等其他功能。

  不同廠(chǎng)商制定的數據事務(wù)處理速率也很重要,因為接口 IC 通常作為無(wú)源組件用于以高速處理器為中心的系統中。實(shí)施具有先進(jìn)先出 (FIFO) 特性的橋接器使設計人員能在數據事務(wù)處理期間根據時(shí)間和優(yōu)先級組織和處理數據,以提高高速串行通信的可靠性并提高系統吞吐量。

  右圖顯示的是外部組件集成的一個(gè)突出實(shí)例。如果在 TTL 電壓電平(0 至 5 伏特)上生成 RS-232 信號,通常需要一個(gè)電平轉換器芯片(如 MAX232)將 0 至 5 伏特的電壓轉換為標準的 RS-232 電壓(-15V 至 +15V)。用戶(hù)在系統中植入接口 IC,即可讓現有的處理器與處于 TTL 電平級別的橋接器進(jìn)行通信,而橋接器則能以 USB 電平將數據發(fā)送給 PC,從而不再需要 MAX232 芯片,且降低了設計的物料清單 (BOM) 成本。

  橋接還能確保設計方案滿(mǎn)足今后接口發(fā)展的要求。由于在設計初期階段就使用橋接器,設計人員能確保在不替換主微控制器的情況下實(shí)現接口之間的兼容性。這對某些接口持續變動(dòng)的更專(zhuān)業(yè)的應用而言尤其重要,例如大量涌現的用于音頻的 I2S(Inter-IC Sound)接口、用于感應器的 I/O 鏈接以及用于機動(dòng)車(chē)輛的 CAN(控制器局域網(wǎng))等專(zhuān)門(mén)接口。從降低系統級成本和提高功效的角度考慮,能靈活集成上述接口的微控制器必然有助于用戶(hù)根據不同應用要求以能使設計人員從中長(cháng)期受益的方式定制通信協(xié)議。



關(guān)鍵詞: 嵌入式系統 接口不兼容性

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>