uart怎么判斷幀錯誤_UART通訊總線工作原理的理解

奧的斯電梯OCSS/LCBII /TCBC/GECB板與電梯轎廂和電梯井道之間的串行通訊采用了UART通訊,將井道和轎廂的輸入、輸出和開關部件的信號轉換成串行通訊信號傳輸給電梯操作控制系統,大大節省了現場布線,下面就UART通訊總線工作原理的理解予以描述。

通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART。它將要傳輸的資料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結上。

它不是像SPI和I2C這樣的通信協議,而是微控制器中獨立的物理電路或獨立的IC。UART最好的一點是它只使用兩根線就可以在設備之間傳輸數據,UART背后的原理很容易理解。

UART通信簡介

d14c62a9976c7553dc6dd8907254b5a8.png

在UART通信中,兩個UART直接相互通信。發送UART將來自CPU等控制設備的并行數據轉換為串行形式,并將其串行發送到接收UART,接收UART然后將串行數據轉換回接收設備的并行數據。在兩個UART之間傳輸數據只需要兩根線。數據從發送UART的Tx引腳流向接收UART的Rx引腳:

867139cb92a6053b5c920abefccbe100.png

UART以異步方式發送數據,這意味著沒有時鐘信號將發送UART的位輸出與接收UART的位采樣同步。發送UART不是時鐘信號,而是將開始和停止位添加到正在傳輸的數據包中。這些位定義數據包的開始和結束,因此接收UART知道何時開始讀取位。

當接收UART檢測到起始位時,它開始以稱為波特率的特定頻率讀取輸入位。波特率是數據傳輸速度的度量,以每秒位數(bps)表示。兩個UART必須以大致相同的波特率運行。發送和接收UART之間的波特率只能相差10%左右。

兩個UART還必須配置為發送和接收相同的數據包結構。

12ed2f3bbe6eb47439d38e7f141b5c9c.png

UART如何工作

UART傳輸數據依靠的是UART總線,數據總線用于通過CPU,存儲器或微控制器等其他設備將數據發送到UART。數據以并行形式從數據總線傳輸到發送UART。在發送UART從數據總線獲得并行數據之后,它將添加起始位,奇偶校驗位和停止位,從而創建數據包。接下來,數據包在Tx引腳上逐位串行輸出。UART接收端則在其Rx引腳上逐位讀取數據包。然后,接收UART將數據轉換回并行形式,并刪除起始位,奇偶校驗位和停止位。最后,接收UART將數據包并行傳輸到接收端的數據總線:

f6252b93c9dce54d69dec43052a56885.png

UART傳輸的數據被組織成數據包。每個數據包包含1個起始位,5到9個數據位(取決于UART),可選的奇偶校驗位以及1或2個停止位:

d945c5b5e81e106963f807e950b45f48.png

開始位

當UART數據傳輸線不傳輸數據時,它通常保持在高電壓電平。為了開始數據傳輸,發送UART將傳輸線從高電平拉至低電平一個時鐘周期。當接收UART檢測到高電壓到低電壓轉換時,它開始以波特率的頻率讀取數據幀中的位。

數據框

數據框包含要傳輸的實際數據。如果使用奇偶校驗位,則它可以是5位到8位長。如果不使用奇偶校驗位,則數據幀可以是9位長。在大多數情況下,數據首先以最低有效位發送。

奇偶校驗位

奇偶校驗描述數字的均勻性或奇數。奇偶校驗位是接收UART在傳輸過程中判斷是否有任何數據發生變化的一種方法。電磁輻射、不匹配的波特率或長距離傳輸時,數據都有可能發生變化。接收UART讀取數據幀后,它會計算值為1的位數,并檢查總數是偶數還是奇數。如果奇偶校驗位為0(偶校驗),則數據幀中的1位應總計為偶數。如果奇偶校驗位是1(奇校驗),則數據幀中的1位應總計為奇數。當奇偶校驗位與數據匹配時,UART知道傳輸沒有錯誤。但如果奇偶校驗位為0,然而1位應總計為奇數;或者奇偶校驗位是1,并且1位應總計是偶數,則數據幀中的位已經改變。

停止位

為了通知傳輸數據包的結束,UART發送端會將數據傳輸線從低電壓驅動至高電壓至少兩位持續時間。

UART傳輸步驟

1.發送UART從數據總線并行接收數據:

317092d4dec90c5ccc5e153d9d64ef3d.png

