楊曉輝,楊 超,李 楠
(1.長春光華學(xué)院電氣信息學(xué)院,吉林長春 130033;2.北京航天時(shí)代激光導(dǎo)航技術(shù)有限責(zé)任公司,北京 100094;3.陸軍裝甲兵學(xué)院士官學(xué)校,吉林長春 130000)
數(shù)據(jù)采集廣泛應(yīng)用于工業(yè)控制領(lǐng)域的多個(gè)環(huán)節(jié),在狀態(tài)監(jiān)控、故障診斷、誤差補(bǔ)償?shù)确矫嬗兄鴺O其重要的作用,目前隨著中國制造2025綱領(lǐng)的提出,工業(yè)化和信息化融合進(jìn)入了全新階段[1]。傳統(tǒng)數(shù)據(jù)采集裝置采用傳統(tǒng)以太網(wǎng)技術(shù)接入工業(yè)控制系統(tǒng),傳統(tǒng)以太網(wǎng)技術(shù)在傳輸效率、實(shí)時(shí)性等方面已不能滿足現(xiàn)代工業(yè)控制系統(tǒng)的需求,傳統(tǒng)數(shù)據(jù)采集裝置數(shù)據(jù)傳輸周期遠(yuǎn)低于工業(yè)控制系統(tǒng),無法保證數(shù)據(jù)準(zhǔn)確而實(shí)時(shí)地刷新,從而影響整體工業(yè)控制系統(tǒng)性能[3]。
EtherCAT是基于集束幀機(jī)制的新型工業(yè)以太網(wǎng)協(xié)議,其通過修改傳統(tǒng)以太網(wǎng)協(xié)議底層結(jié)構(gòu),在兼容傳統(tǒng)以太網(wǎng)協(xié)議的同時(shí)由實(shí)時(shí)控制器約束,EtherCAT網(wǎng)絡(luò)拓?fù)錁?gòu)成一個(gè)邏輯環(huán)狀結(jié)構(gòu),在每個(gè)周期EtherCAT主站發(fā)送一個(gè)報(bào)文,按照相關(guān)順序通過環(huán)狀網(wǎng)絡(luò)上所有節(jié)點(diǎn)后報(bào)文將返回主站,因?yàn)閰f(xié)議特性,其具有傳輸效率高、速率快、網(wǎng)絡(luò)嫁接方便、成本較低等諸多優(yōu)點(diǎn),在2014年10月成為我國推薦性標(biāo)準(zhǔn)[2]。
目前工業(yè)以太網(wǎng)總線研究主要集中在工業(yè)控制領(lǐng)域,數(shù)據(jù)采集系統(tǒng)作為工業(yè)控制系統(tǒng)中重要的組成部分,數(shù)據(jù)采集系統(tǒng)沒有成熟的工業(yè)以太網(wǎng)總線設(shè)備,本文將EtherCAT工業(yè)以太網(wǎng)總線技術(shù)引入數(shù)據(jù)采集系統(tǒng)中,利用總線優(yōu)秀的數(shù)據(jù)傳輸特性有效提升數(shù)據(jù)采集系統(tǒng)的性能,具有十分重要的意義。
數(shù)據(jù)采集系統(tǒng)中EtherCAT運(yùn)行原理如圖1所示,在數(shù)據(jù)傳輸過程中,EtherCAT使用以太網(wǎng)雙向傳輸?shù)奶匦?,即可以同時(shí)進(jìn)行發(fā)送和接收,主機(jī)發(fā)送下行報(bào)文,下行的以太網(wǎng)數(shù)據(jù)幀通過RX進(jìn)入第一個(gè)數(shù)據(jù)采集系統(tǒng)中的從站控制器,根據(jù)報(bào)文進(jìn)行A/D數(shù)據(jù)采集,相關(guān)數(shù)據(jù)的更新讀取與寫入后,通過TX發(fā)送給下一個(gè)從站。當(dāng)所有的從站完成對(duì)此EtherCAT下行報(bào)文的操作后,將帶有所有網(wǎng)絡(luò)中從站相關(guān)數(shù)據(jù)的EtherCAT報(bào)文返回第一個(gè)從站,經(jīng)TX發(fā)送給主站,由主站對(duì)EtherCAT報(bào)文進(jìn)行分析與后續(xù)操作[4]。
圖1 數(shù)據(jù)采集系統(tǒng)中EtherCAT運(yùn)行原理
EtherCAT總線的集數(shù)幀通訊方式具有非常高的數(shù)據(jù)利用率,設(shè)數(shù)據(jù)幀只存在一個(gè)EtherCAT子報(bào)文,則最大傳輸數(shù)據(jù)為1 486 byte,EtherCAT報(bào)文中報(bào)文頭數(shù)據(jù)共占用32 byte[5],則獲得數(shù)據(jù)利用率η為97.9%。
當(dāng)EtherCAT網(wǎng)絡(luò)中存有多個(gè)從站設(shè)備時(shí),必須設(shè)置同步時(shí)鐘從而獲得同步控制效果[6],EtherCAT的分布式中用網(wǎng)絡(luò)中第一個(gè)從站的時(shí)鐘作為參考時(shí)鐘同步其他從站設(shè)備與主站,嚴(yán)格計(jì)算補(bǔ)償了時(shí)鐘漂移、偏移和傳輸延時(shí),并以此控制同步輸出信號(hào)使得網(wǎng)絡(luò)中多設(shè)備同步執(zhí)行。
本數(shù)據(jù)采集系統(tǒng)作為EtherCAT總線中的從站設(shè)備,主要由3部分組成:采集模塊、系統(tǒng)控制器與從站控制器。其中采集模塊用于實(shí)現(xiàn)傳感器信號(hào)的處理,將其轉(zhuǎn)化為數(shù)字信號(hào)傳送給系統(tǒng)控制器;系統(tǒng)控制器用于EtherCAT總線應(yīng)用層任務(wù),同時(shí)根據(jù)總線主站指令將對(duì)應(yīng)的傳感器數(shù)據(jù)轉(zhuǎn)存至協(xié)議處理模塊內(nèi)部的存儲(chǔ)空間;從站控制器主要負(fù)責(zé)協(xié)議數(shù)據(jù)鏈路層與物理層的控制,實(shí)現(xiàn)從站協(xié)議控制。從站硬件總體結(jié)構(gòu)設(shè)計(jì)如圖2所示。時(shí)鐘與EEPROM為從站控制器與系統(tǒng)控制器提供時(shí)鐘與配置文件數(shù)據(jù)存儲(chǔ),電源模塊給數(shù)據(jù)采集系統(tǒng)提供細(xì)分的需求電源。2個(gè)RJ45接口分別作輸入、輸出的物理網(wǎng)線接口,通過標(biāo)準(zhǔn)的100BASE-TX網(wǎng)線接入EtherCAT總線。
圖2 數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)
系統(tǒng)運(yùn)行流程為:傳感器將物理信號(hào)轉(zhuǎn)化為模擬信號(hào)輸入數(shù)據(jù)采集系統(tǒng)的采集模塊中,經(jīng)過采集模塊的濾波和A/D轉(zhuǎn)換處理后變成數(shù)字信號(hào),系統(tǒng)控制器進(jìn)行數(shù)字信號(hào)的接收,并且查詢EtherCAT總線的狀態(tài),如果總線處于運(yùn)行狀態(tài),則將數(shù)字信號(hào)實(shí)時(shí)存放于協(xié)議處理模塊內(nèi)部的存儲(chǔ)空間中,然后通過配置同步管理器進(jìn)行周期性數(shù)據(jù)發(fā)送。從站控制器將存儲(chǔ)空間中的數(shù)字信號(hào)數(shù)據(jù)寫入經(jīng)過該從站的EtherCAT數(shù)據(jù)報(bào)文中對(duì)應(yīng)的地方,發(fā)送至其他總線設(shè)備使用[7]。
本系統(tǒng)選用ADS8341為A/D轉(zhuǎn)換芯片,選用STM32F407ZET7作為系統(tǒng)控制芯片,選擇高集成度的LAN9252作為從站控制器芯片。
EtherCAT協(xié)議控制器LAN9252是一款高集成的控制芯片,它不僅具備EtherCAT從站控制功能,還集成了2路PHY控制芯片,不需要額外進(jìn)行PHY芯片選擇與設(shè)計(jì),同時(shí)該芯片還支持分布式時(shí)鐘功能,可以提供精準(zhǔn)的同步信號(hào),選擇LAN9252作為協(xié)議控制器可以極大節(jié)約成本和工作量,其結(jié)構(gòu)如圖3所示,LAN9252的DPI接口(過程數(shù)字接口)支持16位數(shù)字量I/O并行接口,可以使用STM32F407ZET7的FSMC技術(shù)進(jìn)行高速的數(shù)據(jù)傳輸[8],通過I2C總線訪問外部EEPROM用于存放EtherCAT配置信息,系統(tǒng)中斷為I/O信號(hào),所需的時(shí)鐘信號(hào)為25 MHz,內(nèi)部集成的PHY芯片外接RJ45端口進(jìn)行物理網(wǎng)線連接。
圖3 LAN9252結(jié)構(gòu)
PDI通訊速率直接影響到數(shù)據(jù)采集系統(tǒng)的Ether CAT通信速度,LAN9252芯片PDI支持多種交互接口,本系統(tǒng)選用速率最高的16位數(shù)字量I/O并行接口,系統(tǒng)控制器STM32F407ZET7使用其特有的存儲(chǔ)器拓展技術(shù)FSMC與之進(jìn)行連接,PDI通訊接口設(shè)計(jì)如圖4所示,LAN9252的16位A/D線、數(shù)據(jù)中斷信號(hào)IRQ、地址鎖存信號(hào)ALELO、讀寫信號(hào)RD與WR、總線片選信號(hào)CS、分布式時(shí)鐘信號(hào)SYSNC(0)和SYNC(1)連接至STM32F407ZET7相關(guān)引腳,F(xiàn)SMC接口控制引腳FSMC_NE1、FSMC_NOE、FSMC_NWE、ALELO為低電平有效引腳,所以需要配置LAN9252的控制信號(hào)為低電平有效。
圖4 PDI接口電路
采集系統(tǒng)所需采集的信號(hào)分為數(shù)字信號(hào)與模擬信號(hào)2類,采集模塊設(shè)計(jì)如圖5所示。
圖5 采集模塊原理圖
針對(duì)模擬信號(hào)采集,IN為傳感器輸出的模擬信號(hào)值,通過運(yùn)算放大器OP7放大至ADS8341匹配的電壓值后接入ADS8341輸入引腳,其中利用DT1、DT2構(gòu)成鉗位電路用于保護(hù)A/D芯片不被損壞,經(jīng)ADS8341將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)后,通過SPI接口與STM32F407ZET7相連,用于數(shù)字信號(hào)的傳輸;針對(duì)數(shù)字信號(hào)采集,DIN01為輸入的數(shù)字信號(hào),通過PC817光耦進(jìn)行光電隔離后接入STM32F407ZET7的I/O引腳。
本數(shù)據(jù)采集系統(tǒng)軟件可以通過3層來實(shí)現(xiàn),即PDI接口驅(qū)動(dòng)層、協(xié)議棧層、數(shù)據(jù)采集應(yīng)用層。其中PDI接口驅(qū)動(dòng)層決定系統(tǒng)控制器對(duì)從站控制器的數(shù)據(jù)交換是否正常;協(xié)議棧層主要為配合從站控制器實(shí)現(xiàn)EtherCAT協(xié)議通訊;數(shù)據(jù)采集應(yīng)用層用于編寫數(shù)據(jù)采集系統(tǒng)的控制程序,實(shí)現(xiàn)數(shù)據(jù)采集的具體任務(wù)。
本系統(tǒng)PDI接口為STM32F407ZET7與LAN9252通訊的16位并行總線,在STM32F407ZET7中FSMC能夠同步、異步訪問LAN9252數(shù)接口,由于LAN9252芯片特性,STM32F407ZET7訪問的不是LAN9252中EtherCAT內(nèi)核,而是LAN9252提供系統(tǒng)控制和狀態(tài)寄存器,通過間接尋址的方式訪問EtherCat內(nèi)核寄存器[9]。尋址方式如圖6所示,STM32F407ZET7通過FSMC直接訪問LAN9252系統(tǒng)控制與狀態(tài)寄存器,根據(jù)時(shí)序需求配置FSMC總線后即可完成地址空間映射,將底層尋址驅(qū)動(dòng)程序進(jìn)行封裝為相關(guān)的讀寫函數(shù),即實(shí)現(xiàn)了STM32F407ZET7對(duì)LAN9252的數(shù)據(jù)交換。
圖6 LAN9252尋址方式
根據(jù)EtherCAT協(xié)議規(guī)定,本采集系統(tǒng)協(xié)議通訊有5種狀態(tài):初始化、預(yù)運(yùn)行、安全運(yùn)行、運(yùn)行與引導(dǎo)狀態(tài)。本系統(tǒng)需要根據(jù)主站發(fā)出的命令進(jìn)行狀態(tài)的切換,狀態(tài)間的切換指令和切換約束如圖7所示,狀態(tài)機(jī)每次進(jìn)行狀態(tài)切換就開啟或關(guān)閉相關(guān)服務(wù),各狀態(tài)切換需要按照協(xié)議規(guī)定進(jìn)行,不能越級(jí)切換。
圖7 狀態(tài)切換示意
狀態(tài)機(jī)切換流程如圖8所示,根據(jù)EtherCAT主站命令,讀取AL控制寄存器中相關(guān)值,根據(jù)狀態(tài)轉(zhuǎn)換請(qǐng)求結(jié)合狀態(tài)切換規(guī)范進(jìn)行合理性檢查。如果命令狀態(tài)與本采集系統(tǒng)當(dāng)前狀態(tài)能夠轉(zhuǎn)換,則進(jìn)行狀態(tài)轉(zhuǎn)換,并將結(jié)果寫入到AL狀態(tài)寄存器中,交由EtherCAT主站讀取;如果不能轉(zhuǎn)換狀態(tài)或者轉(zhuǎn)換狀態(tài)失敗,則將錯(cuò)誤代碼寫入到AL狀態(tài)寄存器中,交由EtherCAT主站讀取后處理。
圖8 狀態(tài)機(jī)切換流程
STM32F407ZET7芯片通過SPI讀取A/D芯片數(shù)據(jù),由于A/D芯片的數(shù)據(jù)準(zhǔn)備時(shí)間與傳輸延時(shí)時(shí)間客觀存在,如果一個(gè)時(shí)鐘周期對(duì)所有A/D芯片通道數(shù)據(jù)進(jìn)行傳輸則容易出現(xiàn)數(shù)據(jù)丟失,因此為了保證數(shù)據(jù)采樣完整,在STM32F407ZET7讀取SPI上A/D芯片數(shù)據(jù)時(shí),每次數(shù)據(jù)傳輸周期應(yīng)等于采樣數(shù)據(jù)通道數(shù)量加1個(gè)時(shí)鐘周期。
完成A/D芯片數(shù)據(jù)讀取后,還需將數(shù)據(jù)通過EtherCAT總線進(jìn)行實(shí)時(shí)傳輸,EtherCAT協(xié)議傳輸方式有郵箱與周期性過程數(shù)據(jù)傳輸2種,對(duì)于實(shí)時(shí)性要求較高的采集數(shù)據(jù)選用周期性過程數(shù)據(jù)傳輸,對(duì)于其他數(shù)據(jù)采用郵箱的方式處理,過程如圖9所示。當(dāng)采集系統(tǒng)完成相關(guān)初始化操作后進(jìn)入主循環(huán),讀取事件請(qǐng)求后判斷數(shù)據(jù)采集系統(tǒng)當(dāng)前運(yùn)行模式,如果符合要求則進(jìn)入中斷程序,中斷程序中進(jìn)行實(shí)時(shí)性要求較高的采集數(shù)據(jù)的獲取與上傳,完成后退出中斷進(jìn)行郵箱事件查詢,當(dāng)存在郵箱事件時(shí)進(jìn)行實(shí)時(shí)性要求低的采集數(shù)據(jù)獲取與上傳。
圖9 采集數(shù)據(jù)傳輸流程
根據(jù)本文所設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)進(jìn)行PCB板卡的繪制和調(diào)試,將完成硬件和軟件調(diào)試后作為EtherCAT從站接入總線網(wǎng)絡(luò),同時(shí)接入其他EtherCAT從站設(shè)備進(jìn)行對(duì)比分析,如圖10所示。EtherCAT主站采用PC電腦搭載Beckhoff的TwinCAT軟件進(jìn)行系統(tǒng)測(cè)試。
圖10 數(shù)據(jù)采集系統(tǒng)板卡與其他EtherCAT從站
首先測(cè)試模擬量采集功能,用信號(hào)發(fā)生器產(chǎn)生直流信號(hào),接入本采集系統(tǒng)的1、3、6通道,分別設(shè)置電壓為3.809、-2.784、8.631 V,在TwinCAT上進(jìn)行相關(guān)數(shù)據(jù)查看,結(jié)果如圖11所示,采集數(shù)據(jù)較為準(zhǔn)確,說明本數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)采集功能正常可用,EtherCAT協(xié)議傳輸正常。
圖11 A/D采集結(jié)果顯示
其次是對(duì)EtherCAT傳輸效率進(jìn)行測(cè)試,針對(duì)實(shí)時(shí)性要求高的數(shù)據(jù),本系統(tǒng)采用同步模式傳輸,在TwinCAT軟件中設(shè)置運(yùn)行模式為同步模式,周期為1 ms。由于LAN9252會(huì)在接收到主站發(fā)送的過程數(shù)據(jù)時(shí)進(jìn)入中斷,因此在2個(gè)EtherCAT從站的IRQ中斷程序中如果接收數(shù)據(jù)正確,則將一個(gè)I/O接口電平拉低,在退出中斷服務(wù)時(shí)再將其拉高,可以通過示波器分別抓取2個(gè)EtherCAT從站的中斷I/O信號(hào)進(jìn)行比對(duì)分析,即可獲得從站的同步模式傳輸狀態(tài)與效率,結(jié)果如圖12所示。
圖12 同步模式兩EtherCAT從站中斷周期
可見兩從站進(jìn)入中斷程序周期為1 ms,與TwinCAT設(shè)置一致,且未出現(xiàn)丟包、周期異常等情況,表明從站運(yùn)行穩(wěn)定,數(shù)據(jù)收發(fā)正確。本數(shù)據(jù)采集系統(tǒng)在EtherCAT總線邏輯鏈路中靠后,因此TwinCAT發(fā)送的報(bào)文先抵達(dá)其他EtherCAT從站設(shè)備,再進(jìn)入本數(shù)據(jù)采集系統(tǒng),觀察兩設(shè)備進(jìn)入中斷的時(shí)間存在0.8 μs的延遲??梢姳鞠到y(tǒng)具備較高的數(shù)據(jù)傳輸能力與較低的數(shù)據(jù)傳輸延遲。
設(shè)計(jì)了基于LAN9252的EtherCAT工業(yè)以太網(wǎng)數(shù)據(jù)采集系統(tǒng),本系統(tǒng)將新的工業(yè)以太網(wǎng)技術(shù)引入數(shù)據(jù)采集領(lǐng)域,解決了數(shù)據(jù)采集系統(tǒng)在工業(yè)控制領(lǐng)域應(yīng)用中存在的數(shù)據(jù)傳輸效率低的問題。本數(shù)據(jù)采集系統(tǒng)可以方便地接入EtherCAT工業(yè)以太網(wǎng)總線,無需交換機(jī)等其他設(shè)備組網(wǎng),具備采集數(shù)據(jù)準(zhǔn)確、數(shù)據(jù)傳輸量大、傳輸效率高等特性,能夠廣泛應(yīng)用于工業(yè)控制領(lǐng)域,具備很高的應(yīng)用價(jià)值與市場(chǎng)前景。