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