目錄
一、串口協議
1.1 串口通信協議簡介
1.1-1 物理層
1.1-2 協議層
1.2 STM32的USART簡介
二、USB/TTL轉232串口方法
2.1 三種介面簡介
2.2 轉換方法
2.3 "USB/TTL轉232"模塊作業原理
三、參考資料
本文主要講解串口協議和RS-232標準,以及RS232電平與TTL電平的區別;介紹"USB/TTL轉232"模塊(以CH340芯片模塊為例)的作業原理,
一、串口協議
1.1 串口通信協議簡介
串口通訊(Serial Communication)是一種設備間非常常用的串行通訊方式,因為它簡單便捷,大部分電子設備都支持該通訊方式,電子工程師在除錯設備時也經常使用該通訊方式輸出除錯資訊,
在計算機科學里,大部分復雜的問題都可以通過分層來簡化,如芯片被分為內核層和片上外設;STM32標準庫則是在暫存器與用戶代碼之間的軟體層,對于通訊協議,我們也以分層的方式來理解,最基本的是把它分為物理層和協議層,簡單來說物理層規定我們用嘴巴還是用肢體來交流,協議層則規定我們用中文還是英文來交流,
物理層規定通訊系統中具有機械、電子功能部分的特性,確保原始資料在物理媒體的傳輸,eg:RS232、TTL高低電平,
協議層主要規定通訊邏輯,統一收發雙方的資料打包、解包標準,eg:串口資料包:起始位,資料位(8bit)、校驗位、停止位,
1.1-1 物理層
串口通訊的物理層有很多標準及變種,我們主要講解RS-232標準,RS-232標準主要規定了信號的用途、通訊介面以及信號的電平標準,
使用RS-232標準的串口設備間常見的通訊結構見圖

串口通訊結構圖
在上面的通訊方式中,兩個通訊設備的"DB9介面"之間通過串口信號線建立起連接,串口信號線中使用"RS-232標準"傳輸資料信號,由于RS-232電平標準的信號不能直接被控制器直接識別,所以這些信號會經過一個"電平轉換芯片"轉換成控制器能識別的"TTL校準"的電平信號,才能實作通訊,
①電平標準
根據通訊使用的電平標準不同,串口通訊可分為TTL標準及RS-232標準
| 通訊標準 | 電平標準(發送端) |
|---|---|
| 5V TTL | 邏輯1:2.4V-5V 邏輯0:0~0.5V |
| RS-232 | 邏輯1:2.4V-5V 邏輯0:0~0.5V |
我們知道常見的電子電路中常使用TTL的電平標準,理想狀態下,使用5V表示二進制邏輯1,使用0V表示邏輯0;而為了增加串口通訊的遠距離傳輸及抗干擾能力,它使用-15V表示邏輯1,+15V表示邏輯0,使用RS232與TTL電平校準表示同一個信號時的對比見圖

②RS-232信號線
在最初的應用中,RS-232串口標準常用于計算機、路由與調制調解器(MODEN,俗稱"貓")之間的通訊 ,在這種通訊系統中,設備被分為資料終端設備DTE(計算機、路由)和資料通訊設備DCE(調制調解器),我們以這種通訊模型講解它們的信號線連接方式及各個信號線的作用,
在舊式的臺式計算機中一般會有RS-232標準的COM口(也稱DB9介面),見圖

其中接線口以針式引出信號線的稱為公頭,以孔式引出信號線的稱為母頭,在計算機中一般引出公頭介面,而在調制調解器設備中引出的一般為母頭,使用上圖中的串口線即可把它與計算機連接起來,通訊時,串口線中傳輸的信號就是使用前面講解的RS-232標準調制的,
在這種應用場合下,DB9介面中的公頭及母頭的各個引腳的標準信號線接法見圖

