色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

串口的歷史

GReq_mcu168 ? 來源:硬件十萬個為什么 ? 作者:硬件十萬個為什么 ? 2022-07-01 16:11 ? 次閱讀

一、串口的歷史

首先,串口對每一個做硬件和嵌入式軟件的人來說,就是一個必備的工具,調試一個帶MCU或者CPU的系統。我們在調試的過程中,一般第一件事情:GPIO點燈,第二件事就是打通串口。

串口是一種非常通用的設備接口,是儀器儀表設備常用的通信接口,常用于遠程采集設備數據或者實現遠程控制。串口的開發也比較簡單,是很多工程師最喜歡的接口之一。

b533982c-f465-11ec-ba43-dac502259ad0.gif

在完成GPIO點燈之后,一般我們就希望能夠實現串口打印的功能,便于我們將一些寄存器信息打印出來便于調試。

由于我個人的特殊經歷,對于我來說,串口這東西,仔細寫起來,可以寫一本書!應該不少于200頁。

2008年我剛進華為工作時,碰到了一個特殊的歷史時期,嵌入式領域群雄逐鹿。

1、IntelAMD高調宣稱X86系統進入嵌入式領域,要占領PowerPC的市場。(后來Intel也做到了,通用服務器占領了幾乎所有電信核心側的設備——刀片服務器、機架服務器)。

2、當時,MIPS、ARM、PowerPC還難分伯仲,不過多核ARM不成熟,無法在電信領域廣泛應用。MIPS由于其優異的性價比和高性能展露頭角,慢慢由于其較差的質量表現而偃旗息鼓。

3、PowerPC,隨著來著其他處理器的壓力,也開始推出多核處理器。

我當時的工作是參與X86處理器作為嵌入式的電路開發。當時碰到一個問題:傳統X86作為PC機已經演進得非常成熟的架構。PC的硬件結構與嵌入式SoC有很大的區別。

b54d9f10-f465-11ec-ba43-dac502259ad0.jpg

CPU下面是北橋負責高速外設、北橋的南面(下面)是南橋負責低速接口外設、然后還有一個SIO負責更低速的外設。

SIO全稱叫Super I/O。

超級輸入輸出芯片(SIO)一般位于主板左下方或者左上方。主要使用的芯片有Winbond、ITE,它為主板上的標準I/O接口提供控制處理功能。這里所說的“超級”是指它集成了PS/2鍵盤、PS/2鼠標、串口COM、并口LPT接口等處理功能,而這些接口都是計算機中的慢速I/O設備。它們全部位于主板后部右邊。它的主要功能包括負責處理從鍵盤、鼠標、串行接口等設備傳輸來的串行數據,將它們轉換成為并行數據,同時也負責并行接口、軟驅接口數據的傳輸與處理。SuperIO是通過一個類似于精簡的PCI總線,叫做LPC總線與南橋進行連接的。

b566ae7e-f465-11ec-ba43-dac502259ad0.png

如此復雜的硬件結構,也是因為Intel強大的發貨量,形成自有體系和標準。

所以在傳統的PC機的主板上帶一個RS232串口的,都是通過SuperIO實現的。X86上也是通過固定的地址去訪問

而我們熟悉的ARM、不管是Cortex-M、還是Cortex-A都是一顆MCU、CPU都帶了串口——UART

從iBox選擇的STM32F103的MCU的結構框圖上面,我們可以看到有一堆UART、USART。

b57d629a-f465-11ec-ba43-dac502259ad0.jpg

然而,在我當時面對的嵌入式X86的系統的設計需求,不需要并口、PS2、硬件監控、FDC

H/W Monitor:一個應用程序讀出所有計算機訪問硬件傳感器的測量值。

FDC:提供了一個主處理器和軟驅之間的接口(軟驅——看懂的人暴露年齡了)

Parallel port:并行端口(SPP),雙向并行端口(BPP),增強型并行端口(EPP),擴展功能并行端口(ECP)四種模式。通過DIR可以控制它的輸入/輸出模式

b5baddf0-f465-11ec-ba43-dac502259ad0.jpg

認識上圖的人再次暴露年齡

KBC:電路提供的功能包括一個鍵盤和一個PS2鼠標。控制器從鍵盤和鼠標接受串行數據,檢查校驗后將這些數據輸出到其輸出緩沖區。從它的讀寫命令中可以了解一些基本設置。

UART:終于說到我們的本文的主角UART、即串口了。在老式的臺式電腦或者筆記本上,其實都會有RS232電平標準的UART:

b5d4fef6-f465-11ec-ba43-dac502259ad0.jpg

關于串口的各種電平標準,我們前期有發布過相關的內容:

UART、RS-232、RS-422、RS-485

SuperIO的UART輸出的一般也是TTL電平,還需要接到RS232芯片,再接到DB9接口

b5e31c7a-f465-11ec-ba43-dac502259ad0.jpg

