什么是計算機通信
通信是指通過某種媒體將信息從一地傳送到另一地。古代飛鴿傳書和今天電話、手機,都是人與人之間的通信。
計算機通信是將計算機技術和通信技術的相結(jié)合,完成計算機與外部設備或計算機與計算機之間的信息交換。 上面所說的計算機與計算機之間的通信分下面3種情況:
PC機與PC機通信; PC機與單片機通信(本講只講這一種); 單片機與單片機通信。
為什么要進行計算機通信
計算機通信的出現(xiàn),大大拓展了計算機的應用范圍。 PC機與單片機通信,可以實現(xiàn):
1、實現(xiàn)遠程測控。
2、組成計算機網(wǎng)絡。
并行通信的特點:傳輸速度快,由于需要多根傳輸線,長距離傳輸時成本高,只適用于短距離傳輸。
串行通信的特點:傳輸速度慢,但傳輸線少,長 距離傳傳輸時成本低,適用于長距離傳輸。
異步通信與同步通信
異步通信 收發(fā)設備使用各自的時鐘。異步通信在發(fā)送字符時,所發(fā)送的字符之間的時間間隔可以是任意的。接收端必須時刻做好接收的準備。發(fā)送端可
以在任意時刻開始發(fā)送字符,為保證收發(fā)雙方同步, 每個字符的開始和結(jié)束的地方必須加上標志,即加上起始位和停止位,以便使接收端能夠正 確地將每一個字符接收下來。
特點:由于不要求收發(fā)雙方時鐘嚴格一致,因此容易實現(xiàn),通信設備簡 單、便宜。但為保證收發(fā)雙方同步,每個字符均需附加起始位、停止位, 因此傳輸效率不高。
同步通信 發(fā)送與接收設備使用同一個時鐘,雙方本身完全同步,從理論上說,不 需要人為增加同步措施,但實際上還是要增加一些同步措施的(同步通信把幾十到幾千個字符組成一個幀,每幀的開始要附加同步字符)。異 步通信在發(fā)送字符時,所發(fā)送的字符之間沒有時間間隔。
特點:收發(fā)雙方不停地發(fā)送和接收連續(xù)的字符,傳輸效率高,特別適合 批量數(shù)據(jù)的傳送;但它要求在通信中保持精確的同步,實現(xiàn)較異步通信 復雜。
串行通信的傳輸方向
1、單工 單工是指數(shù)據(jù)傳輸僅能沿一個方向進行。
2、半雙工 半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。
3、全雙工 全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。
本講沒有用到奇偶校驗,因此這里我們只要了解就可以了。 收發(fā)雙方事先約定采用奇校驗還是偶校驗。 如約定采用奇校驗:發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨1位奇校驗位,奇校驗 位可以取0或1,但要保證,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和 應為奇數(shù);接收數(shù)據(jù)時,檢查數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之 和是否仍應為奇數(shù),如不是,則說明數(shù)據(jù)在傳輸過程中出現(xiàn)了差錯。 如約定采用偶校驗:發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨1位偶校驗位,偶校驗 位可以取0或1,但要保證,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和 應為偶數(shù);接收數(shù)據(jù)時,檢查數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之 和是否仍應為偶數(shù),如不是,則說明數(shù)據(jù)在傳輸過程中出現(xiàn)了差錯。
串行通信的數(shù)傳率
數(shù)據(jù)傳輸率 簡稱數(shù)傳率,指單位時間內(nèi)傳輸?shù)男畔⒘�,可用比特率和波特率來表示�?/font>
⑴比特率:是數(shù)字信號的傳輸速率,它用單位時間內(nèi)傳輸?shù)亩M制代碼的有 效位(bit)數(shù)來表示,其單位為每秒比特數(shù)bit/s(bps) 。
⑵波特率:波特率指數(shù)據(jù)信號對載波的調(diào)制速率,它用單位時間內(nèi)載波調(diào)制 狀態(tài)改變次數(shù)來表示,其單位為波特(Baud)。 對于串行通信來說,或者說是對于普通的數(shù)字電路來說,都是兩相調(diào)制,也就 是單個調(diào)制狀態(tài)對應1個二進制位,因此:
比特率= 波特率
1bps=1 Baud
計算機中常用的波特率是:110、300、600、1200、2400、4800、9600、19200、28800、33600,目前最高可達56Kbps.
CH340轉(zhuǎn)出的虛擬串口的波特率突破了傳統(tǒng)串口的56Kbps限制,最高可達2Mbps
串行通信的傳輸距離
RS232為全雙工,最大傳輸距離15米。 RS485為半雙工,最大傳輸距離1200米,最多可 加8只中繼器,可延伸到10800米 。
串行通信接口標準
RS-232是美國電子工業(yè)協(xié)會EIA在1962年發(fā)布的一種 串行通信接口標準,后有不少改進版本,其中最常用的 是RS-232-C版。 RS是英文“推薦標準”的縮寫,232為 標識號,C表示修改次數(shù)。RS-232-C總線標準設有25 條信號線,包括一個主通道和一個輔助通道,在多數(shù)情 況下主要使用主通道,對于一般雙工通信,僅需幾條信 號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。
筆記本電腦如何進行串口實驗
大部分筆記本電腦,甚至部分新出的臺式機沒有 串口,我們可以用USB轉(zhuǎn)換的方式,轉(zhuǎn)出一個甚 至多個虛擬的串口,同樣可以完成串口實驗。
此時,單片機端要用CH340(或其他的USB- COM芯片,如PL2303)替代MAX232,單片機端 與PC端改用USB電纜連接, PC機安裝驅(qū)動程 序。上下位機編程和其他操作和原來完全一致。
筆記本電腦(包括臺式機)可使用USB口轉(zhuǎn)出的虛擬串口進行串行通信,框圖如上
MAX232是TTL和RS232電平轉(zhuǎn)換芯片,CH340是USB-COM轉(zhuǎn)換芯片。 單片機叫下位機,PC機叫上位機。
在串口傳輸電纜上,采用 RS232電平規(guī)范:
邏輯1=-3V~-15V
邏輯0=+3V~+15V
而單片機的串口模塊采用TTL電平規(guī)范: 邏輯1=5V
邏輯0=0V
因此單片機的串口模塊和串口傳輸電纜之間要進 行電平轉(zhuǎn)換,這個任務由MAX232完成。
STC89C52 有1個串口模塊----串口1,有兩個物理上獨立的接收、發(fā)送緩沖器,但是它們都叫SBUF。單片機 操作的時候是否會產(chǎn)生混亂?不會。執(zhí)行讀操作時,訪問接收緩沖器; 執(zhí)行寫操作時,訪問發(fā)送緩沖器。
串行口的控制寄存器
SCON 是一個特殊功能寄存器,用以設定串行口的工作方式、接收/發(fā) 送控制以及設置狀態(tài)標志,可以按位操作:(復位值:0x00000000)
SM0和SM1為工作方式選擇位,可選擇四種工作方式,一般選方式1:
●REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。
●TI,發(fā)送中斷標志位。在方式0時,當串行發(fā)送第8位數(shù) 據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由 內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務程序 中,必須用軟件將其清0,取消此中斷申請。
●RI,接收中斷標志位。在方式0時,當串行接收第8位數(shù) 據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由 內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服 務程序中,用軟件將其清0,取消此中斷申請。
下列位本講未用,采用上電默認值0:
●SM2:多機通信控制位
●TB8:發(fā)送數(shù)據(jù)的第九位
●RB8:接收到數(shù)據(jù)的第九位
獨立波特率發(fā)生器的相關位
BRTR(獨立波特率發(fā)生器啟停位): =1, 允許獨立波特率發(fā)生器 運行;=0, 不允許獨立波特率發(fā)生器運行。
BRTx12:=0, 獨立波特率發(fā)生器每12 個時鐘計數(shù)一次(和傳 統(tǒng)51兼容),=1, 獨立波特率發(fā)生器每1 個時鐘計數(shù)一次
S1BRS: =1, 獨立波特率發(fā)生器作為串口1 的波特率發(fā)生 器,此時定時器1 得到釋放; =0, 串口1 波特率發(fā)生器選 擇定時器1。
PCON中只有一位SMOD與串行口工作有關 :
SMOD(PCON.7) 波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關,當SMOD=1時,波特率提高一倍。復位時,SMOD=0。
該位本講未用,采用上電默認值0即可。
串行口的工作方式
本講只講最常用的方式1;方式0、2、3很少用到,不需掌握。
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳, RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1 位起始位,8位數(shù)據(jù)位,1位停止位。
波特率和BRT值的計算
在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。
方式1的波特率=(2SMOD/32)•( 獨立波特率發(fā)生器的溢 出率)
當BRTx12 = 0時:獨立波特率發(fā)生器的溢出率 =Fosc/12/( 256 - BRT )
實例:波特率9600,計算BRT的值。
波特率 =(1/32)•(fosc /12/(256 -BRT))
BRT=256- fosc /(384*波特率)=256-11059200/
(384*9600)=253
也可以用“51串口通信計算器”快速完成BRT設置值的計算。
串行口初始化步驟
1、TX設置為輸出、RX設置為輸入,也可不設置,采用默認的準雙向 口模式。
2、設置串口1 的工作模式,SCON 寄存器中的SM0 和SM1 兩位決定 了串口1 的4 種工作模式。
3、如要串口1 接收,將SCON 寄存器中的REN 位置1 即可。
4、計算BRT的值, 并置數(shù);
5、設置獨立波特率發(fā)生器相關位:BRTx12:=0, S1BRS: =1, SMOD
6、啟動獨立波特率發(fā)生器( BRTR =1);
7、串行口工作在中斷方式時,還要設置串口1 的中斷優(yōu)先級
( PS,PSH ),如果不設置的話,默認是低優(yōu)先級;打開中斷相應的 控制位(ES,EA)。接收完成標志RI,發(fā)送完成標志TI,要由軟件清
如何通過串口收發(fā)數(shù)據(jù)
串口1接收到的數(shù), 從SBUF中讀��;如要從串口1 發(fā)送,將數(shù)據(jù)送入SBUF 即可。
完整的pdf格式課件文檔51黑下載地址:
35、慧凈51單片機視頻教程 51單片機串口通信原理.pdf
(1.03 MB, 下載次數(shù): 0)
2018-9-22 03:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|