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