5. F28M35雙核處理器的軟件架構(gòu)設(shè)計(jì)
5.1 F28M35雙核存儲(chǔ)結(jié)構(gòu)
TI 的全新Concerto-F28M35微控制器采用了一種雙子系統(tǒng)架構(gòu),其中包含一個(gè)TI C28x內(nèi)核與一個(gè)ARM Cortex-M3內(nèi)核。這種混合架構(gòu)將業(yè)內(nèi)用于控制和主機(jī)通信功能的最佳技術(shù)融入到單個(gè)控制器中,而該控制器可提供維持實(shí)時(shí)控制環(huán)路所需的性能、效率及可靠性,并具備低延遲通信所需的快速響應(yīng)能力。
如圖1所示,在F28M35中包含兩類(lèi)共享內(nèi)存,一類(lèi)是MTOC-message RAM(MTOCMSGRAM)和CTOM-message RAM(CTOMMSGRAM),大小都為2K,其特點(diǎn)是一個(gè)內(nèi)核對(duì)其有讀寫(xiě)的權(quán)限,而另外一個(gè)內(nèi)核僅有只讀權(quán)限。例如,M3內(nèi)核可以讀寫(xiě) MTOCMSGRAM內(nèi)存,而C28內(nèi)核只能對(duì)MTOCMSGRAM進(jìn)行讀操作。另外一類(lèi)共享內(nèi)存包含8個(gè)內(nèi)存塊(S0-S7),大小均為8K。該類(lèi)內(nèi)存可以被劃分到任意內(nèi)核,系統(tǒng)通過(guò)控制寄存器MSxMSEL設(shè)置該類(lèi)內(nèi)存的屬性,每塊內(nèi)存對(duì)應(yīng)該寄存器中的一位,通過(guò)設(shè)置相應(yīng)位來(lái)設(shè)置相應(yīng)內(nèi)存塊的歸屬權(quán)。例如,若S0被設(shè)置為歸屬M(fèi)3內(nèi)核,則M3內(nèi)核可讀寫(xiě)該內(nèi)存,而C28內(nèi)核只能對(duì)其進(jìn)行讀操作。同時(shí)需要注意的是,控制寄存器MSxMSEL只能在M3內(nèi)核中進(jìn)行設(shè)置。
圖1.F28M35x系統(tǒng)結(jié)構(gòu)
5.2 IPC機(jī)制
在雙核技術(shù)中,雙方之間的通信是核心。在F28M35x體系結(jié)構(gòu)中,基于IPC信號(hào)和IPC中斷實(shí)現(xiàn)IPC通信(Inter ProcessorCommunications)機(jī)制。其工作原理如圖2所示。
圖2.IPC機(jī)制原理
該處理器在每個(gè)方向(MTOC/CTOM)上定義了32個(gè)IPC信號(hào),前4個(gè)信號(hào)促發(fā)時(shí)可以附加中斷功能。處理器通過(guò)一套寄存器組實(shí)現(xiàn)IPC信號(hào)的操作。如圖所示,每個(gè)內(nèi)核通過(guò)自己存儲(chǔ)空間內(nèi)的一套寄存器實(shí)現(xiàn)IPC功能,每個(gè)寄存器32位,每一位分別代表一個(gè)IPC信號(hào),第0-3位同時(shí)可設(shè)置為IPC中斷。以C28內(nèi)核為例,寄存器組分別包括:
1)CTOMIPCSET,用于向M3核發(fā)送IPC信號(hào)或者IPC中斷。該寄存器置位時(shí),同時(shí)將CTOMIPCFLG和CTOMIPCSTS寄存器相應(yīng)位置為1。
2)CTOMIPCCLR,用于清除C28到M3方向上的IPC信號(hào)或IPC中斷標(biāo)志。該寄存器置位時(shí),同時(shí)將CTOMIPCFLG和CTOMIPCSTS寄存器相應(yīng)位清零。
3)CTOMIPCFLG,該寄存器為只讀寄存器,用于顯示C28核到M3核方向上當(dāng)前IPC信號(hào)的狀態(tài)。該寄存器和M3存儲(chǔ)空間中的CTOMIPCSTS寄存器在物理上是同一個(gè)寄存器。
4)MTOCIPCSTS,作用和CTOMIPCFLG類(lèi)似,同樣是只讀的,只是表征方向相反,用于顯示M3核到C28核當(dāng)前IPC信號(hào)的狀態(tài)。同樣,它和M3存儲(chǔ)空間中的MTOCIPCFLG寄存器在物理上是同一個(gè)寄存器。
5)MTOCIPCACK,該寄存器置位時(shí),同時(shí)將MTOCIPCFLG和MTOCIPCSTS寄存器相應(yīng)位清零。當(dāng)C28內(nèi)核收到M3發(fā)送來(lái)的IPC信號(hào)或者IPC中斷時(shí),利用該寄存器發(fā)送確認(rèn)信息,完成二者的握手。
形象的說(shuō),雙核之間維護(hù)了兩條相互獨(dú)立的全雙工通道,每條通道包含了一個(gè)方向的信號(hào)發(fā)送(SET)和反向的信號(hào)確認(rèn)(ACK)。同時(shí)雙方可以隨時(shí)讀取兩個(gè)方向下的當(dāng)前IPC狀態(tài)(FLG/STS)。最終實(shí)現(xiàn)雙核間的IPC交互機(jī)制。
此外,F(xiàn)28M35還提供了一套IPC消息寄存器,分別是MTOC Message Registers和CTOM Message Registers,分別在每個(gè)內(nèi)核空間對(duì)應(yīng)4個(gè)寄存器。結(jié)合IPC信號(hào)和IPC中斷實(shí)現(xiàn)雙核之間的便捷通信。以M3內(nèi)核空間為例說(shuō)明,如表1所示,該寄存器組包括命令寄存器,地址寄存器,寫(xiě)數(shù)據(jù)寄存器,讀數(shù)據(jù)寄存器。
5.3 雙核芯片的軟件系統(tǒng)
以系統(tǒng)控制塊數(shù)據(jù)結(jié)構(gòu)為核心的雙核系統(tǒng)的架構(gòu)方法。即設(shè)計(jì)了一種數(shù)據(jù)結(jié)構(gòu),稱(chēng)作系統(tǒng)控制塊(System Control Block,SCB)。將系統(tǒng)所有相關(guān)控制對(duì)象均映射到系統(tǒng)控制塊中,每個(gè)任務(wù)對(duì)系統(tǒng)的操作均可轉(zhuǎn)化為對(duì)SCB的讀寫(xiě)操作,這樣系統(tǒng)可以很方便的實(shí)現(xiàn)模塊化,定義SCB操作管理模塊即可實(shí)現(xiàn)多任務(wù)對(duì)系統(tǒng)操作的統(tǒng)一管理。關(guān)于SCB與實(shí)際控制對(duì)象的物理關(guān)聯(lián)可以通過(guò)對(duì)應(yīng)的驅(qū)動(dòng)模塊實(shí)現(xiàn)。
圖3.基于SCB的系統(tǒng)架構(gòu)
圖 3中描述了以SCB為核心的系統(tǒng)簡(jiǎn)易邏輯架構(gòu),SCB不僅體現(xiàn)控制器與外部控制對(duì)象之間關(guān)系,例如,映射人機(jī)界面操作、PC機(jī)監(jiān)控過(guò)程以及各種輸入輸出信號(hào)等;同時(shí),SCB還包含了雙核之間實(shí)現(xiàn)系統(tǒng)控制的內(nèi)部數(shù)據(jù)映射。SCB的基本結(jié)構(gòu)如圖4所示,主要包括A核外設(shè)映射區(qū)、B核外設(shè)映射區(qū)、系統(tǒng)參數(shù)區(qū)、系統(tǒng)狀態(tài)區(qū)等。
圖4.SCB結(jié)構(gòu)示意圖
SCB是整個(gè)系統(tǒng)的體現(xiàn),從處理器內(nèi)部分析,雙核通過(guò)維護(hù)同一個(gè)SCB實(shí)現(xiàn)對(duì)系統(tǒng)的協(xié)調(diào)控制。利用雙核之間的通信,當(dāng)其中一個(gè)內(nèi)核的SCB被寫(xiě)操作時(shí),立即向另一內(nèi)核發(fā)送更新命令,實(shí)時(shí)完成雙核間的數(shù)據(jù)同步。以A內(nèi)核IO資源映射為例說(shuō)明SCB的同步,過(guò)程如圖5所示。
圖5.SCB同步示例
利用上小結(jié)中介紹的IPC信號(hào)機(jī)制,以及多種形式的存儲(chǔ)空間,可以靈活設(shè)計(jì)出多種雙核通信方式。如下所述:
1)僅利用IPC信號(hào)或者IPC中斷方式,多用于完成拓?fù)湫蚴录?zhí)行,或者系統(tǒng)啟動(dòng)時(shí)初始化握手交互。
2)IPC信號(hào)/中斷+IPC消息寄存器組方式,用于小數(shù)據(jù)量的通信。命令寄存器中的命令完全由軟件定義,用戶(hù)可設(shè)計(jì)不同的命令來(lái)完成不同的數(shù)據(jù)操作。多用于對(duì)字節(jié)型內(nèi)存的讀寫(xiě)操作。
3)IPC信號(hào)/中斷+MSGRAM/S0-S7方式,S0-S7可分別分配給任意內(nèi)核,該方式可以實(shí)現(xiàn)大數(shù)據(jù)量的核間通信,同時(shí)利用通用或者自定義的通信協(xié)議,可提高系統(tǒng)的擴(kuò)展能力及可移植性。
6.小結(jié)
如圖6所示,是基于F28M35雙核處理器設(shè)計(jì)實(shí)現(xiàn)的注塑機(jī)主控制器,采用本文介紹的方法實(shí)現(xiàn)了主從式軟件架構(gòu),ARM核作為主核完成與上位機(jī)的通信任務(wù)和系統(tǒng)邏輯過(guò)程的控制任務(wù),利用DSP高速的計(jì)算能力作為從核完成注塑機(jī)位置控制和溫度控制智能算法的執(zhí)行任務(wù),雙核通過(guò)SCB的映射實(shí)現(xiàn)相互的協(xié)調(diào)。新的控制器替代了原有的以600MHZ主頻處理器為核心的控制系統(tǒng),較好了完成了注塑機(jī)的控制任務(wù)。
圖6.雙核系統(tǒng)在注塑機(jī)中的應(yīng)用
在以后的工作中,從核智能控制算法仍有優(yōu)化的空間,系統(tǒng)性能仍可進(jìn)一步改善。另外,除了主從模式,將研究雙主模式,實(shí)現(xiàn)更靈活有效的系統(tǒng)架構(gòu),并完成雙端獨(dú)立的在線監(jiān)控和程序下載等功能,進(jìn)一步降低軟件開(kāi)發(fā)難度。
7. 參考文獻(xiàn)
?。?] Yan Lu-xin, Zhang Tian-xu, and Zhong Sheng. A DSP+FPGA -based parallel architecture for real-time imageprocessing[C]。 Proceedings of the 6th World Congress onIntelligent Control and Automation, Dalian, China, Jun21-23, 2006: 10022-10025.
[2] 盧冠軍,嚴(yán)義,趙健勇。 基于ARM的雙CPU協(xié)調(diào)運(yùn)動(dòng)控制系統(tǒng)[J]。 機(jī)電工程,2012,08:985-988.
?。?] Zheng Yi, Pi Youguo.Design and realization of embedded motion controller based on ARM and DSP[J]。 Computer Measurement & Control. 2012, Vol. 20: 4 (962-5)。
?。?] 呂鴻波,劉云海,劉斌兵。 嵌入式雙核系統(tǒng)通信接口研究[J]。 電視技術(shù),2006,03:24-27.
?。?] 蔣建春,曾素華,岑明。 一種基于異構(gòu)雙核處理器的嵌入式操作系統(tǒng)構(gòu)架設(shè)計(jì)[J]。 計(jì)算機(jī)應(yīng)用,2008,10:2686-2689.
?。?] 陳芳園,張冬松,王志英。 異構(gòu)多核處理器體系結(jié)構(gòu)設(shè)計(jì)研究[J]。 計(jì)算機(jī)工程與科學(xué),2011,12:27-36.
[7] F28M35x Concerto Microcontrollers [EB/OL]。 www.ti.com. 2013.
[8] Concerto F28M35x Technical Reference Manual[EB/OL]。 www.ti.com. 2013.
評(píng)論