【導讀】使用串行接口有許多不同的原因。常見的問題之一是在開發期間和/或在現場需要與 PC 連接。大多數(如果不是全部)PC 都具有某種可用于連接外圍設備的串行總線接口。對于必須與通用計算機連接的嵌入式系統,串行接口通常比 ISA 或 PCI 擴展總線更容易使用。
為什么是串行接口?
使用串行接口有許多不同的原因。常見的問題之一是在開發期間和/或在現場需要與 PC 連接。大多數(如果不是全部)PC 都具有某種可用于連接外圍設備的串行總線接口。對于必須與通用計算機連接的嵌入式系統,串行接口通常比 ISA 或 PCI 擴展總線更容易使用。
串行通信的一個優點是引腳數少。串行通信只需一個 I/O 引腳即可執行,而并行通信則需要八個或更多引腳。許多常見的嵌入式系統外設,例如模數轉換器、數模轉換器、LCD 和溫度傳感器,都支持串行接口。
如果您愿意的話,串行總線還可以提供處理器間通信——網絡。這使得通常需要較大處理器的大型任務可以通過多個廉價的較小處理器來處理。串行接口允許處理器進行通信,而無需共享內存和信號量以及它們可能產生的問題。
這并不是說并行總線沒有用處。對于操作讀取、地址和數據總線以及其他微程序控制,并行總??線始終是明顯的贏家?!皟却嬗成洹蓖庠O是一種常用于具有地址和數據總線的系統的技術。這種趨勢允許并行訪問片外外設。然而,對于許多沒有可用于設計的外部地址/數據總線的 8 位微控制器(更不用說 8 引腳),存儲器映射不是一種選擇。
串行通信術語
在我們討論各個接口的細節之前,我們應該定義幾個術語:
在異步總線上,數據的發送沒有定時時鐘。同步總線通過定時時鐘發送數據。
全雙工意味著數據可以同時發送和接收。半雙工是指可以發送或接收數據,但不能同時發送或接收數據。
主/從描述了一種總線,其中一個設備是主設備,其他設備是從設備。主/從總線通常是同步的,因為主總線通常為雙向發送的數據提供定時時鐘。
多主總線是一種可以有多個主設備的主/從總線。這些總線必須有一種仲裁方案,可以在多個主設備同時控制總線時解決沖突。
點對點或對等接口是兩個設備彼此具有對等關系的接口;沒有主人或奴隸。對等接口通常是異步的。
術語“多點”描述了一種接口,其中有多個接收器和一個發送器。
多點描述了其中有兩個以上對等收發器的總線。這與多點接口不同,因為它允許通過同一組電線進行雙向通信。
通信協議類型
RS-232協議
TIA/EIA-232-F(通常稱為 RS-232)是幾乎每臺個人計算機上都可以找到的通用接口。RS-232 是一個完整的標準,不僅包括電氣特性,還包括物理和機械特性,例如連接硬件、引腳排列和信號名稱。RS-232 是一種點對點接口,能夠以高達 20Kbps 的速度傳輸中等距離。雖然規范中沒有特別指出,但只要連接較短且使用正確的接地,速度可以超過 115.2Kbps。30 英尺的電纜長度很常見,并且可以使用低電容電纜獲得超過 200 英尺的電纜。
RS-232 總線是一種非平衡總線,能夠在兩個接收器/發送器對(稱為數據終端設備 (DTE) 和數據通信設備 (DCE))之間進行全雙工通信。每個都有一個發送信號,該信號連接到另一端的接收信號。因此,兩側之間存在引腳差異。(您的 PC 是 DTE,而連接的外圍設備是 DCE。)
每個發射器通過改變線路上的電壓來發送數據。高于 3V 的電壓是二進制 0,而低于 –3V 的電壓是二進制 1。在這些電壓之間,該值是不確定的。為了在邏輯電平(0 和 5V)與這些電平之間進行轉換,可以使用 RS-232 轉換 IC,例如 1488、1489 或無處不在的 MAX232。
典型的 RS-232 通信由起始位、數據位、奇偶校驗位(如果有)和停止位組成。與 PC 通信時,典型格式為 8 個數據位、無奇偶校驗和 1 個停止位 (8N1)。七個數據位、偶校驗和一個停止位 (7E1) 也很常見。起始位通常是 0,停止位通常是 1,如圖 1 所示。規范沒有描述任何通信協議,包括起始/停止位的使用。
RS-232 協議
圖 1:RS-232
許多使用 RS-232 總線的嵌入式系統與 PC 或 PC 外圍設備(例如調制解調器)連接。其他系統使用 RS-232,以便可以使用廉價的協議分析儀或配備兩個串行端口的 PC 輕松監控總線流量。
幾乎每個微控制器供應商都提供包含 RS-232 硬件支持的產品,稱為通用異步接收發送器 (UART)。UART 通常是中斷驅動的,速度高達 115.2Kbps,軟件開銷很小,盡管這因架構而異。
RS-422 和 RS-485協議
TIA/EIA-422-B(通常稱為 RS-422)和 TIA/EIA-485-A(通常稱為 RS-485)是平衡雙絞線接口,速度可達 10Mbps,距離可達4,000 英尺。作為差分總線,每條總線都使用 1.5V 至 6V 的信號來傳輸數據。(使用差分平衡總線,與 RS-232 等類似的單端不平衡總線相比,抗噪能力得到了提高。)
RS-422 接口是一種多點接口,可通過一對電線從一個發射器到多個接收器(多 10 個單位負載 (UL))進行單向通信。如果接收數據的設備希望與發送器進行通信,設計人員必須在每個接收器和發送器之間使用單獨的專用總線。(使用此返回總線將允許全雙工傳輸。)因此,RS-422 很少在兩個以上的節點之間使用。
另一方面,RS-485 接口是多個收發器之間通過一對電線進行的雙向通信。規范規定總線多可包含 32 個 UL 收發器。許多制造商生產部分 UL 收發器,從而將設備的數量增加到遠超過 100 個。
RS-422 和 RS-485 接口通常使用與 RS-232 相同的起始位/數據/停止位格式。事實上,有多種轉換器可以實現 RS-232 與 RS-485 之間的相互轉換。但請記住,RS-232 是全雙工接口,而 RS-485 是半雙工接口。
一些微控制器制造商提供了具有特殊 RS-485 功能的內置 UART。
I 2 C協議
內部集成電路總線(I 2 C)是飛利浦半導體開發的接口。(為了讓 IC 制造商在硬件中實現 I 2 C 總線,他們必須獲得 Philips 的許可。)
I 2 C 總線是半雙工、同步、多主總線,僅需要兩條信號線:數據 (SDA) 和時鐘 (SCL)。這些線通過上拉電阻拉高,并由硬件通過開漏驅動器控制,從而提供線與接口。
I 2 C 使用可尋址通信協議,允許主設備使用 7 位或 10 位地址與各個從設備進行通信。每個設備都有一個由飛利浦分配給設備制造商的地址。此外,還存在一些特殊地址,包括“通用調用”地址(對總線上的每個設備進行尋址)和高速啟動地址。
在與從設備通信期間,主設備生成用于與從設備之間的通信的所有時鐘信號。每次通信都以主機生成啟動條件、8 位數據字、確認位開始,然后是停止條件或重復啟動。每個數據位轉換均在 SCL 為低電平時發生,啟動和停止條件除外。啟動條件是 SCL 線為高電平時 SDA 線從高電平到低電平的轉換。停止條件是當 SCL 線為高電平時 SDA 線從低電平到高電平的轉換(參見圖 2)。確認位由消息接收器通過將 SDA 線拉低而生成,同時主設備釋放該線并允許其浮高。如果主機讀取確認位為高,I2C 協議。
圖 2:I 2 C
I 2 C 有一個相當有趣的功能,稱為時鐘拉伸,當從設備無法處理該位并希望有更多時間時會執行此操作。發生這種情況時,從設備會將 SCL 線拉低。由于信號表現為線與,因此當主器件釋放 SCL 線而從器件“拉伸”時鐘時,主器件應注意到該線保持低電平。看到這一點后,主設備會等待,直到從設備處理完數據位并釋放線路。一旦被從機釋放,SCL 線就會浮回高電平,向主機發出信號以發送下一個數據位。
I 2 C總線具有三種速度:慢速(低于100Kbps)、快速(400Kbps)和高速(3.4Mbps),每種速度都向下兼容。如果信號需要離開電路板,飛利浦指定了推薦的接線布置。
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。
推薦閱讀: