本文資料是對網絡上相關知識的小總結
UART與RS232和RS485的關系問題
通訊問題,和交通問題一樣,也有高速、低速、擁堵、中斷等等各種情況。如果把串口通訊比做交通,UART比作車站,那么一幀的數據就好比汽車。汽車跑在路上,要遵守交通規則。如果是市內,一般限速30、40,而高速公路則可以到120。而汽車走什么路,限速多少,就要看協議怎么規定了。常見的串口協議有RS-232、RS-422、RS-485等.
RS232與RS485與TTL特點:
電氣特征部分:
RS-232
1、 在RS-232-C中任何一條信號線的電壓均為負邏輯關系。
即:邏輯“1”為-3到-15V;邏輯“0”為+3到+15V。
2、 RS-232-C接口連接器一般使用型號為DB-9插頭座,通常插頭在DCE端,插座在DTE端。PC機的RS-232口為9芯針插座。一些設備與PC機連接的RS-232接口,因為不使用對方的傳送控制信號,只需要三條接口線,即“發送數據TXD”、“接收數據RXD”和“信號地GND”。RS-232傳輸線采用屏蔽雙絞線。
RS-485
RS485采用差分信號負邏輯.
邏輯"1"以兩線間的電壓差為-(2~6)V表示
邏輯"0"以兩線間的電壓差為+(2~6)V表示。
接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL電路連接。RS-485的數據最高傳輸速率為10Mbps。
TTL
TTL電平信號被利用的最多是因為通常數據表示采用二進制規定,+5V等價于邏輯“1”,0V等價于邏輯“0”,
這被稱做TTL(晶體管-晶體管邏輯電平Transistor-Transistor Logic)信號系統,這是計算機處理器控制的設備內部各部分之間通信的標準技術。
波形分析部分:
一、串行數據的格式
異步串行數據的一般格式是:起始位+數據位+停止位,其中起始位1位,數據位可以是5、6、7、8位,停止位可以是1、1.5、2位。起始位是一個值為0的位,所以對于正邏輯的TTL電平,起始位是一位時間的低電平;停止位是值為1的位,所以對于正邏輯的TTL電平,停止位是高電平。線路路空閑或者數據傳輸結束,對于正邏輯的TTL電平,線路總是1(處于停止位)。對于負邏輯(如RS-232電平)則相反。
例如,對于16進制數據55aaH,當采用8位數據位、1位停止位傳輸時,它在信號線上的波形如圖1(TTL電平)和圖2(RS-232電平)所示。 (先傳第一個字節55,再傳第二個字節aa,每個字節都是從低位向高位逐位傳輸)
1.jpg (18.17 KB, 下載次數: 94)
下載附件
2020-2-29 01:49 上傳
圖1 TTL電平的串行數據幀格式(55aah)
2.jpg (19.07 KB, 下載次數: 80)
下載附件
2020-2-29 01:49 上傳
圖2 RS-232電平的串行數據幀格式(55aah)
二、根據波形圖計算波特率
如圖3是圖1在示波器中的顯示示意,其中灰色線是示波器的時間分度線,此時假設是200us/格。
3.jpg (18.93 KB, 下載次數: 69)
下載附件
2020-2-29 01:49 上傳
圖3 波特率計算示意圖
可以看到,第一個字節的10位(1位起始位,8位數據位和1位停止位)共占約1.05ms,這樣可計算出其波特率約為:
10bit / 1.05ms X 1000 ≈ 9600 bit/s
如果上圖中的時間軸是100us/格,同樣可以計算出波特率應是19200bit/s。當通訊不正常,又能觀察到波形時,就可根據上述方法,從波形圖計算一下波特率是否正確。
三、根據波形圖判斷RS-485收發數據的正確與否
RS-485是一種半雙工的串行通訊方式(RS-422為全雙工),485電平芯片所以要正確接收和發送數據,必需保證控制信號和數據的同步,否則要么發送數據丟失,要么接收數據可能丟失。RS-485發送數據時的正確時序如圖4所示。
4.jpg (14.75 KB, 下載次數: 85)
下載附件
2020-2-29 01:49 上傳
圖4 RS-485的正確發送數據時序
5.jpg (16.4 KB, 下載次數: 66)
下載附件
2020-2-29 01:49 上傳
圖5 RS-485控制信號太短時的時序
6.jpg (15.68 KB, 下載次數: 85)
下載附件
2020-2-29 01:49 上傳
圖6 RS-485控制信號太短時的時序
在圖5中,由于控制信號關閉過早,則第二個字節的后兩位將發送錯誤;在圖6中,由于控制信號關閉過遲,使485芯片在發送數據后,不能及時轉到接收狀態,此時總線若有數據過來,則本單元將不能正確接收。
細節對比部分:
RS232、RS485、TTL是指電平標準(電信號)
TTL與RS232為全雙工通訊,RS485為半雙工通訊
電平標準不同
TTL電平標準是低電平為0,高電平為1(對地,標準數字電路邏輯)。
RS232電平標準是正電平為0,負電平為1(對地,正負6-15V皆可,甚至可以用高阻態)。
RS485與RS232類似,都是負邏輯,但是采用差分信號邏輯
傳輸方式不同
RS-232采取不平衡傳輸方式,即所謂單端通訊
RS485則采用平衡傳輸,即差分傳輸方式(使用兩根線的電壓差表示數據)
傳輸距離不同。
RS-232適合本地設備之間的通信,傳輸距離一般不超過20m。
RS-485的傳輸距離為幾十米到上千米。
傳輸速度不同。
RS232傳輸速率較低,最高波特率為19200bps。
RS485的數據最高傳輸速率為10Mbps。
實用性不同
RS-232 接口電路只允許一對一通信,信號電平較高,容易損壞接口電路的芯片;與TTL電路的電平也不兼容,影響其通用性;使用三線。
RS-485 接口接口電平低,不易損壞器件,且該平與 TTL 電平兼容,可方便與TTL 電平兼容;RS-485接口是采用平衡驅動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好;RS-485 接口在總線上是允許連接多達128個收發器。使用兩線
|