PRU,作为TI Sitara系列处理的一个特色功能,那PRU具体有什么特性?能帮助我们解决什么问题?
PRU家族介绍
PRU全称是The Programmable Real-Time Unit Subsystem,也叫PRUSS。中文名为可编程实时单元,它是一个32位RISC处理器核心,与IO子系统进行了紧密集成,为其IO引脚提供了低延迟控制,具有本地的指令和数据RAM,并可寻址访问整个片上系统资源。
TI(德州仪器)针对其家族设备的不同资源分配情况,提供了三种PRU子系统,分别是:PRU-ICSS、PRU-ICSSG、PRU-SS。
PRU-ICSS
-
- :The Programmable Real-time Unit and Industrial Communication Subsystem
可编程的实时单元和工业通信子系统(PRU-ICS)由两个32bit的RISC核心(PRU)组成,提供了共享数据,指令存储,内部和外围功能子模块,中断控制器(INTC)等功能。相关控制器有AM335x、AM437x、AM57x、K2G。
PRU-ICSSG:The Programmable Real-time Unit and Industrial Communication Subsystem – Gigabit
可编程的实时单元和工业通信子系统 - 千兆(PRU_ICSSG)是PRU-ICSS的功能加强版。除了拥有所有PRU-ICSS功能外,还增加了两个辅助可编程实时单元(RTU)内核,两个传输PRU(TX_PRU)内核,提供加速器,加快数据处理和数据流动,并新增更多的外围设备。相关控制器有AM64x、AM65x。
PRU-SS: The Programmable Real-time Unit Subsystem
可编程的实时单元子系统(PRU-SS)是PRU-ICSS的删减版。功能与PRU-ICSS类似,但不支持包括以太网(MII信号和MDIO信号)在内的工业通信子系统功能。相关控制器有AM62x。
PRU系统描述
PRU的核心是用精简指令集来编程的。每个PRU可以独立运行,也可以相互协调,也可以与CPU协同工作。处理器之间的交互是由加载到PRU的指令存储器中的固件的性质决定的。关于PRU-ICSS/PRU-SS的系统描述如图1 所示。
图1 PRU-ICSS/PRU-SS系统描述
PRU-ICSSG拥有RTU,其处理核心与PRU相同,但是RTU与PRU有不同的资源、连接和加速器。例如,PRU可以访问外部通用输入和通用输出(GPI/GPO)引脚,而RTU则不能。关于PRU-ICSSG的系统描述如图2 所示。
图2 PRU-ICSSG系统描述
PRU的功能特性
1. 快速I/O
PRU属于标量处理器,在同一时间内只处理一条数据;
采用非流水线设计,确保所有指令只能顺序执行;
本地内存映射,使用位于子系统内部的本地32位互连总线来访问本地资源,以最大限度地减少访问延迟。
2. 通用总线
PRU本身也有通用总线功能,如:UART、ECAP、PWM、ADC等。
3. 工业协议
TI根据工业行业应用,定制并兼容了多种工业通讯协议,如:EtherCAT、Profinet、Ethernet/IP等。
4. 运行环境
支持TI RTOS、TI Linux SDK及Code Composer Studio (CCS)的运行环境;
开发语言支持汇编指令及C/C++;
PRU固件是一种特定格式的文件,只能在系统对PRU资源进行初始化后,再把其固件加载到PRU核中运行。
PRU的使用场合
众所周知,SoC很复杂,里面集成了不少东西。这个PRU就可以理解为一个协处理器,就是主处理器ARM或DSP之外的一个小东西,可以处理一些专门的任务,已达到高效快速(Real-Time)的目的,同时也减轻了主处理器的负担。
而且,这个PRU是Programmable,也就是可以给安装一个固件上去。这个固件会干些什么呢,由开发人员设计实现。在Sitara系列SoC里,TI提供了一些现成的固件,像实现EtherCAT(slave)协议的、Profinet通信的等等,这些都是工业通信的。在没有PRU的情况下,想要做到类似的效果,就需要在外部增加一个ASIC或FPGA部件了。现在整在SoC里的话,就可以把产品做得更小了,也更轻易达到高可靠性。更方便的是,通过内部总线,PRU可以访问到SoC内部的各种资源,包括许多的外设。比如用PRU实现百兆网协议栈,大大扩展一个产品上的网口数量。
如今,我司已经推出了M65x系列核心板,M65x系列系列核心板是ZLG致远电子基于TI公司 AM6526处理器 和 AM6548处理器 开发的工控核心板,旨在满足工业4.0嵌入式产品的复杂处理需求。核心板使用的AM6548处理器具有四个主频高达1.1GHz的Cortex-A53内核和两个主频400MHz的Cortex-R5F内核,M65x系列核心板可选1GB或2GB DDR3L内存以及可选DDR ECC功能,eMMC存储器可选4GB或8GB。具体型号有M6526-1GF4GLI-T、M6526-2GF8GLI-T、M6548-1GF4GLI-T、M6548-2GF8GLI-T,产品图片如图3 所示。
图3 M65x系列核心板
EPCM5300A-LI(如图4)工控机是广州致远电子有限公司基于M6548系列核心板开发的高性能工控机,标配M6548-2GF8GLI-T工控核心板。它是一台可堆叠、可扩展的工控机,分为上下两层,其中下层是工控机的核心部分,上层则是PRU扩展部分。工控机既可以下层单独工作,也可以和上层扩展一起工作。
图4 EPCM5300A-LI
EPC5300A-LI主机集成了大量的外设和接口资源,正面接口包括电源接口和按键开关、LED指示灯、复位按键、USB接口、SD卡接口和SIM卡接口,背面接口包括CAN-FD接口、千兆以太网、LVDS接口、RS232接口和4G天线接口。在主机内部还有预留MiniPCIe插座接口,支持4G模块或MiniPCI设备(如PCIe转SATA);扩展PRU模块EPCM5300A-PRU,可用于扩展千兆以太网和串口,最多可扩展6路千兆以太网和18路串口、以及RGB LCD接口和MIPI-CSI摄像头接口。EPCM5300A-LI工控机可以满足5G、大数据和人工智能场景下的工业自动化、智能交通、智慧城市等行业应用。
在未来一段时间里,我司将陆续推出更多的支持PRU的核心板(如:M64x系列、M62x系列)及主板,关于PRU更多的样例及特性请关注后续推文解锁。