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