《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于EtherCAT從站的IO擴(kuò)展模塊設(shè)計
基于EtherCAT從站的IO擴(kuò)展模塊設(shè)計
2017年電子技術(shù)應(yīng)用第3期
林志航,高軍禮,徐超藍(lán),蔣 杰
廣東工業(yè)大學(xué) 自動化學(xué)院,廣東 廣州510006
摘要: 針對目前EtherCAT通信網(wǎng)絡(luò)中從站節(jié)點的數(shù)字IO應(yīng)用需求問題,基于微處理器和ESC一體化的嵌入式EtherCAT從站,提出易于實現(xiàn)的工業(yè)數(shù)字IO擴(kuò)展方案,并詳細(xì)闡述了相關(guān)軟件和硬件的設(shè)計過程。實驗結(jié)果表明,從站與數(shù)字IO擴(kuò)展模塊結(jié)合的系統(tǒng)能夠?qū)崿F(xiàn)多路數(shù)字信號的實時采集和輸出,達(dá)到了預(yù)期的設(shè)計要求。本設(shè)計對基于EtherCAT從站的應(yīng)用開發(fā)也有一定的參考價值。
關(guān)鍵詞: EtherCAT 從站 IO擴(kuò)展 SPI SYSBIOS
中圖分類號: TP274
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.016
中文引用格式: 林志航,高軍禮,徐超藍(lán),等. 基于EtherCAT從站的IO擴(kuò)展模塊設(shè)計[J].電子技術(shù)應(yīng)用,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.
Design of IO expansion module based on EtherCAT slave station
Lin Zhihang,Gao Junli,Xu Chaolan,Jiang Jie
College of Automation,Guangdong University of Technology,Guangzhou 510006,China
Abstract: In order to solve the demand problem of digital IO application of slave station in current EtherCAT communication network , this paper proposes the easy-realizable industrial digital IO expansion plan based on the embedded EtherCAT slave station which realizes the integration of microprocessor and ESC, and explains the design process of relevant software and hardware in detail. The experimental result shows that this combined system of slave station and digital IO expansion module can realize the real-time collection and output of multiple digital signals and achieve the expectant design requirements.This design is worthy of reference for application development based on EtherCAT slave station.
Key words : EtherCAT;slave station;IO expansion;SPI;SYS/BIOS

0 引言

    在多數(shù)工業(yè)應(yīng)用場景中,都需頻繁對各種現(xiàn)場開關(guān)量信號進(jìn)行采集和輸出。EtherCAT作為一種性能優(yōu)越的現(xiàn)場總線,具有實時性突出、總線利用率高、傳輸速度快等特點,適合實現(xiàn)可靠的數(shù)字IO通信?;贓therCAT現(xiàn)場總線的數(shù)字IO控制具有廣泛的應(yīng)用價值。隨著EtherCAT總線技術(shù)的推廣,工控領(lǐng)域中EtherCAT從站節(jié)點關(guān)于數(shù)字IO應(yīng)用的需求逐步提升,而惡劣的工業(yè)現(xiàn)場環(huán)境也要求從站節(jié)點IO采集和輸出方面具備足夠的可靠性。

    本文基于一輕量級的EtherCAT從站,設(shè)計了經(jīng)濟(jì)且高效的工業(yè)數(shù)字IO擴(kuò)展模塊,與從站構(gòu)成的系統(tǒng)具有穩(wěn)定性強(qiáng)、集成度高和安全性好等特點,足以滿足工業(yè)數(shù)字IO的應(yīng)用需求。

1 總體方案設(shè)計

1.1 EtherCAT從站方案設(shè)計

    綜合考慮EtherCAT從站實現(xiàn)的技術(shù)難度,本系統(tǒng)采用了TI的AM3359 ICE開發(fā)板來實現(xiàn)從站的基本功能。AM3359芯片內(nèi)部帶有PRU-ICSS可編程工業(yè)通信子系統(tǒng),可通過TI提供的EtherCAT固件代碼使PRU-ICSS實現(xiàn)EtherCAT從站控制器的基本功能。相比于使用ET1100等獨(dú)立式芯片實現(xiàn)從站控制器的從站方案[1],AM3359獨(dú)特的ARM+PRU核的架構(gòu)可以使微處理器與從站控制器一體化,進(jìn)而使從站硬件集成度更高,開發(fā)周期更短[2]。

    從站軟件采用分層設(shè)計方式,分為驅(qū)動層、協(xié)議層和應(yīng)用層,基于從站應(yīng)用層軟件實現(xiàn)IO擴(kuò)展應(yīng)用為本文研究的重點。

