ESM7000是英創(chuàng)基于i.MX7D處理器開發(fā)的低功耗高性能工控主板,支持雙網(wǎng)口、6串口、雙CAN總線接口、PCIe、ISA總線等豐富的通訊接口,支持18-bit并行RGB或LVDS顯示接口。主CPU i.MX7D是NXP推出的異構(gòu)多核處理器,配置了主頻高達(dá)1GHz的ARM Cortex-A7雙核和一顆運(yùn)行速度240MHz、帶硬件浮點(diǎn)運(yùn)算的ARM Cotex-M4內(nèi)核。下圖是ESM7000的原理框圖:
ESM7000可預(yù)裝正版WEC7或RT Linux操作系統(tǒng),但對于一些實時性要求極高的應(yīng)用,無論是WEC還是RT Linux操作系統(tǒng)都無法滿足對中斷事件的及時響應(yīng),而且頻繁的中斷響應(yīng)也會大大的降低操作系統(tǒng)性能。對這類應(yīng)用場合就可充分利用i.MX7D的異構(gòu)多核結(jié)構(gòu),由高性能的Cortex-A7雙核完成人機(jī)交互、數(shù)據(jù)處理、通訊管理等復(fù)雜運(yùn)算,而對于實時的數(shù)據(jù)采集、高速的中斷事件響應(yīng)等實時任務(wù)交由i.MX7D的Cotex-M4完成。
基于異構(gòu)多核處理器的應(yīng)用軟件開發(fā)分為兩個部分:一是基于RT Linux的用戶應(yīng)用程序User APP,另一個是在Cortex-M4內(nèi)核上運(yùn)行的實時控制程序。User APP與M4有兩種數(shù)據(jù)交互方式:一是在Linux內(nèi)核中已經(jīng)實現(xiàn)的針對異構(gòu)多核處理器 (AMP-Asymmetric Multiprocessing)的多核通訊的協(xié)議RPMsg(Remote Processor Messaging),RPMsg提供了User APP與M4之間的雙向數(shù)據(jù)通道,適合小數(shù)據(jù)的傳輸。另一種方式是基于共享內(nèi)存,用于實現(xiàn)批量數(shù)據(jù)的單向高速傳輸,使用共享內(nèi)存的同時,也還需要利用RPMsg實現(xiàn)User APP與M4之間的數(shù)據(jù)同步。下圖是User APP、Linux Kernel、M4程序以及通訊的邏輯框圖:
上圖中的us timer是一個硬件微秒計時器,用于實現(xiàn)User APP與M4之間的時間同步。Cortex-M4程序可以直接基于裸機(jī)編程,也可以基于FreeRTOS實時操作系統(tǒng),Cortex-M4軟件開發(fā)的詳細(xì)說明可參考《ESM7000 Cortex-M4技術(shù)開發(fā)參考手冊》。
傳統(tǒng)的實時控制方案通常是前端使用單片機(jī)或CPLD/FPGA實現(xiàn)數(shù)據(jù)采集、實時控制,后端再利用一個嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)存儲、通訊管理、人機(jī)交互等操作,硬件和軟件設(shè)計都很復(fù)雜,成本很高。而基于異構(gòu)多核處理器的ESM7000,可同時實現(xiàn)實時數(shù)據(jù)采集與控制、數(shù)據(jù)分析運(yùn)算存儲、網(wǎng)絡(luò)通訊、人機(jī)交互等工作。
此外傳統(tǒng)方案的前端單片機(jī)/FGPA與后端嵌入式系統(tǒng)的數(shù)據(jù)通訊,如果使用串口或SPI,最多能實現(xiàn)每秒幾兆字節(jié)的數(shù)據(jù)傳輸,如果要獲得更高的數(shù)據(jù)傳輸速率就需要使用千兆網(wǎng)口、PCIe等高速通訊接口,系統(tǒng)復(fù)雜程度和成本都會顯著提高。而我們在ESM7000上實際測試,不用增加任何硬件成本,用戶應(yīng)用程序與M4之間基于共享內(nèi)存方式輕松就能實現(xiàn)50MB/s的數(shù)據(jù)交互傳輸。
基于ESM7000異構(gòu)CPU架構(gòu)的實時應(yīng)用方案可以以更低的成本、更簡潔可靠的設(shè)計實現(xiàn)復(fù)雜的實時控制應(yīng)用,可廣泛應(yīng)用于電網(wǎng)監(jiān)控、多通道數(shù)據(jù)采集、電機(jī)控制、工業(yè)自動化與控制等多種領(lǐng)域。
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660