單片機(jī)串行通信基礎(chǔ):同步通信和異步通信
在計(jì)算機(jī)系統(tǒng)中,CPU和外部通信有兩種通信方式:并行通信和串行通信。并行通信,即數(shù)據(jù)的各位同時(shí)傳送;串行通信,即數(shù)據(jù)一位一位順序傳送。
串行通信的分類
按照串行數(shù)據(jù)的時(shí)鐘控制方式,串行通信可分為同步通信和異步通信兩類。
1. 異步通信(Asynchronous Communication)
在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)均是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨(dú)立的時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步。
在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端是何時(shí)開始發(fā)送,何時(shí)結(jié)束發(fā)送的。字符幀格式是異步通信的一個(gè)重要指標(biāo)。
字符幀(Character Frame)
字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位等4部分組成,
波特率(baud rate)
異步通信的另一個(gè)重要指標(biāo)為波特率。
波特率為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒。波特率用于表征數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸速度越快。但波特率和字符的實(shí)際傳輸速率不同,字符的實(shí)際傳輸速率是每秒內(nèi)所傳字符幀的幀數(shù),和字符幀格式有關(guān)。
2. 同步通信(Synchronous Communication)
同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個(gè)數(shù)據(jù)字符,如圖8.4所示。圖8.4(a)為單同步字符幀結(jié)構(gòu),圖8.4(b)為雙同步字符幀結(jié)構(gòu),但它們均由同步字符、數(shù)據(jù)字符和校驗(yàn)字符CRC三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。