X86系統的地址的尋址空間還有點復雜:除了內存空間(Memory)、還有IO空間。詳細內容點擊:

處理器系列(7)——尋址空間

IO空間是

在X86開發時,串口這些低速的外設是用IO空間進行訪問和讀寫的:

由UARTDevice Configuration Registers可知,UART1~UART4的基址分別是03F8H,02F8H,03E8H,02E8H。

GPIO:通用管腳

ACPI:ACPI是控制電腦電源的系統

這些對于傳統的由PowerPC實現的電信嵌入式系統來說,除了串口,其他功能不是需要的;同時,原來的一些NorFlash、寄存器、傳感器 數據,需要通過MPI接口進行訪問,而這些都是SuperIO芯片不能實現的。

另外由于SuperIO的功能多,所以尺寸大,管腳也多。

所以在當時的設計需求里面,使用一個SuperIO并不合適。所以選擇一個CPLD實現LPC接口控制UART接口。

由于我是從事過這么一個工作,所以對UART的工作過程特別熟悉。而且,我們一開始按照自己的想法,自定義了很多寄存器,并且地址是按照自己想法去設計的,結果:商業軟件windows、商用linux無法直接識別到串口。后來又改回基址:03F8H,02F8H,03E8H,02E8H這幾個地址。

二、串口的工作原理

1、我們用打電話為例,來說明串口的工作原理:

首先打電話,說話是串行,即:一個字一個字說。

發送方對接收方發送信息,是串行的:

因為對方是一個字發音、一個字發音聽到的,所以每個字是按照時間先后順序發給對方的。

如果我們用GPIO去傳遞信號,則我們只能傳遞“高低電平”,信號要么為“高電平”、要么為“低電平”。那么這個管腳傳遞信息,只有兩個狀態,跟烽火臺一樣,要么“有”、要么“沒”。

所以當我們用GPIO進行點燈的時候,表示狀態的時候,一般就是兩個狀態,“亮”、“滅”。

但是兩個狀態、根本沒法滿足我們傳遞信息的需求。于是我們希望傳遞,一串“亮”、“滅”,來傳遞更復雜的信息,跟電報、或者海軍信號燈的原理是一樣的。

2、串行的數據,如何轉并行?

如同打電話一樣,我們要聽完一句話,接收所有的字、然后組詞、組成句子,接收完整的一句話,之后人腦去理解他的語意。

學過《數字電路》的朋友,應該還記得“移位寄存器”吧?

b6969f16-f465-11ec-ba43-dac502259ad0.jpg

細節,我估計你們早忘光了,甚至當時完全就沒學會。。。。后來工作,好像也沒用得到。(現在做硬件好像就是原理圖PCB畫對了就好了,都不用管電路原理。)

b6b24b08-f465-11ec-ba43-dac502259ad0.png

大致的意思是:

初始狀態:設A3A2A1A0= 1011

然后Q3的輸出,是在每個時鐘節拍,按照這個先后順序,把A3A2A1A0串行的輸出出去。

其實利用的就是D觸發器的特性。

如果我們使用8位的移位寄存器,就可以利用8個clk的時間,發一組8bit的數據通過一跟導線,傳輸出去。

接收也是一樣的,不過過程相反:

b6c08fba-f465-11ec-ba43-dac502259ad0.png

b6ceab40-f465-11ec-ba43-dac502259ad0.png

3、喂!XXXX 拜拜

打電話的時候,我們一般會先說:“喂!”。

這是一個信號,通知對方:“我要開始說話了”。

因為打電話的時候,我們彼此看不到對方,不知道對方的表情、眼神、動作、是否聽你說話。所以我們通過一個信息,通知對方,啟動通信

在串口的通信過程中,一樣的,我們需要通知對方:我要開始通信了。

其實很多接口原理都一樣:首先要有個常態,然后再發一個不同的狀態,告訴對方,開始了!

對于UART來說,首先要有個常態——高電平(至于為什么是高電平、各種說法,個人覺得應該沒什么理由,反過來也不影響)

那么,我們就需要用一個信息告訴接收方,我要傳數據了。最簡單的方法就是,突然讓電平拉低,這樣,能夠檢測一個下降沿,或者能夠檢測到一個低電平,則,我們就可以認為,要開始了。

UART就選擇了這么一個簡單粗暴的方法:

b6e2b1f8-f465-11ec-ba43-dac502259ad0.jpg

上圖,中Start,那個低電平,實際就是一個表示開始的信號。我們稱之為:起始位。

同樣,打電話的時候,我們都需要說:“再見”。

我跟我爸打電話的時候,我爸一般不說再見、拜拜之類的結束語,經常導致:我話還沒說完,他就掛電話了。導致我要重新撥號過去。

這個“再見”,與平時,我們離開時說的“再見”,還多一層意思,表達:“通信可以停止了!”

所以,UART也需要這么一個信息,通知對方,我說完了,你可以處理了。

這個就是“停止位”,方式也很簡單:“高電平”!

