物理層:規定通訊系統中具有機械、電子功能部分的特性,確保原始數據在物理媒體的傳輸。其實就是硬件部分。
協議層:協議層主要規定通訊邏輯,統一收發雙方的數據打包、解包標准。其實就是軟件部分。
簡單來說物理層規定我們用嘴巴還是用肢體來交流,協議層則規定我們用中文還是英文來交流。
物理層
- RS232標准
- USB轉串口(TTL)
- 原生的串口到串口(TTL->TTL)
RS-232 與 TTL 電平區別
TTL:一般是直接從單片機或者芯片里面出來的電平,邏輯1為2.4V-5V邏輯0為0-0.5v(一般高電平位5V或者3.3V,低電平為0)
RS232: 邏輯 1:-15V~-3V邏輯 0:+3V~+15V(低電平為-15V,高電平為15V峰值差別大,不以0為低電平,)
RS232標准串口通訊結構圖
控制器AB可以理解為芯片,出來的是TTL電平,經過電平轉換芯片(MAX3232,SP3232),轉換成RS232電平.
RS232串口一般用於工業,對於防止靜電....很好...
對於沒有232串口的STM32板子,可以去某寶買一個232串口,一般長這個樣.(RXD TXD VCC GND 黑色的小塊為電平轉換芯片 銀色的接口為DB9接口,DB9串口先將兩個DB9接口連接,將RXD TXD分別連接STM32的USTAR串口的引腳,VCC GND接好板子相應的位置(杜邦線),也可以用USB轉串口線連接(電平轉換芯片為CH340,PL2303,CP2102)電腦上,需要安驅動.)
原生的串口到串口
1、原生的串口通信主要是控制器跟串口的設備或者傳感器通信,不需要經過電平轉換芯片來轉換電平,直接就用TTL電平通信
2、GPS模塊、GSM模塊、串口轉WIFI模塊、HC04藍牙模塊
協議層
串口數據包的基本組成
起始位:由1個邏輯 0 的數據位表示
結束位:由 0.5、 1、 1.5 或 2 個邏輯 1 的數據位表示
有效數據:在起始位后緊接着的就是有效數據,有效數據的長度常被約定為 5、 6、 7 或 8 9位長
校驗位:可選,為的是數據的抗干擾性。
校驗方法分為:
1-奇校驗(odd)、 2-偶校驗(even)
3-0 校驗(space)、 4-0校驗(mark)
5-無校驗(noparity)
奇校驗(odd) :有效數據和校驗位中“ 1”的個數為奇數
比如一個 8 位長的有效數據為: 01101001,此時總共有 4 個“ 1”,為達到奇校驗效果,校驗位為“ 1”,最后傳輸的數據將是 8 位的有效數據加上 1 位的校驗位總共 9 位
偶校驗(even) :有效數據和校驗位中“ 1”的個數為偶數
比如一個 8 位長的有效數據為: 01101001,此時總共有 4 個“ 1”,為達到偶校驗效果,校驗位為“ 0”,最后傳輸的數據將是 8 位的有效數據加上 1 位的校驗位總共 9 位
0 校驗是不管有效數據中的內容是什么,校驗位總為“ 0”。
1 校驗是校驗位總為“ 1”。
無校驗就是數據包中不包含校驗位