串口通信是非常重要的,首先了解下基礎
計算機串口通信基礎
- 隨著多微機系統的廣泛應用和計算機網絡技術的普及,計算機的通信功能越越顯得重要。計算機通信是指計算機與外部設備或計算機與計算機之間的信息交換。
- 通信有并行通信和串行通信兩種方式。在多微機系統以及現代化測控系統中信息的交換多采用串行通信方式。
- 計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換。可以分為兩大類:并行通信與串行通信。
- 并行通信通常是將數據字節的各位用多條數據線同時進行傳送。(如下圖)
由上圖可知一下可以傳8位,跟并行的A/D
- 并行通信控制簡單,傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接受存在困難。
- 串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個地傳送。(如下圖)
注意:先發的是低位
- 串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,丹數據的傳送控制比并行通信復雜。
- 串行通信的基本概念
一、異步通信與同步通信
1、異步通信
異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有位間隔的整數倍的關系,但同一個字符內的各位之間的距離均為“位間隔”的整數倍。
{先發起始位:低電平 表示起始位
異步通訊的特點:不要求收發雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加2~3位用于起始位,各幀之間有間隔,因此傳輸效率不高。
2、同步通信
同步通信時要建立發送方時鐘對接受方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為“位間隔”的整數倍,同時傳送的字符間不留間隙,即保持位同步關系,也保持字符同步關系。發送方對接受方的同步可以通過兩種方法實現。
此時,傳送的數據和控制信息都必須由規定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H),SOH為序始字符(ASCII碼為01H),表示標題的開始,標題中包含源地址,目標地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數據塊開始。數據塊是傳送正文內容,由多個字符組成。數據塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規程如IBM的二進制同步規程BSC。
面向位的同步格式:
二、串行通信的傳輸方向
1、單工
單工是指數據傳輸僅能沿著一個方向,不能實現反向傳輸。
2、半雙工
半雙工是指數據傳輸可以沿兩個方向,不能實現反向傳輸。
3、全雙工
全雙工是指數據可以同時進行雙向傳輸。
三、信號的調制與解調
利用調制器(MODULATOR)把數字信號轉換成模擬信號,然后送到通信線路上去,再由解調器(Demodulator)把從通信線路上收到的模擬信號轉換成數字信號。由于通信是雙向的,調制器和解調器合并在一個裝置中,這就是調制解調器MODEM。
從上圖可以看出早期的計算機網絡通信就是利用串口RS-232C(是計算機串口電平)經過MODEM
四、串行通信的錯誤校驗
1、奇偶校驗
在發送數據時,數據位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數據中“1”的個數與校驗位“1”的個數之和應為奇數;偶校驗時,數據中“1”的個數與校驗位“1”的個數之和應為偶數。接受字符時,對“1”的個數進行校驗,若發現不一致,則說明傳輸數據過程中出現了差錯。(注意:為了簡單等會我寫的程序不加校驗了)。
2、代碼和校驗
代碼和校驗是發送方將所發數據塊求和(或各字節異或),產生一個字節的校驗字符(校驗和)附加到數據塊末尾。接受方接受數據同時對數據塊(除校驗字節外)求和(或個字節異或),將所得結果與發送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現了差錯。
這種校驗是通過某種數學運算實現有效信息與校驗位之間的循環校驗,常用于對磁盤信息的傳輸,存儲區的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用與同步通信中。(異步很少用,應用于同步通信,作為了解,在讀研究生時候學信息論能學到,這里我也就是一知半解,嘿嘿畢竟哥沒讀過研究生)。
五、傳輸速率與傳輸距離
1、傳輸速率
比特率是每秒鐘傳輸二進制代碼的位數,單位是:位/秒(bps).如每秒鐘傳送240個字符,而每個字符格式包含10位(1起始位,1停止位,8個數據位),這時的比特率為:
2、傳輸距離與傳輸速率的關系
串行通信接口標準
一、RS-232C接口
1、機械特性
RS-232C接口規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)
以前是25針的這個可不是電腦的并行口內部是不一樣的,因為電腦的并行口里面是有一組數據線,有詢問應答等
上圖是25針的串口對應現在9針的管腳定義。RTS
4、過程特性
現在我們已經集合了,就用MAX232直接能夠實現TTL
6、采用RS-232C接口存在的問題
1、傳輸距離短,傳輸速率低
3、抗干擾能力差
二、RS-422A接口(為了改進 RS-232C
三、RS-485接口
------------------------------------------------------------------------
以上為串口通訊的基礎部分。由于本人學識有限難免有錯誤之處。。。