如上圖中的STOP。

4、波特率——語速

因為,UART中的A表示的是異步:

(Universal Asynchronous Receiver/Transmitter)

所謂異步,也就是說,我給你發信號的時候,我不給你發時鐘;

接收方,需要:

1、時鐘與發送方時鐘誤差不能太大。

2、雙方的分析數據的時鐘需要保持基本一致。

例如:

發送方發出9600波特率信號,但是接收方的波特率設置為19200。起始位沒有問題,因為能夠接收到那個下降沿,低電平。所以,會去解析數據,但是會出現誤碼。我們在信號上分析一下就知道了:

b7080eb2-f465-11ec-ba43-dac502259ad0.jpg

白色的數字是9600波特率發出來的本意:01000001

結果,接收方波特率19200,是9600的兩倍,采樣的速率也是2倍,解析出來的數據:00011000

這樣就造成“錯誤”。

這也是為什么,我們串口對接時,收發雙方需要統一“波特率”的原因。

三、串口的電平標準

1、TTL

一般板內或者是,現在調試用的串口工具,直接使用TTL電平標準的UART,簡單易用,成本低。缺點的是不能遠距離傳輸。

2、RS-232標準

RS-232是美國電子工業協會EIA(Electronic Industry Association)制定的一種串行物理接口標準。RS是英文“推薦標準”的縮寫,232為標識號。RS-232是對電氣特性以及物理特性的規定,只作用于數據的傳輸通路上,它并不內含對數據的處理方式。需要說明一下,很多人經常把RS-232、RS-422、RS-485 誤稱為通訊協議,這是很不應該的,其實它們僅是關于UART通訊的一個機械和電氣接口標準(頂多是網絡協議中的物理層面)。

該標準規定采用一個25 個腳的DB-25 連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。后來IBM的PC 機將RS-232 簡化成了DB-9 連接器,從而成為今天的事實標準。而工業控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三條線。

b7496a4c-f465-11ec-ba43-dac502259ad0.jpg



早期由于PC都帶有RS-232接口,所以我們需要使用UART時,都選擇RS-232。但是現在個人電腦,不光是筆記本,包括臺式機都不再帶有RS-232的接口,大家看到電腦主板上面沒有DB9的接口。所以現在開發板都選擇TTL的UART,或者直接UART轉USB做在開發板上。

嵌入式里面說的串口,一般是指UART口, 但是我們經常搞不清楚它和COM口的區別, 以及RS232, TTL等關系, 實際上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的電平標準(電信號).

UART有4個pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。

3、RS-485/ RS-422標準

RS-232接口可以實現點對點的通信方式,但這種方式不能實現聯網功能。于是,為了解決這個問題,一個新的標準RS-485產生了。RS-485的數據信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。

通常情況下,發送驅動器A、B之間的正電平在+2~+6V,是一個邏輯狀態,負電平在-2~6V,是另一個邏輯狀態。另有一個信號地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的。

RS-422 的電氣性能與RS-485完全一樣。主要的區別在于:RS-422 有4 根信號線:兩根發送、兩根接收。由于RS-422 的收與發是分開的所以可以同時收和發(全雙工),也正因為全雙工要求收發要有單獨的信道,所以RS-422適用于兩個站之間通信,星型網、環網,不可用于總線網;RS-485 只有2 根信號線,所以只能工作在半雙工模式,常用于總線網。

b7711fd8-f465-11ec-ba43-dac502259ad0.jpg

1. RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接。

2. RS-485的數據最高傳輸速率為10Mbps 。

3. RS-485接口是采用平衡驅動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。

4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個節點,如果使用特制的485芯片,可以達到128個或者256個節點,最大的可以支持到400個節點。

RS-423 非平衡串行通信接口

結構、信號電平、傳輸距離、傳輸速率、接口芯片

RS-422 平衡型串行通信接口

結構、信號電平、接口芯片,MC3486、MC3487、SN75154,SN75155

傳輸速率、傳輸距離

RS-485 串行通信總線

結構、信號電平、接口芯片 MAX485

傳輸速率、傳輸距離,應用實例

由于RS-232 接口標準出現較早,難免有不足之處,主要有以下四點:

(1)接口的信號電平值較高,易損壞接口電路芯片,又因為232電平與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連接;

(2)傳輸速率較低,在異步傳輸時,波特率為20Kbps。現在由于采用了新的UART芯片,波特率達到115.2Kbps(1.832M/16);

(3)接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱;

(4)傳輸距離有限,最大傳輸距離標準值為50 米,實際上也只能用在15 米左右;

(5) RS-232 只容許一對一的通信,沒有考慮構成串行總線。(這點很重要,在很多控制場景,是一控多,如果主設備都需要跟從設備點對點通信,那現場布線成蜘蛛網了)

b7854436-f465-11ec-ba43-dac502259ad0.jpg

非平衡型串行通信接口RS-423,RS-449

