計算機與外界的信息傳輸常被稱為通信,基本通信方式有并行通信和串行通信兩種。
一、概述
并行通信方式指數據的各個二進制位在不同的數據線上同時傳輸。并行通信傳輸速度快,效率高,但所需的數據線多,成本高,抗干擾能力較差,適用于近距離傳輸。
串行通信方式指將數據拆分成多個二進制位,逐一的在同一條數據線上輸出。串行通信雖然傳輸速度較慢,效率較低,但所需的數據線少、硬件電路簡單、抗干擾能力強,且適用于遠距離數據傳輸。
串行通信有同步通信和異步通信兩種基本的通信方式。
(1)同步通信
同步通信是一種連續的串行傳輸數據的通信方式,待發送的若干個字符數據構成一個數據塊,在該數據塊前部添加1~2個同步字符,在數據塊的末尾添加校驗信息,以此種方式構成數據幀,以數據幀為單位進行串行通信。
(2)異步通信
每一幀由四部分構成,分別是起始位、數據位、校驗位和停止位。起始位是數據開始傳送的標志,用邏輯0表示;數據位緊跟起始位,通常是5~8位二進制位;校驗位用于校驗數據位是否發送正確,可以選擇奇校驗、偶校驗或者不使用校驗位。幀和幀之間可以連續,或者加入任意的空閑位,空閑位用邏輯1表示。
按照數據傳送方向,串行通信可以分為三個種類,分別是單工、半雙工和全雙工。
單工:通信雙方一方固定為發送方,另一方固定為接收方,數據只能是單向傳輸;
半雙工:通信雙方只使用一根數據線,每一方都有發送器和接收器,可以在兩個方向上傳送,但通信雙方不能同時接收或發送數據,只能交替進行;
全雙工:通信雙方使用兩根數據線,分別用于不同方向的數據傳輸,通信雙方能夠同時收發數據。
二、波特率
波特率是數據傳輸速率,指每秒鐘傳送二進制位的個數,單位為bit/s。
波特率是串行通信的重要指標,波特率越高,串口數據傳輸速度越快。
假如設定波特率為9600bit/s,而數據幀由1位起始位、8位數據位、1位停止位構成,則串口每秒鐘最多傳送9600/(1+8+1)=960個字節。
如果兩個單片機相距較短(在1.5m之內),串口可直接相連
如雙機通信距離在1.5m~15m之間時,且傳輸速率不高,可用RS-232C標準接口實現點對點的雙機通信 。
RS-422A標準:差分傳輸,共4線,全雙工,最大傳輸率為10Mbit/s,最大傳輸距離可達1219m。
RS-485是RS-422A的變型。區別:RS-422A為全雙工,采用兩對平衡差分信號線;RS-485為半雙工,采用一對平衡差分信號線。RS-485對于多站互連是十分方便的,很容易實現多機通信。RS-485允許最多并聯32臺驅動器和32臺接收器。
三、串口結構
8051單片機的串行口主要由數據發送緩沖器SBUF、發送控制器、輸出控制門、數據接收緩沖器SBUF、接收控制器、輸入移位寄存器、串行口控制寄存器SCON構成。
有兩個獨立的接收、發送緩沖器SBUF,可同時發送、接收數據。4兩個緩沖器共用一個特殊功能寄存器字節地址(99H)。
兩個控制寄存器SCON和PCON。
SCON用于設定串口通信的工作方式、接收/發送控制以及串口工作狀態指示。SCON的字節地址為0x98,可以進行位尋址,格式如下:
SM0、SM1:串行通信工作方式選擇位。SM0和SM1共4種組合,對應4中工作方式,如下表所示,其中fosc為晶振頻率。
SM2:多機通信控制位,主要用于工作方式2和工作方式3。當串行口在多機通信模式下接收數據時:
當SM2=0時,將接收到的8位數據送入到SBUF中,并產生中斷請求。
若設置SM2=1,且RB8為0時,不接收主機發來的數據;只有當RB8為1時,才產生中斷請求,并將接收到的前8位數據送入SBUF。
-
通信
+關注
關注
18文章
6062瀏覽量
136264 -
計算機
+關注
關注
19文章
7529瀏覽量
88408 -
信息傳輸
+關注
關注
1文章
42瀏覽量
9359
發布評論請先 登錄
相關推薦
評論