應用方案

6路獨立CAN總線的實現方案作者:黃志超    發布時間:2018-11-16    被閱覽數:

  CAN(Controller Area Network)即控制器局域網,由于具有高性能、高可靠性以及簡單的網絡結構,在工業系統中越來越受到人們的重視,并迅速成為了目前國際上應用最廣泛的現場總線之一。英創公司推出了各種以支持通訊接口為特色的工控主板,ESMARC系列的主板都能夠支持2路CAN總線,為了滿足客戶現場對多路CAN總線的需求,英創公司利用主板上的ISA總線,設計出擴展4路CAN總線的擴展底板ETA704,再配合ESMARC系列主板上板載的2路CAN總線,就能夠實現6路CAN總線的方案,支持ISA總線的主板型號如下:


主板型號板載CAN總線ISA總線
ESM33542路支持
ESM68022路支持
ESM70002路支持


硬件組成


  ETA704是通過四片SJA1000和一片邏輯控制器擴展出四路CAN總線。SJA1000是一款獨立的控制器,主要用于汽車和一般工業環境中的控制器局域網絡(CAN)芯片。它是PHILIPS半導體PCA82C200 CAN控制器(BasicCAN)的替代產品,而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協議。 通過主板上的ISA總線接口,就能夠把ETA704和主板連接起來,為了方便客戶評估,ETA704設計有專用的評估底板,可通過帶線與ESMARC底板上的精簡ISA總線接口連接,同時ETA704的硬件設計,可以讓客戶方便的將ETA704作為一個可插拔的模塊嵌入在整體產品中,這樣可以獲得最佳的數據傳輸性能。對于實現CAN總線通訊所引出的接口電路,用戶可以參考相應開發評估底板的電路原理圖和PCB圖。下表是ETA704和ESMARC評估底板ISA總線連接的接口定義:


ISA總線接口信號

ISAISA總線接口信號

PIN#

PIN#

RESET#,復位,低電平有效

12

ISA_ADV#,地址鎖存,低電平有效

ISA_SD0,地址數據總線

34

ISA_SD4,地址數據總線

ISA_SD1,地址數據總線

56

ISA_SD5,地址數據總線

ISA_SD2,地址數據總線

78

ISA_SD6,地址數據總線

ISA_SD3,地址數據總線

910

ISA_SD7,地址數據總線

MSL#,模塊選擇

1112

ISA_WE#,數據寫,低電平有效

GPIO9,中斷IRQ4,上升沿有效

1314

ISA_RD#,數據讀,低電平有效

GPIO8,中斷IRQ3,上升沿有效

1516

ISA_CS#,總線片選,低電平有效

GPIO25,中斷IRQ2,上升沿有效

1718

+5V,電源輸入

GPIO24,中斷IRQ1,上升沿有效

1920

GND,公共地


  ETA704的專用評估底板將四路CAN總線接口全部引出,并且設計有帶隔離的驅動電路,可直接與設備相連進行測試。下面展示了ETA704專用評估底板將CAN總線通訊接口引出和CAN總線驅動電路的原理圖:


6路CAN總線實現方案.png


6路CAN總線實現方案.png

CAN接口和驅動電路


  由上圖可以看出,從ETA704引出的CAN總線收發管腳,通過評估底板上的磁耦器件ADuM1201隔離后,和CAN驅動芯片TJA1050連接,就組成了一個典型的CAN總線通訊電路,同時還能夠通過跳線選擇是否介入匹配電阻??蛻艨梢灾苯訁⒖糆TA704評估底板的方法進行設計。帶隔離CAN總線通訊模塊的CAN收發器端的所有信號和電源與其它部分完全隔離,可承受至少1Kv(有效值)的電壓沖擊,有效的保護了電路的安全。


軟件開發


  ETA704的驅動程序已經以模塊的形式放在文件系統中,只是沒有加載,因此在需要使用時,可通過加載文件系統中的ko文件eta704_of_platform.ko來激活ETA704,通過modprobe命令就可以方便的加載驅動了:


6路CAN總線實現方案.png

加載驅動


  ESMARC系列主板自帶有2路CAN總線,在系統中為can0、can1節點,所以加載完驅動程序后,系統就會識別出can2-can5,如下圖:


6路CAN總線實現方案.png

CAN總線節點


  ETA704的驅動程序接口和標準socketcan完全一致,因此用戶使用擴展CAN總線的方式和標準CAN接口保持不變,即使用標準的socketcan編程。在此基礎上,客戶可利用英創公司提供的基本CAN通訊應用程序源代碼,快速評估四CAN擴展單元的基本性能是否滿足其具體的應用需求。只是需要注意CAN設備名稱的序號,對于擴展網絡ETA704所接出的四路CAN接口分別對應can2-can5。對于socketcan接口的詳細說明可以參考專門的資料和英創公司的介紹:《Linux Socket CAN驅動簡介》。

Go Top
云南快乐十分