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