新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > RS232串口通信詳解

RS232串口通信詳解

作者: 時間:2016-12-13 來源:網(wǎng)絡 收藏
串口是計算機上一種非常通用的設備通信協(xié)議。

---------------------------------

本文引用地址:http://butianyuan.cn/article/201612/329555.htm

串口的引腳定義:

9芯 信號方向來自 縮寫 描述 1 調制解調器 CD 載波檢測 2 調制解調器 RXD 接收數(shù)據(jù) 3 PC TXD 發(fā)送數(shù)據(jù) 4 PC DTR 數(shù)據(jù)終端準備好 5

GND 信號地 6 調制解調器 DSR 通訊設備準備好 7 PC RTS 請求發(fā)送 8 調制解調器 CTS 允許發(fā)送 9 調制解調器 RI 響鈴指示器 兩個串口連接時,接收數(shù)據(jù)針腳與發(fā)送數(shù)據(jù)針腳相連,彼此交叉,信號地對應相接即可。

---------------------------------

串口的電氣特性:

1)RS-232串口通信最遠距離是50英尺

2)RS232可做到雙向傳輸,全雙工通訊,最高傳輸速率20kbps

3)RS-232C上傳送的數(shù)字量采用負邏輯,且與地對稱

邏輯1:-3 ~-15V

邏輯0:+3~+15V

所以與單片機連接時常常需要加入電平轉換芯片:

---------------------------------

串口通信參數(shù):

a)波特率:RS-232-C標準規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。

b)數(shù)據(jù)位:標準的值是5、7和8位,如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位);擴展的ASCII碼是0~255(8位)。

c)停止位:用于表示單個包的最后一位,典型的值為1,1.5和2位。由于數(shù)是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y束,并且提供計算機校正時鐘同步的機會。

d)奇偶校驗位:在串口通信中一種簡單的檢錯方式。對于偶和奇校驗的情況,串口會設置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。

---------------------------------

串口通信的傳輸格式:

串行通信中,線路空閑時,線路的TTL電平總是高,經(jīng)反向RS232的電平總是低。一個數(shù)據(jù)的開始RS232線路為高電平,結束時Rs232為低電平。數(shù)據(jù)總是從低位向高位一位一位的傳輸。示波器讀數(shù)時,左邊是數(shù)據(jù)的高位。

例如,對于16進制數(shù)據(jù)55aaH,當采用8位數(shù)據(jù)位、1位停止位傳輸時,它在信號線上的波形如圖1(TTL電平)和圖2(RS-232電平)所示。

55H=01010101B,取反后10101010B,加入一個起始位1,一個停止位0,55H的數(shù)據(jù)格式為1010101010B;

aaH=10101010B,取反后01010101B,加入一個起始位1,一個停止位0,55H的數(shù)據(jù)格式為1101010100B;

---------------------------------

串口通信的接收過程:

(異步通信:接收器和發(fā)送器有各自的時鐘;同步通信:發(fā)送器和接收器由同一個時鐘源控制。RS232是異步通信)

(1)開始通信時,信號線為空閑(邏輯1),當檢測到由1到0的跳變時,開始對“接收時鐘”計數(shù)。

(2)當計到8個時鐘時,對輸入信號進行檢測,若仍為低電平,則確認這是“起始位”,而不是干擾信號。

(3)接收端檢測到起始位后,隔16個接收時鐘,對輸入信號檢測一次,把對應的值作為D0位數(shù)據(jù)。若為邏輯1, 作為數(shù)據(jù)位1;若為邏輯0,作為數(shù)據(jù)位0。

(4)再隔16個接收時鐘,對輸入信號檢測一次,把對應的值作為D1位數(shù)據(jù)。….,直到全部數(shù)據(jù)位都輸入。

(5)檢測校驗位P(如果有的話)。

(6)接收到規(guī)定的數(shù)據(jù)位個數(shù)和校驗位后,通信接口電路希望收到停止位S(邏輯1),若此時未收到邏輯1,說明出現(xiàn)了錯誤,在狀態(tài)寄存器中置“幀錯誤”標志。若沒有錯誤,對全部數(shù)據(jù)位進行奇偶校驗,無校驗錯時,把數(shù)據(jù)位從移位寄存器中送數(shù)據(jù)輸入寄存器。若校驗錯,在狀態(tài)寄存器中置奇偶錯標志。

(7)本幀信息全部接收完,把線路上出現(xiàn)的高電平作為空閑位。

(8)當信號再次變?yōu)榈蜁r,開始進入下一幀的檢測。

---------------------------------

單片機常用11.0592M的的晶振,這個奇怪數(shù)字是有來歷的:

波特率為9600BPS每位位寬t1=1/9600s

晶振周期t2=1/11.0592/1000000S

單片機機器周期t3=12*t2

t1/t3=96

即對于9600BPS的串口,單片機對其以96倍的速率進行采樣。

如果單片機晶振用的不正確,會對串口接受產(chǎn)生誤碼。

---------------------------------

RS485和RS422

RS485總線,在要求通信距離為幾十米到上千米時,廣泛采用RS-485 串行總線標準。RS485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復。RS485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號加以控制。RS485用于多點互連時非常方便,可以省掉許多信號線。應用RS485可以聯(lián)網(wǎng)構成分布式系統(tǒng),其允許最多并聯(lián)32臺驅動器和32臺接收器。

RS422總線,RS485和RS422電路原理基本相同,都是以差動方式發(fā)送和接受,不需要數(shù)字地線。差動工作是同速率條件下傳輸距離遠的根本原因,這正是二者與RS232的根本區(qū)別,因為RS232是單端輸入輸出,雙工工作時至少需要數(shù)字地線發(fā)送線和接受線三條線(異步傳輸),還可以加其它控制線完成同步等功能。RS422通過兩對雙絞線可以全雙工工作收發(fā)互不影響,而RS485只能半雙工工作,發(fā)收不能同時進行,但它只需要一對雙絞線。RS422和RS485在19kpbs下能傳輸1200米。用新型收發(fā)器線路上可連接臺設備。



關鍵詞: RS232串口通

評論


技術專區(qū)

關閉