串口通訊(Serial Communication),是指外設和計算機間,通過數據信號線、地線等,按位進行傳輸數據的一種雙向通訊方式。
串口是一種接口標準,它規定了接口的電氣標準,沒有規定接口插件電纜以及使用的通信協議,通信協議很多,可根據實際情況選擇和自定義。
目錄
- 串口相關參數介紹
- 1、端口(COM口)
- 2、波特率(BaudRate)
- 3、起始位
- 4、停止位(StopBits)
- 5、數據位
- 6、校驗位
- 7、緩存區
串口相關參數介紹
1、端口(COM口)
CMO口(Communication Module Outlet)是一種用于連接計算機和外部設備的接口,也稱為串行端口,簡稱CMO口,常見串口通訊有一般電腦應用的RS-232(使用 25 針或 9 針連接器)和工業電腦應用的半雙工RS-485與全雙工RS-422。
電腦端口查看:設置->系統->關于->設備管理器->端口
2、波特率(BaudRate)
波特率是一個電子信號上的術語,用于描述信道的數據傳輸速度。單位是bit/s,常見的9600波特率表示每秒傳輸9600個比特位,1個字節8位,9600/8=1200,代表每秒鐘串口可傳輸1200個字節(不考慮起始位、停止位、校驗位的情況下)。
注意:
- 波特率如果太高會導致傳輸數據不穩定,一般使用9600;
- 發送端與接收端波特率不一致會導致數據不一致;
3、起始位
- 起始位必須是持續一個比特時間的邏輯0電平,標志傳輸一個字符的開始,接收方可用起始位使自己的接收時鐘與發送方的數據同步;
- C#開發中一般不需要設置起始位。
4、停止位(StopBits)
- 停止位可以是是1位、1.5位或2位,可以由軟件設定,它一定是邏輯1電平,標志著傳輸一個字符的結束;
- C#開發中一般通過StopBits枚舉類型設置停止位,枚舉值包括None、One、Two、OnePointFive四種(通常若設備不指定,默認停止位為1位)。
5、數據位
- 數據位緊跟在起始位之后,是通信中的真正有效信息。數據位的位數可以由通信雙方共同約定,一般可以是5位、7位或8位;
- C#開發中若設備不指定,默認數據位為8位。
6、校驗位
- 校驗位僅占一位,用于進行奇校驗或偶校驗,檢驗位不是必須有的。如果是奇校驗,需要保證傳輸的數據總共有奇數個邏輯高位;如果是偶校驗,需要保證傳輸的數據總共有偶數個邏輯高位;
- C#開發中通常使用Parity枚舉類型來設置校驗位,有五種,日常開發中使用最多的是None無校驗、Odd奇校驗、Even偶校驗。
7、緩存區
串口包括兩個緩存區,發送緩存區和接收緩存區;
- 發送緩存區:(軟件)發送數據時將數據先存在發送緩存區,再通過(硬件)串口發送出去;
- 接收緩存區:接收數據時先將數據存在接收緩存區,(軟件)再從中讀取數據;