在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

我猜你還不會UART!不信你點進來看看

FPGA之家 ? 來源:小麥大叔 ? 作者:小麥大叔 ? 2021-06-01 11:09 ? 次閱讀

1 UART發展歷史1.1 早期的串行通訊設備早期的電報機器使用長度可變的脈沖信號進行數據傳輸,比如摩斯電碼;

970a7114-c238-11eb-9e57-12bb97331649.png

摩斯電碼

后來電傳打印機(teleprinters )普遍使用5、6、7或8個數據位來表示各種字符編碼,最終成為計算機外圍設備。電傳打字機( teletypewriter 簡稱 tty)成為小型計算機十分出色的通用I/O設備。

Teletypewritter

由于歷史的發展原因,早期在Unix終端是一個名字為ASR33的電傳打字機,而電傳打字機的英文單詞為Teletype(或Teletypewritter),縮寫為tty。因此,終端設備也被稱為tty設備。這就是TTY這個名稱的來源。

1.2 早期的芯片級UARTDEC(Digital Equipment Corporation)公司的Gordon Bell 為該公司的PDP系列計算機設計了第一個UART,不過體積龐大,UART的線路占據了整個電路板;

后來DEC將串行線路單元的設計濃縮為早期的UART單芯片,以方便自己使用。

DEC是美國一家計算機公司;

西部數據(Western Digital)公司在1971年左右將其開發為第一個廣泛可用的UART單芯片 WD1402A。這是中型集成電路的早期產品

Western Digital是美國計算機硬盤驅動器制造商和數據存儲公司。

1.3 現代UART的發展2000年代開始,大多數IBM或者相關的計算機都刪除了其外部RS232的COM端口,將其替換為帶寬性能更加出色的USB端口;

對于仍然需要RS-232串行COM端口的用戶,現在通常使用外部USB轉UART轉換器,常見的有CH340,Silicon Labs 210x的驅動程序,現在很多處理器和芯片都內置了UART。

2 預備知識通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter,通常稱為UART),在UART通信中,兩個UART直接通信。

發送端的UART將來自控制設備(如CPU)的并行數據轉換為串行數據,以串行方式將其發送到接收端的UART,然后由接收端的UART將串行數據轉換為并行數據以用于接收設備的正常處理。

這里只需要兩條線RX/TX即可在兩個UART之間傳輸數據。具體如下圖所示;

97372e48-c238-11eb-9e57-12bb97331649.png

3 協議層UART傳輸的數據被封裝成數據包。每個數據包包含1個起始位,5~9個數據位(取決于UART的具體設置),一個可選的奇偶校驗位以及1個或2個停止位,具體如下圖所示;

97433314-c238-11eb-9e57-12bb97331649.png

協議格式

起始位UART數據傳輸線通常在不傳輸數據時保持在高電平。

為了開始數據傳輸,發送端UART在一個時鐘周期內將傳輸線從高電平拉低到低電平。

當接收端UART檢測到高電壓到低電壓轉換時,它開始以波特率的頻率讀取數據位中的每一位數據。

數據數據位包含正在傳輸的實際數據。如果使用奇偶校驗位,則可以是5位,最多8位。如果不使用奇偶校驗位,則數據幀的長度可以為9位。

在大多數情況下,數據首先以低有效位發送。

校驗位在串口通信中一種簡單的檢錯方式。

有四種檢錯方式:偶校驗、奇校驗、高校驗和低校驗。當然沒有校驗位也是可以的。

對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。

舉個例子,如果數據是011,則滿足;

偶校驗,校驗位為0,保證邏輯高的位數是偶數個。

奇校驗,校驗位為1,這樣就有3個邏輯高位。

具體如下圖所示;

976882c2-c238-11eb-9e57-12bb97331649.png

奇校驗和偶校驗

高位和低位不是真正的檢查數據,而是強行將校驗位設置為邏輯高或者邏輯低。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。

停止位發送端UART將數據傳輸線從低電壓驅動到高電壓至少持續兩位數據的時間寬度來表示整個數據包的傳輸已經結束。

由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容錯性越好,但是數據傳輸率同時也越慢。

波特率波特率是串口數據的傳輸速度,即Bit/s,常見的波特率有:9600,19200,38400,57600,115200,當然還有很多波特率,不再一一給出;

假設目前UART的配置為,1個起始位,8個數據位,0個校驗位,1個停止位,那么9600的波特率,可以計算出每一位數據的時間寬度為:

那么傳輸一個字節(也就是10 bit 數據)需要的時間為 1.04 毫秒。

下面用串口抓取了UART的TX上的信號,其中一位數據的時間寬度為26微秒,具體如下圖所示;

983f9460-c238-11eb-9e57-12bb97331649.jpg

則可以簡單計算得到;

因此波特率大概為 38400;

下表是各個波特率下數據位時間寬度;

o4YBAGC1pSmAQyeXAAAnV8xR1vQ153.png

4 傳輸過程發送端UART從數據總線轉換并行數據:

