PRU家族介紹
PRU全稱(chēng)是The Programmable Real-Time Unit Subsystem,也叫PRUSS。中文名為可編程實(shí)時(shí)單元,它是一個(gè)32位RISC處理器核心,與IO子系統(tǒng)進(jìn)行了緊密集成,為其IO引腳提供了低延遲控制,具有本地的指令和數(shù)據(jù)RAM,并可尋址訪(fǎng)問(wèn)整個(gè)片上系統(tǒng)資源。
TI(德州儀器)針對(duì)其家族設(shè)備的不同資源分配情況,提供了三種PRU子系統(tǒng),分別是:PRU-ICSS、PRU-ICSSG、PRU-SS。
PRU-ICSS:The Programmable Real-time Unit and Industrial Communication Subsystem
可編程的實(shí)時(shí)單元和工業(yè)通信子系統(tǒng)(PRU-ICS)由兩個(gè)32bit的RISC核心(PRU)組成,提供了共享數(shù)據(jù),指令存儲(chǔ),內(nèi)部和外圍功能子模塊,中斷控制器(INTC)等功能。相關(guān)控制器有AM335x、AM437x、AM57x、K2G。
PRU-ICSSG:The Programmable Real-time Unit and Industrial Communication Subsystem – Gigabit
可編程的實(shí)時(shí)單元和工業(yè)通信子系統(tǒng) - 千兆(PRU_ICSSG)是PRU-ICSS的功能加強(qiáng)版。除了擁有所有PRU-ICSS功能外,還增加了兩個(gè)輔助可編程實(shí)時(shí)單元(RTU)內(nèi)核,兩個(gè)傳輸PRU(TX_PRU)內(nèi)核,提供加速器,加快數(shù)據(jù)處理和數(shù)據(jù)流動(dòng),并新增更多的外圍設(shè)備。相關(guān)控制器有AM64x、AM65x。
PRU-SS: The Programmable Real-time Unit Subsystem
可編程的實(shí)時(shí)單元子系統(tǒng)(PRU-SS)是PRU-ICSS的刪減版。功能與PRU-ICSS類(lèi)似,但不支持包括以太網(wǎng)(MII信號(hào)和MDIO信號(hào))在內(nèi)的工業(yè)通信子系統(tǒng)功能。相關(guān)控制器有AM62x。
PRU系統(tǒng)描述
PRU的核心是用精簡(jiǎn)指令集來(lái)編程的。每個(gè)PRU可以獨(dú)立運(yùn)行,也可以相互協(xié)調(diào),也可以與CPU協(xié)同工作。處理器之間的交互是由加載到PRU的指令存儲(chǔ)器中的固件的性質(zhì)決定的。關(guān)于PRU-ICSS/PRU-SS的系統(tǒng)描述如圖1 所示。
圖1 PRU-ICSS/PRU-SS系統(tǒng)描述
PRU-ICSSG擁有RTU,其處理核心與PRU相同,但是RTU與PRU有不同的資源、連接和加速器。例如,PRU可以訪(fǎng)問(wèn)外部通用輸入和通用輸出(GPI/GPO)引腳,而RTU則不能。關(guān)于PRU-ICSSG的系統(tǒng)描述如圖2 所示。
圖2 PRU-ICSSG系統(tǒng)描述
PRU的功能特性
1. 快速I(mǎi)/O
PRU屬于標(biāo)量處理器,在同一時(shí)間內(nèi)只處理一條數(shù)據(jù);
采用非流水線(xiàn)設(shè)計(jì),確保所有指令只能順序執(zhí)行;
本地內(nèi)存映射,使用位于子系統(tǒng)內(nèi)部的本地32位互連總線(xiàn)來(lái)訪(fǎng)問(wèn)本地資源,以最大限度地減少訪(fǎng)問(wèn)延遲。
2. 通用總線(xiàn)
PRU本身也有通用總線(xiàn)功能,如:UART、ECAP、PWM、ADC等。
3. 工業(yè)協(xié)議
TI根據(jù)工業(yè)行業(yè)應(yīng)用,定制并兼容了多種工業(yè)通訊協(xié)議,如:EtherCAT、Profinet、Ethernet/IP等。
4. 運(yùn)行環(huán)境
支持TI RTOS、TI Linux SDK及Code Composer Studio (CCS)的運(yùn)行環(huán)境;
開(kāi)發(fā)語(yǔ)言支持匯編指令及C/C++;
PRU固件是一種特定格式的文件,只能在系統(tǒng)對(duì)PRU資源進(jìn)行初始化后,再把其固件加載到PRU核中運(yùn)行。
PRU的使用場(chǎng)合
眾所周知,SoC很復(fù)雜,里面集成了不少東西。這個(gè)PRU就可以理解為一個(gè)協(xié)處理器,就是主處理器ARM或DSP之外的一個(gè)小東西,可以處理一些專(zhuān)門(mén)的任務(wù),已達(dá)到高效快速(Real-Time)的目的,同時(shí)也減輕了主處理器的負(fù)擔(dān)。
而且,這個(gè)PRU是Programmable,也就是可以給安裝一個(gè)固件上去。這個(gè)固件會(huì)干些什么呢,由開(kāi)發(fā)人員設(shè)計(jì)實(shí)現(xiàn)。在Sitara系列SoC里,TI提供了一些現(xiàn)成的固件,像實(shí)現(xiàn)EtherCAT(slave)協(xié)議的、Profinet通信的等等,這些都是工業(yè)通信的。在沒(méi)有PRU的情況下,想要做到類(lèi)似的效果,就需要在外部增加一個(gè)ASIC或FPGA部件了。現(xiàn)在整在SoC里的話(huà),就可以把產(chǎn)品做得更小了,也更輕易達(dá)到高可靠性。更方便的是,通過(guò)內(nèi)部總線(xiàn),PRU可以訪(fǎng)問(wèn)到SoC內(nèi)部的各種資源,包括許多的外設(shè)。比如用PRU實(shí)現(xiàn)百兆網(wǎng)協(xié)議棧,大大擴(kuò)展一個(gè)產(chǎn)品上的網(wǎng)口數(shù)量。如今,我司已經(jīng)推出了M65x系列核心板,M65x系列系列核心板是ZLG致遠(yuǎn)電子基于TI公司 AM6526處理器 和 AM6548處理器 開(kāi)發(fā)的工控核心板,旨在滿(mǎn)足工業(yè)4.0嵌入式產(chǎn)品的復(fù)雜處理需求。核心板使用的AM6548處理器具有四個(gè)主頻高達(dá)1.1GHz的Cortex-A53內(nèi)核和兩個(gè)主頻400MHz的Cortex-R5F內(nèi)核,M65x系列核心板可選1GB或2GB DDR3L內(nèi)存以及可選DDR ECC功能,eMMC存儲(chǔ)器可選4GB或8GB。具體型號(hào)有M6526-1GF4GLI-T、M6526-2GF8GLI-T、M6548-1GF4GLI-T、M6548-2GF8GLI-T,產(chǎn)品圖片如圖3 所示。
圖3 M65x系列核心板
EPCM5300A-LI(如圖4)工控機(jī)是廣州致遠(yuǎn)電子有限公司基于M6548系列核心板開(kāi)發(fā)的高性能工控機(jī),標(biāo)配M6548-2GF8GLI-T工控核心板。它是一臺(tái)可堆疊、可擴(kuò)展的工控機(jī),分為上下兩層,其中下層是工控機(jī)的核心部分,上層則是PRU擴(kuò)展部分。工控機(jī)既可以下層單獨(dú)工作,也可以和上層擴(kuò)展一起工作。
圖4 EPCM5300A-LI
EPC5300A-LI主機(jī)集成了大量的外設(shè)和接口資源,正面接口包括電源接口和按鍵開(kāi)關(guān)、LED指示燈、復(fù)位按鍵、USB接口、SD卡接口和SIM卡接口,背面接口包括CAN-FD接口、千兆以太網(wǎng)、LVDS接口、RS232接口和4G天線(xiàn)接口。在主機(jī)內(nèi)部還有預(yù)留MiniPCIe插座接口,支持4G模塊或MiniPCI設(shè)備(如PCIe轉(zhuǎn)SATA);擴(kuò)展PRU模塊EPCM5300A-PRU,可用于擴(kuò)展千兆以太網(wǎng)和串口,最多可擴(kuò)展6路千兆以太網(wǎng)和18路串口、以及RGB LCD接口和MIPI-CSI攝像頭接口。EPCM5300A-LI工控機(jī)可以滿(mǎn)足5G、大數(shù)據(jù)和人工智能場(chǎng)景下的工業(yè)自動(dòng)化、智能交通、智慧城市等行業(yè)應(yīng)用。