文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.016
中文引用格式: 林志航,高軍禮,徐超藍,等. 基于EtherCAT從站的IO擴展模塊設計[J].電子技術應用,2017,43(3):66-69.
英文引用格式: Lin Zhihang,Gao Junli,Xu Chaolan,et al. Design of IO expansion module based on EtherCAT slave station[J].Application of Electronic Technique,2017,43(3):66-69.
0 引言
在多數工業應用場景中,都需頻繁對各種現場開關量信號進行采集和輸出。EtherCAT作為一種性能優越的現場總線,具有實時性突出、總線利用率高、傳輸速度快等特點,適合實現可靠的數字IO通信。基于EtherCAT現場總線的數字IO控制具有廣泛的應用價值。隨著EtherCAT總線技術的推廣,工控領域中EtherCAT從站節點關于數字IO應用的需求逐步提升,而惡劣的工業現場環境也要求從站節點IO采集和輸出方面具備足夠的可靠性。
本文基于一輕量級的EtherCAT從站,設計了經濟且高效的工業數字IO擴展模塊,與從站構成的系統具有穩定性強、集成度高和安全性好等特點,足以滿足工業數字IO的應用需求。
1 總體方案設計
1.1 EtherCAT從站方案設計
綜合考慮EtherCAT從站實現的技術難度,本系統采用了TI的AM3359 ICE開發板來實現從站的基本功能。AM3359芯片內部帶有PRU-ICSS可編程工業通信子系統,可通過TI提供的EtherCAT固件代碼使PRU-ICSS實現EtherCAT從站控制器的基本功能。相比于使用ET1100等獨立式芯片實現從站控制器的從站方案[1],AM3359獨特的ARM+PRU核的架構可以使微處理器與從站控制器一體化,進而使從站硬件集成度更高,開發周期更短[2]。
從站軟件采用分層設計方式,分為驅動層、協議層和應用層,基于從站應用層軟件實現IO擴展應用為本文研究的重點。
1.2 IO擴展模塊方案設計
為滿足系統應用需求,基于AM3359從站開發板設計了3個IO擴展模塊,每個擴展模塊可控制16路的數字量輸出和16路的數字量輸入。各擴展模塊均由一主控CPU控制,EtherCAT從站主控芯片AM3359與多個擴展模塊主控CPU之間通過SPI總線進行通信,其中擴展模塊的主控CPU作為SPI從機,而AM3359芯片作為SPI主機,利用3個GPIO腳作為片選腳,與3個擴展模塊的處理器芯片進行SPI多機通信。設計框架如圖1所示。
2 IO模塊硬件設計
IO模塊的硬件設計按照功能劃分為微處理器單元、DC/DC電源模塊、數字量輸出單元、數字量輸入單元以及JTAG接口單元等。IO模塊硬件設計總體框圖如圖2所示。
IO模塊主控芯片采用德州儀器公司的16位單片機MSP430F5529,該芯片具有強大的處理能力和大量的IO端口,足以滿足該設計需求。
考慮到在工業應用上24 V電源的通用性,而且本系統中MSP430F5529需要3.3 V供電,所以采用了24 V轉3.3 V的DC/DC電源模塊。
數字量輸出單元主要用于實現數字量信號的輸出,由光耦隔離模塊和IO驅動兩部分組成。光耦模塊起到保護MCU通用IO口和實現數據緩沖隔離的作用。MCU輸出信號經光耦隔離處理,再經驅動芯片放大后,可用于驅動工作電壓為24 V的IO設備。
數字量輸入單元主要用于采集工業上的開關量信號,這些信號經常會產生瞬時高壓、過電流或者接觸抖動。為了保證輸入信號安全可靠,本單元設計進行光耦隔離處理[3]。
3 系統軟件設計
3.1 EtherCAT從站應用軟件設計
3.1.1 SYS/BIOS實時操作系統研究
SYS/BIOS是一個輕量級的實時操作系統,其內核占用資源極小。此外,SYS/BIOS可通過線程的方式實現硬件中斷服務程序[4],該類線程的優先級特性與處理器本身的硬件中斷優先級保持一致。SYS/BIOS還可使用圖形化或者動態的方式配置硬件中斷與任務線程,在使用上更為靈活方便。
從站軟件應用層設計使用了SYS/BIOS作為軟件平臺,從站在運行過程中各實時控制任務均在各硬件中斷線程中完成。
3.1.2 AM3359 SPI驅動程序設計
AM3359作為SPI主機,協調著從站與各IO模塊之間的通信。SPI驅動程序主要包括SPI模塊初始化、SPI發送處理和SPI接收處理,其中SPI接收處理采用中斷的方式實現。
為保證SPI主從機通信順利進行,AM3359 SPI模塊初始化應當根據MSP430 SPI的模塊功能配置合適的寄存器參數,主要有時鐘極性、時鐘相位以及通信波特率等[5]。
由于從站應用層設計是基于SYS/BIOS實現的,在這里使用圖形化配置的方式實現SYS/BIOS下的SPI接收中斷。配置界面如圖3所示。
3.1.3 從站COE對象詞典設計
本設計中每個IO擴展板實現16路的開關量輸出和16路的開關量輸入,在從站軟件中需合理設計COE對象詞典管理過程數據。在這里使用輸出過程數據對象0x7010、0x7020和0x7030來分別管理各擴展模塊的開關量輸出過程數據,使用輸入過程數據對象0x6010、0x6020和0x6030來管理各擴展模塊的開關量輸入過程數據,另外使用RxPDO映射對象0x1601、0x1602和0x1603將以上所述輸出過程數據對象分別映射到3個RxPDO,使用TxPDO映射對象0x1A01、0x1A02和0x1A03將以上所述輸入過程數據對象分別映射到3個TxPDO,最后使用0x1C12對象配置SM2,使用0x1C13配置SM3[6]。
針對從站的應用層對象詞典的設計需編寫合適的從站設備描述文件,重點是關于RxPDO和TxPDO的描述,以便在EtherCAT網絡通信中EtherCAT主站能夠根據從站描述文件生成網絡信息文件,從而對從站進行正確有效的配置。
3.1.4 從站控制任務設計
從站的控制應用程序主要通過SPI通信實現與各個IO擴展模塊進行數字量輸入輸出的數據交互。考慮到主機與從機之間交互的有效數據長度是確定的,并且在SPI多機通信過程中,從機通信的調度方式是基于主機控制的片選信號實現的,因此在SPI一主多從的通信上忽略從機地址以及通信數據長度的信息設置。綜上所述,根據SPI全雙工的傳輸特性,定制如下通信協議:主機和從機協議幀均由起始碼、有效數據和結束碼組成, 分別占用1 B、2 B和1 B,其中主機協議幀有效數據由2組IO輸出數據組成,從機協議幀有效數據由2組IO輸入數據組成,如表1和表2所示。
從站軟件在APPL_Application函數中實現控制任務。主機在每個EtherCAT周期內向從機發送協議幀,利用SPI全雙工通信與雙方協議幀長度相同的特性,主機發送的同時從機也回發協議幀,因此主機再發送一次協議幀,便可完成主機與一個從機之間的數據交互。
主機在與從機通信之前先通過設置合適的GPIO電平選中相應的從機,之后再發起數據傳輸,主機的數據接收在中斷中處理,結束數據交互后主機通過檢驗從機協議幀起始碼和結束碼來決定是否刷新IO輸入數據。主機與任一個從機進行數據交互的流程圖如圖4所示。
3.2 IO擴展模塊軟件設計
MSP430作為SPI從機,使用SPI中斷接收主機發來的數據,主機協議幀的解析在從機的接收中斷中處理。從機在解析協議過程中,使用一輔助狀態變量確定當前接收字節數據位于數據幀的哪個部位。在程序主循環中,從機通過檢驗主機協議幀起始碼和結束碼來決定是否刷新IO輸出數據。主循環流程和中斷處理流程如圖5、圖6所示。
4 系統測試
利用裝有TwinCAT軟件的PC實現EtherCAT主站,對IO擴展模塊的功能進行測試和驗證。
將編寫好的從站設備描述文件放至TwinCAT軟件相關子文件夾中,以便TwinCAT主站能對從站進行正確有效的配置。將PC主站與從站搭建成一簡單EtherCAT網絡,再進行系統測試。
進行IO輸出測試時,使用大功率LED作為IO輸出控制對象接于IO模塊的IO輸出點,通過TwinCAT軟件控制相應IO點的輸出,監測LED是否亮滅來判斷IO輸出功能是否正常。TwinCAT軟件掃描所得IO輸出對象和控制IO輸出的界面如圖7所示。
進行IO輸入測試時,使用24 V信號源將信號輸入給IO輸入點,在TwinCAT軟件通過監測輸入IO信號是否正常跳變來判斷IO輸入的功能是否正常,TwinCAT軟件掃描所得IO輸入對象和監控IO輸入信號的界面如圖8所示。
經測試與分析,此次設計的IO模塊可有效實現預定的功能。本設計中從站若需增加IO擴展模塊,硬件上從站僅需使用額外的IO引腳作為SPI片選腳與IO模塊相連,然后在從站軟件應用層對象詞典添加相關數據對象,在控制任務添加與新模塊的通信代碼即可有效地添加IO擴展模塊。
5 結束語
本文基于一嵌入式EtherCAT從站提出近距離數字IO擴展方案。詳細闡述了該方案軟硬件的實現過程,重點分析了SYS/BIOS系統在從站軟件應用層上的使用、從站對象詞典實現以及從站與IO擴展模塊之間通信軟件設計。最后,結合TwinCAT軟件搭建EtherCAT測試網絡對從站IO擴展應用進行測試。經實驗驗證,EtherCAT從站與IO擴展模塊結合的系統能夠穩定可選地工作。
參考文獻
[1] 施大發,劉建林,王輝,等.一種高性能EtherCAT實時以太網從站的設計[J].湖南師范大學自然科學學報,2011,34(3):37-40.
[2] 任計羽,范永坤,熊皚.EtherCAT高性能從站的設計與實現[J].計算機應用,2014,34(S1):18-20.
[3] 王續利,王全勝,張梅.基于FPGA的開關量輸入模塊設計[J].計算機測量與控制,2012,20(9):2494-2496.
[4] 湯敏,范永坤,熊皚.基于SYS/BIOS的伺服控制實時操作系統的設計[J].機床與液壓,2013,41(11):118-121.
[5]這孫斌,胡越黎,王昆.SPI總線用于雙處理器通信的數據鏈路層設計及其實現[J].上海大學學報,2012,18(5):513-518.
[6] 金超,夏繼強,滿慶豐. CANopen對象字典的分析與具體實現[J]. 單片機與嵌入式系統應用,2012(8):12-14.
作者信息:
林志航,高軍禮,徐超藍,蔣 杰
(廣東工業大學 自動化學院,廣東 廣州510006)