一、串行通信與并行通信的概念
1、串行通信
串行接口簡(jiǎn)稱(chēng)串口,也稱(chēng)串行通信接口或串行通訊接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。串行接口 (Serial Interface)是指數(shù)據(jù)一位一位地順序傳送。串口可以算是一個(gè)泛稱(chēng),一般指代的是串口時(shí)序標(biāo)準(zhǔn)。UART、RS232、RS485、TTL都遵循著類(lèi)似的通信時(shí)序協(xié)議,因此都被通稱(chēng)為串口。
串行通信(serial communication)是指計(jì)算機(jī)主機(jī)與外設(shè)之間以及主機(jī)系統(tǒng)與主機(jī)系統(tǒng)之間數(shù)據(jù)的串行傳送。使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信。串行通信按照發(fā)送時(shí)鐘源和接收時(shí)鐘源是否需要保持一致,又可分為同步通信和異步通信兩種。
2、并行通信
并行通信(Parallel communication)就是指數(shù)據(jù)的每一位同時(shí)在多根數(shù)據(jù)線上發(fā)送或者接收。可以以字或字節(jié)為單位并行進(jìn)行。并行通信速度快,但用的通信線多、成本高,故不宜進(jìn)行遠(yuǎn)距離通信。計(jì)算機(jī)或PLC各種內(nèi)部總線就是以并行方式傳送數(shù)據(jù)的。
總結(jié):串行通信是一種概念,是指一個(gè)bit一個(gè)bit的收發(fā)數(shù)據(jù),相對(duì)于并行通信可一次性可以同時(shí)收發(fā)n個(gè)bit而言。包括普通的串口通信,包括IIC,包括SPI等等。串口通信是一種通信手段/方式,是相對(duì)于以太網(wǎng)方式、紅外方式、藍(lán)牙方式、usb方式(usb廣義也算串行通信)等而言,是一種比較低級(jí)的通信手段。
二、UART
UART(Universal Asynchronous Receiver/Transmitter),意為通用異步收發(fā)傳輸器,該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。UART包含TTL電平的串口和RS-232電平的串口,使用UART通信的雙方設(shè)備都需要遵從UART協(xié)議。
UART是串行通信的一種,重點(diǎn)是異步,和同步相對(duì)應(yīng),意思是不需要同步的時(shí)鐘,通信兩端預(yù)先約定bit的傳輸速率(每秒傳多少bit),而不是由時(shí)鐘觸發(fā)的。
在嵌入式設(shè)計(jì)中,UART用于主機(jī)與輔助設(shè)備通信。UART是實(shí)現(xiàn)串口收發(fā)的邏輯電路(硬件形式),這部分可以獨(dú)立成芯片,也可以作為模塊嵌入到其他芯片里,單片機(jī)、SOC、PC里都會(huì)有UART模塊,例如STM32單片機(jī)里有兩種UART模塊,USART和UART,前者可以同步通信,而后者只能異步通信。一般電腦是沒(méi)有uart接口的(ttl電平),我們可以通過(guò)電腦的usb接口和單片機(jī)通信,只需一個(gè)usb轉(zhuǎn)串口模塊插到usb接口上,裝上驅(qū)動(dòng),另一邊接單片機(jī)即可。有很多可以u(píng)sb協(xié)議轉(zhuǎn)為串口協(xié)議的芯片,如ch340,cp2102,pl2303等。
1、TX --數(shù)據(jù)發(fā)送接口
2、RX --數(shù)據(jù)接受接口
兩個(gè)設(shè)備間將TX與RX相連,RX與TX相連即可正常工作。
三、TTL電平
TTL是Transistor-Transistor Logic的簡(jiǎn)寫(xiě),是一種電平邏輯,晶體管-晶體管邏輯。通常我們采用二進(jìn)制來(lái)表示數(shù)據(jù),為了表示二進(jìn)制,需要用高低電平表示這些二進(jìn)制數(shù),3.3V/5V等價(jià)于邏輯“1”,0V等價(jià)于邏輯“0”。UART特指單片機(jī)的UART端口,使用的就是TTL電平。嵌入式里面說(shuō)的串口,一般是指UART口,而TTL、RS-232、RS-485是指的電平標(biāo)準(zhǔn)(電信號(hào))。
1、標(biāo)準(zhǔn)TTL電平邏輯
輸出電路:電壓大于等于(≥)2.4V為邏輯1;電壓小于等于(≤)0.8V為邏輯0;
輸入電路:電壓大于等于(≥)2.0V為邏輯1;電壓小于等于(≤)1.2V為邏輯0;
2、CMOS電平
輸出電路:電壓大于等于(≥)0.9×Vcc為邏輯1;電壓小于等于(≤)0.1×Vcc為邏輯0;
輸入電路:電壓大于等于(≥)0.7×Vcc為邏輯1;電壓小于等于(≤)0.3×Vcc為邏輯0;
四、RS-232
RS-232接口符合美國(guó)電子工業(yè)聯(lián)盟(EIA)制定的串行數(shù)據(jù)通信的接口標(biāo)準(zhǔn),全雙工,其中 RS 為英文 “Recomend Standard” 的縮寫(xiě),中文翻譯為“推薦標(biāo)準(zhǔn)”,232為標(biāo)識(shí)號(hào)。原始編號(hào)全稱(chēng)是EIA-RS-232(簡(jiǎn)稱(chēng)232,RS232)。它被廣泛用于計(jì)算機(jī)串行接口外設(shè)連接,連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程,其輸出的電平稱(chēng)為 RS232 電平。
1、RS-232電平邏輯
RS-232不同于TTL的電平邏輯,為負(fù)邏輯,最簡(jiǎn)單的RS232通信由三條數(shù)據(jù)線組成,即 TxD、RxD 和GND。負(fù)12V代表高電平,即-15V ~ -3V為邏輯1,正12V代表低電平,即+3V ~ +15V為邏輯0,電壓也有標(biāo)準(zhǔn)范圍。這里的電平,是TXD線(或者RXD線)相對(duì)于 GND 的電壓。
2、D型9針接口定義
記住一點(diǎn),這種接口的協(xié)議只有兩種:RS-232和RS-485。不會(huì)是TTL電平的(除非特殊應(yīng)用)。
一般用的最多的是RXD、TXD、GND,三個(gè)信號(hào)。
3、USB轉(zhuǎn)RS-232
USB轉(zhuǎn)232,可以先將USB轉(zhuǎn)換為T(mén)TL,再將TTL轉(zhuǎn)換為RS232,市面上也有很多USB直接轉(zhuǎn)RS232的線材,線材內(nèi)部集成轉(zhuǎn)換電路,下圖為USB轉(zhuǎn)RS-232串口:
4、TTL和RS-232互轉(zhuǎn)
在實(shí)際中由于需要,有時(shí)候會(huì)要將TTL電平轉(zhuǎn)化為RS232電平,有時(shí)候也會(huì)要將RS232電平轉(zhuǎn)化為T(mén)TL電平,因?yàn)閱纹瑱C(jī)接口一般是TTL電平,如果需要接232電平的外設(shè),就需要加TTL轉(zhuǎn)RS232的模塊,轉(zhuǎn)換方向是雙向的。能實(shí)現(xiàn)TTL和RS232電平互相轉(zhuǎn)換最常用的芯片是MX232??驁D如下
五、RS-485
RS-485和RS-232一樣,都是串行通信標(biāo)準(zhǔn),現(xiàn)在的標(biāo)準(zhǔn)名稱(chēng)是TIA/EIA-485-A,習(xí)慣稱(chēng)為RS-485標(biāo)準(zhǔn),半雙工,使用該標(biāo)準(zhǔn)的數(shù)字通信網(wǎng)絡(luò)能在遠(yuǎn)距離條件下以及電子噪聲大的環(huán)境下有效傳輸信號(hào)。RS-485使得廉價(jià)本地網(wǎng)絡(luò)以及多支路通信鏈路的配置成為可能,而且增加了聯(lián)網(wǎng)功能。
1、RS-485電平邏輯
RS-485和RS-232單端傳輸不一樣,是差分傳輸,使用一對(duì)雙絞線,其中一根線定義為A,另一個(gè)定義為B,一般收發(fā)器內(nèi)部是一個(gè)發(fā)送器加一個(gè)收發(fā)器組成。對(duì)于使能信號(hào),字母上面加一橫的為低電平有效,不加的為高電平有效。邏輯“1”以?xún)删€間的電壓差為+(2 ~ 6)V表示;邏輯“0”以?xún)删€間的電壓差為-(2 ~ 6)V表示,使能端起作用和其他狀態(tài)時(shí)為高阻態(tài)。
2、TTL和RS-485轉(zhuǎn)換
TTL轉(zhuǎn)成RS-485很常見(jiàn),收發(fā)器芯片市面上很多,比如MAX485,用起來(lái)也很簡(jiǎn)單,一般左邊接MCU的GPIO,用來(lái)控制。
3、RS-232和RS-485轉(zhuǎn)換
RS-232和RS-485之間可以轉(zhuǎn)換,一個(gè)方法是RS-232轉(zhuǎn)換成TTL,再由TTL轉(zhuǎn)換為RS-485,當(dāng)然也有芯片支持將RS-232支持轉(zhuǎn)換成RS-485,雙向轉(zhuǎn)換。
六、USB
USB是Universal Serial Bus(通用串行總線)的縮寫(xiě),是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊,是應(yīng)用在PC領(lǐng)域的接口技術(shù),USB接口的特點(diǎn)是傳輸速度快,支持熱插拔,可連接多個(gè)設(shè)備。
一條USB傳輸線分別由地線、電源線、D+和D-四條線構(gòu)成,D+和D-是差分輸入線,它使用的是3.3V的電壓(與CMOS的5V電平不同),而電源線和地線可向設(shè)備提供5V電壓,最大電流為500mA(可以在編程中設(shè)置)。USB設(shè)備可以直接和HOST通信,或者通過(guò)Hub和Host通信。一個(gè)USB系統(tǒng)中僅有一個(gè)USB 主機(jī),設(shè)備包括USB功能設(shè)備和USB HUB,最多支持127個(gè)設(shè)備。物理連接指的是USB傳輸線。在USB 2.0系統(tǒng)中要求使用屏蔽雙絞線。
1、USB速率
USB1.0:低速模式(low speed):傳輸速率為1.5Mbps;
USB1.1:全速模式(full speed):傳輸速率為12Mbps;
USB2.0:向下兼容,高速模式(high speed):25~480Mbps;
USB3.0:向下兼容,(super speed):理論上最高達(dá)5Gbps,實(shí)際中,也就是high speed 的10倍左右; USB3.1:Gen2 超高速(SuperSpeed +)傳輸速率為 10Gbps。
2、USB接口定義
常見(jiàn)的Type-A型USB接口定義如下。
pin# | Name | 顏色 |
---|---|---|
1 | VBUS/+5V | 紅色 |
2 | D-/DM | 白色 |
3 | D+/DP | 綠色 |
4 | GND | 黑色 |
USB是普遍使用的一種高速通信接口,和串口完全是兩個(gè)概念。雖然也是串行方式通信,但由于USB的通信時(shí)序和邏輯電平標(biāo)準(zhǔn)都和串口完全不同,因此和串口無(wú)關(guān)。USB是高速的通信接口,用于PC連接各種外設(shè),U盤(pán)、鍵鼠、移動(dòng)硬盤(pán)、當(dāng)然也包括“USB轉(zhuǎn)串口”的模塊。
七、CAN總線
CAN是Controller Area Network的簡(jiǎn)稱(chēng),是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),現(xiàn)在是汽車(chē)網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議。
1、CAN電平邏輯
顯性電平:邏輯0 典型值 CAN_H = 3.5V,CAN_L = 1.5V;
隱性電平:邏輯1 典型值 CAN_H = 2.5V,CAN_L = 2.5V;
總結(jié):TTL電平一般用于芯片與芯片之間的通信;RS232采用了正負(fù)邏輯電平,提高線路的抗干擾性最遠(yuǎn)可以達(dá)到15米左右;如果更遠(yuǎn)的距離會(huì)采樣RS485,它使用兩線制的差分信號(hào)傳輸,最遠(yuǎn)可至1200米;RS232全雙工只支持點(diǎn)對(duì)點(diǎn)通訊(1:1),RS485半雙工或單雙工支持總線形式通訊(1:N)。當(dāng)我們?cè)谧鲭娐饭ぷ鲿r(shí),應(yīng)該注意下外設(shè)的串口是Uart類(lèi)型的還是RS232類(lèi)型的,如果不匹配,應(yīng)當(dāng)找個(gè)轉(zhuǎn)換線(通常這根轉(zhuǎn)換線內(nèi)有塊類(lèi)似于Max232的芯片做電平轉(zhuǎn)換工作的),不能盲目地將兩串口相連。
1、RS232、RS-485最終結(jié)果都是轉(zhuǎn)換為T(mén)TL電平方式與單片機(jī)通信(CAN收發(fā)器把差分信號(hào)轉(zhuǎn)化為T(mén)TL-->CAN控制器(MCU))。其目的都是提高通信質(zhì)量,提高抗干擾能力。
2、TTL、RS232是邏輯電平信號(hào)。RS-485、CAN為差分信號(hào)。
八、I2C
I2C總線是由Philips公司開(kāi)發(fā)的一種簡(jiǎn)單、半雙工、雙向二線制同步串行總線。它只需要兩根線(SDA、SCL)即可在連接于總線上的器件之間傳送信息。同一時(shí)刻可以單主機(jī)多從機(jī)或單主機(jī)單從機(jī),I2C總線上的任意設(shè)備都可以當(dāng)主機(jī),一般主機(jī)是MCU,當(dāng)有多個(gè)主機(jī)時(shí),會(huì)通過(guò)總線仲裁的方式選出一個(gè)主機(jī),其他退出作從機(jī)。
Mode | 標(biāo)準(zhǔn)模式 | 快速模式 | 高速模式 |
---|---|---|---|
Rate | 100Kbit/s | 400Kbit/s | 3.4Mbit/s |
SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)都是雙向I/O線,接口電路為開(kāi)漏輸出.需通過(guò)上拉電阻接電源VCC.當(dāng)總線空閑時(shí).兩根線都是高電平。
主機(jī)用于啟動(dòng)總線傳送數(shù)據(jù),并產(chǎn)生時(shí)鐘以開(kāi)放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從機(jī),在總線上主和從、發(fā)和收的關(guān)系不是恒定的,而取決于此時(shí)數(shù)據(jù)傳送方向。如果主機(jī)要發(fā)送數(shù)據(jù)給從機(jī),則主機(jī)首先尋址從機(jī),然后主動(dòng)發(fā)送數(shù)據(jù)至從機(jī),最后由主機(jī)終止數(shù)據(jù)傳送;如果主機(jī)要接收從機(jī)的數(shù)據(jù),首先由主機(jī)尋址從機(jī)。然后主機(jī)接收從機(jī)發(fā)送的數(shù)據(jù),最后由主機(jī)終止接收過(guò)程。在這種情況下,主機(jī)負(fù)責(zé)產(chǎn)生定時(shí)時(shí)鐘和終止數(shù)據(jù)傳送。
九、SPI
SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫(xiě),意為串行外圍接口,是摩托羅拉首先在其MC68HCXX系列處理器上定義的,SPI是一種高速的,全雙工,同步的通信總線,SPI的速率比I2C高,一般可以到幾十Mbps,不同的器件當(dāng)主機(jī)和當(dāng)作從機(jī)的速率一般不同。SPI最典型的應(yīng)用是單主機(jī)單從機(jī),下圖是接線方式,當(dāng)然也可以多從機(jī)。
審核編輯:劉清
-
串行通信
+關(guān)注
關(guān)注
4文章
562瀏覽量
35230 -
TTL電平
+關(guān)注
關(guān)注
1文章
99瀏覽量
11965 -
RS-232接口
+關(guān)注
關(guān)注
0文章
42瀏覽量
14260 -
異步收發(fā)傳輸器
+關(guān)注
關(guān)注
0文章
10瀏覽量
6346
原文標(biāo)題:各類(lèi)通訊協(xié)議及區(qū)別大匯總
文章出處:【微信號(hào):智能汽車(chē)電子與軟件,微信公眾號(hào):智能汽車(chē)電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論