新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 串行總線的選擇原則

串行總線的選擇原則

作者: 時間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
  微控制器(µC)是當今各種先進電子產(chǎn)品的核心,它需要與一個或多個外設(shè)器件通信。以前,µC的外設(shè)是以存儲器映射方式與數(shù)據(jù)和地址總線連接的。對地址線譯碼以獲得片選信號,從而在有限的地址范圍內(nèi)為每個外設(shè)分配唯一的地址。這種接口類型所需的最少引腳數(shù)(除電源和地之外)為:8 (數(shù)據(jù)) + 1 (R//W) + 1 (/CS) + n條地址線[n = log2(內(nèi)部寄存器或存儲器字節(jié)的數(shù)目)]。例如,與一個16字節(jié)外設(shè)通信時,需要的引腳數(shù)為:8 +1 + 1 + 4 = 14。這種接口的訪問速度快,但較多的引腳數(shù)也同時帶來了封裝尺寸增大和總成本提高的問題。要降低成本和縮小封裝尺寸,串行接口顯然是理想的替代方案。

  選擇串行總線并非易事。除需要考慮數(shù)據(jù)速率、數(shù)據(jù)位傳輸順序(先傳最高位或最低位)和電壓外,設(shè)計者還應(yīng)該考慮以下幾點:

本文引用地址:http://butianyuan.cn/article/201612/329495.htm

  通過何種方式選擇某個外設(shè)(通過硬件片選輸入或軟件協(xié)議)。 外設(shè)如何與µC保持同步(借助一條硬件時鐘線,或借助內(nèi)嵌于數(shù)據(jù)流中的時鐘信息)。 數(shù)據(jù)是在單根線上傳輸(在“高”和“低”之間轉(zhuǎn)換),還是在一對差分線上傳輸(兩根線按相反的方向同時轉(zhuǎn)換其電壓)。 通信線路的兩端均使用匹配電阻實現(xiàn)阻抗匹配(通常用于差分信號傳輸),還是不匹配或僅在一端匹配(通常用于單端總線)。

  表1以矩陣的形式展示了各種通用總線系統(tǒng)之間的差異。16種可能組合中只有4種通用類型為大家所熟知。

  除這些特性外,具體應(yīng)用還會提出更多要求,如供電方式、隔離、噪聲抑制、µC (主機)與外設(shè)(從機)間的最大傳輸距離、以及電纜連接方式(總線型、星型、可承受線路反接等)。提出類似要求的應(yīng)用包括樓宇自動化、工業(yè)控制和抄表等,并且都已制定了相應(yīng)的標準。1, 2

  表1. 串行總線系統(tǒng)概括

  



  電路板到背板的應(yīng)用需求

  提供外設(shè)功能的串行總線系統(tǒng)不應(yīng)該給應(yīng)用系統(tǒng)增加任何沉重的負荷。尤其需要注意以下幾點:

  互連布線一定要簡單(信號線越少越好)。 必須能夠輕松地通過軟件實現(xiàn)協(xié)議(或所選的µC/µP本身提供這種接口)。 需要提供功能廣泛的器件。 總線系統(tǒng)必須易于擴展。

  使用軟件協(xié)議完成尋址的單端、自同步系統(tǒng)需要的信號線最少。從表1可以看出,1-Wire、LIN總線和SensorPath能夠滿足這些條件。在這類總線系統(tǒng)中,還需要考慮其它因素(見表2)。

  表2. 1-Wire、LIN總線和SensorPath總線系統(tǒng)的性能差異

  物理網(wǎng)絡(luò)尺寸

  只有SensorPath局限于電路板尺寸的應(yīng)用。一定條件下,使用恰當?shù)挠布蛙浖W(wǎng)絡(luò)驅(qū)動器,可以極大地擴展1-Wire總線網(wǎng)絡(luò)的距離。

  網(wǎng)絡(luò)驅(qū)動器

  對于基于協(xié)議的網(wǎng)絡(luò),設(shè)計者需要軟件驅(qū)動程序來產(chǎn)生通信波形(鏈路層),識別并尋址網(wǎng)絡(luò)(網(wǎng)絡(luò)層)的單個從器件/節(jié)點,并發(fā)送/接收數(shù)據(jù)(傳輸層)。軟件驅(qū)動程序與特定操作系統(tǒng)和通信端口有關(guān)??商峁┗诟黝惗丝诘?-Wire硬件驅(qū)動芯片(主機)以及適配器,端口類型包括COM、LPT、USB和I²C。在未作匹配的大型網(wǎng)絡(luò)中,電纜末端、連接器和分支的反射會限制網(wǎng)絡(luò)的傳輸性能。

  電源

  必須為網(wǎng)絡(luò)中的每個從器件供電,以實現(xiàn)正常工作。最具成本效益的方法是通過數(shù)據(jù)線遠程供電。該方法也稱為“寄生供電”,這使得讀取系統(tǒng)診斷信息(比如在掉電模式下)成為可能。具體范例請參考應(yīng)用筆記178中的圖3和相關(guān)內(nèi)容:"利用1-Wire產(chǎn)品標識印刷電路板"10。當然由于必須為供電留出時間,寄生供電也降低了可用的數(shù)據(jù)速率。

  數(shù)據(jù)速率

  通常來說,數(shù)據(jù)速率越高,網(wǎng)絡(luò)傳輸距離越短,反之亦然。1-Wire系統(tǒng)具有電源傳輸功能,因此最大數(shù)據(jù)傳輸速率取決于網(wǎng)絡(luò)的從器件數(shù)目以及電纜總長度(電容)。

  網(wǎng)絡(luò)節(jié)點查找功能

  該特性允許主機識別網(wǎng)絡(luò)中從器件的數(shù)目、類型和地址。這一點對于節(jié)點數(shù)動態(tài)(變化)的網(wǎng)絡(luò)來說必不可少。請參考Dallas工程期刊(第2期)11第22頁中的示例。

  器件功能選擇

  范圍如果不能提供應(yīng)用所需要的功能,即使再出色的總線也毫無用處。與LIN總線和SensorPath相比,1-Wire系統(tǒng)目前可以提供最豐富的功能。

  I²C/SMBus與1-Wire總線

  如果實際應(yīng)用可以提供時鐘線,則總線選擇范圍可擴展到I²C12和SMBus13器件。根據(jù)SMBus的規(guī)范,它可以看作是100kbps I²C總線規(guī)范增加了超時特性后的派生總線類型。在某個節(jié)點與總線主機失去同步的情況下,超時特性可避免總線發(fā)生閉鎖,而I²C系統(tǒng)則需要經(jīng)過一次上電復(fù)位過程,才能從這種故障狀態(tài)恢復(fù)至正常工作狀態(tài)。在1-Wire系統(tǒng)中,復(fù)位/在線檢測周期可將通信接口復(fù)位至確定的啟動條件下。

  除了時鐘線外,I²C/SMBus還為總線上傳輸?shù)拿總€字節(jié)提供一個應(yīng)答位。這使得有效數(shù)據(jù)速率降低了12%。通信過程開始于一個啟動條件,并跟隨從器件地址和一個數(shù)據(jù)方向位(讀/寫),最后結(jié)束于一個停止條件。對于1-Wire系統(tǒng),首先需要滿足網(wǎng)絡(luò)層的要求(即選擇某個特定器件,執(zhí)行search ROM命令或者廣播);接下來發(fā)送與特定器件相關(guān)的命令代碼,該代碼同時會影響數(shù)據(jù)的傳輸方向(讀/寫)。

  原有I²C和SMBus總線系統(tǒng)的一個突出問題是其有限的7位地址空間。由于可提供超過127種不同器件類型,我們無法根據(jù)從器件地址推斷器件功能。此外,許多I²C器件還允許用戶隨意設(shè)置1個或多個地址位,以在總線上掛接多個相同器件。這種特性進一步減少了可用的地址空間。解決地址沖突問題的標準做法是將總線系統(tǒng)劃分成若干段,某一時刻可在軟件控制下激活某個網(wǎng)絡(luò)段。該網(wǎng)絡(luò)段需要增加更多硬件,也使應(yīng)用固件更為復(fù)雜。I²C系統(tǒng)不具備網(wǎng)絡(luò)節(jié)點查找或枚舉功能,因此很難處理節(jié)點數(shù)動態(tài)變化的系統(tǒng)。這一問題可借助SMBus Specification Version 2.013中的地址分辨率協(xié)議得以解決。但是,支持該特性的SMBus器件極為稀少。

  SPI和MICROWIRE接口

  SPI14和MICROWIRE15 (SPI的子集)均需要為每個從器件提供一條額外的片選線。由于具有片選信號,SPI協(xié)議只定義了針對存儲器地址和狀態(tài)寄存器的讀/寫命令。它不提供應(yīng)答功能。通常,SPI器件的數(shù)據(jù)輸入和數(shù)據(jù)輸出采用不同的引腳。鑒于數(shù)據(jù)輸出在除了讀操作外的任何情況下均為三態(tài)(禁止),因此可將兩個數(shù)據(jù)引腳接到一起以構(gòu)成單根雙向數(shù)據(jù)線。當其它總線系統(tǒng)無法提供所需的功能或需要較高的數(shù)據(jù)傳輸速率時,可選用SPI總線,它可以支持2Mbps或更高的速率。SPI和MICROWIRE的不利因素在于產(chǎn)生CS信號的譯碼邏輯,以尋址某個特定器件。但是不會產(chǎn)生地址沖突問題。和I²C總線一樣,不提供節(jié)點查找功能。主機無法根據(jù)從器件的邏輯地址來推斷器件功能,因此很難管理節(jié)點動態(tài)變化的網(wǎng)絡(luò)。

  RS-485、LVDS、CAN、USB 2.0和FireWire

  我們對這些標準進行討論,以舉例說明差分傳輸?shù)奶攸c。這類總線系統(tǒng)中傳輸速率最快的兩種是FireWire16和USB 2.017,它們采用點對點電氣連接。使用先進的節(jié)點或集線器,可以構(gòu)成樹狀拓撲的虛擬總線,數(shù)據(jù)包從源發(fā)送至端點(USB),或采用對等傳輸(FireWire),突發(fā)數(shù)據(jù)速率高達480Mbps (USB 2.0)或1600Mbps (FireWire)。尺寸有限的數(shù)據(jù)包以及接收/緩沖/重發(fā)通信機制增加了傳輸時間,反過來降低了有效的數(shù)據(jù)吞吐能力。USB的拓撲和協(xié)議允許最多連接126個節(jié)點,F(xiàn)ireWire允許最多63個節(jié)點,使用無源電纜時節(jié)點間的最大傳輸距離為4.5m。專為包括PC外設(shè)、多媒體、工業(yè)控制和航空(僅FireWire)應(yīng)用而設(shè)計,USB和FireWire器件可以帶電插入系統(tǒng)(熱插拔)。該特性允許網(wǎng)絡(luò)節(jié)點數(shù)動態(tài)變化。

  LVDS18、RS-48519和CAN20可實現(xiàn)掛接主機和從機的總線型結(jié)構(gòu),甚至可以連接多個主機。這些標準中低壓差分信號(LVDS)是速率最快的,如果總線長度不超過10m,可工作在100Mbps速率下。可用的數(shù)據(jù)速率及吞吐可以更快或更慢,具體取決于網(wǎng)絡(luò)尺寸。LVDS電氣標準專為背板應(yīng)用而設(shè)計,支持熱插拔功能,但不包含任何協(xié)議。

  RS-485也僅定義了電氣參數(shù)。RS-485定義了負載和每條總線的最大負載數(shù)目(32),而不是以節(jié)點的形式給出。一個電氣節(jié)點的負載可以小于1。12m網(wǎng)絡(luò)距離下的典型數(shù)據(jù)速率可高達35Mbps,1200m距離下數(shù)據(jù)速率可達100kbps,這些特性足以滿足數(shù)據(jù)采集和控制應(yīng)用。RS-485設(shè)備的協(xié)議通?;谠瓉碓O(shè)計用于RS-232的部分協(xié)議。

  與此不同,控制器局域網(wǎng)(CAN)為分布式實時控制定義了通信協(xié)議,安全性非常高,專門面向汽車應(yīng)用和工業(yè)自動化領(lǐng)域。數(shù)據(jù)速率從40m距離下的1Mbps到1000m距離下的50kbps。尋址方式是基于消息的,協(xié)議本身對節(jié)點數(shù)沒有任何限制。CAN節(jié)點支持熱插拔,網(wǎng)絡(luò)節(jié)點數(shù)可以動態(tài)變化。

  結(jié)語

  在簡單、低成本總線系統(tǒng)中,與LIN總線和SensorPath相比,1-Wire系統(tǒng)的從器件可提供最廣泛的功能和網(wǎng)絡(luò)驅(qū)動器。I²C和SMBus除了需要數(shù)據(jù)線和參考地之外,還需要時鐘線和VCC電源,當然可供選擇的器件功能也非常多。SPI和MICROWIRE需要額外的片選線,但可以提供更高的數(shù)據(jù)速率。除支持寄生供電和網(wǎng)絡(luò)節(jié)點查找功能外,1-Wire接口和協(xié)議還支持熱插拔,這一特性通常僅在使用差分信號的高速系統(tǒng)以及SMBus 2.0兼容產(chǎn)品中才提供。iButton®產(chǎn)品是使用極為廣泛的熱插拔1-Wire器件,熱插拔是這類器件的正常工作方式。事實已經(jīng)證明,1-Wire器件在下列應(yīng)用中極為有效:全球識別號21、電路板/配件標識與認證10、溫度檢測和執(zhí)行裝置等。另外一種非常成功的1-Wire產(chǎn)品是具有安全存儲器和質(zhì)詢-響應(yīng)機制的器件,它能以最低的成本實現(xiàn)雙向認證和軟件代碼保護22, 23。



關(guān)鍵詞: 串行總線選擇原

評論


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

關(guān)閉