張小衛(wèi),伍 春,劉 雄,李典典
(1.西南科技大學 國防科技學院,綿陽621010;2.西南科技大學 信息工程學院,綿陽621010)
控制器局域網(wǎng)CAN(controller area network),是國際上應用最廣泛的開放式現(xiàn)場總線之一[1],廣泛用于汽車行業(yè)、航空、工業(yè)控制、車輛電子變速系統(tǒng)等。 CAN 能提供安全、有效、即時控制,能使網(wǎng)絡消息的傳輸效率高,實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信,然而CAN 總線有自身的局限性,如通信速率制約通信距離,隨著CAN 總線節(jié)點增減,會使網(wǎng)絡負荷加重,從而出現(xiàn)嚴重的網(wǎng)絡擁塞[2]。
以太網(wǎng)是基于IEEE 802.3(Ethernet)的強大的區(qū)域和單元網(wǎng)絡,在其工業(yè)控制網(wǎng)絡領域有著廣泛的運用, 工業(yè)控制網(wǎng)絡中使用以太網(wǎng)作為主干網(wǎng),通過協(xié)議轉換設備與現(xiàn)場總線連接分工,以太網(wǎng)用于匯集現(xiàn)場設備數(shù)據(jù),便于遠程控制觀測等[3]。 以太網(wǎng)具有傳輸距離遠、速度快、數(shù)據(jù)傳輸量大,然而以太網(wǎng)也有其局限性,如實時性差,因為其不僅占單片機資源還會增加開發(fā)成本,不適用于小量數(shù)據(jù)的傳輸與控制。
綜上所述, 本文綜合了CAN 總線和以太網(wǎng)優(yōu)勢,本系統(tǒng)設計實現(xiàn)了一種基于Infineon TriCore 的CAN 網(wǎng)關-Ethernet,通過CAN 網(wǎng)關局域互聯(lián),實現(xiàn)不同速率的CAN 總線節(jié)點信息交互, 增加CAN 終端接入設備數(shù)量, 降低單一CAN 總線節(jié)點負荷,通過CAN 網(wǎng)關實現(xiàn)現(xiàn)場設備局域互聯(lián)和以太網(wǎng)實現(xiàn)遠程控制與觀測,增加了工業(yè)控制的靈活性。 因此,CAN 網(wǎng)關-Ethernet 設計具有十分重要的現(xiàn)實意義。
本系統(tǒng)設計由主控器件TC264DA、4 個CAN 收發(fā)器單元、以太網(wǎng)控制器PEF7071V、上位機、系統(tǒng)復位、系統(tǒng)電源、系統(tǒng)時鐘共同組成,如圖1 所示。 4個CAN 收發(fā)單元, 對應3 種不同波特率的CAN 總線, 既有高速CAN 總線也有低速CAN 總線, 每個CAN 總線節(jié)點都配置有3 個報文對象,其中節(jié)點之間的報文對象共同組成內(nèi)部網(wǎng)關系統(tǒng),處于網(wǎng)關模式的報文對象,無需CPU 干預,實現(xiàn)CAN 總線節(jié)點之間的信息傳輸與交互,組建CAN 總線節(jié)點之間的局域通信,其中CAN 總線節(jié)點0 下的報文對象4 和CAN 總線節(jié)點3 下的報文對象7 的數(shù)據(jù),通過以太網(wǎng)與上位機建立連接,以太網(wǎng)采用TCP/IP 協(xié)議。
圖1 CAN 網(wǎng)關-Ethernet 系統(tǒng)設計框圖Fig.1 Design block diagram of CAN gateway-Ethernet system
主控器件TC264DA 選用Infineon AURIXTM系列下的擁有雙TriCore,200 MHz 主頻的單片機,TriCore 是英飛凌32 位單片機的中央處理單元,其中英飛凌AURIXTM 系列[4]和AUDO 系列都采用內(nèi)核TriCore[5]。TC264DA 擁有5 個CAN 節(jié)點、752 KB RAM 帶ECC 保護、96 KB E2PROM, 支持100 Mbit以太網(wǎng)。
本文選用2 片Infineon 公司的CAN 收發(fā)器TLE6250GV33 和2 片Philips 公司的CAN 收發(fā)器TJA1051T/3, 兩款CAN 收發(fā)器都支持最高1 Mbps總線速率和都符合ISO11898,TJA1051T/3 較同款產(chǎn)品電磁兼容性(EMC)和靜電放電(ESD)性能更佳,增強了系統(tǒng)穩(wěn)定性;TLE6250GV33 針對汽車和工業(yè)應用中的高速差分模式數(shù)據(jù)傳輸進行了優(yōu)化,并且與ISO/DIS 11898 兼容。
本系統(tǒng)使用以太網(wǎng)控制器PEF7071V, 此芯片具有引腳少, 支持全雙工或半雙工模式下10、100和1000 Mbit/s 的速度,以太網(wǎng)控制器PEF7071V 通過I2C 外接E2PROM,用于儲存芯片內(nèi)部MDIO 等寄存器的配置信息。
單片機TC264DA 的MultiCAN+模塊包含5 個CAN 節(jié)點,256 個報文對象,5 個CAN 節(jié)點共用1 套報文對象。 每個報文對象可被獨立分配到任一CAN 節(jié)點[6],每個節(jié)點可以獨立工作或者通過網(wǎng)關功能交換數(shù)據(jù)和遠程幀, 每個CAN 節(jié)點都可以接收或發(fā)送標準幀(11 位標識符)和擴展幀(29 位標識符),MultiCAN+提供了CAN v2.0B 的規(guī)范, 最高通信速率1 Mbit/s,其結構框圖如圖2 所示。 每個CAN 節(jié)點由幾個子單元組成,報文控制器處理CAN 節(jié)點之間的CAN 幀交換和處理儲存在RAM 中的報文對象,列表控制器執(zhí)行所有雙鏈報文對象列表的修改操作,僅允許列表控制器對列表結構進行修改,中斷控制邏輯采用中斷壓縮機制,實現(xiàn)了靈活的中斷處理,共有537 個來自CAN 節(jié)點和報文對象的硬件中斷源和16 個軟件啟動的中斷源, 地址譯碼器分別指向中斷控制邏輯、列表控制邏輯和報文控制器。
圖2 MultiCAN+模塊框架Fig.2 MultiCAN + module framework
CAN 網(wǎng)關模式是指在2 個獨立的CAN 總線之間建立一個不需要CPU 干預的自動信息傳輸。在網(wǎng)關模式下,把接收報文對象稱為網(wǎng)關源,把發(fā)送報文對象稱為網(wǎng)關目標,在配置好接收功能的報文對象后,再設置網(wǎng)關源報文對象功能寄存器的MMC=0100B,選擇網(wǎng)關模式,設置網(wǎng)關源報文對象功能寄存器的IDC、DLCC、DATC 分別復制接收信息的標識符(ID)、數(shù)據(jù)長度、數(shù)據(jù),IDC=1 表示網(wǎng)關源的ID復制給網(wǎng)關目標, 否則網(wǎng)關源和網(wǎng)關目標的ID 根據(jù)本報文對象配置而定, 不參與CAN 網(wǎng)關傳輸,其中GDFS=1,對應的網(wǎng)關目標的報文對象控制寄存器TXRQ 位需置位,設置網(wǎng)關源FIFO/網(wǎng)關指針寄存器TOP、BOT、CUR 選擇網(wǎng)關源指向的網(wǎng)關目標報文對象,如TOP=BOT=CUR=5,表示指向網(wǎng)關目標報文對象5。在配置好發(fā)送功能的報文對象后,再設置網(wǎng)關目標報文對象控制寄存器的NEWDAT、RXPND 位為1。 網(wǎng)關源與網(wǎng)關目標配置過程如圖3 所示。
圖3 網(wǎng)關源與網(wǎng)關目標配置過程Fig.3 Gateway source and gateway target configuration process
TCP/IP 中文名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡通訊協(xié)議[7],是Internet 最基本的協(xié)議,Internet 國際互聯(lián)網(wǎng)絡的基礎, 由網(wǎng)絡層的IP 協(xié)議和傳輸層的TCP 協(xié)議組成。 從協(xié)議分層模型方面來講,TCP/IP 由4 個層次組成:網(wǎng)絡接口層、網(wǎng)絡層、傳輸層、應用層,各個層之間的傳輸模型如圖4 所示,本文使用TCP 傳輸,利用TCP 傳輸可靠性的特點,TCP 用來傳輸控制命令。 地址解析協(xié)議(ARP),是根據(jù)IP 地址獲取物理地址的一個TCP/IP 子協(xié)議, 源主機以廣播方式將ARP 請求數(shù)據(jù)包發(fā)送出去,目的主機檢測IP 地址是否是發(fā)給自己的,如果是則目的主機回復一個ARP 應答數(shù)據(jù)包給源主機,則是告訴源主機自己的MAC 地址, 以保證通信的順利進行。 本文網(wǎng)絡傳輸實現(xiàn)部分是采用LwIP 協(xié)議棧。
圖4 TCP/IP 傳輸模型Fig.4 TCP/IP transport model
本設計采用NETCONN 編程接口完成本系統(tǒng)與上位機之間的TCP 通信, 本設計基于Erika Enterprise 實時操作系統(tǒng)[8],上位機作為客戶端模式,以太網(wǎng)控制器PEF7071V 配置為服務器模式, 其服務器端和客戶端程序流程如圖5 所示,由LwIP 內(nèi)核完成,客戶端與服務端建立TCP 3 次握手,直到接收到客戶端連接請求, 然后接收客戶端數(shù)據(jù)處理解析,最后向客戶端發(fā)送數(shù)據(jù)。
圖5 服務器和客戶端程序流程Fig.5 Flow chart of server and client programs
本系統(tǒng)測試借助于外部輸入和上位機軟件測試,外部通過STM32 的CAN 模塊產(chǎn)生2 個ID 信號輸入TC264DA 的CAN 節(jié)點0, 分別是以ID 為0x264 開頭數(shù)據(jù)為0x00 和ID 為0x182 開頭數(shù)據(jù)0x75,CAN 節(jié)點0 波特率為800 Kbps,ID 為0x264的數(shù)據(jù)直接通過報文對象1 接收處理然后通過CAN 網(wǎng)關傳給CAN 節(jié)點1 的報文對象3 發(fā)送處理,實現(xiàn)CAN 總線數(shù)據(jù)交互,CAN 節(jié)點1 波特率為40 Kbps;CAN 節(jié)點0 下的報文對象4 接收ID 為0x182 的數(shù)據(jù),通過協(xié)議轉換為TCP/IP 傳輸至上位機顯示。 上位機下發(fā)一幀CAN 數(shù)據(jù)給CAN 節(jié)點3下的報文對象7,ID 為0x222,CAN 節(jié)點3 和CAN節(jié)點2 為200 Kbps, 報文對象7 發(fā)送數(shù)據(jù),CAN 節(jié)點2 下的報文對象2 接收ID 為0x222 的數(shù)據(jù)并通過CAN 網(wǎng)關模式再傳輸給CAN 節(jié)點3 下的報文對象5,此時數(shù)據(jù)幀不變,ID 變?yōu)?x2FF 再發(fā)送,CAN節(jié)點2 下的報文對象6 接收通過網(wǎng)關再傳輸至CAN 節(jié)點1 下報文對象0, 此時報文對象0 發(fā)送給外接總線設備。主要實現(xiàn)不同波特率CAN 總線節(jié)點相互傳輸數(shù)據(jù)和相同的數(shù)據(jù)以不同的ID 在CAN 總線上相互傳輸,通過CAN 總線節(jié)點相互傳數(shù),增加CAN 總線節(jié)點接入的設備數(shù)量。
上位機使用網(wǎng)絡調(diào)試助手,TC264DA 的網(wǎng)絡模塊工作在TCP 服務器模式,上位機軟件網(wǎng)絡調(diào)試助手工作在TCP 客戶端模式。 網(wǎng)絡調(diào)試助手本地地址為192.168.0.30, 服務器端口號為23,LwIP 協(xié)議棧初始化配置中,TCP 服務器IP 地址為192.168.0.20,子網(wǎng)掩碼255.255.255.0,整個系統(tǒng)測試如圖6 所示。
圖6 系統(tǒng)測試Fig.6 System test
本文通過采用Infineon TriCore 實現(xiàn)了CAN 網(wǎng)關-Ethernet 設計,該系統(tǒng)通過CAN 網(wǎng)關組建的局域網(wǎng)可以實現(xiàn)不同速率的CAN 總線節(jié)點交互通信,并且實現(xiàn)了CAN 網(wǎng)關組建的局域網(wǎng)與上位機通過TCP/IP 協(xié)議進行數(shù)據(jù)傳輸和通信,增強其系統(tǒng)控制的靈活性和實現(xiàn)高效的數(shù)據(jù)傳輸與增加CAN 終端接入設備的數(shù)量,本系統(tǒng)的實現(xiàn)在工業(yè)控制中有著較高的工程應用價值。