我們都知道在現(xiàn)實(shí)應(yīng)用中,各種控制器之間需要進(jìn)行數(shù)據(jù)交換,而大部分的數(shù)據(jù)交換都是通過(guò)串行通信實(shí)現(xiàn)的。如今,串行通信已經(jīng)發(fā)展的比較成熟,如RS232,RS485,CAN,SPI,IIC,USB等都是常見(jiàn)的串行通信技術(shù)。 RS232的通信協(xié)議與微控制器uart串口通信協(xié)議(我們常說(shuō)的“數(shù)據(jù)鏈路層”)一致,只是電平在‘0’,‘1’的定義上(我們常說(shuō)的“物理層”)有所差別。uart中端口對(duì)GND低電平代表‘0’,端口對(duì)GND高電平(+5V)代表‘1’,而RS232中用-15V~-3V代表邏輯1,3V~15V代表邏輯0。物理層對(duì)邏輯0,1電壓的限制比較高,同時(shí)是單線電平信號(hào),抗干擾能力表弱,不適用與長(zhǎng)距離通信。雖然uart支持多機(jī)通信,但是RS232一般用在短距離點(diǎn)對(duì)點(diǎn)通信的應(yīng)用場(chǎng)合(可能是通信距離短組建不了多機(jī)通信網(wǎng)絡(luò)吧)。
本文引用地址:http://m.butianyuan.cn/article/201612/330101.htm RS485是應(yīng)用在多機(jī)通信應(yīng)用比較多的通信方式。在工業(yè)控制中,RS485的“數(shù)據(jù)鏈路層”也是基于Uart上的,只不過(guò)在“物理層”的邏輯‘0’,‘1’定義上是采用差分信號(hào)的。RS485一般有AB兩根線,當(dāng)A-B=2V~6V為邏輯1,A-B=-2V~-6V為邏輯0。由于RS485采用差分信號(hào)傳輸數(shù)據(jù),抗干擾能力強(qiáng),傳輸距離遠(yuǎn)。由RS485協(xié)議組建的多機(jī)通信網(wǎng)絡(luò)中,一般有一個(gè)主機(jī),N(N<31)個(gè)從機(jī)構(gòu)成。由于只有兩個(gè)差分信號(hào)線為通信線,所以RS485通信是半雙工的,從機(jī)不能主動(dòng)提出發(fā)送請(qǐng)求,需要主機(jī)輪詢到該從機(jī)的時(shí)候,該從機(jī)才能進(jìn)行數(shù)據(jù)發(fā)送。
Can總線技術(shù)是另一類(lèi)多機(jī)串行通信技術(shù)。CAN通信技術(shù)可以組建多達(dá)110多個(gè)點(diǎn)的多點(diǎn)通信網(wǎng)絡(luò)。這里插入一份開(kāi)放系統(tǒng)互連模型的分層定義表。
Can總線的在物理層與RS485類(lèi)似,也是采用兩根數(shù)據(jù)線CANH,CANL傳輸差分信號(hào),CANH-CANL=0代表隱性(相當(dāng)于邏輯1),CANH-CANL有一個(gè)比較大的差值時(shí)代表顯性(相當(dāng)于邏輯0)。具體數(shù)據(jù)鏈路層的定義與RS485有著比較大的差別,CAN總線是采用發(fā)送報(bào)文的形式進(jìn)行數(shù)據(jù)傳輸?shù)?,每一?bào)文里都包含有11位或者29位的標(biāo)識(shí)碼作為發(fā)送起始幀。can總線采用的是位仲裁機(jī)制,當(dāng)一個(gè)點(diǎn)發(fā)送占用總線發(fā)送標(biāo)識(shí)碼后改點(diǎn)會(huì)檢測(cè)總線的狀態(tài),如果發(fā)送的為隱性位,而檢測(cè)到總線為顯性位,說(shuō)明有其他點(diǎn)發(fā)送更高優(yōu)先級(jí)標(biāo)識(shí)碼,這個(gè)點(diǎn)會(huì)自動(dòng)退出發(fā)送狀態(tài),將總線讓給發(fā)送高優(yōu)先級(jí)標(biāo)識(shí)碼的點(diǎn)。從這里我們可以發(fā)現(xiàn),標(biāo)識(shí)碼越小優(yōu)先級(jí)越高的特點(diǎn)。Can總線技術(shù)相對(duì)RS485技術(shù)具有很多優(yōu)點(diǎn):1。CAN總線上所有點(diǎn)都可以是主機(jī),只要總線空閑可在任意時(shí)刻向總線發(fā)送數(shù)據(jù)(內(nèi)部具有總線沖突仲裁機(jī)制),增加數(shù)據(jù)通信的實(shí)時(shí)性。2.通信距離遠(yuǎn),組件網(wǎng)絡(luò)比較大,通信速度快。目前用專(zhuān)用的CAN通信控制器實(shí)現(xiàn)CAN通信,有些高檔的MCU也具備CAN通信模塊。
評(píng)論