1.2 IO擴(kuò)展模塊方案設(shè)計

    為滿足系統(tǒng)應(yīng)用需求,基于AM3359從站開發(fā)板設(shè)計了3個IO擴(kuò)展模塊,每個擴(kuò)展模塊可控制16路的數(shù)字量輸出和16路的數(shù)字量輸入。各擴(kuò)展模塊均由一主控CPU控制,EtherCAT從站主控芯片AM3359與多個擴(kuò)展模塊主控CPU之間通過SPI總線進(jìn)行通信,其中擴(kuò)展模塊的主控CPU作為SPI從機(jī),而AM3359芯片作為SPI主機(jī),利用3個GPIO腳作為片選腳,與3個擴(kuò)展模塊的處理器芯片進(jìn)行SPI多機(jī)通信。設(shè)計框架如圖1所示。

ck1-t1.gif

2 IO模塊硬件設(shè)計

    IO模塊的硬件設(shè)計按照功能劃分為微處理器單元、DC/DC電源模塊、數(shù)字量輸出單元、數(shù)字量輸入單元以及JTAG接口單元等。IO模塊硬件設(shè)計總體框圖如圖2所示。

ck1-t2.gif

    IO模塊主控芯片采用德州儀器公司的16位單片機(jī)MSP430F5529,該芯片具有強(qiáng)大的處理能力和大量的IO端口,足以滿足該設(shè)計需求。

    考慮到在工業(yè)應(yīng)用上24 V電源的通用性,而且本系統(tǒng)中MSP430F5529需要3.3 V供電,所以采用了24 V轉(zhuǎn)3.3 V的DC/DC電源模塊。

    數(shù)字量輸出單元主要用于實現(xiàn)數(shù)字量信號的輸出,由光耦隔離模塊和IO驅(qū)動兩部分組成。光耦模塊起到保護(hù)MCU通用IO口和實現(xiàn)數(shù)據(jù)緩沖隔離的作用。MCU輸出信號經(jīng)光耦隔離處理,再經(jīng)驅(qū)動芯片放大后,可用于驅(qū)動工作電壓為24 V的IO設(shè)備。

    數(shù)字量輸入單元主要用于采集工業(yè)上的開關(guān)量信號,這些信號經(jīng)常會產(chǎn)生瞬時高壓、過電流或者接觸抖動。為了保證輸入信號安全可靠,本單元設(shè)計進(jìn)行光耦隔離處理[3]

3 系統(tǒng)軟件設(shè)計

3.1 EtherCAT從站應(yīng)用軟件設(shè)計

3.1.1 SYS/BIOS實時操作系統(tǒng)研究

    SYS/BIOS是一個輕量級的實時操作系統(tǒng),其內(nèi)核占用資源極小。此外,SYS/BIOS可通過線程的方式實現(xiàn)硬件中斷服務(wù)程序[4],該類線程的優(yōu)先級特性與處理器本身的硬件中斷優(yōu)先級保持一致。SYS/BIOS還可使用圖形化或者動態(tài)的方式配置硬件中斷與任務(wù)線程,在使用上更為靈活方便。

    從站軟件應(yīng)用層設(shè)計使用了SYS/BIOS作為軟件平臺,從站在運(yùn)行過程中各實時控制任務(wù)均在各硬件中斷線程中完成。

3.1.2 AM3359 SPI驅(qū)動程序設(shè)計

    AM3359作為SPI主機(jī),協(xié)調(diào)著從站與各IO模塊之間的通信。SPI驅(qū)動程序主要包括SPI模塊初始化、SPI發(fā)送處理和SPI接收處理,其中SPI接收處理采用中斷的方式實現(xiàn)。

    為保證SPI主從機(jī)通信順利進(jìn)行,AM3359 SPI模塊初始化應(yīng)當(dāng)根據(jù)MSP430 SPI的模塊功能配置合適的寄存器參數(shù),主要有時鐘極性、時鐘相位以及通信波特率等[5]

    由于從站應(yīng)用層設(shè)計是基于SYS/BIOS實現(xiàn)的,在這里使用圖形化配置的方式實現(xiàn)SYS/BIOS下的SPI接收中斷。配置界面如圖3所示。

