串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。
串口通信是指采用串行通信協(xié)議(serial communication)在一條信號線上將數(shù)據(jù)一個比特一個比特地逐位進(jìn)行傳輸?shù)耐ㄐ拍J健?/p>
串口按電氣標(biāo)準(zhǔn)及協(xié)議來劃分,包括RS-232-C、RS-422、RS485等。
按通信方式分類
同步通信
- 帶時(shí)鐘同步信號傳輸。比如:SPI,IIC通信接口
- 在同步通訊中,收發(fā)設(shè)備上方會使用一根信號線傳輸信號,在時(shí)鐘信號的驅(qū)動下雙方進(jìn)行協(xié)調(diào),同步數(shù)據(jù)。例如,通訊中通常雙方會統(tǒng)一規(guī)定在時(shí)鐘信號的上升沿或者下降沿對數(shù)據(jù)線進(jìn)行采樣。
異步通信
- 不帶時(shí)鐘同步信號。比如:UART(通用異步收發(fā)器),單總線
- 在異步通訊中不使用時(shí)鐘信號進(jìn)行數(shù)據(jù)同步,它們直接在數(shù)據(jù)信號中穿插一些用于同步的信號位,或者將主題數(shù)據(jù)進(jìn)行打包,以數(shù)據(jù)幀的格式傳輸數(shù)據(jù)。通訊中還需要雙方規(guī)約好數(shù)據(jù)的傳輸速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
異步通信數(shù)據(jù)格式
異步通信規(guī)定傳輸?shù)臄?shù)據(jù)格式由起始位(start bit)、數(shù)據(jù)位(data bit)、奇偶校驗(yàn)位(parity bit)和停止位(stop bit)組成。
- 起始位:起始位必須是持續(xù)一個比特時(shí)間的邏輯0電平,標(biāo)志傳輸一個字符的開始,接收方可用起始位使自己的接收時(shí)鐘與發(fā)送方的數(shù)據(jù)同步。
- 數(shù)據(jù)位:數(shù)據(jù)位緊跟在起始位之后,是通信中的真正有效信息。數(shù)據(jù)位的位數(shù)可以由通信雙方共同約定,一般可以是5位、7位或8位,標(biāo)準(zhǔn)的ASCII碼是0
127(7位),擴(kuò)展的ASCII碼是0255(8位)。傳輸數(shù)據(jù)時(shí)先傳送字符的低位,后傳送字符的高位。 - 奇偶校驗(yàn)位:奇偶校驗(yàn)位僅占一位,用于進(jìn)行奇校驗(yàn)或偶校驗(yàn),奇偶檢驗(yàn)位不是必須有的。如果是奇校驗(yàn),需要保證傳輸?shù)臄?shù)據(jù)總共有奇數(shù)個邏輯高位;如果是偶校驗(yàn),需要保證傳輸?shù)臄?shù)據(jù)總共有偶數(shù)個邏輯高位。
舉例來說,假設(shè)傳輸?shù)臄?shù)據(jù)位為01001100,如果是奇校驗(yàn),則奇校驗(yàn)位為0(要確??偣灿衅鏀?shù)個1),如果是偶校驗(yàn),則偶校驗(yàn)位為1(要確??偣灿信紨?shù)個1)。
由此可見,奇偶校驗(yàn)位僅是對數(shù)據(jù)進(jìn)行簡單的置邏輯高位或邏輯低位,不會對數(shù)據(jù)進(jìn)行實(shí)質(zhì)的判斷,這樣做的好處是接收設(shè)備能夠知道一個位的狀態(tài),有可能判斷是否有噪聲干擾了通信以及傳輸?shù)臄?shù)據(jù)是否同步。
- 停止位:停止位可以是是1位、1.5位或2位,可以由軟件設(shè)定。它一定是邏輯1電平,標(biāo)志著傳輸一個字符的結(jié)束。
- 空閑位:空閑位是指從一個字符的停止位結(jié)束到下一個字符的起始位開始,表示線路處于空閑狀態(tài),必須由高電平來填充。
異步通信的數(shù)據(jù)發(fā)送過程
- (1)初始化后或者沒有數(shù)據(jù)需要發(fā)送時(shí),發(fā)送端輸出邏輯1,可以有任意數(shù)量的空閑位。
- (2)當(dāng)需要發(fā)送數(shù)據(jù)時(shí),發(fā)送端首先輸出邏輯0,作為起始位。
- (3)接著就可以開始輸出數(shù)據(jù)位了,發(fā)送端首先輸出數(shù)據(jù)的最低位D0,然后是D1,最后是數(shù)據(jù)的最高位。
- (4)如果設(shè)有奇偶檢驗(yàn)位,發(fā)送端輸出檢驗(yàn)位。
- (5)最后,發(fā)送端輸出停止位(邏輯1)。
- (6)如果沒有信息需要發(fā)送,發(fā)送端輸出邏輯1(空閑位),如果有信息需要發(fā)送,則轉(zhuǎn)入步驟(2)。
異步通信的數(shù)據(jù)接收過程
在異步通信中,接收端以接收時(shí)鐘和波特率因子決定每一位的時(shí)間長度。下面以波特率因子等于16(接收時(shí)鐘每16個時(shí)鐘周期使接收移位寄存器移位一次)為例來說明。
- (1)開始通信,信號線為空閑(邏輯1),當(dāng)檢測到由1到0的跳變時(shí),開始對接收時(shí)鐘計(jì)數(shù)。
- (2)當(dāng)計(jì)到8個時(shí)鐘的時(shí)候,對輸入信號進(jìn)行檢測,若仍然為低電平,則確認(rèn)這是起始位,而不是干擾信號。
- (3)接收端檢測到起始位后,隔16個接收時(shí)鐘對輸入信號檢測一次,把對應(yīng)的值作為D0位數(shù)據(jù)。
- (4)再隔16個接收時(shí)鐘,對輸入信號檢測一次,把對應(yīng)的值作為D1位數(shù)據(jù),直到全部數(shù)據(jù)位都輸入。
- (5)檢驗(yàn)奇偶檢驗(yàn)位。
- (6)接收到規(guī)定的數(shù)據(jù)位個數(shù)和校驗(yàn)位之后,通信接口電路希望收到停止位(邏輯1),若此時(shí)未收到邏輯1,說明出現(xiàn)了錯誤,在狀態(tài)寄存器中置“幀錯誤”標(biāo)志;若沒有錯誤,對全部數(shù)據(jù)位進(jìn)行奇偶校驗(yàn),無校驗(yàn)錯時(shí),把數(shù)據(jù)位從移位寄存器中取出送至數(shù)據(jù)輸入寄存器,若校驗(yàn)錯,在狀態(tài)寄存器中置“奇偶錯”標(biāo)志。
- (7)本幀信息全部接收完,把線路上出現(xiàn)的高電平作為空閑位。
- (8)當(dāng)信號再次變?yōu)榈蜁r(shí),開始進(jìn)入下一幀的檢測。
區(qū)別
- 在同步通訊中,數(shù)據(jù)信號所傳輸?shù)膬?nèi)容絕大部分是有效數(shù)據(jù),而異步通訊中會則會包含數(shù)據(jù)幀的各種標(biāo)識符,所以同步通訊效率高。
- 同步通訊雙方的時(shí)鐘允許誤差小,稍稍時(shí)鐘出錯就可能導(dǎo)致數(shù)據(jù)錯亂,異步通訊雙方的時(shí)鐘允許誤差較大。
按照數(shù)據(jù)傳輸方向分類
- 單工:數(shù)據(jù)傳輸只支持?jǐn)?shù)據(jù)在一個方向上傳輸,如圖a所示
- 半雙工:允許數(shù)據(jù)在兩個方向上傳輸。但是,在某一時(shí)刻,只允許數(shù)據(jù)在一個方向上傳輸,它實(shí)際上是一種切換方向的單工通信;它不需要獨(dú)立的接收端和發(fā)送端,兩者可以合并一起使用一個端口,如圖b所示
- 全雙工:允許數(shù)據(jù)同時(shí)在兩個方向上傳輸。因此,全雙工通信是兩個單工通信方式的結(jié)合,需要獨(dú)立的接收端和發(fā)送端,如圖c所示
-
接收器
+關(guān)注
關(guān)注
14文章
2468瀏覽量
71871 -
移位寄存器
+關(guān)注
關(guān)注
3文章
258瀏覽量
22265 -
串口通信
+關(guān)注
關(guān)注
34文章
1624瀏覽量
55508 -
IIC接口
+關(guān)注
關(guān)注
0文章
23瀏覽量
11681 -
狀態(tài)寄存器
+關(guān)注
關(guān)注
0文章
39瀏覽量
7081
發(fā)布評論請先 登錄
相關(guān)推薦
評論