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