開發周期短
CAN總線通過CAN收發器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。這就保證不會再出現在RS-485網絡中的現象,即當系統有錯誤,出現多節點同時向總線發送數據時,導致總線呈現短路,從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現像在網絡中,因個別節點出現問題,使得總線處于'死鎖'狀態。而且,CAN具有的完善的通信協議可由CAN控制器芯片及其接口芯片來實現,從而大大降低系統開發難度,縮短了開發周期,這些是僅有電氣協議的RS-485所無法比擬的。
發送進程CAN控制器SJA1000發送端發出的數據傳送給光發送器HFBR21414T的信號輸入端,經HFBR21414T轉換成光信號,通過光纖傳輸到集成光接收HFBR22412T。由HFBR22412T的信號輸出端直接輸出CAN總線可辨認的TTL電平信號,再接到CAN總線收發器82C250的發送端TXD,后由82C250的CANH,CANL掛接到總線上。21312接收進程CAN總線上的數據通過CAN總線收發器82C250的接收端RXD傳送到光發送器HFBR21414T的信號輸入端,經HFBR21414T轉換成光信號,通過光纖傳輸到集成光接收HFBR22412T,由HFBR22412T的信號輸出端直接輸出CAN總線可辨認的TTL電平信號,然后接SJA1000的接收端RX0(其中SJA1000的RX1接參考電壓215V)。
再回到開始,首先這樣的網絡規劃是非常不合理的,等于是網絡上出現了A和B兩個對某一幀功能相同的節點,完全沒必要,如果你要更新某個信號,只需讓A節點重新發送新的即可,如果更新的信號是通過B節點模塊更新的,也只需先通過B向A發送一個幀更新某個信號,然后A再重新發送更新的幀。
如果你兩個節點關聯同一個幀,以后加入新節點和升級改動網絡的時候會多一倍的工作量,而且再遠程幀的響應中,同ID多響應很容易出現問題。
總之一句話,我們要從總線的角度去看待CAN,不要從節點的角度出發。
如果需要進一步提高系統的抗干擾能力,還可以在控制器和傳輸介質之間加接光電隔離,電源采用DC-DC變換器等措施。這樣可方便構成實時分布式測控系統。微控制器,或選用一般的微控制器加上獨立的CAN控制器來完成節點功能。傳輸介質可采用雙絞線、同軸電纜或光纖。如果需要進一步提高系統的抗干擾能力,還可以在控制器和傳輸介質之間加接光電隔離,電源采用DC-DC變換器等措施。這樣可方便構成實時分布式測控系統。