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