CAN中繼器是大型CAN網(wǎng)絡(luò)中經(jīng)常用到的設(shè)備,它可以延長傳輸距離,改變拓撲結(jié)構(gòu)和隔離干擾,但也增加了設(shè)計成本。有人說,只要2顆CAN收發(fā)器芯片就可以實現(xiàn)CAN中繼功能。到底行不行呢?
一、CAN收發(fā)器簡介
ISO 11898是一個使用CAN總線協(xié)議的汽車內(nèi)高速通訊國際標(biāo)準(zhǔn)。CAN收發(fā)器是協(xié)議中數(shù)據(jù)鏈路層和物理層的接口部分。常見的CAN收發(fā)器芯片有NXP(原Philips)的PCA82C250/251、TJA1050/1051等型號。由于PCA82C250和TJA1050總體的引腳和功能都兼容,所以我們下文以TJA1050為例。
二、2顆CAN收發(fā)器芯片的錯誤方案分析
首先,簡單介紹一下TJA1050。如圖1,TJA1050一共有8個引腳,TXD為發(fā)送數(shù)據(jù),RXD接收數(shù)據(jù),VCC接5V電壓,GND接地。CANH和CANL為CAN的兩路差分輸出。8腳為CAN總線模式選擇,5腳為參考地。
圖1
RXD和TXD想必大家都非常熟悉,在RS-232協(xié)議中,只要把兩個設(shè)備的RS-232的TXD和RXD交叉連接,GND共地,兩個設(shè)備便可以實現(xiàn)通信。于是有人想到,如果把2顆TJA1050芯片的TXD和RXD也交叉連接,是否能實現(xiàn)中繼功能呢?
如圖2電路,看上去貌似可行,但是實際上此電路是無法使用的。
假如將此電路接入CAN總線,當(dāng)有顯性電平從TJA1050(A)進入時,TJA1050(A)的RXD=0,同時TJA1050(B)的TXD=0,TJA1050(B)的CAN輸出顯性電平。由于芯片的自反饋,TJA1050(B)會讀入顯性電平將RXD=0,同時TJA1050(A)的TXD=0,如此持續(xù)下去。由于TJA1050有TXD腳的顯性保護功能(PAC8250無此功能),當(dāng)超過允許最大的TXD顯性時間之后,CAN收發(fā)器將會被禁能。
圖2
三、CAN中繼器正確的設(shè)計方案
如圖4為CAN中繼器的硬件框圖,主要由MCU和CAN控制器、CAN收發(fā)器組成。MCU負責(zé)數(shù)據(jù)的緩存和轉(zhuǎn)發(fā),CAN控制器將數(shù)據(jù)轉(zhuǎn)換成CAN幀格式,最終通過CAN收發(fā)器接入CAN網(wǎng)絡(luò)。大多的MCU已集成了CAN控制器在芯片內(nèi),比如NXP的LPC2119。
圖3
CAN控制器和CAN收發(fā)器之間通過光耦隔離,CAN收發(fā)器驅(qū)動采用帶隔離的DC-DC模塊。這樣,不僅實現(xiàn)了兩路CAN接口之間的電氣隔離,也實現(xiàn)了中繼器和總線的隔離。雖然這在一定程度上增加了中繼器硬件的復(fù)雜性和成本,但卻是值得的。或者可以用致遠電子的CTM1051KT為代表的隔離CAN收發(fā)器,內(nèi)部包含隔離DC-DC、信號隔離電路、CAN總線收發(fā)電路、基礎(chǔ)的總線防護等。同傳統(tǒng)的設(shè)計相比,CTM系列具備更高的集成度、更高的可靠性和更具競爭力的價格,能夠幫助使用者降低整體的設(shè)計風(fēng)險和采購成本。
圖4
四、智能CAN網(wǎng)橋中繼器
ZLG致遠電子CAN隔離網(wǎng)橋中繼器集線器系列,具有2個或者4個電氣隔離的CAN總線接口,能實現(xiàn)CAN-bus網(wǎng)絡(luò)的中繼功能,能將不同速率的CAN網(wǎng)絡(luò)之間的數(shù)據(jù)存儲轉(zhuǎn)發(fā)。主要應(yīng)用如下:
?。?)使用該系列產(chǎn)品可達到增加負載節(jié)點和延長通信距離的作用,實現(xiàn)網(wǎng)絡(luò)中繼擴容的功能;
?。?)可獨立任意配置每個通道的通訊波特率,實現(xiàn)不同通信波特率的CAN網(wǎng)絡(luò)互聯(lián);
?。?)該系列產(chǎn)品具有強大的ID過濾轉(zhuǎn)換和數(shù)據(jù)轉(zhuǎn)換功能,精確的驗收ID配置使CAN總線的負荷降到最低?;蛘咦兓囟ǖ腎D和數(shù)據(jù),實現(xiàn)去除干擾數(shù)據(jù)和區(qū)別不同設(shè)備的目標(biāo);
?。?)具有強大的抗干擾能力,當(dāng)用戶的設(shè)備CAN受到強干擾導(dǎo)致死機或者損壞,接上該系列產(chǎn)品后,可以隔離干擾保護設(shè)備正常運行。
圖5