DB9信號線說明(公頭,為方便理解,可把DTE理解為計算機,DCE理解為調制調解器)
| 序號 | 名稱 | 符號 | 資料方向 | 說明 |
|---|---|---|---|---|
| 1 | 載波檢測 | DCD | DTE?DCE | Data Carrier Detect,資料載波檢測,用于DTE告知對方,本機是否收到對方的載波信號 |
| 2 | 接收資料 | RXD | DTE?DCE | Receive Data,資料接收信號,即輸入, |
| 3 | 發送資料 | TXD | DTE?DCE | Transmit Data,資料發送信號,即輸出,兩個設備之間的TXD與RXD應交叉相連 |
| 4 | 資料終端(DTE) 就緒 | DTR | DTE?DCE | Data Terminal Ready,資料終端就緒,用于DTE向對方告知本機是否已準備好 |
| 5 | 信號地 | GND | - | 地線,兩個通訊設備之間的地電位可能不一樣,這會影響收發雙方的電平信號,所以兩個串口設備之間必須要使用地線連接,即共地, |
| 6 | 資料設備(DCE)就緒 | DSR | DTE?DCE | Data Set Ready,資料發送就緒,用于DCE告知對方本機是否處于待命狀態 |
| 7 | 請求發送 | RTS | DTE?DCE | Request To Send,請求發送, DTE 請求 DCE 本設備向DCE端發送資料 |
| 8 | 允許發送 | CTS | DTE?DCE | Clear To Send,允許發送,DCE回應對方的RTS發送請求,告知對方是否可以發送資料 |
| 9 | 響鈴指示 | RI | DTE?DCE | Ring Indicator,響鈴指示,表示DCE端與線路已接通 |
上表中的是計算機端的DB9公頭標準接法,由于兩個通訊設備之間的收發信號(RXD與TXD)應交叉相連,所以調制調解器端的DB9母頭的收發信號接法一般與公頭的相反,兩個設備之間連接時,只要使用"直通型"的串口線連接起來即可,見圖

串口線中的RTS、CTS、DSR、DTR及DCD信號,使用邏輯 1表示信號有效,邏輯0表示信號無效,例如,當計算機端控制DTR信號線表示為邏輯1時,它是為了告知遠端的調制調解器,本機已準備好接收資料,0則表示還沒準備就緒,
1.1-2 協議層
串口通訊的資料包由發送設備通過自身的TXD介面傳輸到接收設備的RXD介面,在串口通訊的協議層中,規定了資料包的內容,它由啟始位、主體資料、校驗位以及停止位組成,通訊雙方的資料包格式要約定一致才能正常收發資料,其組成見圖

①波特率
本章中主要講解的是串口異步通訊,異步通訊中由于沒有時鐘信號(如前面講解的DB9介面中是沒有時鐘信號的),所以兩個通訊設備之間需要約定好波特率,即每個碼元的長度,以便對信號進行解碼,上圖中用虛線分開的每一格就是代表一個碼元,常見的波特率為4800、9600、115200等,
②通訊的起始和停止信號
串口通訊的一個資料包從起始信號開始,直到停止信號結束,資料包的起始信號由一個邏輯0的資料位表示,而資料包的停止信號可由0.5、1、1.5或2個邏輯1的資料位表示,只要雙方約定一致即可,
③有效資料
在資料包的起始位之后緊接著的就是要傳輸的主體資料內容,也稱為有效資料,有效資料的長度常被約定為5、6、7或8位長,
④資料校驗
在有效資料之后,有一個可選的資料校驗位,由于資料通信相對更容易受到外部干擾導致傳輸資料出現偏差,可以在傳輸程序加上校驗位來解決這個問題,校驗方法有奇校驗(odd)、偶校驗(even)、0校驗(space)、1校驗(mark)以及無校驗(noparity),它們介紹如下:
- 奇校驗要求有效資料和校驗位中"1"的個數為奇數,比如一個8位長的有效資料為:01101001,此時總共有4個"1",為達到奇校驗效果,校驗位為"1",最后傳輸的資料將是8位的有效資料加上1位的校驗位總共9位,
- 偶校驗與奇校驗要求剛好相反,要求幀資料和校驗位中"1"的個數為偶數,比如資料幀:11001010,此時資料幀"1"的個數為4個,所以偶校驗位為"0",
- 0校驗是不管有效資料中的內容是什么,校驗位總為"0",1校驗是校驗位總為"1",
- 在無校驗的情況下,資料包中不包含校驗位,
1.2 STM32的USART簡介
STM32芯片具有多個USART外設用于串口通訊,它是 Universal Synchronous Asynchronous Receiver and Transmitter的縮寫,即通用同步異步收發器可以靈活地與外部設備進行全雙工資料交換,有別于USART,它還有具有UART外設(Universal Asynchronous Receiver and Transmitter),它是在USART基礎上裁剪掉了同步通信功能,只有異步通信,簡單區分同步和異步就是看通信時需不需要對外提供時鐘輸出,我們平時用的串口通信基本都是UART,
USART滿足外部設備對工業標準NRZ異步串行資料格式的要求,并且使用了小數波特率發生器,可以提供多種波特率,使得它的應用更加廣泛,USART支持同步單向通信和半雙工單線通信;還支持局域互連網路LIN、智能卡(SmartCard)協議與lrDA(紅外線資料協會) SIR ENDEC規范,
USART支持使用DMA,可實作高速資料通信,USART在STM32應用最多莫過于"列印"程式資訊,一般在硬體設計時都會預留一個USART通信介面連接電腦,用于在除錯程式是可以把一些除錯資訊"列印"在電腦端的串口除錯助手工具上,從而了解程式運行是否正確、指出運行出錯位置等等,
STM32的USART輸出的是TTL電平信號,若需要RS-232標準的信號可使用MAX3232芯片進行轉換,
二、USB/TTL轉232串口方法
2.1 三種介面簡介
①USB介面

