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