串行通信的基礎(chǔ)知識
——
1.1 數(shù)據(jù)傳送
單片機的串行通信使用的是異步串行通信,所謂異步就是指發(fā)送端和接收端使用的不是同一個時鐘。異步串行通信通常以字符(或者字節(jié))為單位組成字符幀傳送。字符幀由發(fā)送端一幀一幀地傳送,接收端通過傳輸線一幀一幀地接收。
1. 字符幀的幀格式
字符幀由四部分組成,分別是起始位、數(shù)據(jù)位、奇偶校驗位、停止位。如圖1所示:
1) 起始位:位于字符幀的開頭,只占一位,始終位邏輯低電平,表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。
2) 數(shù)據(jù)位:緊跟起始位后,可取5、6、7、8位,低位在前,高位在后。
3) 奇偶校驗位:占一位,用于對字符傳送作正確性檢查,因此奇偶校驗位是可選擇的,共有三種可能,即奇偶校驗、偶校驗和無校驗,由用戶根據(jù)需要選定。
4) 停止位:末尾,為邏輯“1”高電平,可取1、1.5、2位,表示一幀字符傳送完畢。
圖1 字符幀格式
異步串行通信的字符幀可以是連續(xù)的,也可以是斷續(xù)的。連續(xù)的異步串行通信,是在一個字符格式的停止位之后立即發(fā)送下一個字符的起始位,開始一個新的字符的傳送,即幀與幀之間是連續(xù)的。而斷續(xù)的異步串行通信,則是在一幀結(jié)束之后不一定接著傳送下一個字符,不傳送時維持數(shù)據(jù)線的高電平狀態(tài),使數(shù)據(jù)線處于空閑。其后,新的字符傳送可在任何時候開始,并不要求整倍數(shù)的位時間。
2. 傳送的速率
串行通信的速率用波特率來表示,所謂波特率就是指一秒鐘傳送數(shù)據(jù)位的個數(shù)。每秒鐘傳送一個數(shù)據(jù)位就是1波特。即:1波特=1bps(位/秒)
在串行通信中,數(shù)據(jù)位的發(fā)送和接收分別由發(fā)送時鐘脈沖和接收時鐘脈沖進行定時控制。時鐘頻率高,則波特率高,通信速度就快;反之,時鐘頻率低,波特率就低,通信速度就慢。
1.2 數(shù)據(jù)轉(zhuǎn)換
MCS-51單片機只能處理8位的并行數(shù)據(jù),所以在進行串行數(shù)據(jù)的發(fā)送時,要把并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)。而在接收數(shù)據(jù)時,只有把接收的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),單片機才能進行處理。
能實現(xiàn)這種轉(zhuǎn)換的設(shè)備,稱為通用異步接收發(fā)送器(Universal Asynchronous Receiver /Transmitter)。這種設(shè)備已集成到單片機內(nèi)部,稱為串行接口電路。串行接口電路為用戶提供了兩個串行口緩沖寄存器(SBUF),一個稱為發(fā)送緩存器,它的用途是接收片內(nèi)總線送來的數(shù)據(jù),即發(fā)送緩沖器只能寫不能讀。發(fā)送緩沖器中的數(shù)據(jù)通過TXD引腳向外傳送。另一個稱為接收緩沖器,它的用途是向片內(nèi)總線發(fā)送數(shù)據(jù),即接收緩沖器只能讀不能寫。接收緩沖器通過RXD引腳接收數(shù)據(jù)。因為這兩個緩沖器一個只能寫,一個只能讀,所以共用一個地址99H。串行接口電路如圖2所示。
電工基礎(chǔ)相關(guān)文章:電工基礎(chǔ)知識試題
51單片機相關(guān)文章:51單片機教程
通信相關(guān)文章:通信原理
評論