ck1-t3.gif

3.1.3 從站COE對象詞典設(shè)計

    本設(shè)計中每個IO擴(kuò)展板實現(xiàn)16路的開關(guān)量輸出和16路的開關(guān)量輸入,在從站軟件中需合理設(shè)計COE對象詞典管理過程數(shù)據(jù)。在這里使用輸出過程數(shù)據(jù)對象0x7010、0x7020和0x7030來分別管理各擴(kuò)展模塊的開關(guān)量輸出過程數(shù)據(jù),使用輸入過程數(shù)據(jù)對象0x6010、0x6020和0x6030來管理各擴(kuò)展模塊的開關(guān)量輸入過程數(shù)據(jù),另外使用RxPDO映射對象0x1601、0x1602和0x1603將以上所述輸出過程數(shù)據(jù)對象分別映射到3個RxPDO,使用TxPDO映射對象0x1A01、0x1A02和0x1A03將以上所述輸入過程數(shù)據(jù)對象分別映射到3個TxPDO,最后使用0x1C12對象配置SM2,使用0x1C13配置SM3[6]。

    針對從站的應(yīng)用層對象詞典的設(shè)計需編寫合適的從站設(shè)備描述文件,重點是關(guān)于RxPDO和TxPDO的描述,以便在EtherCAT網(wǎng)絡(luò)通信中EtherCAT主站能夠根據(jù)從站描述文件生成網(wǎng)絡(luò)信息文件,從而對從站進(jìn)行正確有效的配置。

3.1.4 從站控制任務(wù)設(shè)計

    從站的控制應(yīng)用程序主要通過SPI通信實現(xiàn)與各個IO擴(kuò)展模塊進(jìn)行數(shù)字量輸入輸出的數(shù)據(jù)交互??紤]到主機(jī)與從機(jī)之間交互的有效數(shù)據(jù)長度是確定的,并且在SPI多機(jī)通信過程中,從機(jī)通信的調(diào)度方式是基于主機(jī)控制的片選信號實現(xiàn)的,因此在SPI一主多從的通信上忽略從機(jī)地址以及通信數(shù)據(jù)長度的信息設(shè)置。綜上所述,根據(jù)SPI全雙工的傳輸特性,定制如下通信協(xié)議:主機(jī)和從機(jī)協(xié)議幀均由起始碼、有效數(shù)據(jù)和結(jié)束碼組成, 分別占用1 B、2 B和1 B,其中主機(jī)協(xié)議幀有效數(shù)據(jù)由2組IO輸出數(shù)據(jù)組成,從機(jī)協(xié)議幀有效數(shù)據(jù)由2組IO輸入數(shù)據(jù)組成,如表1和表2所示。

ck1-b1.gif

ck1-b2.gif

    從站軟件在APPL_Application函數(shù)中實現(xiàn)控制任務(wù)。主機(jī)在每個EtherCAT周期內(nèi)向從機(jī)發(fā)送協(xié)議幀,利用SPI全雙工通信與雙方協(xié)議幀長度相同的特性,主機(jī)發(fā)送的同時從機(jī)也回發(fā)協(xié)議幀,因此主機(jī)再發(fā)送一次協(xié)議幀,便可完成主機(jī)與一個從機(jī)之間的數(shù)據(jù)交互。

    主機(jī)在與從機(jī)通信之前先通過設(shè)置合適的GPIO電平選中相應(yīng)的從機(jī),之后再發(fā)起數(shù)據(jù)傳輸,主機(jī)的數(shù)據(jù)接收在中斷中處理,結(jié)束數(shù)據(jù)交互后主機(jī)通過檢驗從機(jī)協(xié)議幀起始碼和結(jié)束碼來決定是否刷新IO輸入數(shù)據(jù)。主機(jī)與任一個從機(jī)進(jìn)行數(shù)據(jù)交互的流程圖如圖4所示。

ck1-t4.gif