b7929c58-f465-11ec-ba43-dac502259ad0.jpg

b7a18b28-f465-11ec-ba43-dac502259ad0.jpg

平衡型串行通信接口RS-422

RS-422(EIA RS-422-A Standard)是Apple的Macintosh計算機的串口連接標準。RS-422使用差分信號,RS-232使用非平衡參考地的信號。差分傳輸使用兩根線發送和接收信號,對比RS-232,它能更好的抗噪聲和有更遠的傳輸距離。在工業環境中更好的抗噪性和更遠的傳輸距離是一個很大的優點。

b7c0c20e-f465-11ec-ba43-dac502259ad0.png

b7cfccfe-f465-11ec-ba43-dac502259ad0.jpg

b7dbf222-f465-11ec-ba43-dac502259ad0.jpg

b7f03278-f465-11ec-ba43-dac502259ad0.jpg

4、RS-232與RS-485對比

1、抗干擾性:RS485 接口是采用平衡驅動器和差分接收器的組合,抗噪聲干擾性好。RS232 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾。

2、傳輸距離:RS485 接口的最大傳輸距離標準值為 1200 米(9600bps 時),實際上可達 3000 米。RS232 傳輸距離有限,最大傳輸距離標準值為 50 米,實際上也只能用在 15 米左右。

3、通信能力:RS-485 接口在總線上是允許連接多達128個收發器,用戶可以利用單一的 RS-485 接口方便地建立起設備網絡。RS-232只允許一對一通信。

4、傳輸速率:RS-232傳輸速率較低,在異步傳輸時,波特率為 20Kbps。RS-485 的數據最高傳輸速率為 10Mbps 。

5、信號線:RS485 接口組成的半雙工網絡,一般只需二根信號線。RS-232 口一般只使用 RXD、TXD、GND 三條線 。

6、電氣電平值:RS-485的邏輯"1"以兩線間的電壓差為+(2-6) V 表示;邏輯"0"以兩線間的電壓差為-(2-6)V 表 示 。在 RS-232-C 中任何一條信號線的電壓均為負邏輯關系。即:邏輯"1",-5- -15V;邏輯"0 " +5- +15V 。

5、RS-422與RS-485對比

RS-485的電氣性能與RS-422完全一樣。主要的區別在于:

1、RS-422 有4 根信號線:兩根發送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發是分開的所以可以同時收和發(全雙工)。

2、RS-485 只有兩根數據線:發送和接收都是A 和B。由于RS-485 的收與發是共用兩根線,所以不能同時收和發(半雙工)。

RS-485標準采用平衡式發送,差分式接收的數據收發器來驅動總線,具體規格要求:

接收器的輸入電阻RIN≥12kΩ

驅動器能輸出±7V的共模電壓

輸入端的電容≤50pF

在節點數為32個,配置了120Ω的終端電阻的情況下,驅動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數有關)

接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號“0”;(V+)-(V-)≤-0.2V,表示信號“1”)

b803aee8-f465-11ec-ba43-dac502259ad0.jpg

因為RS-485的遠距離、多節點(32個)以及傳輸線成本低的特性,使得EIA RS-485成為工業應用中數據傳輸的首選標準。

(1) RS-485 的電氣特性:發送端:邏輯“0”以兩線間的電壓差+(2 ~6)V 表示;邏輯“1”以兩線間的電壓差-(2 ~6)V 表示。接收端:A 比B 高200mV 以上即認為是邏輯“0”,A 比B 低200mV 以上即認為是邏輯“1”;

(2) RS-485 的數據最高傳輸速率為10Mbps。但是由于RS-485 常常要與PC 機的RS-232 口通信,所以實際上一般最高115.2Kbps。又由于太高的速率會使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下;

(3) RS-485 接口是采用平衡驅動器和差分接收器的組合,抗噪聲干擾性好;

(4) RS-485 接口的最大傳輸距離標準為1200 米(9600bps 時),實際上可達3000米,RS-485 接口在總線上是容許連接多達128 個收發器、即RS-485 具有多機通信功能,這樣用戶可以利用單一的RS-485 接口方便的建立起網絡。因為RS-485 接口組成的半雙工網絡,一般只需二根信號線,所以RS-485 接口均采用雙絞線傳輸。RS-485 的國際標準并沒有規定RS-485 的接口連接器標準、所以采用接線端子或者DB-9、DB-25 等連接器都可以。

在使用RS-485 接口時,對于特定的傳輸線徑,從發生器到負載其數據信號傳輸所容許的最大電纜長度是數據信號速率的函數,這個長度數據主要是受信號失真及噪聲等影響所限制。最大電纜長度與信號速率的關系曲線是使用24AWG 銅芯雙絞電話電纜(線徑為0.51mm),線間旁路電容為52.5PF/M,終端負載電阻為100 歐時所得出的。(引自GB11014-89 附錄A)。當數據信號速率降低到90Kbit/S 以下時,假定最大容許的信號損失為6dBV 時,則電纜長度被限制在1200m。實際上,在使用時是完全可以取得比它大的電纜長度。當使用不同線徑的電纜,則取得的最大電纜長度是不相同的。例如:當數據信號速率為600Kbit/S 時,采用24AWG 電纜,最大電纜長度是200m,若采用19AWG電纜(線徑為0.91mm)則電纜長度將可以大于200m;若采用28AWG 電纜(線徑為0.32mm),則電纜長度只能小于200m。