2.發送UART將起始位,奇偶校驗位和停止位添加到數據幀:

a28f03b76a27829679de5935195ac350.png

3.整個數據包從發送UART串行發送到接收UART。接收UART以預先配置的波特率對數據線進行采樣:

a9729d9ea277ab8611a73c85f26bb106.png

4.接收UART丟棄數據幀中的起始位,奇偶校驗位和停止位:

f89938f5008fc6acab0cc27262ff98d3.png

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

5a9a7a9315b111d7fbb0f7e331289449.png

UART的優點和缺點

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

優點

只使用兩根電線

不需要時鐘信號

有一個奇偶校驗位

只要雙方設置后,就可以改變數據包的結構

有完整的文檔并且具有廣泛的使用

缺點

數據幀的大小限制為最多9位(9bit),也就是最大幀為起始位1位(1bit)+數據位9位(9bit)+奇偶校驗1位(1bit)+停止位2位(2bit)

不支持多個從屬或多個主系統

每個UART的波特率必須在10%之內

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538352.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Laravel核心代碼學習--用戶認證系統的實現細節

用戶認證系統的實現細節 上一節我們介紹了Laravel Auth系統的基礎知識,說了他的核心組件都有哪些構成,這一節我們會專注Laravel Auth系統的實現細節,主要關注Auth也就是AuthManager是如何裝載認證用的看守器(Guard)和用戶提供器(UserProvider…

matlab 光譜噪聲,環境小衛星高光譜影像條紋噪聲去除程序IDL版

前言源代碼PRO stripe_remove1ENVI,/Restore_Base_Save_FilesENVI_Batch_initfile DIALOG_PICKFILE(/READ, FILTER *.img)print,fileENVI_OPEN_FILE,file,r_fidfidENVI_FILE_QUERY, fid, dimsdims, nsns, nlnl, nbnbprint,fid,dims,ns,nl,nbfdata fltarr(ns,nl,nb)datafltar…

啟動TOMCAT報錯 java.util.zip.ZipException: invalid LOC header (bad signature)

報錯信息大致如下所示: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)at org.apache.catalina.startup.Bootstrap.…

快速乘模板

描述 求 a 乘 b 對 p 取模的值&#xff0c;其中 1≤a,b,p≤10^18。 輸入格式 第一行a&#xff0c;第二行b&#xff0c;第三行p。 輸出格式 一個整數&#xff0c;表示a*b mod p的值。 樣例輸入 2 3 9 樣例輸出 6 #include <bits/stdc.h> using namespace std; const int M…

結構體怎么賦值_c語言學習之基礎知識點介紹:結構體的介紹