USB通過USB電平作業
USB電平:電源線是5V,為USB設備提供最大500mA的電流,它與資料線上的電平無關,資料線是差分信號,通常D+和D-在+400mV~-400mV間變化,除去屏蔽層,有4根線,分別是VCC、GND和D+、D-兩根信號線,5V是USB的電源電壓,給USB device供電用的,信號線對于2.0,D+比D-大200mV時為1,D-比D+大200mV時為0,
②TTL串口

單片機串口是TTL電平,所以叫TTL串口或UART 串口,
TTL電平:+5V等價于邏輯“1”,0V等價于邏輯“0”(采用二進制來表示資料時),這樣的資料通信及電平規定方式,被稱做TTL(晶體管-晶體管邏輯電平)信號系統,
③232串口

232串口,通過232電平標準作業,
R232電平,負邏輯:
邏輯1(MARK)=-3V~-15V
邏輯0(SPACE)=+3~+15V
S232 介面一共有 9 個引腳,分別定義是:
1、載波檢測 DCD;
2、接收資料 RXD;
3、發送資料 TXD;
4、資料終端準備好 DTR;
5、信號地線 SG;
6、資料準備好 DSR;
7、請求發送 RTS;
8、清除發送 CTS;
9、振鈴提示 RI,我們要讓這個串口和我們單片機進行通信,我們只需要關心其中的 2 腳 RXD、3 腳 TXD 和 5 腳 GND 即可,這三個引腳的名字和我們單片機上的串口名字一樣,但是卻不能直接和單片機對連通信,
2.2 轉換方法
CH340等芯片是直接將USB信號轉換為TTL電平或者TTL電平轉換為USB信號,
MAX232等芯片是將TTL轉換為RS232信號或者將RS232信號轉換為TTL.
①USB 轉 UART(TTL) 原理:
只需要在電路上添加一個 USB 轉串口芯片,就可以成功實作 USB 通信協議和標準UART 串行通信協議的轉換,比如 CH340T 這個芯片

用跳線帽把中間和下邊的針短接在一起,右側的 CH340T 這個電路很簡單,把電源、晶振接好后,6 腳和 7 腳的 DP 和 DM 分別接 USB 口的 2 個資料引腳上去,3 腳和 4 腳通過跳線接到單片機的 TXD 和 RXD 上去,
②USB轉232串口線原理:
USB介面>>>CH340>>>MAX232>>>9針介面
信號分析:
電腦USB介面>>>電腦輸出USB電平信號>>>CH340>>>TTL電平>>>MAX232芯片>>>電腦串口介面

