串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個傳送,傳輸的數據線只需要一條,另外需要一條公共信號地線和若干控制信號線。因為一次只能傳送一位,因此對于一個字節的數據,至少需要傳輸8位才能傳輸完畢。
單片機與外部設備通過串口通信時,需要將并行的數據轉換為串行數據,再通過串口發送到外部設備。當單片機通過串口從外部設備接收數據時,需要將串行數據轉換為并行數據。
單片機與外部設備進行串行通信,需要雙方約定一個協議,即約定傳輸方式,這樣才不會發生數據丟失問題。傳輸方式分為異步串行通信和同步串行通信兩種方式。
異步串行通信
異步串行通信不需要發送方和接收方同步時鐘信號,對硬件要求低,當前主流的串行通信標準RS232就是異步串行通信。
異步串行通信依靠起始位,停止位保持通信同步的串行通信方式,傳輸的數據幀一般包含1位起始位,5~8位數據位,1位校驗位和1位停止位。
上圖是一個完整的異步串行通信數據幀,起始位為低電平,然后是8位數據,8位數據后是校驗位,校驗位為低電平或高電平,最后是停止位,停止位為高電平。
例如:用異步串行傳輸方式發送16進制數41H,數據位為8位,采用奇校驗,停止位為1位,傳輸波形圖為:
通過上述傳輸波形圖可以看出,起始為低電平(0t),41H的二進制數為1000 0010,1的個數為2個,因此校驗位為高電平(9t),停止位也為高電平(10t)。
同步串行通信
同步串行通信要保持發送方和接收方的時鐘同步,因此同步通信要使用附加信號線,即時鐘同步的信號線,發送方和接收方在發送方提供的相同時鐘頻率下完成同步串行通信。
發送方和接收方建立同步后,在同步時鐘的控制下按位進行發送接收,在發送數據位之前,需要先發送一個特定的同步字符,同步字符后面是數據位,每個數據位之間的距離均為 “位間隔”的整數倍,因此在數據傳輸過程中,發送方和接收方完全可以確定每個數據位的位置。
串行通信的制式
串行通信分為單工、半雙工、全雙工三種制式。單工是指數據只能有發送方發送數據到接收方,接收方不能發送數據到發送方,即數據傳輸只能是一個方向。半雙工是指數據傳輸可以沿兩個方向,但需要分時傳輸。全雙工是指數據可以同時進行雙向傳輸。
串行通信接口標準
RS-232是現在主流的串行通信接口之一,它被廣泛用于計算機串行接口外設連接,目前較為常用的串口有9針串口和25針串口,RS-232接口對傳輸距離有限制,傳輸距離在15m之內,通信設備可以直接連接到RS-232端口,若距離較遠,需要使用中繼器。RS-232端口的外形和針腳說明如下圖所示。
-
單片機
+關注
關注
6039文章
44579瀏覽量
636436 -
RS232
+關注
關注
13文章
748瀏覽量
94405 -
串行通信
+關注
關注
4文章
576瀏覽量
35456 -
串口通信
+關注
關注
34文章
1627瀏覽量
55575 -
異步串行通信
+關注
關注
0文章
16瀏覽量
8445
發布評論請先 登錄
相關推薦
評論