序列通訊有關概念
- 串列埠,通常指的是序列通訊介面。
- 序列通訊(Serial Communication)
- 序列通訊介面
- 通用非同步收發器(Universal Asynchronous Receiver/Transmitter: UART),是一種硬體介面,通常稱串列埠
- 通用同步/非同步收發器(Universal Synchronous Asynchronous Receiver/Transmitter: USART)
- 序列通訊介面電氣標準
- TTL、RS-232、RS-485
- USB(Universal Serial Bus):通用序列匯流排,USB不是序列通訊介面
USB(Universal Serial Bus):是連線電腦與裝置的一種序列匯流排標準,也是一種輸入輸出I/O 連線埠的技術規範。多媒體電腦剛問世時,外接式裝置的傳輸介面各不相同,如印表機只能接並行埠、調變解調器只能接RS-232、滑鼠鍵盤只能接PS/2等。繁雜的介面系統,加上必須安裝驅動程式並重啟才能使用的限制,都會造成使用者的困擾。因此,創造出一個統一且支援易插拔的外接式傳輸介面,便成為無可避免的趨勢,USB應運而生。----維基百科
RS232 DB9介面採用序列通訊,總共9個引腳,在目前的其它工業控制使用的串列埠通訊中,一般只使用RXD、TXD以及GND三條訊號線,直接傳輸資料訊號。
非同步序列通訊的資料幀格式(data frame)
- LSB (Least Significant Bit):最低有效位
- MSB (Most Significant Bit):最高有效位
- Start bit:開始位,為低電平(邏輯0)
- Parity bit:校驗位,通常有Odd(奇校驗)、Even(偶校驗)、Space(0校驗)、Mark(1校驗)、None(無校驗)
- Odd(奇校驗):有效資料和校驗位中"1"的個數為奇數個,例如有效資料8位01101001,該8位資料中共有4個"1"。要達到奇校驗的效果,校驗位就應該為1,因此資料位+校驗位就是9位:011010011
- Even(偶校驗):有效資料和校驗位中"1"的個數為偶數個
- Space(0校驗):校驗位總是0
- Mark(1校驗):校驗位總是1
- Idle:空閒位,為高電平(邏輯1)
舉個例子,序列通訊採用9600Baud、8位資料位、1位停止位、無校驗位。傳送"OK",其資料幀如下圖所示,b0是最低位,b7是最高位。其中0100111就是'O'的二進位制數,'K'的二進位制數01001011,可以看到幀的資料位先傳送的'O',接著是'K',並且資料位是從低位到高位。
參考連結:
https://learn.sparkfun.com/tutorials/serial-communication/all
https://doc.embedfire.com/mcu/stm32/f407batianhu/std/zh/latest/book/USART.html