3.2 IO擴(kuò)展模塊軟件設(shè)計

    MSP430作為SPI從機(jī),使用SPI中斷接收主機(jī)發(fā)來的數(shù)據(jù),主機(jī)協(xié)議幀的解析在從機(jī)的接收中斷中處理。從機(jī)在解析協(xié)議過程中,使用一輔助狀態(tài)變量確定當(dāng)前接收字節(jié)數(shù)據(jù)位于數(shù)據(jù)幀的哪個部位。在程序主循環(huán)中,從機(jī)通過檢驗主機(jī)協(xié)議幀起始碼和結(jié)束碼來決定是否刷新IO輸出數(shù)據(jù)。主循環(huán)流程和中斷處理流程如圖5、圖6所示。

ck1-t5.gif

ck1-t6.gif

4 系統(tǒng)測試 

    利用裝有TwinCAT軟件的PC實現(xiàn)EtherCAT主站,對IO擴(kuò)展模塊的功能進(jìn)行測試和驗證。

    將編寫好的從站設(shè)備描述文件放至TwinCAT軟件相關(guān)子文件夾中,以便TwinCAT主站能對從站進(jìn)行正確有效的配置。將PC主站與從站搭建成一簡單EtherCAT網(wǎng)絡(luò),再進(jìn)行系統(tǒng)測試。

    進(jìn)行IO輸出測試時,使用大功率LED作為IO輸出控制對象接于IO模塊的IO輸出點,通過TwinCAT軟件控制相應(yīng)IO點的輸出,監(jiān)測LED是否亮滅來判斷IO輸出功能是否正常。TwinCAT軟件掃描所得IO輸出對象和控制IO輸出的界面如圖7所示。

ck1-t7.gif

    進(jìn)行IO輸入測試時,使用24 V信號源將信號輸入給IO輸入點,在TwinCAT軟件通過監(jiān)測輸入IO信號是否正常跳變來判斷IO輸入的功能是否正常,TwinCAT軟件掃描所得IO輸入對象和監(jiān)控IO輸入信號的界面如圖8所示。

ck1-t8.gif

    經(jīng)測試與分析,此次設(shè)計的IO模塊可有效實現(xiàn)預(yù)定的功能。本設(shè)計中從站若需增加IO擴(kuò)展模塊,硬件上從站僅需使用額外的IO引腳作為SPI片選腳與IO模塊相連,然后在從站軟件應(yīng)用層對象詞典添加相關(guān)數(shù)據(jù)對象,在控制任務(wù)添加與新模塊的通信代碼即可有效地添加IO擴(kuò)展模塊。

5 結(jié)束語

    本文基于一嵌入式EtherCAT從站提出近距離數(shù)字IO擴(kuò)展方案。詳細(xì)闡述了該方案軟硬件的實現(xiàn)過程,重點分析了SYS/BIOS系統(tǒng)在從站軟件應(yīng)用層上的使用、從站對象詞典實現(xiàn)以及從站與IO擴(kuò)展模塊之間通信軟件設(shè)計。最后,結(jié)合TwinCAT軟件搭建EtherCAT測試網(wǎng)絡(luò)對從站IO擴(kuò)展應(yīng)用進(jìn)行測試。經(jīng)實驗驗證,EtherCAT從站與IO擴(kuò)展模塊結(jié)合的系統(tǒng)能夠穩(wěn)定可選地工作。

參考文獻(xiàn)

[1] 施大發(fā),劉建林,王輝,等.一種高性能EtherCAT實時以太網(wǎng)從站的設(shè)計[J].湖南師范大學(xué)自然科學(xué)學(xué)報,2011,34(3):37-40.

[2] 任計羽,范永坤,熊皚.EtherCAT高性能從站的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用,2014,34(S1):18-20.

[3] 王續(xù)利,王全勝,張梅.基于FPGA的開關(guān)量輸入模塊設(shè)計[J].計算機(jī)測量與控制,2012,20(9):2494-2496.

[4] 湯敏,范永坤,熊皚.基于SYS/BIOS的伺服控制實時操作系統(tǒng)的設(shè)計[J].機(jī)床與液壓,2013,41(11):118-121.

[5]這孫斌,胡越黎,王昆.SPI總線用于雙處理器通信的數(shù)據(jù)鏈路層設(shè)計及其實現(xiàn)[J].上海大學(xué)學(xué)報,2012,18(5):513-518.

[6] 金超,夏繼強(qiáng),滿慶豐. CANopen對象字典的分析與具體實現(xiàn)[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(8):12-14.



作者信息:

林志航,高軍禮,徐超藍(lán),蔣  杰

(廣東工業(yè)大學(xué) 自動化學(xué)院,廣東 廣州510006)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。