其實 RS232 串口和 (TTL串口)UART 串口,它們的協議型別是一樣的,只是電平標準不同而已,而 MAX232 這個芯片起到的就是中間人的作用,它把 UART 電平(TTL電平)轉換成 RS232 電平,也把 RS232 電平轉換成 UART 電平,從而實作標準 RS232介面和單片機 UART 之間的通信連接,
2.3 "USB/TTL轉232"模塊作業原理
USB轉串口模塊可以使用5V、3V3電壓供電,需要將跳線帽進行安裝,

可以對USB轉串口模塊進行測驗,將USB的電壓引腳用跳帽接上,然后將RXD和TXD兩個引腳用跳帽或者杜邦線接上,
然后打開串口終端,點擊“手動發送”或者“自動發送”,如果在接收區可以接收到資料,說明USB轉串口模塊作業正常,否則需要檢查接線是否正確、電路板元器件是否損壞,
下圖是USB轉串口模塊的一些功能模塊的標示,USB轉串口電路板背后還預留了一些全信號輸出的介面,可以將電線直接焊接在這些引腳上來使用預留的功能,
即便管腳沒有這么多,但功能都是差不多的,

USB轉串口電路板與單片機的接線圖,VCC接線是為了單片機供電,USB轉串口的RXD引腳與單片機的TXD引腳相連,USB轉串口的TXD引腳與單片機的RXD引腳相連,兩者的GND引腳直接相連,

三、參考資料
串口通訊協議_guankaer的作業室-CSDN博客_串口協議文章轉載自http://www.cnblogs.com/firege/p/5805753.html20.1 串口通訊協議簡介串口通訊(Serial Communication)是一種設備間非常常用的串行通訊方式,因為它簡單便捷,大部分電子設備都支持該通訊方式,電子工程師在除錯設備時也經常使用該通訊方式輸出除錯資訊,在計算機科學里,大部分復雜的問題都可以通過分層來簡化,如芯片被分為內核層和片上外設;...https://blog.csdn.net/cool9932/article/details/79419990?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163480459716780366581656%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163480459716780366581656&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-79419990.pc_search_result_cache&utm_term=%E4%B8%B2%E5%8F%A3%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.4187
USB轉TTL串口、USB轉232串口、232串口轉TTL串口_棒棒的博客-CSDN博客首先認識一下這3中介面:1,USB,通過USB電平作業USB電平:電源線是5V,為USB設備提供最大500mA的電流,它與資料線上的電平無關,資料線是差分信號,通常D+和D-在+400mV~-400mV間變化,2,232串口,通過232電平標準作業232電平:邏輯1(MARK)=-3V~-15V邏輯0(SPACE)=+3~+15V3,單片機串口是TTL電平,所以叫TTL串口,TTL電平:+5V等價于邏輯“1”,0V等價于邏輯“0”(采用二進制來表示資料時),這樣的資料通信及電平規https://blog.csdn.net/weixin_45456099/article/details/107500617?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163499821416780271539896%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163499821416780271539896&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-107500617.pc_search_result_cache&utm_term=USB%2FTTL%E8%BD%AC232&spm=1018.2226.3001.4187
USB轉串口CH340接線方法_嵌入式學徒之齋-CSDN博客_ch340接線USB轉串口模塊可以使用5V電壓供電,需要將跳帽按下圖安裝, USB轉串口模塊可以使用3.3V電壓供電,需要將跳帽按下圖安裝, 可以對USB轉串口模塊進行測驗,將USB的電壓引腳用跳帽接上,然后將RXD和TXD兩個引腳用跳帽或者杜邦線接上,然后打開串口終端,點擊“手動發送”或者“自動發送”,如果在接收區可以接收到資料,說明USB轉串口模塊作業正https://blog.csdn.net/wangjiaweiwei/article/details/49612207?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163499967516780261925154%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163499967516780261925154&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-49612207.pc_search_result_cache&utm_term=%22USB%2FTTL%E8%BD%AC232%22%E6%A8%A1%E5%9D%97%EF%BC%88%E4%BB%A5CH340%E8%8A%AF%E7%89%87%E6%A8%A1%E5%9D%97%E4%B8%BA%E4%BE%8B%EF%BC%89%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E3%80%82&spm=1018.2226.3001.4187
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/335304.html
標籤:其他
