在EtherCAT從站開發(fā)與使用過程中, 常常繞不過去的一個環(huán)節(jié)是EEPROM數(shù)據(jù)存儲與燒錄。
EtherCAT從站控制器(ESC)使用EEPROM來存儲設(shè)備相關(guān)信息,用于描述從站設(shè)備。在設(shè)備上電或復(fù)位時,ESC會自動從EEPROM中的ESC寄存器配置區(qū)讀取數(shù)據(jù)寫入相應(yīng)寄存器完成ESC配置。使用過程中可以使用主站如TwinCAT讀取和寫入EEPROM數(shù)據(jù)。EEPROM數(shù)據(jù)缺失或者不正確, 會造成設(shè)備工作不正常,ESC不能正確被配置或不能被主站準確識別等情況。
傳統(tǒng)方案
- 在傳統(tǒng)的EtherCAT設(shè)備中,設(shè)備需要使用EEPROM器件用于存儲設(shè)備相關(guān)信息。需要增加器件成本和布板面積。
- 在設(shè)備開發(fā)和升級過程中,更新設(shè)備固件的同時還需要對EEPROM數(shù)據(jù)進行重新燒錄,而EEPROM的燒錄需要借助相應(yīng)的工具完成,如TwinCAT或者EEPROM Programmer等。這個過程費時不利于提高效率。
先楫方案
針對以上兩點,先楫的產(chǎn)品HPM6E00和HPM5E00系列與配套的HPM_SDK完美的解決了這兩個需求。
- 首先HPM6E00和HPM5E00支持ESC的flash模擬eeprom功能, 允許在Flash中分出一塊合適大小的區(qū)域, 使用軟件模擬EEPROM功能, 滿足EtherCAT從站設(shè)備的數(shù)據(jù)存儲和讀取需求, 能夠省掉EEPROM器件,節(jié)省器件成本和布板面積。
- 其次在更新EEPROM數(shù)據(jù)方面, HPM_SDK支持將EEPROM數(shù)據(jù)集成在MCU的程序固件中, 由MCU程序?qū)崿F(xiàn)對EEPROM數(shù)據(jù)內(nèi)容寫入。 該方式在兼容傳統(tǒng)的EEPROM更新方式的基礎(chǔ)上, 能夠?qū)崿F(xiàn)更加靈活的EEPROM數(shù)據(jù)更新, 增加使用的便利性和提高效率。其EEPROM數(shù)據(jù)更新流程如下:
該方案能夠?qū)崿F(xiàn)的效果:
- 全新的設(shè)備初次運行程序時, MCU固件會寫入EEPROM數(shù)據(jù), 無須使用TwinCAT燒錄EEPROM數(shù)據(jù)。
- 設(shè)備重復(fù)上電, 不會重復(fù)寫EEPROM數(shù)據(jù)。
- 設(shè)備運行中通過TwinCAT等工具主動更新EEPROM, 更新的數(shù)據(jù)會被保留,掉電不會丟失。
- 設(shè)備固件升級時, 新的固件中包含新的EEPROM數(shù)據(jù), 則固件升級后會使用新固件中的EEPROM數(shù)據(jù), 無須使用TwinCAT更新EEPROM數(shù)據(jù)。
以上方式解決了產(chǎn)品出廠時需要燒錄EEPROM的需求, 解決了產(chǎn)品升級過程中, 更新了程序固件后還要重新燒錄EEPROM的需求。
注意:
- EEPROM數(shù)據(jù)更新規(guī)則默認為檢查EEPROM數(shù)據(jù)中的Product Code和Revision Number,在Product Code相同的情況下, Revision Number按照遞增規(guī)則更新。 用戶可以修改更新規(guī)則。
- 將EEPROM數(shù)據(jù)集成在MCU的程序固件中, 由MCU程序?qū)崿F(xiàn)對EEPROM數(shù)據(jù)更新的功能是自HPM_SDK V1.8.0引入