UART介紹

?? 1. 概述

UART, Universal Asynchronous Receiver-Transmitter, 通用異步收發器;

串口:在嵌入式里指的是UART口,常用TTL電平即3.3V或者5.0V;

COM口:在臺式機上常用的口,DB9那種接口,接口協議只有兩種RS232和RS485;

RS232電平即負邏輯電平,定義+5V~+12V為邏輯0,-5V~-12V為邏輯1。

UART口、COM口指的是物理接口形式;

TTL、RS232和RS485指的是電平邏輯標準;

TTL電平和RS232電平轉換專用芯片有MAX232,TTL電平轉USB芯片有CP2102、PL2303、FT230等用USB來擴展串口數量。

?? 2. 硬件結構

與IIC、SPI 等接口一樣,都屬于串行通信接口,但是UART只有數據線收和發,并無時鐘線,故為異步串行通信接口,可以實現全雙工通信;在嵌入式系統中,常用與控制系統與外設通信,包括控制器與控制器,控制器與終端設備。線路簡單,成本低,傳輸距離遠,但傳輸速度慢。

VCC:供電pin,一般是3.3V,在實際使用中一般不接,不影響使用;

GND:接地pin,板內共地時可以不單獨接,板間通信時候必須接上;

RX:接收數據pin;

TX:發送數據pin;? 需要注意TX ?RX的參考系,不要接反了,電平需要兼容;

如果收發是有關聯關系的,很多情況下需要關注流控。

UART CTS/RTS用于硬流控,協調雙方收發,保證數據不丟失。Clear to send??? Request To Send

A---------B

TX --> RX
RX <-- TX
RTS ---> CTS
CTS <--- RTS

芯片A通過UART發送數據,當芯片B拉高RTS時,A就會暫停發送,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 當芯片B拉低RTS時,A又會繼續發送。

比如 WIFI模組與AP的串口連接:

? 3. 通信協議

UART使用的是異步串行通信;以字符為傳輸單位,一位一位的順序輸送;通信中兩個字符間的時間間隔是不固定的 ,然而同一個字符內兩個相鄰位之間的時間間隔是固定的。

數據的傳送速率用波特率來表示,即每秒鐘傳送的二進制位數;

一般選波特率都會有9600,19200,115200等選項。

傳輸時序如下:

起始位:先發一個邏輯0,表示傳輸字符的開始;

依靠檢測起始位來實現發送與接收方的時間自同步的。

數據位:可以是4、5、6、7、8位邏輯0或者1,構成一個字符,如ASCII碼8位數據位,從最低位開始傳送,靠時鐘定位;方向為LSB。

奇偶校驗位:數據位加上這一位后,使得“1”的位數為偶數(偶校驗)或奇數(奇校驗)以此來校驗數據傳送的正確性;

停止位:他是一個字符數據的結束標志,可以是1位、1.5位、2位的高電平。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,數據傳輸率同時也越低。

空閑位:處于邏輯“1”狀態,表示當前線路上沒有數據傳送。

UART傳輸數據的順序:剛開始傳輸一個起始位,接著傳輸數據位,接著傳輸校驗位(可不需要此位),最后傳輸停止位。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 這樣一幀的數據就傳輸完了。

傳輸方向:數據位從高位(MSB)開始傳輸還是從低位(LSB)開始傳輸。比如傳輸A,

???????? ??????????如果MSB就是01000001,如果LSB就是10000010。協議規定為LSB方向。

幀間隔:即傳送數據的幀與幀之間的間隔大小,可以用位或者時間為計量。

歡迎加入硬件QQ群:101 808 3751,一起討論硬件問題,分享調試心得,共同成長。

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

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

相關文章

mongodb環境安裝

1、mongodb安裝 我采用的是離線安裝&#xff0c; &#xff08;1&#xff09;在mongodb的官方網址下載所需要的版本。我下載的是 mongodb-linux-x86_64-ubuntu1604-3.4.5.tgz 。 &#xff08;2&#xff09;下載后解壓縮到待安裝目錄&#xff0c;我這里下載在了Downloads目錄…

rabbitmq隊列的exclusive,durability,auto-delete屬性以及消息可靠傳輸設計

非集群下&#xff0c;簡單的說&#xff1a;- 如果是excl&#xff0c;則設置durability沒有意義&#xff0c;因為不管服務器掛了還是客戶端主動/被動斷開了&#xff0c;隊列都會自動刪除。- auto-delete&#xff0c;其實可簡單的認為是同理&#xff0c;即使非excl&#xff0c;則…

IIC 總線接口詳細介紹

1. 概述 IIC Inter Integrated-Circuit 總線是PHLIPS公司推出的一種串行總線&#xff0c;是具備多主機系統所需的包括總線裁決和高低速器件同步功能的高性能串行總線&#xff0c;它支持多主控(multimastering)&#xff0c;其中任何能夠進行發送和接收的設備都可以成為主總線。…

DMA數據傳輸過程

DMA方式具有如下特點&#xff1a;1、 外部設備的輸入輸出請求直接發給主儲存器。主存儲器既可以被CPU訪問&#xff0c;也可以被外圍設備訪問。因此&#xff0c;在主存儲器中通常要有一個存儲管理部件來為各種訪問主存儲器的申請排隊&#xff0c;一般計算機系統把外圍設備的訪問…

Android JNI開發系列(二)HelloWorld

2019獨角獸企業重金招聘Python工程師標準>>> 入門HelloWorld 新建項目 Configure your new project部分選中 Include C Support 復選框 Next 正常填寫所有其他字段并完成向導接下來幾個部分 在向導的Customize C Support 部分&#xff0c;您可以使用謝列選項自定…

sublime text3安裝js提示的插件

