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