選擇串行總線
選擇串行總線并非易事。除需要考慮數據速率、數據位傳輸順序(先傳最高位或最低位)和電壓外,設計者還應該考慮以下幾點:
- 通過何種方式選擇某個外設(通過硬件片選輸入或軟件協議)。
- 外設如何與µC保持同步(借助一條硬件時鐘線,或借助內嵌于數據流中的時鐘信息)。
- 數據是在單根線上傳輸(在“高”和“低”之間轉換),還是在一對差分線上傳輸(兩根線按相反的方向同時轉換其電壓)。
- 通信線路的兩端均使用匹配電阻實現阻抗匹配(通常用于差分信號傳輸),還是不匹配或僅在一端匹配(通常用于單端總線)。
除這些特性外,具體應用還會提出更多要求,如供電方式、隔離、噪聲抑制、µC (主機)與外設(從機)間的最大傳輸距離、以及電纜連接方式(總線型、星型、可承受線路反接等)。提出類似要求的應用包括樓宇自動化、工業(yè)控制和抄表等,并且都已制定了相應的標準。1, 2
表1. 串行總線系統概括
電路板到背板的應用需求
提供外設功能的串行總線系統不應該給應用系統增加任何沉重的負荷。尤其需要注意以下幾點:- 互連布線一定要簡單(信號線越少越好)。
- 必須能夠輕松地通過軟件實現協議(或所選的µC/µP本身提供這種接口)。
- 需要提供功能廣泛的器件。
- 總線系統必須易于擴展。
表2. 1-Wire、LIN總線和SensorPath總線系統的性能差異
1-Wire3 | LIN Bus4 | SensorPath5 | |
Physical Network Size | Board or backplane, can be expanded up to ~300m | ~40m | Board |
Network Drivers (Hardware) | Drivers are available for RS-232, I²C, USB, and general µP port pins6, 7 | Drivers are available for µP port pins | Super-I/O chips, µP port pins |
Network Drivers (Software) | Available free for various platforms, including µCs8 | Available free for Freescale™ µCs | Not available |
Power Supply | Through the data line (typical case), local VCC (some devices) | Through the data line | Local VCC |
Data Rate | Up to ~15kbps (standard) or ~125kbps (overdrive)9 | Up to ~20kbps | Data dependent, up to ~20kbps |
Network Inventory | Through the "search ROM" network function | Not applicable, message-based addressing | Not supported |
Choice of Device Functions | Large variety of device functions, including serial number, instrumentation, secure memories, etc. | Limited to functions needed in automotive applications | Limited 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)變化。
評論