在嵌入式系统中,通常外设之间不能直接通信,对于一些需要外设联动的操作,需要MCU介入,比如定时到了,启动串口的发送/接收,则需要为定时器写一个中断处理程序,在其中启动串口动作。在有一些SoC中,提供了PRS功能,可以让外设之间直接通信。借助PRS,上述例子中,定时器的溢出,可以直接启动串口,而不再需要中断处理程序的介入,既可以进一步解放MCU,也保证了更高的实时性。
PRS简介
PRS是Peripheral Reflex System(外设反射系统)的略称,提供了若干可配置的外设互联通道。外设互联通道是一个类似于GPIO的信号连接通道,将一个信号产生外设和一个信号接收外设相连,同时可以指定信号的触发方式:上升沿、下降沿或上升/下降沿。PRS还具有可配置的信号转化功能,因此输出信号可以是脉冲信号、也可以是电平信号。对于每一个SoC,PRS可以配置的信号产生外设和信号接收外设是不同的,需要具体参照相关的数据手册。下图是EFM32G的PRS电路原理。
PRS的使用
PRS的一个简单的设定流程如下所示,但具体的设置与所用的芯片有关,需要参考芯片的数据手册。
有的PRS也提供了软件指定输入的寄存器,用于由软件生成相应通道的输出,可以使PRS通道的输入在软件/硬件之间切换,使用更灵活。