一、結構體的介紹/* 語法&#xff1a;struct 結構體名{成員列表;};切記切記有分號&#xff01;說明&#xff1a;成員列表就是指你要保存哪些類型的數據。注意&#xff1a;上面的語法只是定義一個新的類型&#xff0c;而這個類型叫做結構體類型。因為類型不能保存數據&#xff0…

php 生成excel空白,phpexcel庫在localhost上運行良好,但在服務器中生成空白的excel文件...

這是我的代碼,在本地主機上可以很好地使用數據庫中的數據生成一個excel文件,但在托管服務器中它會生成一個空白的excel文件&#xff1a;// Starting the PHPExcel library$this->load->library(PHPExcel);//$this->load->library(PHPExcel/IOFactory);$objPHPExcel…

阿里云Maven倉庫地址

<默認情況下配置多個mirror的情況下&#xff0c;只有第一個生效&#xff0c;只有當前一個mirror 無法連接的時候&#xff0c;才會去找后一個&#xff1b;而我們想要的效果是&#xff1a;當a.jar在第一個mirror中不存在的時候&#xff0c;maven會去第二個mirror中查詢下載&a…

python發短信腳本_python腳本發送短信

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技術人對外發布原創技術內容的最大平臺&…

國內遠程醫療市場快速增長

目前&#xff0c;遠程醫療技術已經從最初的電視監護、電話遠程診斷發展到利用高速網絡進行數字、圖像、語音的綜合傳輸&#xff0c;并且實現了實時的語音和高清晰圖像的交流&#xff0c;為現代醫學的應用提供了更廣闊的發展空間。 健康一體機 遠程醫療是指通過計算機技術、遙感…

php怎么使得字體滾動,滾動文字+字體特效代碼(全集)

收集了幾天&#xff0c;終于把滾動文字*字體特效差不多收集完了&#xff0c;這里與大家一同分享&#xff0c;期待您的博客越做越漂亮&#xff01;感謝您的光臨&#xff01;1.陰影滾動字循環滾動:歡迎光臨彌勒內院看門人博客&#xff0c;看門人歡迎您代碼:歡迎光臨彌勒內院看門人…

Eclipse集成svn后出現Failed to load JavaHL Library的解決辦法

在win10 64位上eclipsex64位 集成svn插件 在使用 Team-share project &#xff0c;選擇svn后&#xff0c;報了&#xff1a;Failed to load JavaHL Library錯誤 解決方法&#xff1a; winodws--perference--svn。設置如下圖

python寫進程_將數據作為后臺進程在Python中寫入磁盤

您可以像這樣嘗試using multiple processes&#xff1a;import multiprocessing as mpdef compute(j):# compute a bunch of datareturn datadef write(data):# write data to diskif __name__ __main__:pool mp.Pool()for j in xrange(200):pool.apply_async(compute, args(…

Unity快捷鍵

1 飛越模式 使用飛越模式通過第一人稱飛行來導航場景視圖&#xff0c;類似于在許多游戲中導航。 單擊并按住鼠標右鍵。 使用鼠標移動視圖&#xff0c;WASD鍵向左/右/前/后移動&#xff0c;Q和E鍵可上下移動。 按住Shift鍵可以更快地移動。 2 攝像機對準當前我Sceen的屏幕 Ctrl …

php如何打出的正方形行列,javascript實現輸出指定行數正方形圖案的方法

本文實例講述了javascript實現輸出指定行數正方形圖案的方法。分享給大家供大家參考。具體如下&#xff1a;javascript實現輸出指定行數的正方形圖案&#xff1a;點擊生成圖案&#xff0c;會有2個提示框&#xff0c;1&#xff0c;輸入圖案的組成字符&#xff0c;只能是1個字符哦…

eclipse的SVN插件設置忽略文件

windows--preference--Team-ignore resource 這里我新增了maven項目常不需要提交應該忽略的文件和文件夾 文件&#xff1a; .setting .project .classpath 文件夾&#xff1a; */target/* */target */settings */settings/*

風變python怎么樣_Python取代Excel?風變編程帶你了解如何更好地學Python!

當前最簡單、最流行的編程語言是什么&#xff1f;是Python。最近&#xff0c;谷歌公布的編程語言流行指數顯示&#xff0c;Python目前仍然是全球范圍內最受歡迎的技術語言。而得益于簡潔、易讀、易維護等特點&#xff0c;Python可廣泛運用于數據分析、人工智能、爬蟲、運維、測…

android 開發書簽大全,一站式的導航分享!

#一、描述 此資源是轉載而來&#xff0c;只為需要而用。 #二、書簽大全 ###Android大神 android-dev-cn Trinea 郭神 任玉剛 鴻洋 夏安明 徐醫生 daimajia stormzhang 農民伯伯 胡凱 郝錫強 張興業 老羅 Mr.Simple(源碼設計模式) 咪當系歐巴(非常有天賦的Coder) android_tutor…

php 正則匹配 %3e,在shell腳本中使用正則表達式

1)在Linuxshell腳本中使用正則表達式解析字符串的正確方法是什么?包括正則表達式功能的工具包括sed、grep、awk、perl、python等等。即使是更新版本的bash也具有regex功能。你所要做的就是查找關于如何使用它們的文檔。2)在這里使用SED是正確的嗎?可以,但不是必須的。3)這可以…

python排大小函數_python numpy 一些函數 大小排序和統計

排序大小函數import numpy as npsize 100a np.random.randint(0, 1000, sizesize)print(a)# 排序之后的前k個元素# 返回的值不一定是按照順序排好的# [ 5 0 15 22 32]# [ 0 5 15 22 32]print(np.partition(a, 3)[:5])print(np.sort(a)[:5])# 百分位數a np.abs(np.random.ran…

逸管家:把握不同行業生命周期,選擇正確商業模式

</P><P>  原標題&#xff1a;把握不同行業生命周期&#xff0c;選擇正確商業模式</P><P>  現今中小企業已進入理性商業模式選擇期&#xff0c;大量中小企業在拿到天使投資后進入融資瓶頸期。與此同時&#xff0c;“共享”一詞在各地出現&#xff0…