“串口”是串行通信接口的簡(jiǎn)稱,所謂“串行通信”是指數(shù)據(jù)按位依次發(fā)送的通信方式。常見的串口有:RS232和RS485。雖然串口通信誕生的時(shí)間較早,但它仍然活躍在當(dāng)今工業(yè)自動(dòng)化控制領(lǐng)域。今天這篇文章,我們來深入介紹下RS232串口。本文包括如下幾個(gè)主題:
1、RS232的歷史
2、RS232的接口
4、RS232的電平轉(zhuǎn)換芯片
5、RS232的數(shù)據(jù)傳輸
1、RS232的歷史
RS232是美國電子工業(yè)協(xié)會(huì)(Electronic Industries Association ,EIA)于1962年頒布的通信標(biāo)準(zhǔn),其全稱是:DTE和DCE的電氣/機(jī)械接口標(biāo)準(zhǔn)?!癉TE”是英文“Data Terminal Equipment ”的縮寫,翻譯為“數(shù)據(jù)終端設(shè)備”,比如計(jì)算機(jī);“DCE”是英文“Data Circuit-terminating Equipment”的縮寫,翻譯為“數(shù)據(jù)電路端接設(shè)備”。也有將其寫作“Data Communication Equipment”,翻譯為“數(shù)據(jù)通信設(shè)備”,比如調(diào)制解調(diào)器?!癛S232”名稱中的“RS”是“Recommand Standard”的縮寫,表示“推薦標(biāo)準(zhǔn)”?!?32”是標(biāo)識(shí)號(hào)。早期的RS232是為了實(shí)現(xiàn)計(jì)算機(jī)、程控電話、調(diào)制解調(diào)器之間通信而制定的標(biāo)準(zhǔn),后來經(jīng)過多次改版,成了一種通用的串行通信標(biāo)準(zhǔn)。RS232的改版信息如下:
1969年C版本(RS232-C);
1986年D版本(RS232-D);
1991年E版本(RS232-E);
1997年F版本(RS232-F);
目前,在工業(yè)自動(dòng)化領(lǐng)域,RS232多用于觸摸屏、讀卡器、掃碼槍、打印機(jī)等設(shè)備與PLC之間的通信。
2、RS232的接口
在F版本之前,RS232使用25針串行接口,分為公頭(Male)和母頭(Female)兩種,公頭用于DTE設(shè)備,母頭用于DCE設(shè)備,如下圖所示:
實(shí)物如下圖所示:
針腳定義見下面的表格:
編號(hào) | 名稱 | 縮寫 |
---|---|---|
1 |
Shield/ 屏蔽 |
|
2 |
Transmitted Data/ 發(fā)送數(shù)據(jù) |
TxD |
3 |
Received Data/ 接收數(shù)據(jù) |
RxD |
4 |
Request To Send/ 請(qǐng)求發(fā)送 |
RTS |
5 |
Clear To Send/ 允許發(fā)送 |
CTS |
6 |
DCE Ready/Data Set Ready 數(shù)據(jù)集就緒 |
DSR |
7 |
Signal ground/common return 信號(hào)接地 |
SG |
8 | Received line signal detector | |
9 |
Reserved for data set testing/ 保留 |
|
10 |
Reserved for data set testing/ 保留 |
|
11 |
Unassigned/ 未分配 |
|
12 | Secondary received line signal detector | |
13 | Secondary Clear To Send | (S)CTS |
14 | Secondary Transmitted Data | (S)TxD |
15 | Transmission signal element timing | |
16 | Secondary Received Data | (S)RxD |
17 | Receiver Signal Element Timing(DCE) | |
18 | Local Loopback | |
19 | Secondary Request To Send | (S)RTS |
20 | DTE Ready/Data Terminal Ready | DTR |
21 |
Remote Loopback/ Signal Quality Detector |
|
22 | Ring Indicator | RI |
23 | Data Signal Rate Selector | |
24 | Transmit signal element timing (DTE) | |
25 | Test Mode |
25針串口針腳太多,用起來比較繁瑣。為了簡(jiǎn)化RS232串口,在F版本中定義了9針串口,同樣包括公頭(用于DTE)和母頭(用于DCE)兩種,如下圖所示:
針腳定義見下面的表格:
編號(hào) | 名稱 | 縮寫 |
---|---|---|
1 |
Data Carrier Detect/ 數(shù)據(jù)載波監(jiān)測(cè) |
DCD |
2 |
Received Data/ 接收數(shù)據(jù) |
RxD |
3 |
Transmitted Data/ 發(fā)送數(shù)據(jù) |
TxD |
4 |
Data Terminal Ready/ 數(shù)據(jù)終端就緒 |
DTR |
5 |
Ground/ 接地 |
GND |
6 |
Data Set Ready/ 數(shù)據(jù)集就緒 |
DSR |
7 |
Request To Send/ 請(qǐng)求發(fā)送 |
RTS |
8 |
Clear To Send/ 允許發(fā)送 |
CTS |
9 |
Ring Indicator/ 振鈴提示 |
RI |
PLC被視為DTE設(shè)備,其RS232串口為公頭。比如S7-1200的串口模塊CM1241 RS232其串口為公頭,如下圖所示:
對(duì)于DTE和DTC的通信,可以使用直連的方式,如下圖所示:
對(duì)于兩個(gè)DTE(比如PLC和掃碼槍)之間的通信,應(yīng)采用交叉連接的方式??梢詫⑺幸_相互連接,如下圖所示:
可以采用最小連接的方式,僅使用三根線,將雙方的TxD和RxD互連,GND互連,如下圖所示:
這種DTE直接連接,不經(jīng)過DCE的連接也稱為“ null modem”連接,這類電纜稱為“null modem”電纜或交叉電纜。
3、RS232的電氣信號(hào)
RS232接收-發(fā)送端的電信號(hào)是相對(duì)于公共地線(GND)的電壓信號(hào)。當(dāng)電壓差值在+3V~+15V之間表示邏輯“0”,當(dāng)電壓差值在-3V~-15V之間表示邏輯“1”,電壓差值在-3V~+3V之間沒有定義。3V是最小的可檢測(cè)電壓信號(hào),實(shí)際使用時(shí)期望電壓差的絕對(duì)值在5V~15V之間,即:發(fā)送數(shù)據(jù)時(shí),發(fā)送端驅(qū)動(dòng)器輸出正電壓信號(hào)+5V~+15V,表示邏輯“0”;負(fù)電壓信號(hào)-5V~-15V表示邏輯1。接收數(shù)據(jù)時(shí),只要是檢測(cè)到大于3V的電信號(hào),即將其視為有效信號(hào)。
4、RS232的電平轉(zhuǎn)換芯片
單片機(jī)的引腳輸出的是TTL電平,需要使用專用的轉(zhuǎn)換芯片(TI公司的MAX3232或者ST公司的ST3232等)將其轉(zhuǎn)換為RS232電平。詳細(xì)內(nèi)容請(qǐng)看我之前的文章:RS232電平和TTL電平有什么不同?如何轉(zhuǎn)換?
5、RS232的數(shù)據(jù)傳輸
數(shù)據(jù)傳輸涉及的第一個(gè)概念是波特率。我們知道串行通信的傳輸是一位接著一位的,其傳輸單位為:位(bit)。因此,波特率的定義就是在單位時(shí)間內(nèi)傳輸?shù)奈坏膫€(gè)數(shù)。國際公用的單位時(shí)間為秒(s),因此波特率的單位為:bit/s(b/s),也寫作bps(bit per second)。
波特率有一定的選擇范圍(并非任意值),常見的波特率有:9600,38400,56000,115200等。還有很多其它的值,通信雙方約定好相同的波特率即可。
RS232是一種點(diǎn)對(duì)點(diǎn)的通信,其數(shù)據(jù)幀由起始位、數(shù)據(jù)位、校驗(yàn)位、停止位四部分組成。
起始位:長度1,數(shù)據(jù)值等于邏輯0,表示開始發(fā)送數(shù)據(jù);
數(shù)據(jù)位:長度8或7,表示實(shí)際發(fā)送的數(shù)據(jù);
校驗(yàn)位:長度0(無校驗(yàn))或1(奇校驗(yàn)或偶校驗(yàn));
停止位:長度1、1.5或者2,數(shù)據(jù)值等于邏輯1,表示數(shù)據(jù)幀發(fā)送結(jié)束;
假設(shè)某RS232通信設(shè)置數(shù)據(jù)位=7,奇校驗(yàn),停止位=2,則幀和邏輯值如下圖所示:
接下來我們做一個(gè)計(jì)算。
假設(shè)某RS232通信設(shè)置波特率=9600,數(shù)據(jù)位=8,無校驗(yàn)(=0),停止位=1。請(qǐng)問該通信參數(shù)下,每秒鐘可傳輸多少個(gè)字節(jié)的數(shù)據(jù)?
答:根據(jù)參數(shù)可知,該通信的幀長度=1+8+1=10 位(bit),在該幀中傳輸了一個(gè)字節(jié)(8位)。因此對(duì)于9600的波特率,每秒鐘最多可傳輸實(shí)際數(shù)據(jù)=9600/10=960字節(jié)。
關(guān)于數(shù)據(jù)傳輸還有流控制等內(nèi)容。本文實(shí)在有點(diǎn)長,就留到后期介紹吧。我的書《西門子S7-1200/1500 PLC SCL語言編程 ——從入門到精通》通信部分也對(duì)RS232有比較詳細(xì)的介紹,感興趣的話可以看看下面的鏈接:
審核編輯:湯梓紅
-
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1890瀏覽量
64593 -
RS485
+關(guān)注
關(guān)注
39文章
1159瀏覽量
82324 -
RS232
+關(guān)注
關(guān)注
13文章
748瀏覽量
94339 -
串口
+關(guān)注
關(guān)注
14文章
1554瀏覽量
76511 -
串行通信
+關(guān)注
關(guān)注
4文章
572瀏覽量
35398
原文標(biāo)題:深入理解RS232串口
文章出處:【微信號(hào):方正智芯,微信公眾號(hào):方正智芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論