《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > 采用非對(duì)稱(chēng)雙核 MCU 提高系統(tǒng)性能 –基于 C2000 Concerto 系列

采用非對(duì)稱(chēng)雙核 MCU 提高系統(tǒng)性能 –基于 C2000 Concerto 系列

2013-12-30
作者:Knight Dong/Patrick Cheng
來(lái)源:TI MCU FAE

摘要

    本文系統(tǒng)地介紹了C2000 Concerto 系列非對(duì)稱(chēng)雙核MCU 的基礎(chǔ)知識(shí)和重要特點(diǎn)。通過(guò)對(duì)比基于兩個(gè)分立MCU 和一個(gè)雙核MCU 的方案之間的差異,強(qiáng)調(diào)了異構(gòu)雙核MCU 方案的眾多優(yōu)點(diǎn),。以TMS320F28M35H52C 為例介紹了C2000 Concerto 系列的C28x 和Cortex-M3 兩個(gè)子系統(tǒng)的性能,、外設(shè)和軟件平臺(tái),,重點(diǎn)闡述了雙核通訊IPC 的多種高效的通訊機(jī)制和controlSUITE 軟件平臺(tái),。最后,,通過(guò)兩個(gè)設(shè)計(jì)案例來(lái)討論如何合理地為C28x 和Cortex-M3 兩個(gè)內(nèi)核進(jìn)行任務(wù)分工,,從而達(dá)到提高系統(tǒng)性能的目的,。

1,、背景介紹

    隨著各個(gè)行業(yè)朝著智能化方向的發(fā)展,嵌入式產(chǎn)品對(duì)能耗和效率的要求越來(lái)越苛刻,。特別是在智能電網(wǎng),、工業(yè)和醫(yī)療等領(lǐng)域,一個(gè)產(chǎn)品的核心MCU 處理器面臨多重挑戰(zhàn),。比如,,一個(gè)自動(dòng)化的馬達(dá)系統(tǒng)或者分布式工業(yè)系統(tǒng),一方面需要更多的數(shù)字信號(hào)處理能力來(lái)更精確地控制馬達(dá),,另一方面也需要更多和更高級(jí)的網(wǎng)絡(luò)接口(CAN,,Ethernet 或者Wireless 等)來(lái)實(shí)現(xiàn)實(shí)時(shí)的分布式監(jiān)控或控制功能。再比如圖1,,一個(gè)太陽(yáng)能逆變系統(tǒng),,一方面需要DSP 引擎來(lái)實(shí)現(xiàn)DC/AC 或者DC/DC 的算法,另一方面也需要將多個(gè)逆變器通過(guò)Wireless 或者以太網(wǎng)Ethernet 組成網(wǎng)絡(luò),,從而實(shí)現(xiàn)智能診斷和監(jiān)控,。

    面對(duì)這些需求,有兩種傳統(tǒng)的方案可以解決,。一種方案是采用兩顆單獨(dú)的MCU/DSP,,其中一顆MCU或者DSP 用于實(shí)現(xiàn)數(shù)字信號(hào)處理或者控制算法,另外一顆MCU 實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議?;蛘邎D形顯示界面等,。這類(lèi)方案的存在諸多缺點(diǎn),,首先兩顆MCU 增加了PCB 的面積,,而且雙MCU 之間的通訊的可靠性和數(shù)據(jù)吞吐率受到限制,另外,,功耗也將顯著增加,,程序開(kāi)發(fā)者甚至需要維護(hù)多個(gè)軟硬件開(kāi)發(fā)環(huán)境。另外一種方案是采用更高主頻和更多片內(nèi)資源的單核MCU/DSP,,分時(shí)地完成數(shù)據(jù)處理和輔助通信或顯示功能,,這種方案顯著增加了系統(tǒng)成本和功耗,最致命的是,,當(dāng)客戶(hù)的產(chǎn)品需要增加新的功能的時(shí)候,,工程師需要重新計(jì)算MCU 內(nèi)核的資源和不同任務(wù)所需要的運(yùn)行時(shí)間,需要更多的測(cè)試時(shí)間,因此不利于擴(kuò)展和產(chǎn)品維護(hù),。

   面對(duì)種種不足,,異構(gòu)雙核架構(gòu)應(yīng)運(yùn)而生,可以很好解決上述問(wèn)題,。事實(shí)上,,非對(duì)稱(chēng)雙核架構(gòu)MCU 可以將不同的系統(tǒng)任務(wù)分配于不同的MCU 內(nèi)核,分工精細(xì),,并且可以最佳地平衡性能,、功耗和成本。兩個(gè)MCU 內(nèi)核間的通信可以通過(guò)不同的方式來(lái)實(shí)現(xiàn),,比如分享內(nèi)存區(qū)和消息區(qū),,非常簡(jiǎn)單和易于實(shí)現(xiàn)。在下面的章節(jié),,本文將以TI 最新的Concerto 系列產(chǎn)品TMS320F28M35H52C 為例,,詳細(xì)闡述非對(duì)稱(chēng)異構(gòu)雙核MCU 的優(yōu)勢(shì),及其為系統(tǒng)帶來(lái)的性能提升,。

