摘要:本應用筆記討論微控制器作為當今各種先進電子產品的核心,與一個或多個外設器件的通信技術。以前,微控制器的外設是以存儲器映射方式與數據和地址總線連接的。但是,由于較多的引腳數,增大了封裝尺寸,并提高了總體成本。要降低成本和縮小封裝尺寸,串行接口顯然是理想的替代方案,例如:1-Wire?、SPI、I2C、USB等,它們代表了不同的物理網絡尺寸、網絡驅動器、電源、數據速率及功能選擇。不同類型的接口具有不同的優勢,而1-Wire接口在串行通信中不失為一種創新設計。
本文還發表于Maxim工程期刊,第59期(PDF, 876kB)。
微控制器(μC)是當今各種先進電子產品的核心,它需要與一個或多個外設器件通信。以前,μC的外設是以存儲器映射方式與數據和地址總線連接的。對地址線譯碼以獲得片選信號,從而在有限的地址范圍內為每個外設分配唯一的地址。這種接口類型所需的最少引腳數(除電源和地之外)為:8 (數據) + 1 (R//W) + 1 (/CS) + n條地址線[n = log2(內部寄存器或存儲器字節的數目)]。例如,與一個16字節外設通信時,需要的引腳數為:8 +1 + 1 + 4 = 14。這種接口的訪問速度快,但較多的引腳數也同時帶來了封裝尺寸增大和總成本提高的問題。要降低成本和縮小封裝尺寸,串行接口顯然是理想的替代方案。
選擇串行總線并非易事。除需要考慮數據速率、數據位傳輸順序(先傳最高位或最低位)和電壓外,設計者還應該考慮以下幾點:
除這些特性外,具體應用還會提出更多要求,如供電方式、隔離、噪聲抑制、μC (主機)與外設(從機)間的最大傳輸距離、以及電纜連接方式(總線型、星型、可承受線路反接等)。提出類似要求的應用包括樓宇自動化、工業控制和抄表等,并且都已制定了相應的標準。1, 2
表1. 串行總線系統概括
表2. 1-Wire、LIN總線和SensorPath總線系統的性能差異
除了時鐘線外,I2C/SMBus還為總線上傳輸的每個字節提供一個應答位。這使得有效數據速率降低了12%。通信過程開始于一個啟動條件,并跟隨從器件地址和一個數據方向位(讀/寫),最后結束于一個停止條件。對于1-Wire系統,首先需要滿足網絡層的要求(即選擇某個特定器件,執行search ROM命令或者廣播);接下來發送與特定器件相關的命令代碼,該代碼同時會影響數據的傳輸方向(讀/寫)。
原有I2C和SMBus總線系統的一個突出問題是其有限的7位地址空間。由于可提供超過127種不同器件類型,我們無法根據從器件地址推斷器件功能。此外,許多I2C器件還允許用戶隨意設置1個或多個地址位,以在總線上掛接多個相同器件。這種特性進一步減少了可用的地址空間。解決地址沖突問題的標準做法是將總線系統劃分成若干段,某一時刻可在軟件控制下激活某個網絡段。該網絡段需要增加更多硬件,也使應用固件更為復雜。I2C系統不具備網絡節點查找或枚舉功能,因此很難處理節點數動態變化的系統。這一問題可借助SMBus Specification Version 2.013中的地址分辨率協議得以解決。但是,支持該特性的SMBus器件極為稀少。
LVDS18、RS-48519和CAN20可實現掛接主機和從機的總線型結構,甚至可以連接多個主機。這些標準中低壓差分信號(LVDS)是速率最快的,如果總線長度不超過10m,可工作在100Mbps速率下。可用的數據速率及吞吐可以更快或更慢,具體取決于網絡尺寸。LVDS電氣標準專為背板應用而設計,支持熱插拔功能,但不包含任何協議。
RS-485也僅定義了電氣參數。RS-485定義了負載和每條總線的最大負載數目(32),而不是以節點的形式給出。一個電氣節點的負載可以小于1。12m網絡距離下的典型數據速率可高達35Mbps,1200m距離下數據速率可達100kbps,這些特性足以滿足數據采集和控制應用。RS-485設備的協議通常基于原來設計用于RS-232的部分協議。
與此不同,控制器局域網(CAN)為分布式實時控制定義了通信協議,安全性非常高,專門面向汽車應用和工業自動化領域。數據速率從40m距離下的1Mbps到1000m距離下的50kbps。尋址方式是基于消息的,協議本身對節點數沒有任何限制。CAN節點支持熱插拔,網絡節點數可以動態變化。
類似文章出現在2006年9月出版的Electronic Products上。
參考資料
本文還發表于Maxim工程期刊,第59期(PDF, 876kB)。
微控制器(μC)是當今各種先進電子產品的核心,它需要與一個或多個外設器件通信。以前,μC的外設是以存儲器映射方式與數據和地址總線連接的。對地址線譯碼以獲得片選信號,從而在有限的地址范圍內為每個外設分配唯一的地址。這種接口類型所需的最少引腳數(除電源和地之外)為:8 (數據) + 1 (R//W) + 1 (/CS) + n條地址線[n = log2(內部寄存器或存儲器字節的數目)]。例如,與一個16字節外設通信時,需要的引腳數為:8 +1 + 1 + 4 = 14。這種接口的訪問速度快,但較多的引腳數也同時帶來了封裝尺寸增大和總成本提高的問題。要降低成本和縮小封裝尺寸,串行接口顯然是理想的替代方案。
選擇串行總線并非易事。除需要考慮數據速率、數據位傳輸順序(先傳最高位或最低位)和電壓外,設計者還應該考慮以下幾點:
- 通過何種方式選擇某個外設(通過硬件片選輸入或軟件協議)。
- 外設如何與μC保持同步(借助一條硬件時鐘線,或借助內嵌于數據流中的時鐘信息)。
- 數據是在單根線上傳輸(在“高”和“低”之間轉換),還是在一對差分線上傳輸(兩根線按相反的方向同時轉換其電壓)。
- 通信線路的兩端均使用匹配電阻實現阻抗匹配(通常用于差分信號傳輸),還是不匹配或僅在一端匹配(通常用于單端總線)。
除這些特性外,具體應用還會提出更多要求,如供電方式、隔離、噪聲抑制、μC (主機)與外設(從機)間的最大傳輸距離、以及電纜連接方式(總線型、星型、可承受線路反接等)。提出類似要求的應用包括樓宇自動化、工業控制和抄表等,并且都已制定了相應的標準。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, I2C, 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總線網絡的距離。網絡驅動器
對于基于協議的網絡,設計者需要軟件驅動程序來產生通信波形(鏈路層),識別并尋址網絡(網絡層)的單個從器件/節點,并發送/接收數據(傳輸層)。軟件驅動程序與特定操作系統和通信端口有關。可提供基于各類端口的1-Wire硬件驅動芯片(主機)以及適配器,端口類型包括COM、LPT、USB和I2C。在未作匹配的大型網絡中,電纜末端、連接器和分支的反射會限制網絡的傳輸性能。電源
必須為網絡中的每個從器件供電,以實現正常工作。最具成本效益的方法是通過數據線遠程供電。該方法也稱為“寄生供電”,這使得讀取系統診斷信息(比如在掉電模式下)成為可能。具體范例請參考應用筆記178中的圖3和相關內容:"利用1-Wire產品標識印刷電路板"10。當然由于必須為供電留出時間,寄生供電也降低了可用的數據速率。數據速率
通常來說,數據速率越高,網絡傳輸距離越短,反之亦然。1-Wire系統具有電源傳輸功能,因此最大數據傳輸速率取決于網絡的從器件數目以及電纜總長度(電容)。網絡節點查找功能
該特性允許主機識別網絡中從器件的數目、類型和地址。這一點對于節點數動態(變化)的網絡來說必不可少。請參考Dallas工程期刊(第2期)11第22頁中的示例。器件功能選擇
范圍如果不能提供應用所需要的功能,即使再出色的總線也毫無用處。與LIN總線和SensorPath相比,1-Wire系統目前可以提供最豐富的功能。I2C/SMBus與1-Wire總線
如果實際應用可以提供時鐘線,則總線選擇范圍可擴展到I2C12和SMBus13器件。根據SMBus的規范,它可以看作是100kbps I2C總線規范增加了超時特性后的派生總線類型。在某個節點與總線主機失去同步的情況下,超時特性可避免總線發生閉鎖,而I2C系統則需要經過一次上電復位過程,才能從這種故障狀態恢復至正常工作狀態。在1-Wire系統中,復位/在線檢測周期可將通信接口復位至確定的啟動條件下。除了時鐘線外,I2C/SMBus還為總線上傳輸的每個字節提供一個應答位。這使得有效數據速率降低了12%。通信過程開始于一個啟動條件,并跟隨從器件地址和一個數據方向位(讀/寫),最后結束于一個停止條件。對于1-Wire系統,首先需要滿足網絡層的要求(即選擇某個特定器件,執行search ROM命令或者廣播);接下來發送與特定器件相關的命令代碼,該代碼同時會影響數據的傳輸方向(讀/寫)。
原有I2C和SMBus總線系統的一個突出問題是其有限的7位地址空間。由于可提供超過127種不同器件類型,我們無法根據從器件地址推斷器件功能。此外,許多I2C器件還允許用戶隨意設置1個或多個地址位,以在總線上掛接多個相同器件。這種特性進一步減少了可用的地址空間。解決地址沖突問題的標準做法是將總線系統劃分成若干段,某一時刻可在軟件控制下激活某個網絡段。該網絡段需要增加更多硬件,也使應用固件更為復雜。I2C系統不具備網絡節點查找或枚舉功能,因此很難處理節點數動態變化的系統。這一問題可借助SMBus Specification Version 2.013中的地址分辨率協議得以解決。但是,支持該特性的SMBus器件極為稀少。
SPI和MICROWIRE接口
SPI14和MICROWIRE15 (SPI的子集)均需要為每個從器件提供一條額外的片選線。由于具有片選信號,SPI協議只定義了針對存儲器地址和狀態寄存器的讀/寫命令。它不提供應答功能。通常,SPI器件的數據輸入和數據輸出采用不同的引腳。鑒于數據輸出在除了讀操作外的任何情況下均為三態(禁止),因此可將兩個數據引腳接到一起以構成單根雙向數據線。當其它總線系統無法提供所需的功能或需要較高的數據傳輸速率時,可選用SPI總線,它可以支持2Mbps或更高的速率。SPI和MICROWIRE的不利因素在于產生CS信號的譯碼邏輯,以尋址某個特定器件。但是不會產生地址沖突問題。和I2C總線一樣,不提供節點查找功能。主機無法根據從器件的邏輯地址來推斷器件功能,因此很難管理節點動態變化的網絡。RS-485、LVDS、CAN、USB 2.0和FireWire
我們對這些標準進行討論,以舉例說明差分傳輸的特點。這類總線系統中傳輸速率最快的兩種是FireWire16和USB 2.017,它們采用點對點電氣連接。使用先進的節點或集線器,可以構成樹狀拓撲的虛擬總線,數據包從源發送至端點(USB),或采用對等傳輸(FireWire),突發數據速率高達480Mbps (USB 2.0)或1600Mbps (FireWire)。尺寸有限的數據包以及接收/緩沖/重發通信機制增加了傳輸時間,反過來降低了有效的數據吞吐能力。USB的拓撲和協議允許最多連接126個節點,FireWire允許最多63個節點,使用無源電纜時節點間的最大傳輸距離為4.5m。專為包括PC外設、多媒體、工業控制和航空(僅FireWire)應用而設計,USB和FireWire器件可以帶電插入系統(熱插拔)。該特性允許網絡節點數動態變化。LVDS18、RS-48519和CAN20可實現掛接主機和從機的總線型結構,甚至可以連接多個主機。這些標準中低壓差分信號(LVDS)是速率最快的,如果總線長度不超過10m,可工作在100Mbps速率下。可用的數據速率及吞吐可以更快或更慢,具體取決于網絡尺寸。LVDS電氣標準專為背板應用而設計,支持熱插拔功能,但不包含任何協議。
RS-485也僅定義了電氣參數。RS-485定義了負載和每條總線的最大負載數目(32),而不是以節點的形式給出。一個電氣節點的負載可以小于1。12m網絡距離下的典型數據速率可高達35Mbps,1200m距離下數據速率可達100kbps,這些特性足以滿足數據采集和控制應用。RS-485設備的協議通常基于原來設計用于RS-232的部分協議。
與此不同,控制器局域網(CAN)為分布式實時控制定義了通信協議,安全性非常高,專門面向汽車應用和工業自動化領域。數據速率從40m距離下的1Mbps到1000m距離下的50kbps。尋址方式是基于消息的,協議本身對節點數沒有任何限制。CAN節點支持熱插拔,網絡節點數可以動態變化。
結語
在簡單、低成本總線系統中,與LIN總線和SensorPath相比,1-Wire系統的從器件可提供最廣泛的功能和網絡驅動器。I2C和SMBus除了需要數據線和參考地之外,還需要時鐘線和VCC電源,當然可供選擇的器件功能也非常多。SPI和MICROWIRE需要額外的片選線,但可以提供更高的數據速率。除支持寄生供電和網絡節點查找功能外,1-Wire接口和協議還支持熱插拔,這一特性通常僅在使用差分信號的高速系統以及SMBus 2.0兼容產品中才提供。iButton?產品是使用極為廣泛的熱插拔1-Wire器件,熱插拔是這類器件的正常工作方式。事實已經證明,1-Wire器件在下列應用中極為有效:全球識別號21、電路板/配件標識與認證10、溫度檢測和執行裝置等。另外一種非常成功的1-Wire產品是具有安全存儲器和質詢-響應機制的器件,它能以最低的成本實現雙向認證和軟件代碼保護22, 23。類似文章出現在2006年9月出版的Electronic Products上。
參考資料
- Interbus Club. www.interbusclub.com/ (industrial automation)
- The valid M-Bus standard. www.m-bus.com/ (meter reading)
- "Overview of 1-Wire Technology and Its Use." www.maxim-ic.com/AN1796 (intro to 1-Wire)
- LIN Local Interconnect Network. www.lin-subbus.org/ (LIN specification)
- National Semiconductor. "Cost Effective Partitioning of IO and Management Functions in PCs - Introduction of SensorPath? Technology." www.national.com/nationaledge/jan04/article.html (SensorPath)
- "性能優異的1-Wire網絡驅動器 " www.maxim-ic.com.cn/AN244 (硬件驅動器)
- "1-Wire網絡可靠設計指南" www.maxim-ic.com.cn/AN148 (1-Wire網絡)
- "1-Wire軟件資源指南" www.maxim-ic.com.cn/AN155 (軟件驅動器)
- "確定多從機1-Wire網絡的恢復時間" www.maxim-ic.com.cn/AN3829 (恢復時間)
- "利用1-Wire產品標識印刷電路板" www.maxim-ic.com.cn/AN178 (電路板識別)
- " Dallas工程期刊," 第2期 pdfserv.maxim-ic.com/cn/ej/DallasEJ2.pdf (動態網絡)
- "The I2C-Bus Specification, Version 2.1, January 2000." www.nxp.com/acrobat_download/literature/9398/39340011.pdf (I2C)
- "SMBus Specifications." www.smbus.org/specs/ (SMBus)
- "M68HC11E Family." www.freescale.com/files/microcontrollers/doc/data_sheet/M68HC11E.pdf (SPI)
- "MICROWIRE? Serial Interface." www.national.com/an/AN/AN-452.pdf (MICROWIRE)
- The Air Power Australia Website. "Firewire." www.ausairpower.net/OSR-0201.html (FireWire)
- "USB 2.0 Specification." www.usb.org/developers/docs (USB specification)
- National Semiconductor. "LVDS Owner's Manual: Low-Voltage Differential Signaling." www.national.com/appinfo/lvds/files/ownersmanual.pdf (LVDS)
- Lammert Bies' Website. "RS485 serial information." www.lammertbies.nl/comm/info/RS-485.html (RS-485)
- Robert Bosch GmbH. "CAN Specification, Version 2.0." www.semiconductors.bosch.de/pdf/can2spec.pdf (CAN specification part A)
CAN in Automation (CiA). "CAN Specification 2.0, Part B." www.can-cia.org/downloads/ciaspecifications/?269 (CAN specification part B) - "利用1-Wire器件建立全球標識符" www.maxim-ic.com.cn/AN186 (全球標識符)
- "保護您的研發成果—雙向認證及軟件功能保護" www.maxim-ic.com/AN3675 (雙向認證)
- "利用單總線接口的SHA-1安全存儲器實現Xilinx? FPGA的身份識別及防拷貝機制" www.maxim-ic.com.cn/AN3826 (FPGA保護)
評論
查看更多