Sitara AM335x新手私房菜系列之可编程实时单元 (PRU)
[复制链接]
首先我们来看一下Sitara AM335x的功能结构框图,如下图:
•最大频率支持到720MHz; •具有单错检测(奇偶校验)的 32KB/32KB L1 指令/数据高速缓存 •具有错误纠正码 (ECC) 的 256KB L2 高速缓 •片载存储器 (共享 L3 RAM) •支持通用存储器 (NAND,NOR,SRAM,等)支持高达 16 位 ECC •外部存储器接口 (EMIF) •支持最多 2 个端口的 10/100/1000 以太网交换机 •通用存储器控制器 (GPMC) 具有多达 7 芯片(NAND,NOR,复用NOR,SRAM等) •选择的灵活 8/16-位异步存储器接口,使用 BCH 编码以支持 4-位,8-位,或者 16-位 ECC •可编程实时单元和工业用通信子系统 (PRU- ICSS) ……………..
让我心动的功能太多了啊,不过个人认为PRU也可以算是最大的亮点了;或许只是对我个人来说吧,可能不是同学还不知道什么是可编程实时单元 (PRU);好吧,下面我们首先就来学习一下可编程实时单元 (PRU).
可编程实时单元 (PRU) 是一种小型 32 位处理引擎,可为片上实时处理提供更多的资源。PRU 专门用于AM1x MPU与OMPAP-L138解决方案中的 TI 嵌入式处理器,可为系统设计人员提供具有高灵活性的额外措施,通常可降低组件成本。
PRU 的四总线架构有助于指令随数据传输同步传输和执行。此外,还可提供一个输入寄存器,让外部状态信息反映在内部处理器的状态寄存器内。 PRU 设计的一个重要目的就是尽可能地创建灵活性,以便执行各种功能。PRU 的高灵活性可帮助开发人员在其终端产品(不管是触摸屏、集成型显示屏还是存储功能)中整合更多的接口,以进一步扩展产品功能或者其自己的专有接口功能。该目标主要是通过提供包括所有系统存储器、I/O 以及中断在内的 PRU 全面系统可视性实现的。 虽然 PRU 能够全面访问系统资源,但其内部资源相对来说比较普通。它具有 4K 字节的指令存储器和 512 字节的数据存储器。此外,PRU 还具有自己的GPIO,时延仅为数纳秒。 PRU 可通过使用简单的汇编语言代码编程来实施定制逻辑。该指令集可分为四大类: · 将数据移入或移出处理器内部寄存器; · 执行算术运算; · 执行逻辑运算; · 控制程序流。 在工业应用中,通常将 PRU 配置为 IO 块,用来顶替处理器未能提供的 IO。例如,它可以用在需要 UART 块组合的便携式数据终端中,用来连接 GSM、GPS 与蓝牙 (Bluetooth)、小键盘、打印机、LED 组以及 RS232 端口。然而,虽然该处理器系列中的最佳选择只集成了三个 UART,但 PRU 可提供更多的UART 接口,可充分满足不断发展的终端设备对处理各种功能的需求。 除了用来顶替 IO,PRU 经编程后还可执行各种控制、监控或其它片上没有提供的功能。这种灵活性对于一些应用而言特别有帮助,这些应用包含的控制要求与任何标准处理器配置提供的控制要求不匹配。
|