2,、C2000 Concerto 雙核MCU 的特點(diǎn)

    C2000 Concerto 系列MCU 是TI 推出的創(chuàng)新性的異構(gòu)雙核產(chǎn)品。Concerto 混合架構(gòu)通過(guò)將業(yè)界最好的實(shí)時(shí)控制功能和通訊功能集成在一個(gè)芯片內(nèi),,提供高性能,、高效率和可靠性,從而實(shí)現(xiàn)實(shí)時(shí)控制環(huán)路和低延時(shí)的快速通訊響應(yīng)[1],。以下從內(nèi)核,、存儲(chǔ)器架構(gòu)、通訊外設(shè)等方面闡述其特點(diǎn),。Concerto 系列TMS320F28M35H52C 功能框圖如下圖2 所示,。

    首先是高性能的內(nèi)核。Concerto 系列MCU 包含Cortex-M3 和C28x 兩個(gè)內(nèi)核,。Cortex-M3 內(nèi)核是Concerto 的主系統(tǒng)Master 子系統(tǒng)內(nèi)核,,主頻最高可運(yùn)行于125 MHz。Cortex-M3 內(nèi)核是32 位的ARM 核,,超高的性?xún)r(jià)比,,已經(jīng)被業(yè)界廣泛使用,其性能和穩(wěn)定性也已被用戶(hù)所廣泛接受,,非常適用于通訊和事件控制,。C28x 是新一代的32 位DSP 內(nèi)核,是TI 大多數(shù)現(xiàn)有的C2000 產(chǎn)品的內(nèi)核,,最高可運(yùn)行于150 MHz,,Concerto 中的C28x 帶浮點(diǎn)運(yùn)算單元(Floating-Point Unit),VCU 協(xié)處理器等,性能超強(qiáng),,非常適用于大吞吐量的數(shù)據(jù)處理,。C28x 作為Control 子系統(tǒng),宏觀上受控于Cortex-M3 Master 子系統(tǒng),。

   其次是優(yōu)化的存儲(chǔ)器架構(gòu),。如圖2 所示,TMS320F28M35H52C 的C28x 可支配512KB 帶ECC 校驗(yàn)的Flash 存儲(chǔ)器,,64KB ROM,,36KB 帶ECC 校驗(yàn)的RAM;Cortex-M3 可支配512KB 帶ECC 校驗(yàn)的Flash 存儲(chǔ)器,,64KB ROM,,32KB 帶ECC 校驗(yàn)的RAM [3]。在兩個(gè)內(nèi)核之間,,是共享的外設(shè)和存儲(chǔ)區(qū),。總共64K 字節(jié)的共享RAM,,4K 的消息RAM,。

    再次是外設(shè)。如圖2 所示,,TMS320F28M35H52C 的C28x 內(nèi)核可支配DMA,、高速ADC(3MSPS)、多路高精度的PWM(24 路PWM和16 路高精度HRPWM),、eCAP,、eQEP 等為閉環(huán)控制所優(yōu)化的控制外設(shè);Cortex-M3 內(nèi)核可支配多個(gè)串行接口,、以太網(wǎng),、CAN 等工業(yè)通訊外設(shè)。同時(shí),,兩個(gè)內(nèi)核還可共享ADC 等外設(shè),,增強(qiáng)整個(gè)系統(tǒng)的靈活性。

    最后是軟件架構(gòu),。如圖3 所示,,controlSUITE 是一個(gè)集成所有C2000 MCU 的開(kāi)發(fā)資源和軟件包和開(kāi)發(fā)平臺(tái),,它為T(mén)MS320F28M35H52C 的開(kāi)發(fā)者提供了外設(shè)例程,、DSP 庫(kù)、文檔,、開(kāi)發(fā)板資料,。ControlSUITE 還提供免費(fèi)的全功能實(shí)時(shí)操作系統(tǒng)TI-RTOS 平臺(tái),如圖4 所示,TI-RTOS 是基于SYS/BIOS 實(shí)時(shí)內(nèi)核,,集成了穩(wěn)定的中間件,,例如TCP/IP 協(xié)議棧、USB 協(xié)議棧,、FAT 文件系統(tǒng),、IPC多核通訊組件等。