RS-485的遠距離通信建議采用屏蔽電纜,并且將屏蔽層作為地線。

6、影響RS-485總線通訊速度和通信可靠性的三個因素

在通信電纜中的信號反射

在通信過程中,有兩種信號因素導致信號反射:阻抗不連續和阻抗不匹配。

阻抗不連續,信號在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號在這個地方就會引起反射,如圖所示。這種信號反射的原理,與光從一種媒質進入另一種媒質要引起反射是相似的。消除這種反射的方法,就必須在電纜的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續。由于信號在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個同樣大小的終端電阻。

b821c356-f465-11ec-ba43-dac502259ad0.png

從理論上分析,在傳輸電纜的末端只要跨接了與電纜特性阻抗相匹配的終端電阻,就再也不會出現信號反射現象。但是,在實現應用中,由于傳輸電纜的特性阻抗與通訊波特率等應用環境有關,特性阻抗不可能與終端電阻完全相等,因此或多或少的信號反射還會存在。

引起信號反射的另一個原因是數據收發器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現在通訊線路處在空閑方式時,整個網絡數據混亂。

信號反射對數據傳輸的影響,歸根結底是因為反射信號觸發了接收器輸入端的比較器,使接收器收到了錯誤的信號,導致CRC校驗錯誤或整個數據幀錯誤。

在信號分析,衡量反射信號強度的參數是RAF(Refection AttenuationFactor反射衰減因子)。它的計算公式如式(1)。

RAF=20lg(Vref/Vinc) (1)

式中:Vref—反射信號的電壓大小;Vinc—在電纜與收發器或終端電阻連接點的入射信號的電壓大小。

具體的測量方法如圖3所示。例如,由實驗測得2.5MHz的入射信號正弦波的峰-峰值為+5V,反射信號的峰-峰值為+0.297V,則該通訊電纜在2.5MHz的通訊速率時,它的反射衰減因子為:

RAF=20lg(0.297/2.5)=-24.52dB

b83268c8-f465-11ec-ba43-dac502259ad0.png

要減弱反射信號對通訊線路的影響,通常采用噪聲抑制和加偏置電阻的方法。在實際應用中,對于比較小的反射信號,為簡單方便,經常采用加偏置電阻的方法。在通訊線路中,如何通過加偏置電阻提高通訊可靠性的原理。

在通訊電纜中的信號衰減

第二個影響信號傳輸的因素是信號在電纜的傳輸過程中衰減。一條傳輸電纜可以把它看成由分布電容、分布電感和電阻聯合組成的等效電路,如圖所示。

b8446bb8-f465-11ec-ba43-dac502259ad0.png

電纜的分布電容C主要是由雙絞線的兩條平行導線產生。導線的電阻在這里對信號的影響很小,可以忽略不計。信號的損失主要是由于電纜的分布電容和分布電感組成的LC低通濾波器。PROFIBUS用的LAN標準型二芯電纜(西門子為DP總線選用的標準電纜),在不同波特率時的衰減系數如表1所示。

電纜的衰減系數

b85bae7c-f465-11ec-ba43-dac502259ad0.png

在通訊電纜中的純阻負載

影響通訊性能的第三個因素是純阻性負載(也叫直流負載)的大小。這里指的純阻性負載主要由終端電阻、偏置電阻和RS-485收發器三者構成。

b86de114-f465-11ec-ba43-dac502259ad0.png

在敘述EIA RS-485規范時曾提到過RS-485驅動器在帶了32個節點,配置了150Ω終端電阻的情況下,至少能輸出1.5V的差分電壓。一個接收器的輸入電阻為12kΩ,整個網絡的等效電路如圖5所示。按這樣計算,RS-485驅動器的負載能力為:

RL=32個輸入電阻并聯2個終端電阻=((12000/32)×(150/2))/(12000/32)+(150/2))≈51.7Ω

現在比較常用的RS-485驅動器有MAX485、DS3695、MAX1488/1489以及和利時公司使用的SN75176A/D等,其中有的RS-485驅動器負載能力可以達到20Ω。在不考慮其它諸多因素的情況下,按照驅動能力和負載的關系計算,一個驅動器可帶節點的最大數量將遠遠大于32個。

在通訊波特率比較高的時候,在線路上偏置電阻是很有必要的。偏置電阻的連接方法如圖6。它的作用是在線路進入空閑狀態后,把總線上沒有數據時(空閑方式)的電平拉離0電平,如圖7。這樣一來,即使線路中出現了比較小的反射信號或干擾,掛接在總線上的數據接收器也不會由于這些信號的到來而產生誤動作。

