⑴ 單片機串列通訊與並行通訊區別
單片機串列通訊與並行通訊區別
一條信息的各位數據被逐位按順序傳送的通訊方式稱為串列通訊。串列通訊的特點是:數據位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,成本低但送速度慢。串列通訊的距離可以從幾米到幾千米。 根據信息的傳送方向,串列通訊可以進一步分為單工、半雙工和全雙工三種。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工。 串列通訊又分為非同步通訊和同步通訊兩種方式。在單片機中,主要使用非同步通訊方式。
串列通訊中,兩個設備之間通過一對信號線進行通訊,其中一根為信號線,另外一根為信號地線,信號電流通過信號線到達目標設備,再經過信號地線返回,構成一個信號迴路。
初級讀者會產生疑問:為何不讓信號電流從電源地線返回?答案:公共地線上存在各種雜亂的電流,可以輕而易舉地把信號淹沒。因此所有的信號線都使用信號地線而不是電源地線,以避免干擾。
這一對信號線每次只傳送1bit(比特)的信號,比如1Byte(位元組)的信號需要8次才能發完。傳輸的信號可以是數據、指令或者控制信號,這取決於採用的是何種通訊協議以及傳輸狀態。串列信號本身也可以帶有時鍾信息,並且可以通過演算法校正時鍾。因此不需要額外的時鍾信號進行控制。
並行通訊中,基本原理與串列通訊沒有區別。只不過使用了成倍的信號線路,從而一次可以傳送更多bit的信號。
並行通訊通常可以一次傳送8bit、16bit、32bit甚至更高的位數,相應地就需要8根、16根、32根信號線,同時需要加入更多的信號地線。比如傳統的PATA線路有40根線,其中有16根信號線和7根信號地線,其他為各種控制線,一次可以傳送2Byte的數據。並行通訊中,數據信號中無法攜帶時鍾信息,為了保證各對信號線上的信號時序一致,並行設備需要嚴格同步時鍾信號,或者採用額外的時鍾信號線。
通過串列通訊與並行通訊的對比,可以看出:串列通訊很簡單,但是相對速度低;並行通訊比較復雜,但是相對速度高。更重要的是,串列線路僅使用一對信號線,線路成本低並且抗干擾能力強,因此可以用在長距離通訊上;而並行線路使用多對信號線(還不包括額外的控制線路),線路成本高並且抗干擾能力差,因此對通訊距離有非常嚴格的限制。
⑵ 單片機串列通信SM2怎麼用
SM2多機通訊控制位:
SM2=0 時,只能進行點對點通訊
SM2=1 時,可以進行多機通訊,與通訊的第9位數據配合;
這第9位信息方式1沒有;
所以方式1下通常SM2=0 ,只進行點對點通訊;
方式1下,將接收移位寄存器中的8位數據存入串列口數據緩沖器SBUF,收到的停止位被裝入RB8。
方式2、方式3:為9位非同步通訊,發送、接收一幀信息由11位組成,即起始位1位(0)、數據8位(低位在前)、1個可編程位(第9位)、1個停止位(1)。
當通訊的第9位信息是1時,代表是地址幀信息;
當通訊的第9位信息是0時,代表是數據幀信息;
通訊完成後,接受方在9位數據收齊之後,還必須同時滿足以下兩個條件,這次接收才被真正確認:
——RI=0(上次裝入SBUF的數據已被取走);
——SM2=0或接收到的第9位RB8為1
當滿足這兩個條件時,將接收移位寄存器中的8位數據裝入串列口數據緩沖器SBUF,使接收中斷標志RI置1。
若這兩個條件不滿足,則所接收的數據無效,串列口接著又開始尋找下一個起始位,准備接收下一幀數據。