CAN總線協(xié)議到EtherCAT從站協(xié)議的轉(zhuǎn)換網(wǎng)關(guān)設(shè)計
3 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件設(shè)計
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件由EtherCAT從站通信處理模塊和CAN總線主站通信處理模塊組成。CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件在功能上實現(xiàn)EtherCAT從站通信協(xié)議和CAN總線主站通信協(xié)議功能。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)軟件基于不帶操作系統(tǒng)的硬件平臺,采用C語言編寫。應(yīng)用程序各任務(wù)串行執(zhí)行,可以直接操作硬件的中斷和定時器,保證了任務(wù)執(zhí)行的速度和系統(tǒng)的性能。
3.1 EtherCAT從站報文幀結(jié)構(gòu)
EtherCAT協(xié)議數(shù)據(jù)直接使用以太網(wǎng)數(shù)據(jù)幀傳輸,數(shù)據(jù)幀類型為0x88A4。數(shù)據(jù)區(qū)最大可達1 498字節(jié)。數(shù)據(jù)區(qū)由1個或多個EtherCAT子報文組成,每個子報文對應(yīng)獨立的設(shè)備或從站存儲區(qū)域。EtherCAT從站子報文幀結(jié)構(gòu)如圖3所示。本文引用地址:http://2s4d.com/article/153523.htm
每個EtherCAT子報文包括子報文頭、數(shù)據(jù)區(qū)和相應(yīng)的工作計數(shù)器(Working Counter,WKC)。發(fā)送子報文的WKC初始值為0,子報文被CAN /EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)正確處理后,增加一個增量,主站根據(jù)WKC是否正確,來判斷該子報文是否被正確響應(yīng)。
3.2 EtherCAT從站通信處理模塊
EtherCAT從站通信處理模塊實現(xiàn)與EtherCAT主站之間的通信,EtherCAT從站通信處理模塊以EtherCAT從站控制器為核心,從站協(xié)議控制器實現(xiàn)EtherCAT數(shù)據(jù)的接收、發(fā)送以及錯誤處理。從站MCU操作EtherCAT從站協(xié)議控制器,實現(xiàn)應(yīng)用層協(xié)議。
EtherCAT協(xié)議有2種數(shù)據(jù)交換形式:一種是周期性過程數(shù)據(jù)通信,另一種是非周期性郵箱數(shù)據(jù)通信。周期性過程數(shù)據(jù)通信用來傳輸數(shù)據(jù)刷新率要求較高的輸入輸出數(shù)據(jù),非周期性郵箱數(shù)據(jù)通信則用來配置或讀取從站的參數(shù)信息。
自動化控制系統(tǒng)中,系統(tǒng)一般要求先采集下面設(shè)備的輸入數(shù)據(jù),對輸入數(shù)據(jù)進行相應(yīng)的邏輯處理,然后產(chǎn)生輸出控制信號,發(fā)送到輸出設(shè)備。EtherCAT協(xié)議的狀態(tài)機通信模式很好地解決了這個問題,保證了通信的安全可靠。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)支持4種狀態(tài):初始化(Init)、預(yù)運行(Pre-Operational)、安全運行(Safe-Operational)和運行(Operation al)。各狀態(tài)之間的轉(zhuǎn)換關(guān)系如圖4所示。狀態(tài)機依次在不同的狀態(tài)及狀態(tài)轉(zhuǎn)換期間完成不同的任務(wù)。
CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)處于初始化狀態(tài)時,主站初始化EtherCAT從站控制器的一些配置寄存器、配置郵箱通道參數(shù)。預(yù)運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)與主站使用郵箱通信交換通信配置信息,此時,不允許過程數(shù)據(jù)通信。安全運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)應(yīng)用程序讀入輸入數(shù)據(jù),但不產(chǎn)生輸出信號,設(shè)備無輸出,處于“安全狀態(tài)”。運行狀態(tài)下,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)應(yīng)用程序讀入輸入數(shù)據(jù),此時,主站應(yīng)用程序發(fā)出的輸出數(shù)據(jù)有效,CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)產(chǎn)生輸出信號。
3.3 CAN總線主站通信處理模塊
CAN總線主站通信處理模塊主要實現(xiàn)與CAN總線從站設(shè)備之間的數(shù)據(jù)交換、參數(shù)配置和故障診斷等。數(shù)據(jù)的收發(fā)采用定時器和中斷相配合的模式。
上電硬件初始化,配置好CAN總線通信的參數(shù)后,CAN總線主站通信處理模塊首先請求下面各CAN總線從站設(shè)備的輸入數(shù)據(jù),所有輸入數(shù)據(jù)掃描完成后,置輸入數(shù)據(jù)掃描完成標(biāo)志,EtherCAT主站接收到該標(biāo)志后,轉(zhuǎn)換CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)狀態(tài)到運行狀態(tài)。此時,輸出數(shù)據(jù)有效,CAN總線主站通信處理模塊發(fā)送輸出數(shù)據(jù)到相關(guān)CAN總線從站設(shè)備。所有的從站一輪掃描結(jié)束后,判斷統(tǒng)計是否有從站出現(xiàn)通信故障,并進行相應(yīng)的處理。
3.4 CAN/EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)對象字典設(shè)計
EtherCAT協(xié)議使用對象字典實現(xiàn)標(biāo)準(zhǔn)的參數(shù)信息配置和輸入、輸出數(shù)據(jù)讀寫操作,每個對象字典有一個主索引和多個子索引。在CAN/Et herCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)采用協(xié)議轉(zhuǎn)換網(wǎng)關(guān)和CAN總線從站設(shè)備的多級對象字典設(shè)計模式,如圖5所示。
光耦相關(guān)文章:光耦原理
評論