目錄
串口簡(jiǎn)介
串行通訊制式
UART
2.1 簡(jiǎn)介
2.2 電平標(biāo)準(zhǔn)
TTL
RS232
RS485
2.3、電平轉(zhuǎn)換(重點(diǎn)講解RS232-TTL)
USB轉(zhuǎn)TTL
USB轉(zhuǎn)RS232
USB轉(zhuǎn)RS485?
RS232、RS485互轉(zhuǎn)
RS-232、TTL互轉(zhuǎn)?
2.4 串口通訊協(xié)議(RS232/TTL)
參考資料
串口簡(jiǎn)介
請(qǐng)參考百度百科:串行接口_百度百科
首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的電平標(biāo)準(zhǔn)(電信號(hào))。
串口:串口是一個(gè)泛稱,UART、COM、TTL、RS232、RS485都遵循類似的通信時(shí)序協(xié)議,因此都被通稱為串口。
COM口:特指臺(tái)式計(jì)算機(jī)或一些電子設(shè)備上的D-SUB外形(一種連接器結(jié)構(gòu),VGA接口的連接器也是D-SUB)的串行通信口,應(yīng)用了串口通信時(shí)序和RS232的邏輯電平。也就是大家在自己電腦上的設(shè)備管理器上的COM3等接口
UART接口:通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter),UART是串口收發(fā)的邏輯電路,這部分可以獨(dú)立成芯片,也可以作為模塊嵌入到其他芯片里,單片機(jī)、SOC、PC里都會(huì)有UART模塊。也就是大家在嵌入式開(kāi)發(fā)中常常聽(tīng)到的串口(UART)
同步串行接口(英文:Synchronous Serial Interface,SSI)是一種常用的工業(yè)用通信接口。
USB口:通用串行總線,和串口完全是兩個(gè)概念。雖然也是串行方式通信,但由于USB的通信時(shí)序和信號(hào)電平都和串口完全不同,因此和串口沒(méi)有任何關(guān)系。USB是高速的通信接口,用于PC連接各種外設(shè),U盤、鍵鼠、移動(dòng)硬盤、當(dāng)然也包括“USB轉(zhuǎn)串口”的模塊。(USB轉(zhuǎn)串口模塊,就是USB接口的UART模塊、USB轉(zhuǎn)TTL模塊等)
由于在嵌入式系統(tǒng)中串口通常指UART接口,所以下面介紹時(shí)將兩個(gè)概念進(jìn)行了等同。
串行通訊制式
- 單工,數(shù)據(jù)只能沿一個(gè)方向傳輸,不能實(shí)現(xiàn)反向傳輸。
- 半雙工,數(shù)據(jù)可以沿兩個(gè)方向傳輸,但需要分時(shí)進(jìn)行。
- 全雙工,數(shù)據(jù)可以同時(shí)進(jìn)行。
UART
2.1 簡(jiǎn)介
請(qǐng)參考百度百科:UART_百度百科
異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART。UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。
具體實(shí)物表現(xiàn)為獨(dú)立的模塊化芯片,或作為集成于微處理器中的周邊設(shè)備。一般是RS-232C規(guī)格的,與類似Maxim的MAX232之類的標(biāo)準(zhǔn)信號(hào)幅度變換芯片進(jìn)行搭配,作為連接外部設(shè)備的接口。
通用異步串行口,速率不快,可全雙工,結(jié)構(gòu)上一般由波特率產(chǎn)生器、UART 發(fā)送器、UART 接收器組成,硬件上兩線,一收一發(fā);
2.2 電平標(biāo)準(zhǔn)
-
TTL
雙極性晶體管,流控型器件
輸出高電平>2.4V,輸出低電平<0.4V。在室溫下,一般輸出高電平是3.5V,輸出低電平是0.2V。最小輸入高電平和低電平:輸入高電平>=2.0V,輸入低電平<=0.8V,噪聲容限是0.4V。
TTL電路的速度快,傳輸延遲時(shí)間短(5-10ns),但是功耗大。CMOS電路的速度慢,傳輸延遲時(shí)間長(zhǎng)(25-50ns),但功耗低。COMS電路本身的功耗與輸入信號(hào)的脈沖頻率有關(guān),頻率越高,芯片集越熱,這是正?,F(xiàn)象。??
CMOS電路可以直接驅(qū)動(dòng)TTL電路,但是TTL不能直接驅(qū)動(dòng)CMOS電路。因此市面上很多“USB轉(zhuǎn)TTL”模塊,實(shí)際上也可以稱為“USB轉(zhuǎn)TTL電平的串口”模塊。TTL與單片機(jī)、SOC的IO電平兼容。不過(guò)實(shí)際也不一定是TTL電平,因?yàn)楝F(xiàn)在大部分?jǐn)?shù)字邏輯都是CMOS工藝做的,只是沿用了TTL的說(shuō)法。
我們進(jìn)行串口通信的時(shí)候從單片機(jī)直接出來(lái)的基本是都是TTL 電平。
TTL信號(hào)抗干擾能力差,數(shù)據(jù)在傳輸過(guò)程中容易出錯(cuò)。
硬件連接:
?TTL電平:全雙工(邏輯1: 2.4V–5V 邏輯0: 0V–0.5V)
-
RS232
????????是電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA) 制定的異步傳輸標(biāo)準(zhǔn)接口,同時(shí)對(duì)應(yīng)著電平標(biāo)準(zhǔn)和通信協(xié)議(時(shí)序),其電平標(biāo)準(zhǔn):+3V~+15V對(duì)應(yīng)0,-3V~-15V對(duì)應(yīng)1。
RS-232電平:全雙工(邏輯1:-15V–5V 邏輯0:+3V–+15V),與TTL使用的協(xié)議是相同的。
????????在最初的應(yīng)用中,RS-232 串口標(biāo)準(zhǔn)常用于計(jì)算機(jī)、路由與調(diào)制調(diào)解器(MODEN,俗稱 “貓”)之間的通訊,在這種通訊系統(tǒng)中,設(shè)備被分為數(shù)據(jù)終端設(shè)備 DTE(計(jì)算機(jī)、路由)和數(shù)據(jù)通訊設(shè)備 DCE(調(diào)制調(diào)解器)。我們以這種通訊模型講解它們的信號(hào)線連接方式及各個(gè)信號(hào)線的作用。
在舊式的臺(tái)式計(jì)算機(jī)中一般會(huì)有 RS-232 標(biāo)準(zhǔn)的 COM 口(也稱 DB9 接口),見(jiàn)圖 26-3。
?其中接線口以針式引出信號(hào)線的稱為公頭,以孔式引出信號(hào)線的稱為母頭。在計(jì)算機(jī)中一般引出公頭接口,而在調(diào)制調(diào)解器設(shè)備中引出的一般為母頭,使用上圖中的串口線即可把它與計(jì)算機(jī)連接起來(lái)。通訊時(shí),串口線中傳輸?shù)男盘?hào)使用 RS-232 標(biāo)準(zhǔn)調(diào)制。在各種應(yīng)用場(chǎng)合下, DB9 接口中的公頭及母頭的各個(gè)引腳的標(biāo)準(zhǔn)信號(hào)線接法見(jiàn)圖 26-4。
圖 26-5 是計(jì)算機(jī)端的 DB9 公頭標(biāo)準(zhǔn)接法,由于兩個(gè)通訊設(shè)備之間的收發(fā)信號(hào)(RXD 與 TXD)應(yīng)交叉相連,所以調(diào)制調(diào)解器端的 DB9 母頭的收發(fā)信號(hào)接法一般與公頭的相反,兩個(gè)設(shè)備之間連接時(shí),只要使用“直通型”的串口線連接起來(lái)即可,見(jiàn)圖 26-6。
????????串口線中的 RTS、CTS、DSR、DTR 及 DCD 信號(hào),使用邏輯 1 表示信號(hào)有效,邏輯0表示信號(hào)無(wú)效。例如,當(dāng)計(jì)算機(jī)端控制 DTR 信號(hào)線表示為邏輯 1 時(shí),它是為了告知遠(yuǎn)端的調(diào)制調(diào)解器,本機(jī)已準(zhǔn)備好接收數(shù)據(jù), 0 則表示還沒(méi)準(zhǔn)備就緒。
?????????在目前的其它工業(yè)控制使用的串口通訊中,一般只使用 RXD、TXD 以及 GND 三條信號(hào)線,直接傳輸數(shù)據(jù)信號(hào)。而 RTS、CTS、DSR、DTR 及 DCD 信號(hào)都被裁剪掉了,如果您在前面被這些信號(hào)弄得暈頭轉(zhuǎn)向,那就直接忽略它們吧。
-
RS485
非常推薦大家看一下這篇文章:RS485串口通訊深入理解及與RS232的區(qū)別:
整理完整了,RS485串口通訊最詳細(xì)講解 (qq.com)https://mp.weixin.qq.com/s/WJCWpWjG0nuM_uJwIuQAmA*******************************************************************************************
-200mv、+200ms是限電壓、終接電阻120Ω(與雙絞線的電阻特性有關(guān),與長(zhǎng)度無(wú)關(guān))、偏置電阻A線上拉,B線下拉(上下拉電阻大約為1KΩ)。接地隔離
RS485是一種串口接口標(biāo)準(zhǔn),為了長(zhǎng)距離傳輸采用差分方式傳輸,傳輸?shù)氖?strong>差分信號(hào),抗干擾能力比RS232強(qiáng)很多。485采用兩線制,兩根數(shù)據(jù)線是纏繞在一起的
RS-485:半雙工、(邏輯0:+2V–+6V 邏輯1: -6V—2V)這里的電平指AB兩線間的電壓差。
硬件連接?
接線方式為總線式拓?fù)浣Y(jié)構(gòu),同一總線上可以同時(shí)存在多個(gè)節(jié)點(diǎn)。采用差分信號(hào)(使用兩根線上的電壓差比較)進(jìn)行數(shù)據(jù)傳輸,兩根線間的電壓差為+2v到+6v表示邏輯“1”,兩根線間的電壓差為-2v到-6v表示邏輯“0”。需要電平轉(zhuǎn)換芯片做電平轉(zhuǎn)換,把TTL信號(hào)轉(zhuǎn)換為差分信號(hào)。軟件編程基于串口,但是不能同時(shí)發(fā)送和接收。
- 通信速度快,數(shù)據(jù)最高傳輸速率為10Mbps
- 抗干擾能力強(qiáng)
- 通信距離遠(yuǎn)
- 可實(shí)現(xiàn)多節(jié)點(diǎn)組網(wǎng)
- 接口電平電壓低,不易損壞接口電路芯片
2.3、電平轉(zhuǎn)換(重點(diǎn)講解RS232-TTL)
由于電腦自帶轉(zhuǎn)換器,已經(jīng)將TTL電平轉(zhuǎn)換成USB接口輸出,所以當(dāng)需要獲取電腦或者進(jìn)行與電腦串口通信時(shí),需要將USB接口轉(zhuǎn)換成其他相應(yīng)的接口形式:
-
USB轉(zhuǎn)TTL
穩(wěn)定主控芯片主要有:CP2102芯片、PL2303芯片
可以作為32的程序下載器——ISP下載方式
-
USB轉(zhuǎn)RS232
-
USB轉(zhuǎn)RS485?
?由上圖可以看出起作用的也只有A和B兩條線。
-
RS232、RS485互轉(zhuǎn)
-
RS-232、TTL互轉(zhuǎn)?
? ? ? ? 雖然電腦大多數(shù)是通過(guò)USB接口轉(zhuǎn)化成其他電平方式,但是有自帶的RS232接口的。而且在單片機(jī)與其他單片機(jī)連接是也需要RS232與TTL電平的轉(zhuǎn)化。
? ? ? ? 早期MC1488,75188等芯片可實(shí)現(xiàn)TTL轉(zhuǎn)232;MC1489,75189等芯片可實(shí)現(xiàn)232轉(zhuǎn)TTL。
現(xiàn)在較多使用MAX232/MAX202/HIN232等芯片,可實(shí)現(xiàn)TTL(0~5V)和RS232(3V~15V或-3V~-15V之間)
- 分立元件實(shí)現(xiàn)RS232電平與TTL電平轉(zhuǎn)換
首先TTL電平TXD發(fā)送數(shù)據(jù)時(shí),發(fā)送低電平0,Q3導(dǎo)通,PCRXD由空閑時(shí)的1(低電平:-3V~-15V)變?yōu)?(高電平:3V~15V);發(fā)送高電平1,Q3截止,由于PCRXD內(nèi)部高阻,而PCTXD平時(shí)是-3V~-15V,通過(guò)D1和R7將PCRXD拉低至-3V~-15V,此時(shí)計(jì)算機(jī)接收到電平1。
PC(232)發(fā)送單片機(jī)(TTL)接收,PCTXD為1(低電平:-3V~-15V),Q4截至,單片機(jī)端的RXD被R9拉到5V高電平1;當(dāng)PCTXD為0(高電平:3V~15V),Q4導(dǎo)通,RXD被Q4拉低到低電平。
- MAX232實(shí)現(xiàn)RS232電平與TTL電平轉(zhuǎn)換
C1/C2/C3/C4及V+/V-是電源變換電路部分,實(shí)際應(yīng)用中器件對(duì)電源噪聲很敏感,因此VCC必須加 去耦電容C5(0.1uf非極性瓷片電容),C1/C2/C3/C4為1.0uf/16V的點(diǎn)解電容。電容盡量靠近MAX232芯片,以提高干擾能力。
???????5、【STM32】串口(USART)通訊 (一文搞懂寄存器操作、端口復(fù)用和中斷優(yōu)先級(jí)(NVIC)配置)_追逐者-橋的博客-CSDN博客【STM32】串口(USART)通訊 (一文搞懂寄存器操作、端口復(fù)用和中斷優(yōu)先級(jí)(NVIC)配置)建議收藏加關(guān)注,單片機(jī)的深度解讀盡在此。https://blog.csdn.net/ARM_qiao/article/details/125185352
2.4 串口通訊協(xié)議(RS232/TTL)
串口通訊協(xié)議由很多種,這里只針對(duì)最傳統(tǒng)的串口協(xié)議進(jìn)行介紹(RS232),有關(guān)于其他的串口協(xié)議如Modbus(多用于485電平標(biāo)準(zhǔn))、I2C、SPI等通信協(xié)議會(huì)在另外的博客進(jìn)行shuo'miong
- 物理層連接(RS232)
沒(méi)有時(shí)鐘線只有兩條數(shù)據(jù)線,分別是RX(接收)TX(發(fā)送),位寬為1Bit,一位一位的接收。
- 協(xié)議層(通訊協(xié)議)
- 串口數(shù)據(jù)的發(fā)送與接收是基于幀結(jié)構(gòu)的,即一幀一幀的發(fā)送與接收數(shù)據(jù)。每一幀除了中間包含 8bit 有效數(shù)據(jù)外,還在每一幀的開(kāi)頭都必須有一個(gè)起始位,且固定為 0;在每一幀的結(jié)束時(shí)也必須有一個(gè)停止位,且固定為 1,即最基本的幀結(jié)構(gòu)(不包括校驗(yàn)等)有10bit。在不發(fā)送或者不接收數(shù)據(jù)的情況下,rx 和 tx 處于空閑狀態(tài),此時(shí) rx 和 tx 線都保持高電平,如果有數(shù)據(jù)幀傳輸時(shí),首先會(huì)有一個(gè)起始位,然后是 8bit 的數(shù)據(jù)位,接著有 1bit的停止位,然后 rx 和 tx 繼續(xù)進(jìn)入空閑狀態(tài),然后等待下一次的數(shù)據(jù)傳輸。不包括校驗(yàn)位時(shí)為一個(gè)最基本的 RS232 幀結(jié)構(gòu)。
- 波特率:在信息傳輸通道中,攜帶數(shù)據(jù)信息的信號(hào)單元叫碼元(因?yàn)榇谑?1bit 進(jìn)行傳輸?shù)模云浯a元就是代表一個(gè)二進(jìn)制數(shù)),每秒鐘通過(guò)信號(hào)傳輸?shù)拇a元數(shù)稱為碼元的傳輸速率,簡(jiǎn)稱波特率,常用符號(hào)“Baud”表示,其單位為“波特每秒(Bps)”。串口常見(jiàn)的波特率有 4800、9600、115200 等,我們選用 9600 的波特率進(jìn)行串口章節(jié)的講解。
- 比特率:每秒鐘通信信道傳輸?shù)男畔⒘糠Q為位傳輸速率,簡(jiǎn)稱比特率,其單位為 “每秒比特?cái)?shù)(bps)”。比特率可由波特率計(jì)算得出,公式為:比特率=波特率 * 單個(gè)調(diào)制狀態(tài)對(duì)應(yīng)的二進(jìn)制位數(shù)。如果使用的是 9600 的波特率,其串口的比特率為:9600Bps * 1bit= 9600bps。
- 由計(jì)算得串口發(fā)送或者接收 1bit 數(shù)據(jù)的時(shí)間為一個(gè)波特,即 1/9600 秒,如果用50MHz(周期為 20ns)的系統(tǒng)時(shí)鐘來(lái)計(jì)數(shù),需要計(jì)數(shù)的個(gè)數(shù)為 cnt = (1s * 10^9)ns / 9600bit)ns / 20ns ≈ 5208 個(gè)系統(tǒng)時(shí)鐘周期,即每個(gè) bit 數(shù)據(jù)之間的間隔要在 50MHz 的時(shí)鐘頻率下計(jì)數(shù) 5208 次。
- 上位機(jī)通過(guò)串口發(fā) 8bit 數(shù)據(jù)時(shí),會(huì)自動(dòng)在發(fā) 8 位有效數(shù)據(jù)前發(fā)一個(gè)波特時(shí)間的起始位,也會(huì)自動(dòng)在發(fā)完 8 位有效數(shù)據(jù)后發(fā)一個(gè)停止位。同理,串口助手接收上位機(jī)發(fā)送的數(shù)據(jù)前,必須檢測(cè)到一個(gè)波特時(shí)間的起始位才能開(kāi)始接收數(shù)據(jù),接收完 8bit 的數(shù)據(jù)后,再接收一個(gè)波特時(shí)間的停止位。
- 數(shù)據(jù)校驗(yàn)位
循環(huán)冗余(RCR)校驗(yàn):是通過(guò)某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)檢驗(yàn),常用于對(duì)磁盤的信息傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)。糾錯(cuò)能力強(qiáng),廣泛用于同步通訊中。
參考資料
串口通信協(xié)議簡(jiǎn)介—學(xué)習(xí)筆記_越吃越胖的黃的博客-CSDN博客_串口協(xié)議
嵌入式中的通訊協(xié)議——UART、I2C、SPI、DMA_Healer19的博客-CSDN博客_dma協(xié)議
【4.0】通信協(xié)議,I2C,SPI,CAN,USB,DMA_夜色稠的博客-CSDN博客
【通信協(xié)議】UART、RS232、RS485、I2C、SPI、CAN_XXX_UUU_XXX的博客-CSDN博客_uart通信距離
串口通信協(xié)議簡(jiǎn)介_(kāi)C晨海的博客-CSDN博客_串口通訊協(xié)議
UART_百度百科
串口通信協(xié)議_百度百科文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-785513.html
串口、COM口、UART口,TTL、RS-232、RS-485這么多接口,怎么區(qū)分-簡(jiǎn)易百科文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-785513.html
到了這里,關(guān)于1、串口(UART/COM/TTL/RS232/RS485)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!