b87bcfae-f465-11ec-ba43-dac502259ad0.jpg

通過下面后例子了,可以計算出偏置電阻的大小:

終端電阻Rt1=Rr2=120Ω;

假設反射信號最大的峰-峰值Vref≤0.3Vp-p,則負半周的電壓Vref≤0.15V;終端的電阻上由反射信號引起的反射電流Iref≤0.15/(120||120)=2.5mA。一般RS-485收發器(包括SN75176)的滯后電壓值(hysteresis value)為50mV,即:

(Ibias-Iref)×(Rt1||Rt2)≥50mV

于是可以計算出偏置電阻產生的偏置電流Ibias≥3.33mA

+5V=Ibias(R上拉+R下拉+(Rt1||Rt2)) (2)

通過式2可以計算出R上拉=R下拉=720Ω

在實際應用中,RS-485總線加偏置電阻有兩種方法:

(1)把偏置電阻平衡分配給總線上的每一個收發器。這種方法給掛接在RS-485總線上的每一個收發器加了偏置電阻,給每一個收發器都加了一個偏置電壓。

(2)在一段總線上只用一對偏置電阻。這種方法對總線上存在大的反射信號或干擾信號比較有效。值得注意的是偏置電阻的加入,增加了總線的負載。

7、RS-485總線的負載能力和通訊電纜長度之間的關系

在設計RS-485總線組成的網絡配置(總線長度和帶負載個數)時,應該考慮到三個參數:純阻性負載、信號衰減和噪聲容限。純阻性負載、信號衰減這兩個參數,在前面已經討論過,現在要討論的是噪聲容限(Noise Margin)。RS-485總線接收器的噪聲容限至少應該大于200mV。前面的論述者是在假設噪聲容限為0的情況下進行的。在實際應用中,為了提高總線的抗干擾能力,總希望系統的噪聲容限比EIA RS-485標準中規定的好一些。從下面的公式能看出總線帶負載的多少和通訊電纜長度之間的關系:

Vend=0.8(Vdriver-Vloss-Vnoise-Vbias)(3)

其中:Vend為總線末端的信號電壓,在標準測定時規定為0.2V;Vdriver為驅動器的輸出電壓(與負載數有關。負載數在5~35個之間,Vdriver=2.4V;當負載數小于5,Vdriver=2.5V;當負載數大于35,Vdriver≤2.3V);Vloss為信號在總線中的傳輸過程中的損耗(與通訊電纜的規格和長度有關),由表1提供的標準電纜的衰減系數,根據公式衰減系數b=20lg(Vout/Vin)可以計算出Vloss=Vin-Vout=0.6V(注:通訊波特率為9.6kbps,電纜長度1km,如果特率增加,Vloss會相應增大);Vnoise為噪聲容限,在標準測定時規定為0.1V;Vbias是由偏置電阻提供的偏置電壓(典型值為0.4V)。

式(3)中乘以0.8是為了使通信電纜不進入滿載狀態。從式(3)可以看出,Vdriver的大小和總線上帶負載數的多少成反比,Vloss的大小和總線長度成反比,其他幾個參數只和用的驅動器類型有關。因此,在選定了驅動器的RS-495總線上,在通信波特率一定的情況下,帶負載數的多少,與信號能傳輸的最大距離是直接相關的。具體關系是:在總線允許的范圍內,帶負載數越多,信號能傳輸的距離就越小;帶負載數據少,信號能傳輸的距離就越遠。

8、分布電容對RS-485總線傳輸性能的影響

電纜的分布電容主是由雙絞線的兩條平行導線產生。另外,導線和地之間也存在分布電容,雖然很小,但在分析時也不能忽視。分布電容對總線傳輸性能的影響,主要是因為總線上傳輸的是基波信號,信號的表達方式只有“1”和“0”。在特殊的字節中,例如0x01,信號“0”使得分布電容有足夠的充電時間,而信號“1”到來時,由于分布電容中的電荷,來不及放電,(Vin+)—(Vin-)-還大于200mV,結果使接收誤認為是“0”,而最終導致CRC校驗錯誤,整個數據幀傳輸錯誤。具體過程如圖所示。

b891d5c4-f465-11ec-ba43-dac502259ad0.png

由于總線上分布影響,導致數據傳輸錯誤,從而使整個網絡性能降低。解決這個問題有兩種方法:

(1)降低數據傳輸的波特率;

(2)使用分布電容小的電纜,提高傳輸線的質量。

