刪除
單片機串口通信基礎 串口通信是非常總要的,首先我們先了解一下基礎 隨著多微機系統的廣泛應用和計算機網絡技術的普及,計算機的通信功能越來越顯的重要。計算機通信是指計算機與外部設備或者計算機與計算機制之間的信息交換。 通信有并行通信和串行通信兩種方式。在多微機系統以及現代化測控系統中信息的交換多采用串行通信的方式。計算機通信是將計算機技術和通信技術的結合,完成計算機與外部設備或者計算機與計算機之間的信息交換,可以分為兩大類:并行通信和串行通信. 并行通信常常是將數據字節的各位用多條數據線同時進行傳送。(如下圖)
由上圖可知一下可以傳送8位,跟由上圖可知一下可以傳8位,跟并行的A/D D/A 差不多,詢問和應答 是發送 和接受 來詢問是否準備好了沒有。 并行通信控制簡單,傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接受存在困難。串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個地傳送。(如下圖) 注意:串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,丹數據的傳送控制比并行通信復雜。 一、異步通信與同步通信 1、異步通信 異步通信是指通信的發送與接收設備使用各自的時鐘控制數據的發送和接收過程。為使雙方的收發協調,要求發送和接收設備的時鐘盡可能一致。 異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有位間隔的整數倍的關系,但同一個字符內的各位之間的距離均為“位間隔”的整數倍。異步通信的數據格式:{先發起始位:低電平 表示起始位 再發數據位 LSB 是低端 (LSB: Least Significant Bit)最低有效位,先發低位數據共7位數據 + 1位校驗位數據 (判斷發送是否正確,如果不要校驗位那么8位都是數據位) 最后發一個停止位(高電平結束就是一個位寬的高電平表示停止位) 共10位 一幀 。}
異步通訊的特點:不要求收發雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加2~3位用于起始位,各幀之間有間隔,因此傳輸效率不高。 2、同步通信 同步通信時要建立發送方時鐘對接受方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為“位間隔”的整數倍,同時傳送的字符間不留間隙,即保持位同步關系,也保持字符同步關系。發送方對接受方的同步可以通過兩種方法實現。 面向字符的同步格式: 此時,傳送的數據和控制信息都必須由規定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H),SOH為序始字符(ASCII碼為01H),表示標題的開始,標題中包含源地址,目標地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數據塊開始。數據塊是傳送正文內容,由多個字符組成。數據塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規程如IBM的二進制同步規程BSC。面向位的同步格式: 此時,將數據塊看做數據流,并用序列01111110作為開始和結束標志。為了避免在數據流中出現序列01111110時引起的混亂,發送方總是在其發送的數據流中沒出現5個連續的1就插入一個附加的0;接收方則每檢測到5個連續的1并且其后有一個0時,就刪除該0.典型的面向位的同步協議如ISO的高級數據鏈路控制規程HDLC和IBM的同步數據鏈路控制規程SDLC同步通信的特點::是以特定的位組合“01111110”作為幀的開始和結束標志,所傳輸的一幀數據可以是任意位。所以傳輸效率高,但實現的硬件設備比異步通信發雜。(同步通信可以作為了解我這里只是想表達下我的理解,其實現實中我們用的大多數是異步通信)。 二、串行通信的傳輸方向 1、單工 單工是指數據傳輸僅能沿著一個方向,不能實現反向傳輸。 2、半雙工 半雙工是指數據傳輸可以沿兩個方向,不能實現反向傳輸。 3、全雙工 全雙工是指數據可以同時進行雙向傳輸。 三、信號的調制與解調 利用調制器(MODULATOR)把數字信號轉換成模擬信號,然后送到通信線路上去,再由解調器(Demodulator)把從通信線路上收到的模擬信號轉換成數字信號。由于通信是雙向的,調制器和解調器合并在一個裝置中,這就是調制解調器MODEM。 從上圖可以看出早期的計算機網絡通信就是利用串口RS-232C(是計算機串口電平)經過MODEM 實現雙向通信的,當然傳輸速率相當低。 四、串行通信的錯誤校驗 1、奇偶校驗 在發送數據時,數據位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數據中“1”的個數與校驗位“1”的個數之和應為奇數;偶校驗時,數據中“1”的個數與校驗位“1”的個數之和應為偶數。接受字符時,對“1”的個數進行校驗,若發現不一致,則說明傳輸數據過程中出現了差錯。(注意:為了簡單等會我寫的程序不加校驗了)。 2、代碼和校驗 代碼和校驗是發送方將所發數據塊求和(或各字節異或),產生一個字節的校驗字符(校驗和)附加到數據塊末尾。接受方接受數據同時對數據塊(除校驗字節外)求和(或個字節異或),將所得結果與發送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現了差錯。 3、循環冗余校驗 這種校驗是通過某種數學運算實現有效信息與校驗位之間的循環校驗,常用于對磁盤信息的傳輸,存儲區的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用與同步通信中。(異步很少用,應用于同步通信,作為了解,在讀研究生時候學信息論能學到,這里我也就是一知半解,嘿嘿畢竟哥沒讀過研究生)。 五、傳輸速率與傳輸距離 1、傳輸速率 比特率是每秒鐘傳輸二進制代碼的位數,單位是:位/秒(bps).如每秒鐘傳送240個字符,而每個字符格式包含10位(1起始位,1停止位,8個數據位),這時的比特率為: 2、傳輸距離與傳輸速率的關系 串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小,當比特率超過1000BPS,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。
串行通信接口標準
一、RS-232C接口RS232C是EIA(美國電子工業協會)1969年修訂RS-232C標準。RS-232C定義了數據終端設備(DTE)與數據通信設備(DCE)之間的物理接口標準。
1、機械特性RS-232C接口規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)
5、RS-232C電平與TTL電平轉換驅動電路 現在我們已經集合了,就用MAX232直接能夠實現TTL ->RS232 及 RS-232 ->TTL 都有了。 6、采用RS-232C接口存在的問題 1、傳輸距離短,傳輸速率低
RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不能超過幾十米)。最高傳送速率為20Kbps.
2、有電平偏移
RS-232C總線標準要求收發雙方共地。通信距離較大時,收發雙方的地電平差別較大,在信號地上將有較大的地電流并產生壓降。
3、抗干擾能力差
RS-232C在電平轉換時采用單端輸入輸出,在傳輸過程中當干擾和噪聲混在正常信號中。為了提高信噪比,RS-232C總線標準不得不采用比較大的電壓擺幅。 二、RS-422A接口(為了改進 RS-232C 就是在RS232C 輸出后再進行改進) RS-422A輸出驅動器為雙端平衡驅動器。如果其中一條線為邏輯“1”狀態,另一條線就為邏輯“0”,比采用單端不平衡驅動對電壓的放大倍數大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時,傳輸距離可達1200米。(作為了解下) 三、RS-485接口 RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發送器標準,在通信線路上最多可以使用32 對差分驅動器/接收器。如果在一個網絡中連接的設備超過32個,還可以使用中繼器。
RS-485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離可達1200米,傳輸速率可達1Mbps。
RS-485是一點對多點的通信接口,一般采用雙絞線的結構。普通的PC機一般不帶RS485接口,因此要使用RS-232C/RS-485轉換器。對于單片機可以通過芯片MAX485來完成TTL/RS-485的電平轉換。在計算機和單片機組成的RS-485通信系統中,下位機由單片機系統組成,上位機為普通的PC機,負責監視下位機的運行狀態,并對其狀態信息進行集中處理,以圖文方式顯示下位機的工作狀態以及工業現場被控設備的工作狀況。系統中各節點(包括上位機)的識別是通過設置不同的站地址來實現的。 更多信息請查看
評論
查看更多