3,、IPC 內(nèi)核間通信

    Cortex-M3 和C28x 內(nèi)核之間的通信主要完成兩大功能,,一是數(shù)據(jù)通信,二是傳遞狀態(tài)和控制信息,。IPC(內(nèi)核間通訊)的數(shù)據(jù)通信需要較大的RAM 來(lái)支持,,而傳遞狀態(tài)和控制等信息只需要一系列狀態(tài)標(biāo)志位即可。此外,,Cortex-M3 側(cè)的UART4 與C28x 側(cè)的SCIA,;以及Cortex-M3 側(cè)的SSI3 與C28x側(cè)的SPIA 在Concerto 內(nèi)部實(shí)現(xiàn)互聯(lián),不需要在芯片外部硬件連接,,而是否使能這類(lèi)功能則有CortexM3 系統(tǒng)配置,。

3.1 Message RAM 內(nèi)存區(qū)

    TMS320F28M35H52C 使用Message RAM 實(shí)現(xiàn)IPC 的數(shù)據(jù)通信。如圖5 所示,,2K 字節(jié)的MTOC Message RAM 用于從Master (Cortex-M3)子系統(tǒng)向Control(C28x)子系統(tǒng)傳遞消息,;2K 字節(jié)的CTOM Message RAM 用于從Control 子系統(tǒng)向Master 子系統(tǒng)傳遞消息。由于兩個(gè)子系統(tǒng)都配有DMA外設(shè),,因此,,DMA 也可以讀寫(xiě)Message RAM,從而提高系統(tǒng)效率,。Message RAM 區(qū)通過(guò)RAM 內(nèi)存的讀寫(xiě)權(quán)限保證了Message 的互斥訪(fǎng)問(wèn),,例如,C28x CPU 與DMA 可以讀寫(xiě)訪(fǎng)問(wèn)CTOM Message RAM 區(qū),,而Cortex-M3 CPU 和uDMA 只能讀訪(fǎng)問(wèn)CTOM Message RAM,。同樣,兩個(gè)內(nèi)核對(duì)于MTOC Message RAM 區(qū)的讀寫(xiě)訪(fǎng)問(wèn)權(quán)限則正好相反,。

Message RAM 僅僅作為IPC 的數(shù)據(jù)緩存,,IPC 還需借助于特定的控制邏輯電路來(lái)完成。如圖6 所示,,Master 子系統(tǒng)和Control 子系統(tǒng)都是通過(guò)5 個(gè)寄存器來(lái)實(shí)現(xiàn)IPC 的邏輯流程控制:IPCACK,、IPCSTS、IPCFLG,、IPCCLR,、IPCSET,。這5 個(gè)寄存器都是32 位,每一個(gè)bit 對(duì)應(yīng)于IPC 的一個(gè)通道,,因此最多可實(shí)現(xiàn)32 個(gè)通道的握手通信,。Bit0 到Bit3 總共4 個(gè)通道可以觸發(fā)消息接收方的IPC 中斷,Bit4 到Bit31 共28 個(gè)通道則需要消息接收方的軟件查詢(xún)來(lái)獲取Message RAM 中是否收到數(shù)據(jù),。如果兩個(gè)內(nèi)核之間僅僅傳遞狀態(tài)和控制信息(例如RTOS 中的Semaphore),,僅通過(guò)以上寄存器便可以實(shí)現(xiàn),而無(wú)需Message RAM 的參與,。

以下通過(guò)舉例Master 子系統(tǒng)往Control 子系統(tǒng)發(fā)送一幀數(shù)據(jù),,來(lái)簡(jiǎn)單介紹IPC 模塊的操作流程。

1. Cortex-M3 先在MTOC Message RAM 中寫(xiě)入一幀數(shù)據(jù),;

