中國煙草總公司職工進修學院 李源源,張旭
一種高速卷煙機EtherCAT從站設計
中國煙草總公司職工進修學院 李源源,張旭
文章根據目前在高速、超高速卷煙機組上大量使用的嵌入式PC現(xiàn)狀,使用從站芯片和DSP,設計了一個EtherCAT從站,實現(xiàn)了模擬量數據采集和標準的EtherCAT協(xié)議通訊。重點介紹了系統(tǒng)的硬件設計和軟件設計,其中LAN9252完成從站的EtherCAT協(xié)議通訊,而DSP芯片負責從站初始化、模擬量采集、數據收發(fā)、狀態(tài)管理等。
EtherCAT;卷煙機組;從站
近幾年引進的高速卷包設備中,大量使用了BECKHOFF(倍福)的控制系統(tǒng),如PROTOS-M5、M8卷煙機,KDF4濾棒成型機,F(xiàn)OCKE-FX、S1000、H1000包裝機等,而在國內卷包設備升級改造項目上,也實現(xiàn)了基于工業(yè)PC控制技術的電氣化改造。
目前傳統(tǒng)的現(xiàn)場總線技術由于其響應時間長、實時性差等特點,正日趨成為工業(yè)自動化控制系統(tǒng)性能發(fā)展的瓶頸[1]。EtherCAT技術作為BECKHOFF公司主導提出的一種實時工業(yè)以太網技術,與其工業(yè)PC有著良好的匹配性,且高速傳輸、價格低廉、配置簡單,基于EtherCAT通訊的從站在高速卷煙機功能擴展中應用廣泛。本設計以EtherCAT從站芯片LAN9252和DSP芯片為主要硬件組成,實現(xiàn)EtherCAT從站向主站發(fā)送實時采集的模擬量數據。
EtherCAT技術利用IEEE 802.3以太網幀傳遞,Ethertype為0x88A4,具有靈活的網絡拓撲結構,同時支持熱拔插功能[2]。EtherCAT的數據幀結構如圖1所示:
圖1 EtherCAT數據幀結構示意圖
EtherCAT采用主從站結構,主站一般是PC機,采用標準的100Base-TX以太網卡,從站采用EtherCAT從站專用芯片(ESC)。主站來掃描從站設備以確定每個從站的地址,并控制總線循環(huán)周期。運行時主站發(fā)出下行報文(數據幀的結構如圖1所示),報文的最大有效數據長度為1498個字節(jié)。報文將遍歷所有從站設備,每個從站設備在數據幀經過時分析尋址到本設備的報文,根據報文頭中的命令從報文中讀取數據或向報文中指定位置寫入數據,同時將從站報文的工作計數器(WKC)加1,表示數據被處理。報文被傳送到整個系統(tǒng)邏輯位置的最后一個從站后,該從站把經過各個從站處理后的數據幀作為上行報文直接發(fā)送給主站。主站收到此上行報文后,處理返回數據,一次通信結束。
設計采用的EtherCAT從站控制器芯片ESC是近年新推出的LAN9252芯片,這個芯片集成了兩個10/100M以太網收發(fā)器,簡化了硬件設計,同時支持光纖和銅線,并具備電纜診斷功能,便于現(xiàn)場技術服務人員能夠快速、有效地診斷線路故障。LAN9252支持SPI總線、8位/16位的uC接口以及獨立的數字I/O接口,在設計時可以根據需求靈活選擇[3]。LAN9252完全符合EtherCAT標準,并可與所有EtherCAT系統(tǒng)實現(xiàn)互操作,它包含一個4KB的雙端口RAM(DPRAM)和三個現(xiàn)場總線存儲器管理單元(FMMU)。
DSP芯片采用的是TI公司的TMS320F2812,其采用哈佛結構的定點DSP,最高處理速度可達150M,具有快速的指令周期,處理數據位數也從16位定點躍升到32位定點[4]。擁有EVA、EVB事件管理器和配套的12位16通道的AD數據采集,再加上豐富的外設接口,如CAN、SCI、UART等,多端口可復用,I/O端口豐富,可以靈活應用在很多領域。
在本設計硬件系統(tǒng)中,使用DSP芯片TMS320F2812、EtherCAT從站芯片LAN9252、EEPROM、網絡隔離器及電源管理芯片等構成。LAN9252芯片完成EtherCAT協(xié)議數據的收發(fā),DSP芯片完成自身和LAN9252芯片的初始化,運行驅動程序,采集一路模擬量數據,管理EtherCAT協(xié)議中相關數據的收發(fā),然后進行后繼的處理,并對從站自身的狀態(tài)進行管理。
系統(tǒng)的硬件實際電路示意圖如圖2所示:
圖2 硬件電路示意圖
系統(tǒng)中LAN9252采用3.3V電源供電,而TMS320F2812采用3.3V和1.8V雙電源供電。LAN9252是從站的核心芯片,由于其內部集成了2個以太網收發(fā)器,所以在硬件設計是只需要使用網絡隔離器就可以直接連接到RJ45插頭上使用,在本文中是LAN9252的PORT0端口(對應到圖2中的RJ45接口1)和PORT1端口(對應到圖2中的RJ45接口2),其中PORT0端口是EtherCAT總線的輸入端口,連接主站或上游的EtherCAT從站;PORT1端口是EtherCAT總線的輸出端口,可以連接下游的EtherCAT從站,實現(xiàn)總線的后繼擴展。EEPROM選擇24FC512芯片,具有15K的存儲空間,用來存儲主站的配置數據等相關信息。EEPROM芯片和LAN9252之間采用標準的I2C總線通信。DSP和LAN9252之間采用16位接口,DSP通過這個接口可以讀寫LAN9252的雙端口RAM,對LAN9252進行驅動和初始化。DSP在采集模擬量數據時,利用其自帶的16個12位AD采樣模塊來轉化,但由于其自身精度受限制,所以在本設計采用了以下2種方式來增加其精度:一是在芯片其它不用的AD管腳上增加2個不同電壓值的參考電壓;二是多次采樣取其平均值或做個濾波之后再作為本次采樣的數據。
4.1設備描述語言文件(XML)的編寫及下載
在EtherCAT主從站系統(tǒng)中,主站是靠XML來識別從站并配置從站內部細節(jié)信息,并正確操作和組態(tài)來自不同廠商的從站設備。
在本設計中XML文件是在離線狀態(tài)下,使用XML Notepad軟件環(huán)境來編寫的,其內容包括XML聲明、廠商信息、設備描述等信息。編寫完成后,首先將編寫好的XML文件拷貝到TwinCAT軟件安裝目錄的驅動程序文件夾中,再通過主站上的TwinCAT軟件掃描到本從站,將XML文件轉化成二進制文件寫入到本從站的EEPROM中;然后刪除這個從站,重新掃描硬件,如果可以讀到從站設備所對應的信息,表明寫入成功,編寫的這個XML文件是正確的。
4.2主程序設計
在本設計中,主程序是運行在DSP芯片中的程序,主要用來完成系統(tǒng)的初始化、驅動程序加載、和LAN9252之間的數據交互、模擬量的采集等功能。在編程之前,為了簡化程序設計,需要下載其LAN9252 SDK開發(fā)包,將其移植到DSP的開發(fā)環(huán)境下,同時需要從EtherCAT網站上獲得其Beckhoff EtherCAT從器件協(xié)議棧代碼(SSC)。結合這兩個文件,可以快速的編寫本設計中的程序。主程序的總體流程圖如圖3所示。
4.3周期性數據處理
周期性數據處理是從站和主站之間傳輸數據的,就本設計而言就是從站從主站中讀取狀態(tài)等數據,然后向主站傳輸實時采集到的模擬量數據。周期性數據處理包括三種模式:同步模式、自由運行模式和DC模式,同步模式是使用中斷服務例程來處理數據,自由運行模式是以查詢方式來處理數據,DC模式則使用系統(tǒng)同步時鐘來處理數據。在本設計中主要使用同步模式,利用中斷來處理周期性數據,執(zhí)行過程如下:
(1)從雙端口RAM中讀取事件請求寄存器值;
圖3 主程序總體流程圖
(2)解析寄存器值,如果是發(fā)送事件,則從LAN9252的雙端口RAM中讀取由主站發(fā)送來的周期性輸出數據;
(3)解析輸出數據,如果數據有效,則由DSP將輸出數據映射到相應的輸出變量,并通過硬件執(zhí)行輸出操作;注意如果從站處于Safe_OP狀態(tài)時,即使輸出數據有效,考慮到安全因素,從站不執(zhí)行硬件輸出操作;
(4)讀取硬件輸入操作,判斷是否需要寫入輸入數據,如果需要則將輸入數據寫入到相應的LAN9252雙端口RAM中,等待下個數據幀到來時被主站讀??;
(5)將報文中的工作計數器(WKC)值加1。
周期性數據在同步模式下,利用中斷服務,進行編程時的部分程序源代碼如下:
Interrupt void GPIO_SYNC0_ISR(void)
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //清中斷標志
ReadDRAM_Status(); //從LAN9252雙端口RAM中讀取狀態(tài)數據If(IsInputData == 1){//判斷是否有輸出操作
ReadDRAM_Input();//從LAN9252中讀取輸入數據到DSP
Input_Operate();//DSP執(zhí)行對輸入數據的后繼處理
If(IsInputData == 1)//判斷是否有輸入操作
WriteDRAM_Output();//DSP將模擬量數據發(fā)送到LAN9252的DRAM
Add_WKC_data();//將WKC計數器值+1
4.4從站狀態(tài)機的處理
因為在實際使用從站時,從站需要根據主站發(fā)送來狀態(tài)操作在以下幾種狀態(tài)之間切換:Init(初始化)、Pre-Operation(預運行)、Operational(運行)、Safe-Operational(安全運行)和可選狀態(tài)Boot-Strap(引導狀態(tài)),所以需要對從站的工作狀態(tài)進行檢測和切換。主站若想改變從站狀態(tài),需將目的狀態(tài)寫入到從站芯片的相應控制位,從站在接收到這個命令后進行后繼的相應處理,從站狀態(tài)機管理的處理流程圖如圖4所示:
圖4 從站狀態(tài)轉換程序流程圖
在設計時,從站從高級別狀態(tài)向低級別狀態(tài)轉換時,需先停止相應的通信數據處理,再進行狀態(tài)切換。
4.5模擬量數據采集
利用DSP自帶的AD轉化管腳對模擬量進行采集,利用低優(yōu)先級的定時中斷程序(高優(yōu)先級用作周期性數據的操作,以保證EtherCAT總線的實時性),定時時間為2us,每執(zhí)行一次這個中斷就進行一次模數轉換。在程序編寫時,定義1個整形數組,數組長度為25,每執(zhí)行一次模數轉換,就將轉換后的數據更新到這個數組中,替換掉數組中最早轉換的數據,同時取這個數組中每個數據的平均值作為當前模數轉換值,這樣就能保證在EtherCAT總線最小的循環(huán)周期50us的情況下,每次采集到數據都是最新的數據。當有寫入數據操作時,將這個數據寫入到LAN9252相應的存儲區(qū),通過EtherCAT總線發(fā)送到主站,供其使用。
本設計采用TMS320F2812芯片和LAN9252芯片相結合,設計了一款可以采集模擬量數據的、具有EtherCAT總線協(xié)議的從站模塊。該EtherCAT總線從站模塊具有傳輸速度快、實時性高、易于控制等特點,在基于嵌入式PC控制的高速卷煙機技術改造及信息數據采集系統(tǒng)中具有很高的應用價值。
[1] 吉順平. 網絡控制系統(tǒng)的控制器與通信協(xié)議的研究與設計[D]. 南京:南京航空航天大學,2009.
[3] MICROCHIP TECHNOLOGY INC. LAN9252 Datasheet[Z]. 2015.
[4] Texas Instruments. TMS320F2812 Data Manual[Z]. 2011.
Design of EtherCAT Slave Station for High Speed Cigarette Machine
According to the present situation of embedded PC widely used in high speed cigarette units, the author utilizes the slave station chips and DSP to design an EtherCAT slave station, which implements the analog data acquisition and standard protocol communication. The hardware design and software design of the system are introduced in this paper. The LAN9252 chip is used to implement the EtherCAT protocol communication of slave station. The DSP chips are responsible for the initialization of the station, the analog signal acquisition, the data receiving and dispatching, and the state management.
EtherCAT; Cigarette units; Slave station
李源源(1980-),男,河南鶴壁人,高級企業(yè)培訓師,碩士,現(xiàn)就職于中國煙草總公司職工進修學院,從事卷煙生產、物流設備的電氣自動化系統(tǒng)設計、教學及信息系統(tǒng)集成工作和研究。