今天安裝Sublime Text3的js插件&#xff0c;在網上查了很多資料&#xff0c;為了方便以后看&#xff0c;寫一個安裝插件的總結和方法。 要安裝js相關的插件&#xff0c;就要先安裝一個Package Control&#xff08;插件管理器&#xff09;的插件&#xff0c;通過這個插件再去安裝…

SPI接口詳細介紹

1. 概述 SPI Serial Peripheral Interface&#xff0c;是串行外圍設備接口&#xff0c;是一種高速&#xff0c;全雙工&#xff0c;同步的通信總線。常規只占用四根線&#xff0c;節約了芯片管腳&#xff0c;PCB的布局省空間。現在越來越多的芯片集成了這種通信協議&#xff0…

駐扎博客園

今天把之前hexo里的一些文章全部轉移到博客園了&#xff0c;之后就在博客園寫點東西&#xff0c;記錄一些生活的瑣事。為什么要移至博客園呢&#xff1f;其實很簡單&#xff0c;這邊可以和一些同意從事前端的小伙伴一起互動。技術還是需要多討論的&#xff0c;希望之后能多更新…

H.264 Profile、Level、Encoder三張簡圖

H.264有四種畫質級別,分別是BP、EP、MP、HP&#xff1a; 1、BP-Baseline Profile&#xff1a;基本畫質。支持I/P 幀&#xff0c;只支持無交錯&#xff08;Progressive&#xff09;和CAVLC&#xff1b;   2、EP-Extended profile&#xff1a;進階畫質。支持I/P/B/SP/SI 幀&…

require.js學習記錄

1、簡介 官方對requirejs的描述&#xff1a;RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will impro…

iOS-AFNetworking參數和多文件同時上傳【多文件上傳】

1. 前言 在項目開發中&#xff0c;我們經常需要上傳文件&#xff0c;例如&#xff1a;上傳圖片&#xff0c;上傳各種文件&#xff0c;而有時也需要將參數和多個文件一起上傳&#xff0c;不知道大家的項目中遇到了沒有&#xff0c;我在最近的項目中&#xff0c;就需要這樣的一個…

智能音箱 之 平臺方案簡介

智能音箱&#xff0c;被認為是物聯網時代的入口&#xff0c;在去年成為了各大廠商爭相投入的風口。在當今互聯網時代&#xff0c;它不僅僅是一臺單純的音樂播放器&#xff0c;在其背后支撐的 AI 技術才是整個產品的核心&#xff0c;也是各大公司覬覦物聯網入口的最根本原因。經…

Linux Kconfig及Makefile學習

內核源碼樹的目錄下都有兩個文檔 Kconfig &#xff08;2.4版本是Config.in&#xff09;和Makefile。分布到各目錄的Kconfig構成了一個分布式的內核配置數據庫&#xff0c;每個Kconfig分別描述了 所屬目錄源文檔相關的內核配置菜單。在內核配置make menuconfig時&#xff0c;從K…

Linux編程 23 shell編程(結構化條件判斷 命令if -then , if-then ... elif-then ...else,if test)...

一.概述 在上一篇里講到了shell腳本&#xff0c;shell按照命令在腳本中出現的順序依次進行處理&#xff0c;對于順序操作已經足夠了&#xff0c;但許多程序要求對shell腳本中的命令加入一些邏輯流程控制&#xff0c;這樣的命令通常叫做 結構化命令。 1.1 使用if - then語句 --最…

Scala-Spark digamma stackoverflow問題

這兩天在用spark做點擊率的貝葉斯平滑&#xff0c;參考雅虎的論文進行了一番嘗試。 先上代碼&#xff1a; 1 # click_count, show_count # this method takes time2 def do_smooth(data_list):3 import scipy.special as sp4 a, b, i 1.0, 1.0, 05 da, db a, b6 …

IIS接口詳細介紹

1. 概述 I2S Inter-IC Sound Integrated Interchip Sound IIS&#xff0c;是飛利浦在1986年定義&#xff08;1996年修訂&#xff09;的數字音頻傳輸標準&#xff0c;用于數字音頻數據在系統內器件之間傳輸&#xff0c;例如編解碼器CODEC、DSP、數字輸入/輸出接口、ADC、DAC…

UVA - 10934 Dropping water balloons(裝滿水的氣球)(dp)

題意&#xff1a;有k個氣球&#xff0c;n層樓&#xff0c;求出至少需要多少次實驗能確定氣球的硬度。氣球不會被實驗所“磨損”。 分析&#xff1a; 1、dp[i][j]表示第i個氣球&#xff0c;測試j次所能確定的最高樓層。 2、假設第i-1個氣球測試j-1次所確定的最高樓層是a, 若第i個…

繼承進階

先講一個例子&#xff1a; #老師有生日&#xff0c;怎么組合哪&#xff1f; class Birthday: # 生日def __init__(self,year,month,day):self.year yearself.month monthself.day dayclass Teacher: # 老師<br>def __init__(self,name,birth):self.name nameself.b…

PCM接口詳細介紹--TDM方式

1. 概述 PCM = Pulse Code Modulation 是通過等時間隔(即采樣率時鐘周期)采樣將模擬信號數字化的方法。圖為4 bit 采樣深度的PCM數據量化示意圖: PCM數字音頻接口,說明接口傳輸的音頻數據是通過PCM方式采樣得到的,區別于PDM形式;IIS傳輸的也是PCM類型數據,屬于其一個特…

網站同源策略

所謂"同源"指的是"三個相同"&#xff1a;協議&#xff0c;域名&#xff0c;端口。 舉例來說&#xff0c;http://www.example.com/dir/page.html這個網址&#xff0c;協議是http://&#xff0c;域名是www.example.com&#xff0c;端口是80&#xff08;默認端…