2. Cortex-M3 置位MTOCIPCSET(CM3 映射存儲(chǔ)器區(qū))的Bit9,,如圖6 所示,此時(shí)MTOCIPCSTS(C28x 映射存儲(chǔ)器區(qū))的Bit9 也將置位,;

3. C28x 輪詢(xún)MTOCIPCSTS 的Bit9,,查詢(xún)到Bit9 已置位;(如果之前的操作是Bit0 到Bit3 其中之一,,則將觸發(fā)C28x 產(chǎn)生一個(gè)IPC 中斷)

4. C28x 讀MTOC Message RAM 中的數(shù)據(jù),,此時(shí),Cortex-M3 成功將一幀數(shù)據(jù)發(fā)送至C28x,。

3.2 Shared RAM 內(nèi)存區(qū)

    大部分情況下,,2K 字節(jié)的IPC Message RAM 區(qū)能夠滿(mǎn)足C28x 和M3 子系統(tǒng)之間的數(shù)據(jù)通信,配合DMA,,通信效率也可以進(jìn)一步提高,。如果用戶(hù)希望一次性在兩個(gè)子系統(tǒng)傳遞更大塊的數(shù)據(jù),另一種方法是通過(guò)Shared RAM 內(nèi)存,。

    TMS320F28M35H52C 有一個(gè)64K 字節(jié)大小的Shared RAM 區(qū),,總共8 塊S0-S7,每塊8K 字節(jié)大小,,如圖7 所示,。Cortex-M3 可以設(shè)置讓任何一塊Shared RAM 區(qū)由C28x 或M3 主控,比如,,映射S0 至C28x 側(cè)以后,,C28x CPU 和DMA 可以讀寫(xiě)S0,而M3 和uDMA 將只能讀S0,,不能寫(xiě)入和預(yù)取,。

    假如Cortex-M3 需要一次性發(fā)送6K 字節(jié)的數(shù)據(jù)到C28x 側(cè),它可以先將Shared RAM 區(qū)S0 映射到本地存儲(chǔ)器空間,,接著通過(guò)IPC 發(fā)送一個(gè)標(biāo)志位給C28x 來(lái)通知其可以將數(shù)據(jù)取走,。

3.3 IPC 的軟件驅(qū)動(dòng)

controlSUITE 軟件開(kāi)發(fā)包中提供2 種IPC 的軟件驅(qū)動(dòng)庫(kù),,IPC Driver 和IPC_Lite Driver,。IPC_Lite Driver 僅使用IPC 寄存器來(lái)實(shí)現(xiàn)通信,,不需要額外的RAM,但是用戶(hù)只能支持一個(gè)IPC 中斷服務(wù)ISR,,且不支持以隊(duì)列形式來(lái)處理IPC 請(qǐng)求,。IPC_Lite Driver 使用方式如下:

1,主動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求的內(nèi)核會(huì)首先調(diào)用IPC_Lite Driver 提供的名函數(shù),。在這個(gè)例子匯總,,M3 是發(fā)送數(shù)據(jù)的內(nèi)核并執(zhí)行“IPCLiteMtoCDataRead”函數(shù)。

• IPC_FLAG2 是C28 中斷標(biāo)志,,指示C28 內(nèi)核一個(gè)消息到來(lái),。

• IPC_FLAG17 是響應(yīng)標(biāo)志,C28 用其指示M3 核一個(gè)命令已經(jīng)被處理,。

• 需要讀取數(shù)據(jù)的C28 的地址也被作為一個(gè)參數(shù)傳遞給C28 內(nèi)核,。

• 這個(gè)函數(shù)在while 循環(huán)中被調(diào)用的原因是,它可能返回STATUS_FAIL 并且不會(huì)發(fā)送信息給C28 直至MtoC IPC 中斷2 和標(biāo)志17 可用, 之后,,該函數(shù)返回STATUS_PASS.

2,,被動(dòng)接收數(shù)據(jù)請(qǐng)求的內(nèi)核會(huì)在ISR 中解析其IPCCOM寄存器的命令。這個(gè)例子中,,C28 MtoCIPCINT2 ISR 知道標(biāo)志置位,,解析MTOCIPCCOM寄存器的命令,識(shí)別出是讀數(shù)據(jù)命令,。

3,,被動(dòng)接收數(shù)據(jù)請(qǐng)求的內(nèi)核會(huì)調(diào)用與主動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求的內(nèi)核相同的函數(shù)名。這個(gè)例子中,,C28 執(zhí)行IPCLiteMtoCDataRead,,IPC_FLAG2 作為中斷標(biāo)志參數(shù),IPC_FLAG17 作為狀態(tài)標(biāo)志參數(shù),。

