EM335x工控主板多路CAN總線擴展方案介紹
CAN(Controller Area Network)即控制器局域網(wǎng),由于具有高性能、高可靠性以及簡單的網(wǎng)絡(luò)結(jié)構(gòu),在工業(yè)系統(tǒng)中越來越受到人們的重視,并迅速成為了目前國際上應(yīng)用最廣泛的現(xiàn)場總線之一。EM335x核心板已經(jīng)自帶了兩路CAN總線,默認的配置為一路CAN總線,如果需要兩路CAN總線,可以在購買的時候特別注明。為了豐富EM335x核心板的擴展資源并且滿足客戶對高效、低成本的多CAN總線擴展需求,英創(chuàng)公司推出利用精簡ISA總線接口的四路CAN總線擴展單元ETA704。客戶可以直接使用ETA704或者參考ETA704進行設(shè)計,在EM335x工控主板自帶的兩路CAN總線的基礎(chǔ)上利用ISA總線再擴展出更多的CAN總線,構(gòu)成多路CAN總線的嵌入式系統(tǒng)。
硬件組成
ETA704是基于EM335x工控主板的四路CAN總線擴展模塊,通過四片SJA1000和一片邏輯控制器擴展出四路CAN總線。SJA1000是一款獨立的控制器,主要用于汽車和一般工業(yè)環(huán)境中的控制器局域網(wǎng)絡(luò)(CAN)芯片。它是PHILIPS半導(dǎo)體PCA82C200 CAN控制器(BasicCAN)的替代產(chǎn)品,而且它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協(xié)議。
ETA704的硬件設(shè)計,可以讓客戶方便的將ETA704作為一個可插拔的模塊嵌入在整體產(chǎn)品中,這樣可以獲得最佳的數(shù)據(jù)傳輸性能。對于實現(xiàn)CAN總線通訊所引出的接口電路,用戶可以參考相應(yīng)開發(fā)評估底板的電路原理圖和PCB圖。下圖是ETA704和EM335x核心板ISA總線連接的接口定義:
根據(jù)上圖CN1的信號定義,RESET信號為ISA總線輸出的復(fù)位信號,低電平有效。在核心板系統(tǒng)啟動的過程中會輸出一個低電平給ETA704復(fù)位兩個DM9000控制器,保證不管是上電還是復(fù)位,都會對SJA1000進行硬件復(fù)位操作。MSL#信號主要是為了支持使用兩片ETA704擴展而設(shè)計的,在一般的情況下使用一片ETA704進行擴展,將這個管腳懸空即可,如果需求用兩片ETA704擴展,MSL#管腳則需要接地。而IRQ1-IRQ4則分別為四片SJA1000的中斷信號,在EM335x開發(fā)評估底板中,IRQ1接到GPIO24、IRQ2接到GPIO25,IRQ3接到GPIO8, IRQ4接到GPIO9,可參照下列表格,中斷為低電平有效。其余的信號都為EM335x主板的ISA標(biāo)準(zhǔn)信號。
關(guān)于EM335x工控主板的ISA總線具體的讀寫操作時序可以參考手冊和文章:EM335x精簡ISA擴展總線地址總線的使用。
為了方便客戶評估,ETA704設(shè)計有專用的評估底板,可通過帶線與EM335x底板上的精簡ISA總線接口連接,并且將四路CAN總線接口引出,可直接與設(shè)備相連進行測試。下圖展示了ETA704評估底板將CAN總線通訊接口引出部分的原理圖:
由上圖可以看出,從ETA704引出的CAN總線收發(fā)管腳,通過評估底板上的磁耦器件ADuM1201隔離后,和CAN驅(qū)動芯片TJA1050連接,就組成了一個典型的CAN總線通訊電路,客戶也可以直接參考ETA704評估底板的方法進行設(shè)計。帶隔離CAN總線通訊模塊的CAN收發(fā)器端的所有信號和電源與其它部分完全隔離,可承受至少1Kv(有效值)的電壓沖擊,有效的保護了電路的安全。需要注意的是如果扁平帶線過長,會影響高速信號的完整性,所以在評估時使用的連接線盡量短一些,避免出現(xiàn)問題。
應(yīng)用程序開發(fā)
ETA704的驅(qū)動程序已經(jīng)以模塊的形式放在文件系統(tǒng)中,只是沒有加載,因此在需要使用該多網(wǎng)絡(luò)擴展時,可通過加載文件系統(tǒng)中的ko文件sja1000.ko和sja1000_of_platform.ko來激活ETA704:
EM335x自帶有一路CAN總線,在系統(tǒng)中為can0節(jié)點,所以加載完驅(qū)動程序后,系統(tǒng)就會識別出can1-can4(如果使用的雙CAN接口配置,自帶的CAN接口占用了can0-can1,那么加載了ETA704的驅(qū)動后,則會識別成can2-can5),如下圖:
ETA704的驅(qū)動程序和標(biāo)準(zhǔn)socketcan完全一致,因此用戶使用擴展CAN總線的方式和EM335x板卡上的CAN接口完全保持不變,即使用標(biāo)準(zhǔn)的socketcan編程。在此基礎(chǔ)上,客戶可利用英創(chuàng)公司提供的基本CAN通訊應(yīng)用程序源代碼,快速評估四CAN擴展單元的基本性能是否滿足其具體的應(yīng)用需求。只是需要注意CAN設(shè)備名稱的序號,對于擴展網(wǎng)絡(luò)ETA704所接出的四路CAN接口分別對應(yīng)can1-can4(雙CAN配置的核心板則為can2-can5)??蛻艨梢灾苯訁⒖脊獗P中的測試程序test_socketcan、test_can_filter和test_can_rcv。
測試情況
為了測試ETA704擴展出的CAN總線通訊能力,英創(chuàng)公司做了一些測試。使用ETA704擴展模塊,在四路CAN總線同時啟用的情況下進行發(fā)送測試,測試所使用的波特率為1Mbit/s,發(fā)送的數(shù)據(jù)為標(biāo)準(zhǔn)幀,發(fā)送500萬個測試包,測試結(jié)果如下:
可以看到,擴展出來的四路CAN接口均使用的1113秒的時候來發(fā)送完成500萬個包,也就是每毫秒能夠發(fā)送4.49個包。
下面來看接收數(shù)據(jù)測試,使用另外的四張EM335x核心板,同時向ETA704擴展出來的四路CAN總線發(fā)送測試數(shù)據(jù),測試數(shù)據(jù)為標(biāo)準(zhǔn)幀,2000萬個包,波特率還是采用1Mbit/s,大約每毫秒發(fā)送2-3個包,測試結(jié)果如下圖:
can1:
can2:
can3:
can4:
CAN接口每收到10萬個包,就會打印一次信息,可以看出,四路擴展CAN總線在每毫秒接收2-3個包的情況下,均接收到了2000萬個包,丟包率小于5*10-8分之一。
提交
Windows下STM32單片機eclipse編譯環(huán)境搭建
Android Studio應(yīng)用開發(fā)簡介
WinCE工控主板WiFi解決方案
敬請關(guān)注成都英創(chuàng)微信公眾號
WinCE工控主板通過PPI協(xié)議連接西門子PLC