作者 | strongerHuang
微信公眾號(hào) | strongerHuang
前兩天,在我的技術(shù)交流群看到大家在討論關(guān)于“TTL、RS232、485傳輸距離”的問(wèn)題。
今天特意抽時(shí)間分享一下相關(guān)的內(nèi)容。
概述
可能有很多讀者都還不知道 TTL、RS232、485 到底是什么,本節(jié)簡(jiǎn)單概述一下它們是什么。
1.TTL電平
TTL:Transistor Transistor Logic,晶體管-晶體管邏輯電平。
比如:0V代表邏輯低電平,5V代表邏輯高電平。像STM32單片機(jī)串口引腳輸出的邏輯高電平就是3.3V。
你可能會(huì)問(wèn):什么是邏輯電平?
邏輯電平是特定電壓或可以存在信號(hào)的狀態(tài),通常為“0/1” 或 “開(kāi)/關(guān)” 或 “ON/OFF” 或 “LOW / HIGH”等。
隨著電子技術(shù)的快速發(fā)展,邏輯高電平的電壓也是越來(lái)越低,比如DDR5內(nèi)存的供電電壓才1.1V。
這一章節(jié)相關(guān)的內(nèi)容,可以參看我之前分享的一篇文章:邏輯電平0和1的世界。
2.RS232
RS232,也簡(jiǎn)稱232,全稱EIA-RS-232。
EIA:Electronic Industry Association,美國(guó)電子工業(yè)協(xié)會(huì)。RS:Recommended Standard,代表推薦標(biāo)準(zhǔn)。232:代表標(biāo)識(shí)號(hào)。
RS232有多個(gè)版本,比如:RS232A、RS232B、RS232C···F等,目前常用的是RS-232C。
RS232最初是用于調(diào)制解調(diào)器,因此它的引腳定義和調(diào)制解調(diào)器傳輸有關(guān)。
RS232早期使用25針連接器(DB25)比較多,早期打印機(jī)、傳真機(jī)這些設(shè)備用的比較多,現(xiàn)在很少用了。
可能很多人都沒(méi)有見(jiàn)到過(guò),我讀大學(xué)那會(huì)兒給MSP430下載程序就是用的這種DB25接口。
現(xiàn)在通常是DB9,相信大家都不陌生,但我們大部分時(shí)候只用到了2、3、5腳。
編號(hào) | 定義 | 功能 |
---|---|---|
1 | DCD | 數(shù)據(jù)載波檢測(cè) |
2 | RXD | 數(shù)據(jù)接收 |
3 | TXD | 數(shù)據(jù)發(fā)送 |
4 | DTR | 數(shù)據(jù)終端準(zhǔn)備好 |
5 | GND | 信號(hào)地 |
6 | DSR | 數(shù)據(jù)設(shè)備準(zhǔn)備好 |
7 | RTS | 請(qǐng)求發(fā)送 |
8 | CTS | 清除發(fā)送 |
9 | RI | 振鈴提示 |
DB9在很多電腦后面板上都還保留有,即便后面板沒(méi)有,在主板上也留有DB9接口。(前不久我配電腦,還特意買(mǎi)了一個(gè)DB9外接接口)
3.RS485
RS485 可以說(shuō)是在RS232的基礎(chǔ)上發(fā)展而來(lái)的,目的是為了“增加抗干擾能力和信號(hào)傳輸距離”。
RS232采用電壓來(lái)代表邏輯高低電平,比如:±15電壓。
而RS485采用差分電壓,也就是兩根信號(hào)線(A、B)上的電壓差來(lái)代表邏輯高低電平。
傳輸距離
在大學(xué)的時(shí)候,可能老師會(huì)告訴你:RS22傳輸距離為15米。或者,你在某些書(shū)籍上看到RS485傳輸距離為1200米。
通信傳輸距離與很多因素有關(guān),實(shí)際和理論還是有很大差異,在某些情況下,RS485傳輸500米可能都有問(wèn)題。
通信傳輸距離與通訊方式、波特率、連接線、干擾等眾多因素有關(guān),這里結(jié)合串口(UART)通信來(lái)簡(jiǎn)單說(shuō)下這幾個(gè)問(wèn)題。
1.通訊方式
這里說(shuō)的通訊方式,指的就是標(biāo)題中“TTL、RS232、485”等不同的通訊方式。
正常情況下,通訊距離:TTL < RS232 < 485。
TTL通常在板卡內(nèi)部(同一塊板卡),比如:芯片A的串口,和芯片B的串口通信。
RS232在很多場(chǎng)合都還能用到,通常設(shè)備與設(shè)備之間通信,一般是DB9或兩根信號(hào)線連接。(之前參與的一個(gè)項(xiàng)目,用電腦PCI卡擴(kuò)展出了8個(gè)串口,就是用的232方式)。
RS485在工業(yè)產(chǎn)品中用的比較多,可以多個(gè)設(shè)備連接在485總線上,還有傳輸距離更遠(yuǎn)、抗干擾性更強(qiáng)。
2.波特率
波特率,1波特即指每秒傳輸1個(gè)符號(hào)。波特(Baud,單位符號(hào):Bd)
你可以理解為傳輸信號(hào)的快慢,比如:串口9600bps。
波特率越高,頻率就越高,同等條件下,傳輸?shù)木嚯x就更短。
串口的波特率可以做到很高,比如:115200bps,但以這種波特率通過(guò)RS232傳輸,可能傳輸10米就存在問(wèn)題。
3.連接線
連接線也是一個(gè)關(guān)鍵因素,連接線材料(銅、鋁、鐵)、粗細(xì)、是否帶有屏蔽等都會(huì)影響傳輸信號(hào)的距離。
可能干凈的環(huán)境(比如實(shí)驗(yàn)室、辦公室)都還看不出差異,你在復(fù)雜的點(diǎn)環(huán)境(比如工廠,特別是大型機(jī)械設(shè)備比價(jià)多的環(huán)境下)就能感受出差異了。
所以,RS458使用差分信號(hào),雙絞線,好點(diǎn)的帶有屏蔽的線,在工業(yè)環(huán)境就顯優(yōu)勢(shì)了。
4.干擾因素
做過(guò)工業(yè)產(chǎn)品的人都知道,不但EMC要求高,對(duì)于通信的要求也高。
旁邊一個(gè)臺(tái)大型設(shè)備突然啟動(dòng),很久可能讓你的通信失敗(或者芯片復(fù)位、死機(jī)等)。
你不要485能傳輸1200米,可能工廠內(nèi)200米通信都還會(huì)失敗。
綜合以上,要增加傳輸距離、又要保證傳輸信號(hào)的穩(wěn)定,通常要做到盡量遠(yuǎn)離干擾源(大型機(jī)械設(shè)備)、增加屏蔽措施、降低傳輸速率(波特率)等。