984a9e5a-c238-11eb-9e57-12bb97331649.png

發送端UART將起始位,奇偶校驗位和停止位添加到數據包中:

98758890-c238-11eb-9e57-12bb97331649.png

整個數據包從發送端UART串行發送到接收端UART;接收端UART按照預先配置好的波特率對數據線進行采樣:

987f037a-c238-11eb-9e57-12bb97331649.png

接收端UART解析接收的數據,丟棄數據包中的起始位,奇偶校驗位和停止位:

988aeb72-c238-11eb-9e57-12bb97331649.png

接收UART將串行數據轉換回并行數據,并將其傳輸到接收端的數據總線:

9895a7c4-c238-11eb-9e57-12bb97331649.png

5 物理層UART、RS232、RS485在串口通信中,主要區別是電平的不同,其中UART通常使用TTL電平,下面介紹這幾個存在的差異;

TTL

TTL全名是晶體管-晶體管邏輯集成電路(Transistor-Transistor Logic

輸入高電平最小2V,輸出高電平最小2.4V,典型值3.4V;

輸入低電平最大0.8V,輸出低電平最大0.4V,典型值0.2V。

RS232

RS232 邏輯1電平(MARK)=-3V~-15V,邏輯0電平(SPACE)=+3~+15V;

同樣的,對于傳輸數據0x55,即二進制的01010101,RS232和TTL的區別如下;

989e2980-c238-11eb-9e57-12bb97331649.png

RS485

RS485是差分信號進行串行傳輸;

邏輯1以兩線間的電壓差為+(2~6)V表示;

邏輯“0”以兩線間的電壓差為-(2~6)V表示;

工業通信中,使用RS485比較多,因為RS485是差分信號,可以抑制共模干擾,因此在惡劣的環境中擁有很好的抗干擾性,比較穩定;

6 優缺點沒有任何通信協議是完美的,以下是UART的一些利弊,可幫助您確定它們是否適合您的項目需求:

優點

通信只需要兩條數據線;

無需時鐘信號;

有奇偶校驗位,方便通信的差錯檢查;

只需要接收端和發送端設置好數據包結構,即可穩定通信;

缺點

數據幀最大支持9位數據;

不支持多主機或多從機的主從系統;

編輯:jq

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

    關注

    5389

    文章

    11574

    瀏覽量

    362314
  • 電平
    +關注

    關注

    5

    文章

    361

    瀏覽量

    39936
  • 晶體管
    +關注

    關注

    77

    文章

    9706

    瀏覽量

    138483
  • uart
    +關注

    關注

    22

    文章

    1240

    瀏覽量

    101491
  • 數據包
    +關注

    關注

    0

    文章

    263

    瀏覽量

    24414

原文標題:我打賭!你還不會UART!不信,你看看~

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    歐姆定律是很熟,只是沒想到電流不按套路出牌!

    本來真的覺得板級電源通流的PCB設計很簡單,多鋪平面多打過孔就搞掂。自從讀到高速先生這篇文章后,立馬就把以前的設計項目又翻出來看看……
    的頭像 發表于 10-28 17:40 ?253次閱讀
    歐姆定律<b class='flag-5'>我</b>是很熟,只是沒想到電流不按套路出牌!

    知道LED全息隱形屏是什么嗎?

    在當今的科技時代,各種新型顯示技術層出不窮,其中LED全息隱形屏是近備受關注的一種。 如果對這項技術還不是很了解,邁普光彩小編一起走進這個神秘的技術世界吧。 LED全息屏屏幕呈網格狀,采用特殊
    的頭像 發表于 10-28 14:13 ?189次閱讀
    <b class='flag-5'>你</b>知道LED全息隱形屏是什么嗎?

    明明說的是25G信號,卻讓看12.5G的損耗?

    。 那如果25Gbps信號的損耗真的是要看到25GHz頻的話,30dB的衰減在眼圖中估計只能看到黑屏和雪花了。但是實際仿真卻不是這樣,依然能得到還不錯的眼圖結果,如下所示,眼高
    發表于 10-23 09:11

    明明說的是25G信號,卻讓看12.5G的損耗?

    那一天,問高速先生25G光模塊信號在主板上允許的損耗是多少,他們就告訴在12.5G要滿足大概7.3dB,當時就懵了,明明說的是25G啊,他跟我說12.5G干嘛!
    的頭像 發表于 10-23 09:08 ?1121次閱讀
    明明<b class='flag-5'>我</b>說的是25G信號,<b class='flag-5'>你</b>卻讓<b class='flag-5'>我</b>看12.5G的損耗?

    關于陶瓷電路板不知道的事

    陶瓷電路板(Ceramic Circuit Board),又稱陶瓷基板,是一種以陶瓷材料為基體,通過精密的制造工藝在表面形成電路圖形的高技術產品,快來看看哪些是您還不知道的事?
    的頭像 發表于 10-21 11:55 ?370次閱讀
    關于陶瓷電路板<b class='flag-5'>你</b>不知道的事

    認識貼片電阻嗎,對他了解多少?

    認識貼片電阻嗎,對他了解多少?
    的頭像 發表于 08-27 15:49 ?509次閱讀
    <b class='flag-5'>你</b>認識貼片電阻嗎,<b class='flag-5'>你</b>對他了解多少?

    雙向收發的信號應該在哪進行串聯端接?分享幾個實用設計方法!

    自從上次高速先生教會了串阻端接的技巧后,感覺一般的設計都難不倒了!直到遇到了雙向收發的信號這種“二般”的設計后,感覺自己又不會了。別慌,再進來
    的頭像 發表于 07-12 18:03 ?1345次閱讀
    雙向收發的信號應該在哪進行串聯端接?分享幾個實用設計方法!

    FHT4644國產替代必然性崛起還不來了解一下芯片這些事嗎

    FHT4644國產替代必然性崛起還不來了解一下芯片這些事嗎 國產芯片崛起,讓國內發展環境變得更加穩定,國產芯片FHT4644通過性能實驗測試,更高效。實驗室常溫條件下,實測數據,輸出電流Iout
    發表于 06-24 17:38

    為什么串阻阻值通常是22到33歐姆,看完后不信不懂!

    ,基本上很多1GHz以下的單端信號都有可能用到。從信號類型來看,像低速的I2C信號、local bus信號到高一的flash信號、以太網RGMII信號,甚至再高一的DDR1到DD
    發表于 06-04 11:12

    STM32F103RCT6 uart1中斷方式接收后不返回主程序了,但新的中斷還能進來是怎么回事?

    uart1中斷方式接收后不返回主程序了,但新的中斷還能進來,芯片型號STM32F103RCT6 void HAL_UART_RxCpltCallback(UART
    發表于 03-22 07:01

    還不會代碼托管嗎?一文教會使用Gitee~

    一、Gitee簡介gitee:基于Git的代碼托管和研發協作平臺二、Gitee創建賬號1、打開瀏覽器,輸入https://gitee.com進入gitee官網,注冊2、注冊好賬號,進入gitee主頁面3、點擊"+"以及新建倉庫,創建自己的倉庫4、創建倉庫名稱(最好是言簡意賅的名字),點擊創建5、下面就是我們創建好的倉庫了三、Gitee使用技巧1Gitee提交
    的頭像 發表于 03-05 08:13 ?781次閱讀
    <b class='flag-5'>還不會</b>代碼托管嗎?一文教會<b class='flag-5'>你</b>使用Gitee~

    如何將USB-UART bridge固件復合進來,實現synchronous slave FIFO和USB-UART bridge同時工作?

    ,USB-UART bridge ,可實現虛擬COM端口 請問如何將USB-UART bridge 固件復合進來,實現synchronous slave FIFO和USB-UART b
    發表于 02-29 07:09

    沒有10年工作經驗,不會用電磁場來分析高速問題吧?

    過孔stub到底有什么影響時,也非常的有用。例如以下這個有比較長stub的過孔結構。 從S參數上,我們當時知道會出現諧振,如下所示: 但是不看看電場,不會了解這個在諧振
    發表于 02-01 14:48

    通過Python腳本實現WIFI密碼的自動

    本文將記錄學習下如何通過 Python 腳本實現 WIFI 密碼的自動解。
    的頭像 發表于 01-25 10:46 ?3511次閱讀
    通過Python腳本實現WIFI密碼的自動<b class='flag-5'>猜</b>解

    軟件測試的7大原則,漏了幾條?

    需要根據應用程序的風險評估來優化測試量。 而重要的是,如何確定不可窮盡原則帶來的測試不完全性風險? 為了回答這個問題,讓我們做一個練習 認為哪種操作最有可能導致的電腦操作系統出現故障?
    發表于 01-18 09:39
    主站蜘蛛池模板: 老色批| 午夜精品免费| 91大神免费视频| 欧美3p精品三区| 亚洲一区在线视频| 操操操综合网| 免费啪视频观在线视频在线| 久久久黄色片| 天天舔天天插| 免费在线a视频| 操人视频网站| 亚洲欧美精品| 一级毛片一级黄片| 四虎影院com| 免费一级成人毛片| 国产精欧美一区二区三区| 永久在线免费观看| 成人欧美一区二区三区| 午夜视频免费看| 久久91精品牛牛| 91大神精品长腿在线观看网站| 国产热re99久久6国产精品| 性欧美视频在线观看| 日本视频h| 日本二区免费一片黄2019| 久久综合一| 亚洲国产精品热久久2022| 亚洲永久免费视频| 久久久免费观看| 亚洲日本一区二区三区在线不卡| 最近最新视频中文字幕4| 三级在线播放| 国产黄色高清视频| 欧美极品bbbbⅹxxxx| 免费看片免费播放| 男人操女人视频网站| 一级 黄 色 毛片| 免费看污视频软件| 午夜爽| xxxx人妖| 色宅男看片午夜大片免费看|