CAN總線系列講座第五講——CAN總線硬件電路設計
一 實戰學習背景
CAN總線節點的硬件構成方案有兩種,其中的方案:
(1)、MCU控制器+獨立CAN控制器+CAN收發器。獨立CAN控制器如SJA10000、MCP2515,其中MCP2515通過SPI總線和MCU連接,SJA1000通過數據總線和MCU連接。
該方案編寫的CAN程序是針對獨立CAN控制器的,程序可移植性好,編寫好的程序可以方便的移植到任意的MCU。但是,由於采用了獨立的CAN控制器,占用了MCU的I/O資源,並且電路變得復雜。
為了增強針對性,選擇”51系列單片機+ SJA1000”的CAN總線節點的硬件構成方案,做入門介紹.
二 51系列單片機CAN總線學習板硬件電路設計
51系列單片機CAN總線學習板采用STC89C52RC作為節點的微處理器。在 CAN 總線通信接口中采用PHILIPS 公司的“獨立CAN總線通信控制器SJA1000” 和“高性能CAN總線收發器TJA1040”芯片。圖1為51系列單片機CAN總線學習板硬件電路原理圖。從圖中可以看出,電路主要由七部分構成:微控制器STC89C52RC、獨立 CAN 通信控制器 SJA1000、 CAN 總線收發器TJA1040、DC/DC電源隔離模塊、高速光電耦合器 6N137、串口芯片MAX232電路、按鍵及LED燈顯示電路。
STC89C52RC初始化SJA1000后,通過控制 SJA1000 實現數據的接收和發送等通信任務。SJA1000 的 AD0~AD7 連接到STC89C52RC的 P0 口,其CS引腳連接到STC89C52RC的 P2.7, P2.7為低電平“0”時,單片機可選中SJA1000,單片機通過地址可控制SJA1000執行相應的讀寫操作。SJA1000 的 RD、 WR、 ALE 分別與STC89C52RC的對應引腳相連。SJA1000 的INT引腳接STC89C52RC的 INT0,STC89C52RC可通過中斷方式訪問SJA1000。
為了增強CAN總線的抗干擾能力,SJA1000的TX0和RX0引腳通過高速光耦 6N137與TJA1040的引腳TXD和RXD 相連,這樣能夠實現總線上各CAN節點間的電氣隔離。需要特別注意一點:光耦部分電路所采用的兩個電源VCC和CAN_V 必須完全隔離,否則采用光耦也就失去了意義。電源的完全隔離可采用小功率電源隔離模塊,51系列單片機CAN總線學習板選用B0505D-1W電源隔離模塊。這些電路雖然增加了CAN節點的復雜程度,但是提高了CAN節點的穩定性和安全性。
TJA1040與CAN總線的接口部分采用了一定的安全和抗干擾措施:TJA1040的CANH 和CANL 引腳各自通過一個5歐姆的電阻與 CAN 總線相連,電阻可起到一定的限流作用,保護TJA1040 免受過流的沖擊。CANH和CANL與地之間分別並聯了一個30P的電容,可以起到濾除總線上的高頻干擾的作用,也具有一定的防電磁輻射的能力。另外,在兩根CAN總線接入端與地之間分別反接了一個保護二極管IN4148,當 CAN 總線有較高的負電壓時,通過二極管的短路可起到一定的過壓保護作用。
串口芯片MAX232電路用於“51系列單片機CAN總線學習板”下載程序,也可以實現CAN總線轉232串口數據轉換功能。