4,,如果接收到命令有效,IPC_Lite 的驅(qū)動(dòng)函數(shù)會(huì)處理讀命令并確認(rèn)(acknowledges)狀態(tài)和中斷標(biāo)志,。如果接收到的命令無(wú)效,,則只有中斷標(biāo)志被確認(rèn)(acknowledged)用來(lái)釋放中斷給后續(xù)的命令,而狀態(tài)標(biāo)志仍然置位,。

IPC Driver 通過(guò)在Message RAM 中建立環(huán)形緩沖區(qū),,使得多個(gè)IPC 通信命令可以以隊(duì)列的形式被緩沖,然后逐個(gè)處理,,并且可以同時(shí)支持多個(gè)IPC 中斷服務(wù)程序ISR,,當(dāng)然,,IPC Driver 需要更多的RAM 來(lái)支持。和IPC-Lite 不同,,為了使用IPC 驅(qū)動(dòng),,需要在M3 和C28 的項(xiàng)目中增加一些設(shè)置。

第一步是在M3 和C28 的鏈接定位文件(.cmd)中添加IPC 循環(huán)緩沖區(qū)和指針段到CTOM和MTOC message RAM,。如下所示:

第二步,,應(yīng)用程序源碼中必須定義并且初始化至少一個(gè)volatile global tIpcController 變量(為C28 –M3 IPC 中斷使用),如下所示:

1. 主動(dòng)發(fā)起數(shù)據(jù)請(qǐng)求的內(nèi)核會(huì)首先調(diào)用IPC Driver 提供的一個(gè)命令函數(shù),。這個(gè)例子中,,M3 是發(fā)起數(shù)據(jù)請(qǐng)求的內(nèi)核,執(zhí)行“IPCMtoCSetBits”函數(shù),。

• g_sIpcController1 是tIpcController 類(lèi)型的變量,,控制M3 和C28 IPC 中斷通道之間的通信。

• SETMASK_16BIT 是16-bit 掩碼,,指示應(yīng)該被置位的位域,。IPC_LENGTH_16_BITS 指示命令操作的數(shù)據(jù)對(duì)象是16-bits。

• 函數(shù)被配置成允許阻塞“ENABLE BLOCKING”, 意味著函數(shù)會(huì)一直等待直到M3 PutBuffer 有空的緩沖區(qū),。如果函數(shù)被配置成不許阻塞“DISABLE BLOCKING”, 一旦”Put”緩沖區(qū)滿(mǎn),,它會(huì)立即返回STATUS_FAIL 并且不會(huì)發(fā)送消息到C28。如果”Put”緩沖區(qū)有空余,,函數(shù)會(huì)返回STATUS_PASS,,

消息被成功發(fā)送到C28.

2. 被動(dòng)接受數(shù)據(jù)請(qǐng)求的內(nèi)核會(huì)連續(xù)調(diào)用IpcGet 函數(shù)來(lái)讀取sMessage 結(jié)構(gòu)體里的消息,只要有消息在”Get”緩沖區(qū),。在ISR 中IpcGet 函數(shù)被調(diào)用,,C28 側(cè)的tIpcController 變量被用來(lái)綁定兩個(gè)相同的M3 和C28 的IPC 中斷通道(和M3 側(cè)用來(lái)發(fā)送命令的tIpcController 相同)。

3. 即使被動(dòng)接收數(shù)據(jù)的內(nèi)核沒(méi)有確認(rèn)(acknowledged)IPC 中斷標(biāo)志,,主動(dòng)請(qǐng)求數(shù)據(jù)的內(nèi)核仍然可以連續(xù)發(fā)送消息,,因?yàn)閠IpcController 變量會(huì)把消息排隊(duì)放到”Put”緩沖區(qū)(與被動(dòng)接收數(shù)據(jù)請(qǐng)求的內(nèi)核的”Get”緩沖區(qū)相同)。被動(dòng)接收數(shù)據(jù)請(qǐng)求的內(nèi)核的ISR 會(huì)連續(xù)獲取并處理消息,,直至”Get”緩沖區(qū)為空,。

 

4Cortex M3 C28x 核的任務(wù)分工

