1、背景介紹
隨著各個(gè)行業(yè)朝著智能化方向的發(fā)展,嵌入式產(chǎn)品對(duì)能耗和效率的要求越來越苛刻。特別是在智能電網(wǎng)、工業(yè)和醫(yī)療等領(lǐng)域,一個(gè)產(chǎn)品的核心 MCU 處理器面臨多重挑戰(zhàn)。比如,一個(gè)自動(dòng)化的馬達(dá)系統(tǒng)或者分布式工業(yè)系統(tǒng),一方面需要更多的數(shù)字信號(hào)處理能力來更精確地控制馬達(dá),另一方面也需要更多和更高級(jí)的網(wǎng)絡(luò)接口(CAN,Ethernet 或者 Wireless 等)來實(shí)現(xiàn)實(shí)時(shí)的分布式監(jiān)控或控制功能。再比如圖 1,一個(gè)太陽能逆變系統(tǒng),一方面需要 DSP 引擎來實(shí)現(xiàn) DC/AC 或者 DC/DC 的算法,另一方面也需要將多個(gè)逆變器通過 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é)議棧或者圖形顯示界面等。這類方案的存在諸多缺點(diǎn),首先兩顆 MCU 增加了 PCB 的面積,而且雙 MCU 之間的通訊的可靠性和數(shù)據(jù)吞吐率受到限制,另外,功耗也將顯著增加,程序開發(fā)者甚至需要維護(hù)多個(gè)軟硬件開發(fā)環(huán)境。另外一種方案是采用更高主頻和更多片內(nèi)資源的單核 MCU/DSP,分時(shí)地完成數(shù)據(jù)處理和輔助通信或顯示功能,這種方案顯著增加了系統(tǒng)成本和功耗,最致命的是,當(dāng)客戶的產(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)而生,可以很好解決上述問題。事實(shí)上,非對(duì)稱雙核架構(gòu) MCU 可以將不同的系統(tǒng)任務(wù)分配于不同的 MCU 內(nèi)核,分工精細(xì),并且可以最佳地平衡性能、功耗和成本。兩個(gè)MCU 內(nèi)核間的通信可以通過不同的方式來實(shí)現(xiàn),比如分享內(nèi)存區(qū)和消息區(qū),非常簡單和易于實(shí)現(xiàn)。在下面的章節(jié),本文將以 TI 最新的 Concerto 系列產(chǎn)品 TMS320F28M35H52C 為例,詳細(xì)闡述非對(duì)稱異構(gòu)雙核 MCU 的優(yōu)勢(shì),及其為系統(tǒng)帶來的性能提升。
2、C2000 Concerto 雙核 MCU 的特點(diǎn)
C2000 Concerto 系列 MCU 是 TI 推出的創(chuàng)新性的異構(gòu)雙核產(chǎn)品。Concerto 混合架構(gòu)通過將業(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 核,超高的性價(jià)比,已經(jīng)被業(yè)界廣泛使用,其性能和穩(wěn)定性也已被用戶所廣泛接受,非常適用于通訊和事件控制。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 的開發(fā)資源和軟件包和開發(fā)平臺(tái),它為 TMS320F28M35H52C 的開發(fā)者提供了外設(shè)例程、DSP 庫、文檔、開發(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 來支持,而傳遞狀態(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),不需要在芯片外部硬件連接,而是否使能這類功能則有 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 也可以讀寫 Message RAM,從而提高系統(tǒng)效率。Message RAM 區(qū)通過 RAM 內(nèi)存的讀寫權(quán)限保證了 Message 的互斥訪問,例如,C28x CPU 與 DMA 可以讀寫訪問 CTOM Message RAM 區(qū),而 Cortex-M3 CPU 和 uDMA 只能讀訪問 CTOM Message RAM。同樣,兩個(gè)內(nèi)核對(duì)于MTOC Message RAM 區(qū)的讀寫訪問權(quán)限則正好相反。
Message RAM 僅僅作為 IPC 的數(shù)據(jù)緩存,IPC 還需借助于特定的控制邏輯電路來完成。如圖 6 所示,Master 子系統(tǒng)和 Control 子系統(tǒng)都是通過 5 個(gè)寄存器來實(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è)通道則需要消息接收方的軟件查詢來獲取 Message RAM 中是否收到數(shù)據(jù)。如果兩個(gè)內(nèi)核之間僅僅傳遞狀態(tài)和控制信息(例如 RTOS 中的 Semaphore),僅通過以上寄存器便可以實(shí)現(xiàn),而無需 Message RAM 的參與。
以下通過舉例 Master 子系統(tǒng)往 Control 子系統(tǒng)發(fā)送一幀數(shù)據(jù),來簡單介紹 IPC 模塊的操作流程。
1. Cortex-M3 先在 MTOC Message RAM 中寫入一幀數(shù)據(jù);
2. Cortex-M3 置位 MTOCIPCSET(CM3 映射存儲(chǔ)器區(qū))的 Bit9,如圖 6 所示,此時(shí) MTOCIPCSTS(C28x 映射存儲(chǔ)器區(qū))的 Bit9 也將置位;
3. C28x 輪詢 MTOCIPCSTS 的 Bit9,查詢到 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ū)能夠滿足 C28x 和 M3 子系統(tǒng)之間的數(shù)據(jù)通信,配合DMA,通信效率也可以進(jìn)一步提高。如果用戶希望一次性在兩個(gè)子系統(tǒng)傳遞更大塊的數(shù)據(jù),另一種方法是通過 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 可以讀寫 S0,而 M3 和 uDMA 將只能讀 S0,不能寫入和預(yù)取。
假如 Cortex-M3 需要一次性發(fā)送 6K 字節(jié)的數(shù)據(jù)到 C28x 側(cè),它可以先將 Shared RAM 區(qū) S0 映射到本地存儲(chǔ)器空間,接著通過 IPC 發(fā)送一個(gè)標(biāo)志位給 C28x 來通知其可以將數(shù)據(jù)取走。
3.3 IPC 的軟件驅(qū)動(dòng)
controlSUITE 軟件開發(fā)包中提供 2 種 IPC 的軟件驅(qū)動(dòng)庫,IPC Driver 和 IPC_Lite Driver。IPC_Lite Driver 僅使用 IPC 寄存器來實(shí)現(xiàn)通信,不需要額外的 RAM,但是用戶只能支持一個(gè) IPC 中斷服務(wù) ISR,且不支持以隊(duì)列形式來處理 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è)消息到來。
? 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)志。如果接收到的命令無效,則只有中斷標(biāo)志被確認(rèn)(acknowledged)用來釋放中斷給后續(xù)的命令,而狀態(tài)標(biāo)志仍然置位。
IPC Driver 通過在 Message RAM 中建立環(huán)形緩沖區(qū),使得多個(gè) IPC 通信命令可以以隊(duì)列的形式被緩沖,然后逐個(gè)處理,并且可以同時(shí)支持多個(gè) IPC 中斷服務(wù)程序 ISR,當(dāng)然,IPC Driver 需要更多的RAM 來支持。和 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 類型的變量,控制 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ū)滿,它會(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ù)來讀取 sMessage 結(jié)構(gòu)體里的消息,只要有消息在”Get”緩沖區(qū)。在 ISR 中 IpcGet 函數(shù)被調(diào)用,C28 側(cè)的 tIpcController 變量被用來綁定兩個(gè)相同的M3 和 C28 的 IPC 中斷通道(和 M3 側(cè)用來發(fā)送命令的 tIpcController 相同)。
3. 即使被動(dòng)接收數(shù)據(jù)的內(nèi)核沒有確認(rèn)(acknowledged)IPC 中斷標(biāo)志,主動(dòng)請(qǐng)求數(shù)據(jù)的內(nèi)核仍然可以連續(xù)發(fā)送消息,因?yàn)?tIpcController 變量會(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ū)為
空。
4、Cortex 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)重要的?;?Concerto 的系統(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è)。下面通過兩個(gè)應(yīng)用案例來討論如何通過合理任務(wù)分工來提高系統(tǒng)效率。
4.1 光伏逆變器網(wǎng)絡(luò)節(jié)點(diǎn)
光伏逆變器的主要功能是把光伏面板輸出的 DC 直流電逆變?yōu)?110V/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 等接口,支持多種有線和無線連接功能。
圖 8 Solar HV DC-AC Kit
對(duì)于 C28x 子系統(tǒng),采用狀態(tài)機(jī)的設(shè)計(jì)思路來區(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)行配置,來決定哪些 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 和繼電器開啟。如果啟動(dòng)成功而且沒有錯(cuò)誤發(fā)生,系統(tǒng)自動(dòng)進(jìn)入正常逆變模式。
? Normal Inverter Mode: 該模式下系統(tǒng)輸出功率,如果沒有錯(cuò)誤發(fā)生也沒有收到關(guān)閉命令,系統(tǒng)會(huì)一直處于這個(gè)模式。
? Fault Mode: 如果發(fā)生錯(cuò)誤,例如母線過壓,系統(tǒng)立即進(jìn)入 Fault Mode。所有 PWM 輸出被封鎖,輸出繼電器被斷開。Fault 狀態(tài)可以被按鍵或者 GUI清除。清除后,系統(tǒng)會(huì)返回到Standby Mode
圖 90 C28x 端程序系統(tǒng)狀態(tài)機(jī)
圖 101 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)核都能夠訪問 ADC的結(jié)果寄存器,而且 2 個(gè) ADC 模塊共享 4 個(gè)模擬輸入, Concerto ADC 模塊的這個(gè)特性允許對(duì)關(guān)鍵信號(hào)進(jìn)行安全性驗(yàn)證,提高系統(tǒng)的可靠性。
4.2 電力線載波通訊 PLC 智能家居網(wǎng)關(guān)
智能家居網(wǎng)關(guān)能夠?qū)⒎块g內(nèi)的智能電器以有線或者無線的方式組成網(wǎng)絡(luò),集中進(jìn)行管理。如圖 10 所示,TMS320F28M35H52C 的 C28x(運(yùn)行于 150MHz)主要完成電力線載波通信(Power Line CarrierCommunication)PLC 的 OFDM 物理層算法。Cortex-M3(75MHz)的運(yùn)行 TCP/IP 協(xié)議接入以太網(wǎng),其次,可選地通過 UART 接口外接 GPRS 模塊或者通過 EBI 外擴(kuò)總線連接 TFT 彩屏用戶界面。
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)分工明確,又通過 IPC 模塊巧妙實(shí)現(xiàn)了實(shí)時(shí)高效地核間通訊。在軟件方面,controlSUITE 開發(fā)平臺(tái)提供多種組件,包括 TCP/IP 協(xié)議棧、IPC 驅(qū)動(dòng)、USB 協(xié)議棧、FAT 文件系統(tǒng)等,可幫助用戶更快地開發(fā)出創(chuàng)新性的產(chǎn)品。
評(píng)論
查看更多