僅僅用一對雙絞線將各個接口的A、B端連接起來,而不對RS-485通信鏈路的信號接地,在某些情況下也可以工作,但給系統埋下了隱患。RS-485接口采用差分方式傳輸信號并不需要對于某個參照點來檢測信號系統,只需檢測兩線之間的電位差就可以了。但應該注意的是收發器只有在共模電壓不超出一定范圍(-7V至+12V)的條件下才能正常工作。當共模電壓超出此范圍,就會影響通信的可靠直至損壞接口。如圖1所示,當發送器A向接收器B發送數據時,發送器A的輸出共模電壓為VOS,由于兩個系統具有各自獨立的接地系統存在著地電位差VGPD,那么接收器輸入端的共模電壓就會達到VCM=VOS+VGPD。RS-485標準規定VOS≤3V,但VGPD可能會有很大幅度(十幾伏甚至數十伏),并可能伴有強干擾信號致使接收器共模輸入VCM超出正常圍,在信號線上產生干擾電流影響正常通信,或損壞設備。

四、串口線的傳輸距離

串行接口(Serial Interface)是指數據一位一位地順序傳送,其特點是通信線路簡單,只要一對傳輸線就可以實現雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠距離通信,但傳送速度較慢。一條信息的各位數據被逐位按順序傳送的通訊方式稱為串行通訊。串行通訊的特點是:數據位的傳送,按位順序進行,最少只需一根傳輸線即可完成;成本低但傳送速度慢。串行通訊的距離可以從幾米到幾千米;根據信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。

總述:

串口通信的兩種最基本的方式:同步串行通信方式和異步串行通信方式。

同步串行是指SPI(Serial Peripheral interface)的縮寫,顧名思義就是串行外圍設備接口。SPI總線系統是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息,TRM450是SPI接口。

異步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用異步接收/發送。UART是一個并行輸入成為串行輸出的芯片,通常集成在主板上。UART包含TTL電平的串口和RS232電平的串口。TTL電平是3.3V的,而RS232是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。

串行接口按電氣標準及協議來分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標準只對接口的電氣特性做出規定,不涉及接插件、電纜或協議。

RS-232:

也稱標準串口,最常用的一種串行通訊接口。它是在1970年由美國電子工業協會(EIA)聯合貝爾系統、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”。傳統的RS-232-C接口標準有22根線,采用標準25芯D型插頭座(DB25),后來使用簡化為9芯D型插座(DB9),現在應用中25芯插頭座已很少采用。

RS-232采取不平衡傳輸方式,即所謂單端通訊。由于其發送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點(即只用一對收、發設備)通訊而設計的,其驅動器負載為3~7kΩ。所以RS-232適合本地設備之間的通信。

pt; background:rgb(255,255,255); mso-shading:rgb(255,255,255); " >、RS485等。RS-232-C、RS-422與RS-485標準只對接口的電氣特性做出規定,不涉及接插件、電纜或協議。

RS-422

標準全稱是“平衡電壓數字接口電路的電氣特性”,它定義了接口電路的特性。典型的RS-422是四線接口。實際上還有一根信號地線,共5根線。其DB9連接器引腳定義。由于接收器采用高輸入阻抗和發送驅動器比RS232更強的驅動能力,故允許在相同傳輸線上連接多個接收節點,最多可接10個節點。即一個主設備(Master),其余為從設備(Slave),從設備之間不能通信,所以RS-422支持點對多的雙向通信。接收器輸入阻抗為4k,故發端最大負載能力是10×4k+100Ω(終接電阻)。RS-422四線接口由于采用單獨的發送和接收通道,因此不必控制數據方向,各裝置之間任何必須的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現。

RS-422的最大傳輸距離為1219米,最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。

RS-485

是從RS-422基礎上發展而來的,所以RS-485許多電氣規定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實現真正的多點雙向通信,而采用四線連接時,與RS-422一樣只能實現點對多的通信,即只能有一個主(Master)設備,其余為從設備,但它比RS-422有改進,無論四線還是二線連接方式總線上可多接到32個設備。

RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間,RS-485接收器最小輸入阻抗為12kΩ、RS-422是4kΩ;由于RS-485滿足所有RS-422的規范,所以RS-485的驅動器可以在RS-422網絡中應用。

RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s。平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能使用規定最長的電纜長度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長雙絞線最大傳輸速率僅為1Mb/s。

nt face="Arial" >1219米,最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9104

    瀏覽量

    367864
  • 串口
    +關注

    關注

    14

    文章

    1555

    瀏覽量

    76603
  • 嵌入式軟件
    +關注

    關注

    4

    文章

    240

    瀏覽量

    26654