Cortex-M3 子系統(tǒng)的優(yōu)勢(shì)在于處理事務(wù)和管理通訊外設(shè)的能力,,C28x 內(nèi)核子系統(tǒng)在實(shí)時(shí)控制和數(shù)據(jù)處理方面性能優(yōu)越,。因此,在一個(gè)系統(tǒng)中,,合理地分配兩個(gè)子系統(tǒng)的所處理的事務(wù),,優(yōu)化資源的配置是至關(guān)重要的?;贑oncerto 的系統(tǒng),,一方面應(yīng)當(dāng)最大化地使用C28x 的DSP 和實(shí)時(shí)控制優(yōu)勢(shì),,發(fā)揮ADC、PWM,、C28x 組成的閉環(huán)系統(tǒng)的優(yōu)勢(shì),;另一方面應(yīng)將人機(jī)界面、通訊協(xié)議棧,、文件系統(tǒng)等盡可能運(yùn)行在Cortex-M3 子系統(tǒng)一側(cè),。下面通過(guò)兩個(gè)應(yīng)用案例來(lái)討論如何通過(guò)合理任務(wù)分工來(lái)提高系統(tǒng)效率,。

4.1 光伏逆變器網(wǎng)絡(luò)節(jié)點(diǎn)

光伏逆變器的主要功能是把光伏面板輸出的DC 直流電逆變?yōu)?10V/220V 的AC 交流電,,最終接入電網(wǎng)或者離網(wǎng)輸電至用電設(shè)備。在一個(gè)大功率的光伏發(fā)電網(wǎng)絡(luò)拓?fù)渲?,往往有許多個(gè)光伏逆變器,,這些逆變器需要被監(jiān)測(cè),控制中心需要實(shí)時(shí)觀測(cè)各個(gè)光伏逆變器的工作狀態(tài),。因此,,光伏逆變器網(wǎng)絡(luò)節(jié)點(diǎn)的功能主要包括DC/AC 逆變器和網(wǎng)絡(luò)連接。如圖9 所示,,C28x 子系統(tǒng)(運(yùn)行于100MHz)完成MPPT 和DC/AC 逆變算法,。網(wǎng)絡(luò)連接可以有多種方式,常用的方式包括Ethernet 以太網(wǎng),、RS485 或CAN 等,,TMS320F28M35H52C 的Cortex-M3 子系統(tǒng)(100 MHz)帶Ethernet、RS485 和CAN 等接口,,支持多種有線(xiàn)和無(wú)線(xiàn)連接功能,。

圖8 Solar HV DC-AC Kit

對(duì)于C28x 子系統(tǒng),采用狀態(tài)機(jī)的設(shè)計(jì)思路來(lái)區(qū)別不同的系統(tǒng)狀態(tài),。不同的狀態(tài)代表著不同的運(yùn)行模式,,其它的任務(wù)能夠根據(jù)特定的運(yùn)行模式采取相應(yīng)的行動(dòng)。例如,,可以采用下面5 種不同的運(yùn)行模式,。

• Power On Mode: 系統(tǒng)上電后進(jìn)入Power On Mode,系統(tǒng)上電后,,F(xiàn)28M35H52C1 中的Cortex-M3內(nèi)核boot 程序首先啟動(dòng),,此時(shí)C28x 控制子系統(tǒng)和模擬子系統(tǒng)處于復(fù)位狀態(tài),需要M3 主子系統(tǒng)將其從復(fù)位狀態(tài)解除,。M3 主子系統(tǒng)設(shè)定M3 和C28x 內(nèi)核的時(shí)鐘頻率,,由于M3 和C28x 的主頻之比必須

為整數(shù)比,因此M3 和C28x 的主頻設(shè)定只能為60/60MHz,、75/150MHz,、100/100MHz,。在M3 和C28x 的主頻設(shè)定完成之后,需要由M3 主子系統(tǒng)對(duì)整個(gè)芯片的外設(shè)資源以及GPIO 進(jìn)行配置,,來(lái)決定哪些GPIO 可以由C28x 控制子系統(tǒng)進(jìn)行配置,。本系統(tǒng)中M3 和C28x 主頻設(shè)定為75/150MHz。當(dāng)所有的初始化操作完成后,,系統(tǒng)自動(dòng)轉(zhuǎn)入到Standby Mode,。

• Standby Mode:所有的PWM 和繼電器被關(guān)閉。系統(tǒng)等待啟動(dòng)命令,,也檢測(cè)是否發(fā)生錯(cuò)誤,。

