CAN總線+單片機實現(xiàn)通信網(wǎng)絡設計
完全符合ISO11898國際標準的CAN總線物理層專用接口電路有多種,這里僅以CAN總線通用接口電路PCA82C250為例對這類接口芯片作以說明。PCA82C250的引腳圖如圖1所示。各功能引腳如下:
1腳:欲發(fā)送數(shù)據(jù)的輸入端;
2腳:電源地端;
3腳:電源端;
4腳:接收數(shù)據(jù)的輸出端;
5腳:參考電壓的輸出端;
7腳:高電平CAN總線輸入/輸出端;
8腳:總線脈沖斜率控制電阻連接端。
PCA82C250可以提供對總線數(shù)據(jù)的差動發(fā)送能力和對通信總線數(shù)據(jù)的差動接收能力。其引腳8較為特殊,該引腳用于選擇電路自身的工作方式;高速、斜率控制和待機。該腳接地時,PCA82C250工作于高速通信方式;接一個一定阻值的電阻器后再接地,用于控制發(fā)送數(shù)據(jù)脈沖的上升和下降斜率(斜率正比于引腳8上的電流值),用以減少射頻干擾;該腳接高電平時,電路進入低電流待機狀態(tài)。在這種方式下,發(fā)送器被關閉,接收器轉至低電流工作,但接收器仍可對CAN總線上的“顯性”位做出。
如果PCA82C250處于通信總線的網(wǎng)絡終端,在總線上需要加一個120Ω左右的匹配電阻。
4 應用實例
以Atmal AT89C55型單片機為例,AT89C55與RS-485總線接口電路及AT89C55與CAN總線物理層專用接口電路的對比連接圖如圖2所示。
由圖2的對比中可以看出,PCA82C250與AT89C55的硬件連接比MAX485與AT89C55的硬件連接還要簡單,因為,PCA82C250的通信過程無需接收與發(fā)送的硬件轉換控制,僅由軟件來控制接浮時,CAN總線表現(xiàn)為“隱性”位數(shù)值,即CANH和CANL為懸浮態(tài)(VCAHN≈CANL≈VCC/2,相當于關閉總線),這為具有“休眠”功能的系統(tǒng)提供了網(wǎng)絡安全保障;當TXD端輸入為低電平時,CAN總線表現(xiàn)為“顯性”位數(shù)值(向總線傳送有效數(shù)據(jù)位),即CANH輸出高電壓(約3.5V,當VCC為5V時)、CANL輸出低電平(約1.5V,當Vcc為5V時)。顯然,在多主機條件下,“顯性”位和“隱性”位的引入,可在總線上實現(xiàn)非破壞性總線仲裁,以裁決哪一個主設備應是下一個占有總線的設備。由于沒有用到PCA82C250參考電壓的輸出值,因此,PCA82C250的5腳可懸空,而8腳所接的電阻RS用于控制CAN總線的輸出脈沖的上升、下降沿的斜率,以降低總線的射頻干擾。當RS上的電阻大于0.75CC時,PCA82C250芯片進入低功耗待機狀態(tài);當RS上的電壓小于0.3Vcc時,PCA82C250進入高速通信狀態(tài);當RS上的電壓處于0.4Vcc至0.6Vcc之間時,PCA82C250進入CAN總線輸出脈沖上升、下降沿的斜率控制通信狀態(tài),其斜率大小與RS上的電壓成正比。
圖2中,二個通信系統(tǒng)的軟件幾乎相同。當采用PCA82C250的作為總線接口替代原有的MAX485時,在軟件上所做的變更有:首先,可取消RS-485總線的通信方向控制指令部分,因為CA7402097N總線接口已不需要此功能;其次,RS-485總線在總線發(fā)送時,由于發(fā)送、接收控制端已連接在一起,即自動關閉了總線數(shù)據(jù)接收功能,而CAN總線接口在總線數(shù)據(jù)發(fā)送的同時也在進行總線數(shù)據(jù)的接收(CAN總線接口不提供通信接收、發(fā)送數(shù)據(jù)的分離控制功能),因此,在軟件設計上對此應有所考慮。當然,這為多機通信系統(tǒng)中的總線數(shù)據(jù)沖突的軟件識別與仲裁提供了條件。
當需要MCU與通信網(wǎng)絡之間的電氣隔離時,可在MCU與CAN總線的物理層專用接口電路之間增加2個光電隔離器件(如6N137光電隔離電路),即可實現(xiàn)MCU與通信網(wǎng)絡之間的電氣隔離。
5 結論
軟件上僅做少許修改,甚至不修改原有的RS-485總線的通信軟件就能適應新的系統(tǒng)工作。必要時通過修改原有的RS-485總線的通信軟件即可實現(xiàn)多主式多機數(shù)據(jù)通信,充分利用了CAN總線物理層的優(yōu)勢。在硬件方面,能夠以簡單的形式、較低的價格、較高的性能構造出極具競爭力的分布式測控系統(tǒng),使多機互連的分布式測控系統(tǒng)的通信網(wǎng)絡性能得以提升。
評論