六、UART
1) 異步通信UART引腳連接方法:
UART是 異步 ,全雙工串口總線。它比同步串口復雜很多。有兩根線,一根TXD用于發送,一根RXD用于接收。UART的串行數據傳輸不需要使用時鐘信號來同步傳輸,而是依賴于發送設備和接收設備之間預定義的配置。對于發送設備和接收設備來說,兩者的串行通信配置應該設置為完全相同。
對于兩個芯片之間的連接,兩個芯片GND共地,同時TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個芯片之間就可以進行TTL電平通信了。
若是芯片與PC機(或上位機)相連,除了共地之外,就不能這樣直接交叉連接了。盡管PC機和芯片都有TXD和RXD引腳,但是通常PC機(或上位機)通常使用的都是RS232接口(通常為DB9封裝),因此不能直接交叉連接。RS232接口是9針(或引腳),通常是TxD和RxD經過電平轉換得到的。故,要想使得芯片與PC機的RS232接口直接通信,需要也將芯片的輸入輸出端口也電平轉換成RS232類型,再交叉連接。
經過電平轉換后,芯片串口和RS232的電平標準是不一樣的:
單片機是TTL電平:+5V表示1,0V表示0
RS232是負邏輯電平,-3 to -15V為1,3 to 15V為0
RS-232通訊協議標準串口的設備間通訊結構圖如下:
所以單片機串口與PC串口通信就應該遵循下面的連接方式:在單片機串口與上位機給出的RS232口之間,通過電平轉換電路(如下面圖中的Max232芯片) 實現TTL電平與RS232電平之間的轉換。下圖中的P10,也就是上文中提到的DB9。
STM32的UART特點
全雙工異步通信;
n 分數波特率發生器系統,提供精確的波特率。發送和接受共用的可編程波特率,最高可達4.5Mbits/s;
n 可編程的數據字長度(8位或者9位);
n 可配置的停止位(支持1或者2位停止位);
n 可配置的使用DMA多緩沖器通信;
n 單獨的發送器和接收器使能位;
n 檢測標志:① 接受緩沖器 ②發送緩沖器空 ③傳輸結束標志;
n 多個帶標志的中斷源,觸發中斷;
n 其他:校驗控制,四個錯誤檢測標志。
串口通信過程
STM32中UART參數
起始位:表示數據傳輸的開始,電平邏輯為“0” 。數據位:可能值有5、6、7、8、9,表示傳輸這幾個bit 位數據。一般取值為8,因為一個ASCII 字符值為8 位。奇偶校驗位:用于接收方對接收到的數據進行校驗,校驗“1” 的位數為偶數(偶校驗) 或奇數(奇校驗),以此來校驗數據傳送的正確性,使用時不需要此位也可以。停止位:表示一幀數據的結束。電平邏輯為“1”。如果用通用IO口模擬UART總線,則需一個輸入口,一個輸出口。
UART串口通信的數據包以幀為單位,常用的幀結構為:1位起始位+8位數據位+1位奇偶校驗位(可選)+1位停止位。如下圖所示:
奇偶校驗位分為奇校驗和偶校驗兩種,是一種簡單的數據誤碼校驗方法。奇校驗是指每幀數據中,包括數據位和奇偶校驗位的全部9個位中1的個數必須為奇數;偶校驗是指每幀數據中,包括數據位和奇偶校驗位的全部9個位中1的個數必須為偶數。
校驗方法除了奇校驗(odd)、偶校驗(even)之外,還可以有:0 校驗(space)、1 校驗(mark)以及無校驗(noparity)。0/1校驗:不管有效數據中的內容是什么,校驗位總為0或者1。
UART框圖
這個框圖分成上、中、下三個部分,具體的可以看《STM32中文參考手冊》中的描述。
框圖的上部分,數據從RX進入到接收移位寄存器,后進入到接收數據寄存器,最終供CPU或者DMA來進行讀取;數據從CPU或者DMA傳遞過來,進入發送數據寄存器,后進入發送移位寄存器,最終通過TX發送出去。
然而,UART的發送和接收都需要波特率來進行控制的,波特率是怎樣控制的呢?
這就到了框圖的下部分,在接收移位寄存器、發送移位寄存器都還有一個進入的箭頭,分別連接到接收器控制、發送器控制。而這兩者連接的又是接收器時鐘、發送器時鐘。也就是說,異步通信盡管沒有時鐘同步信號,但是在串口內部,是提供了時鐘信號來進行控制的。而接收器時鐘和發送器時鐘又是由什么控制的呢?
可以看到,接收器時鐘和發送器時鐘又被連接到同一個控制單元,也就是說它們共用一個波特率發生器。同時也可以看到接收器時鐘(發生器時鐘)的計算方法、USRRTDIV的計算方法。
七、物理接口
串行端口稱為串口,也稱為串行通信接口,即COM端口。
UART口(嵌入式里面說的串口,一般是指UART口。4個pin(Vcc,GND,RX,TX),用TTL電平)、COM口、USB口、RJ45以太網口是指的物理接口形式(硬件)。
TTL、RS-232(全雙工)、RS-485(半雙工) RS-422(全雙工)是指的電平標準(電信號)。
使用國際連接器標準定義的8個位置(8針)。修改后的插孔或插頭
單片機與PC通訊示意圖如下
UART接口 :通用異步收發器(Universal Asynchronous Receiver/Transmitter),UART是串口收發的邏輯電路,這部分可以獨立成芯片,也可以作為模塊嵌入到其他芯片里,單片機、SOC、PC里都會有UART模塊,UART有4個pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。
COM 口 : 即串行通訊端口,簡稱串口。這里區別于USB的“通用串行總線”和硬盤的“SATA”。一般我們見到的是兩種物理標準。D型9針插頭,和 4針杜邦頭兩種。這是常見的4針串口,在電路板上常見,經常上邊還帶有杜邦插針。還有時候有第五根針,3.3V電源端。由于是預留在電路板上的,協議可以有很多種,要看具體設備,應用了串口通信時序和RS232的邏輯電平。
1)USB通用串行總線(Universal Serial Bus)縮寫為USB,(物理接口)
是一個外部總線標準,用于規范電腦與外部設備的連接和通訊,是應用在PC領域的接口技術,特點是傳輸速度快,支持熱插拔,可連接多個設備。
??我們在很多地方可以看到USB的身影,鼠標,鍵盤,手機充電器,現在幾乎所有的電子充電設備都是USB接口,如下是各個USB的物理接口。
USB接口是計算機主板上的四針接口。2根信號線(D+、D-)和2根電源線(+、-)
最常見的的Type-A型USB接口定義如下。
Pin# | Name | 顏色 | |
---|---|---|---|
1 | VBUS/+5V | 紅色 | |
2 | D-/Data-/DM | 白色 | |
3 | D+/Data+/DP | 綠色 | |
4 | GND | 黑色 |
USB電纜分為屏蔽型和非屏蔽型。屏蔽電纜的傳輸速度可以達到12Mbps,價格更高。
非屏蔽電纜的速度為1.5Mbps,但價格便宜。
2、USB速率
1MB/s=8Mbps(1個Byte等于8bit)
USB1.0 低速(Low Speed) 傳輸速率為 1.5Mbps;
USB1.1 全速(Full Speed) 傳輸速率為 12Mbps;
USB2.0 高速(High Speed) 傳輸速率為 480Mbps;
USB3.0 超速(SuperSpeed) 傳輸速率為 5Gbps;
USB3.1 Gen2 超高速(SuperSpeed+) 傳輸速率為 10Gbps;
●USB Type-C
又稱USB-C,是一種通用串行總線(USB)的硬件接口形式,外觀上最大特點在于其上下端完全一致,與Micro-USB相比用戶不必再區分USB正反面。
但USB-C只是一個接口,不一定支持USB 3.1或Power Delivery。
自從2014年USB-C規范發布后,許多新款的Android移動設備、筆記本電腦、臺式機甚至是游戲機等3C設備開始使用這種連接端口。Windows 10原生支持Type-C。
4、USB轉RS-232
USB轉232,可以先將USB轉換為TTL,再將TTL轉換為RS232,當然市面上也有很多USB直接轉RS232的線材,線材內部集成轉換電路,淘寶上某USB轉RS232用的兩個芯片是FT232和SP213。
-
數據
+關注
關注
8文章
7080瀏覽量
89177 -
IIC
+關注
關注
11文章
301瀏覽量
38365 -
串口
+關注
關注
14文章
1555瀏覽量
76660
發布評論請先 登錄
相關推薦
評論