• Soft Start Mode:  接收到啟動(dòng)命令,系統(tǒng)進(jìn)入軟啟動(dòng)模式,,PWM 和繼電器開(kāi)啟,。如果啟動(dòng)成功而且沒(méi)有錯(cuò)誤發(fā)生,系統(tǒng)自動(dòng)進(jìn)入正常逆變模式,。

• Normal Inverter Mode: 該模式下系統(tǒng)輸出功率,,如果沒(méi)有錯(cuò)誤發(fā)生也沒(méi)有收到關(guān)閉命令,系統(tǒng)會(huì)一直處于這個(gè)模式,。

• Fault Mode: 如果發(fā)生錯(cuò)誤,,例如母線(xiàn)過(guò)壓,系統(tǒng)立即進(jìn)入Fault  Mode,。所有PWM 輸出被封鎖,,輸出繼電器被斷開(kāi)。Fault 狀態(tài)可以被按鍵或者GUI清除,。清除后,,系統(tǒng)會(huì)返回到Standby  Mode

圖9 C28x 端程序系統(tǒng)狀態(tài)機(jī)

 

圖10 Concerto ADC 框圖

Concerto 系列有兩個(gè)12-bit ADC 模塊,每個(gè)ADC 模塊包含兩個(gè)采樣保持電路,,支持同步或者順序采樣模式,,3 個(gè)帶10-bitDAC 的模擬比較器,模擬信號(hào)的輸入范圍0V~3.3V( 內(nèi)部參考)或者VREFHI/VREFLO 比例關(guān)系(外部參考),。

圖11 給出了詳細(xì)的ADC 配置,,TMS320F28M35H52C 的Cortex-M3 和C28x 內(nèi)核都能夠訪(fǎng)問(wèn)ADC的結(jié)果寄存器,而且2 個(gè)ADC 模塊共享4 個(gè)模擬輸入,,Concerto ADC 模塊的這個(gè)特性允許對(duì)關(guān)鍵信號(hào)進(jìn)行安全性驗(yàn)證,,提高系統(tǒng)的可靠性。

4.2 電力線(xiàn)載波通訊PLC 智能家居網(wǎng)關(guān)

    智能家居網(wǎng)關(guān)能夠?qū)⒎块g內(nèi)的智能電器以有線(xiàn)或者無(wú)線(xiàn)的方式組成網(wǎng)絡(luò),,集中進(jìn)行管理,。如圖10 所示,TMS320F28M35H52C 的C28x(運(yùn)行于150MHz)主要完成電力線(xiàn)載波通信(Power Line CarrierCommunication)PLC 的OFDM 物理層算法。Cortex-M3(75MHz)的運(yùn)行TCP/IP 協(xié)議接入以太網(wǎng),,其次,,可選地通過(guò)UART 接口外接GPRS 模塊或者通過(guò)EBI 外擴(kuò)總線(xiàn)連接TFT 彩屏用戶(hù)界面。

5,、總結(jié)

Concerto C2000 異構(gòu)雙核MCU 將C28x DSP 內(nèi)核與ARM 公司的Cortex-M3 內(nèi)核融合在一起,,展示出高效的數(shù)據(jù)處理、數(shù)據(jù)通訊和事件管理的強(qiáng)大性能,。C28x 和Cortex-M3 兩個(gè)子系統(tǒng)分工明確,,又通過(guò)IPC 模塊巧妙實(shí)現(xiàn)了實(shí)時(shí)高效地核間通訊。在軟件方面,,controlSUITE 開(kāi)發(fā)平臺(tái)提供多種組件,,包括TCP/IP 協(xié)議棧、IPC 驅(qū)動(dòng),、USB 協(xié)議棧,、FAT 文件系統(tǒng)等,,可幫助用戶(hù)更快地開(kāi)發(fā)出創(chuàng)新性的產(chǎn)品,。

6、參考

[1]. Performance Without Compromise: Implementing Real-time Control And Communications With a Dualsubsystem Microcontroller, Sangmin Chon, Brett Novak

[2]. Concerto Brochure

[3]. TMS320F28M35Hx Concerto Microcontrollers (Rev. D)

[4]. Concerto F28M35x Technical Reference Manual (Rev. B)

[5]. F28M35x Peripheral Driver Library User’s Guide

[6]. Quick Start Guide for Concerto-based Solar Explorer Development Kit

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected],。