原文標題:UART

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview歷史曲線怎么生成

    各位大神幫幫忙,這個歷史曲線怎么做啊,將表格中的數據,按照列生成不同的曲線
    發表于 08-07 17:17

    FPGA技術的發展歷史和動向

    本文關鍵字:fpga技術,fpga發展, fpga培訓,FPGA應用開發入門與典型實例 一、FPGA技術的發展歷史 縱觀數字集成電路的發展歷史,經歷了從電子管、晶體管、小規模集成電路到大規模以及超大規模集成電路等不同的階段。發展到現在,主要有3類電子器件:存儲器、。。。。
    發表于 08-08 10:24

    Linux怎么查看歷史命令

    可以執行history命令查看歷史命令:
    發表于 07-18 06:54

    linux如何刪除歷史操作

    有時候在系統中做了任何操作,但不想被別人知道,畢竟系統別人都可以登入查看,那怎么把自己操作系統的歷史命令刪除而不讓別人知曉呢?
    發表于 07-22 06:41

    LINUX怎么清除歷史記錄命令

    目的很簡單,就是清除linux下的歷史命令linux 下輸入history 命令顯示歷史敲過的命令
    發表于 07-25 07:45

    串口屏MODBUS教程5_曲線控件和歷史曲線件的使用教程

    串口屏MODBUS教程5_曲線控件和歷史曲線件的使用教程1、本文主要講述曲線控件、歷史曲線控件在MODBUS協議串口屏的應用。2、本文適合大彩基本型、經濟型、商業型、F型、物聯型、86
    發表于 08-06 17:48

    串口屏MODBUS教程6-數據記錄控件的使用教程.pdf

    串口屏MODBUS教程6-數據記錄控件的使用教程1、本文主要講述數據記錄控件在MODBUS 協議的串口屏的應用。數據記錄控件常用于三種記錄類型,“當前告警”、“歷史告警”和“歷史告警與
    發表于 08-06 17:53

    追蹤項目歷史

    Altium Designer?將項目提供給合作者,這其中就包括完整的項目歷史記錄(共同參與復雜項目的合作者可以輕松訪問項目歷史記錄)。 如果您從未使用過正式的版本控制系統進行PCB設計,或者從未將項目
    發表于 03-30 10:07

    Verilog HDL的歷史及設計流程是什么

    Verilog HDL的歷史及設計流程是什么
    發表于 05-06 08:52

    單片機的發展歷史

    單片機 微機 微型計算機 計算機的發展歷史 單片機的發展歷史
    發表于 07-13 08:49

    歷史才有未來,DigiPCBA的項目歷史

    作為一個電子工程師,對自己的項目肯定是需要經過多次修改、增添、發布等等打磨,才會出品最終滿意的成果。在這個對項目不斷操作的過程中, 一個自動化的歷史記錄系統來梳理項目的發展脈絡,才會保證該項
    發表于 05-30 11:34

    Fibocom 歷史培訓 合集

    Fibocom 歷史培訓 合集歷史培訓有:1、物聯網暨蜂窩通信應用介紹2、蜂窩通信應用設計交流3、智能物聯電子系統設計指導培訓4、L610技術專題講座之短信電話定位實現5、L610技術專題講座之連接
    發表于 12-08 14:10

    串口屏的發展歷史及應用領域

    串口屏發展市面上, 2010年前初期版本的串口屏,都是簡單的通過一個上位機軟件來進行界面下載,然后發送命令過去把各種需要顯示的界面顯示出來,以達到所需要的顯示效果,觸摸方面僅支持上傳坐標。
    的頭像 發表于 02-08 10:29 ?2033次閱讀

    大彩串口屏控件教程14 - 串口歷史曲線控件應用

    大彩串口屏控件教程14-串口歷史曲線控件應用
    發表于 04-29 12:56 ?5次下載

    串口屏Modbus教程5-曲線控件和歷史曲線控件V1.0

    串口屏Modbus教程5-曲線控件和歷史曲線控件V1.0
    發表于 04-29 13:34 ?19次下載
    主站蜘蛛池模板: 欧美白妞大战非洲大炮| 孕妇泬出白浆18P| 草比比过程图| 色婷婷AV国产精品欧美毛片| 国产精品国产三级国产AV麻豆| 亚洲国产高清在线| 久久久精品国产免费A片胖妇女| 97豆奶视频国产| 色小妹影院| 久久青青无码AV亚洲黑人| aa级毛片毛片免费观看久| 探花口爆颜射乳交日韩| 久久免费国产视频| 吃奶吸咪咪动态图| 亚洲色综合中文字幕在线| 欧美午夜a级精美理论片| 国产免费午夜高清| 97超碰97资源在线观看视频| 色综合久久久久久| 久久中文字幕免费视频| 菲律宾毛片| 中文字幕精品无码一区二区| 色偷偷亚洲男人天堂| 久久综合香蕉久久久久久久| 国产99RE在线观看69热| 制服丝袜 快播| 翁公吮她的花蒂和奶水| 蜜桃传媒一区二区亚洲AV| 国产亚洲精品久久久999蜜臀| 99视频免费看| 尹人综合网| 亚洲AV色香蕉一区二区9255| 女人 我狠狠疼你| 黄色一级毛片免费| 国产成人国产在线观看入口| 69夫妻交友网| 亚洲一区在线视频观看| 少妇被阴内射XXXB少妇BB| 蜜桃麻豆WWW久久囤产精品免费 | 精品一区二区三区色花堂| 国产白色视频在线观看w|