新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 選擇串行總線

選擇串行總線

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

選擇并非易事。除需要考慮數據速率、數據位傳輸順序(先傳最高位或最低位)和電壓外,設計者還應該考慮以下幾點:
  • 通過何種方式選擇某個外設(通過硬件片選輸入或軟件協議)。
  • 外設如何與µC保持同步(借助一條硬件時鐘線,或借助內嵌于數據流中的時鐘信息)。
  • 數據是在單根線上傳輸(在“高”和“低”之間轉換),還是在一對差分線上傳輸(兩根線按相反的方向同時轉換其電壓)。
  • 通信線路的兩端均使用匹配電阻實現阻抗匹配(通常用于差分信號傳輸),還是不匹配或僅在一端匹配(通常用于單端總線)。
表1以矩陣的形式展示了各種通用總線系統之間的差異。16種可能組合中只有4種通用類型為大家所熟知。

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

表1. 線系統概括


電路板到背板的應用需求

提供外設功能的線系統不應該給應用系統增加任何沉重的負荷。尤其需要注意以下幾點:
  • 互連布線一定要簡單(信號線越少越好)。
  • 必須能夠輕松地通過軟件實現協議(或所選的µC/µP本身提供這種接口)。
  • 需要提供功能廣泛的器件。
  • 總線系統必須易于擴展。
使用軟件協議完成尋址的單端、自同步系統需要的信號線最少。從表1可以看出,1-Wire、LIN總線和SensorPath能夠滿足這些條件。在這類總線系統中,還需要考慮其它因素(見表2)。

表2. 1-Wire、LIN總線和SensorPath總線系統的性能差異
1-Wire3LIN Bus4SensorPath5
Physical Network SizeBoard or backplane, can be expanded up to ~300m~40mBoard
Network Drivers (Hardware)Drivers are available for RS-232, I²C, USB, and general µP port pins6, 7Drivers are available for µP port pinsSuper-I/O chips, µP port pins
Network Drivers (Software)Available free for various platforms, including µCs8Available free for Freescale™ µCsNot available
Power SupplyThrough the data line (typical case), local VCC (some devices)Through the data lineLocal VCC
Data RateUp to ~15kbps (standard) or ~125kbps (overdrive)9Up to ~20kbpsData dependent, up to ~20kbps
Network InventoryThrough the "search ROM" network functionNot applicable, message-based addressingNot supported
Choice of Device FunctionsLarge variety of device functions, including serial number, instrumentation, secure memories, etc.Limited to functions needed in automotive applicationsLimited to temperature sensors and voltage ADCs

物理網絡尺寸

只有SensorPath局限于電路板尺寸的應用。一定條件下,使用恰當的硬件和軟件網絡驅動器,可以極大地擴展1-Wire總線網絡的距離。

網絡驅動器

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

電源

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

數據速率

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

網絡節(jié)點查找功能

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

器件功能選擇

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

I²C/SMBus與1-Wire總線

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

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

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

SPI和MICROWIRE接口

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

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

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

LVDS18、RS-48519和CAN20可實現掛接主機和從機的總線型結構,甚至可以連接多個主機。這些標準中低壓差分信號(LVDS)是速率最快的,如果總線長度不超過10m,可工作在100Mbps速率下??捎玫臄祿俾始巴掏驴梢愿旎蚋?,具體取決于網絡尺寸。LVDS電氣標準專為背板應用而設計,支持熱插拔功能,但不包含任何協議。

RS-485也僅定義了電氣參數。RS-485定義了負載和每條總線的最大負載數目(32),而不是以節(jié)點的形式給出。一個電氣節(jié)點的負載可以小于1。12m網絡距離下的典型數據速率可高達35Mbps,1200m距離下數據速率可達100kbps,這些特性足以滿足數據采集和控制應用。RS-485設備的協議通常基于原來設計用于RS-232的部分協議。

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

結語

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


關鍵詞: 串行總

評論


技術專區(qū)

關閉