STM8 IrDA红外功能

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

STM8 IrDA红外功能

通过设置UART_CR5寄存器的IREN位选择IrDA模式。UART_CR3寄存器的STOP位必须设置成"1个停止位"。在IRDA模式里,下列位必须保持清零:

  • UART_CR3寄存器的LINEN,STOP和CLKEN位
  • UART_CR5寄存器的SCEN和HDSEL位。

注意:STM8红外功能只适用于UART1和UART2。

IrDA SIR物理层规定使用反相归零调制方案(RZI),该方案用一个红外光脉冲代表逻辑'0'(见图114)。

SIR发送编码器对从UART输出的NRZ(非归零)比特流进行调制。输出脉冲流被传送到一个外部输出驱动器和红外LED。对于SIR ENDEC应用,UART最高只支持到115.2Kbps速率。在正常模式里,脉冲宽度规定为一个位周期的3/16。

SIR接收解码器对来自红外接收器的归零位比特流进行解调,并将接收到的NRZ串行比特流输出到UART。在空闲状态里,解码器输入通常是高(标记状态marking state)。发送编码器输出的极性和解码器的输入相反。当解码器输入低时,检测到一个起始位。

  • IrDA是一个半双工通信协议。如果发送器忙(也就是UART正在送数据给IrDA编码器),IrDA接收线上的任何数据都将被IrDA解码器所忽略。如果接收器忙(也就是UART正在接收从IrDA解码器来的解码数据),从UART的TX上到IrDA的数据将不会被IrDA编码。当接收数据时,应该避免发送,因为将被发送的数据可能被破坏。
  • SIR发送逻辑把'0'作为高脉冲发送,把'1'作为低电平发送。脉冲的宽度规定为正常模式时位周期的3/16(见图115)。
  • SIR解码器把接收到的IrDA信号转变成比特流后发送给UART。
  • SIR接收逻辑把高电平状态解释为'1',把低脉冲解释为'0'。
  • 发送编码器输出与解码器输入有着相反的极性。当空闲时,SIR输出处于低状态。
  • IrDA规范要求脉冲要宽于1.41us。脉冲宽度是可编程的。接收器端的尖峰脉冲检测电路会过对宽度小于2个PSC周期的脉冲进行过滤操作(PSC是在UART_GTPR中编程的预分频值)。宽度小于1个PSC周期的脉冲一定会被过滤掉,但是那些宽度大于1个而小于2个PSC周期的脉冲可能被接收或滤除,那些宽度大于2个周期的将被视为一个有效的脉冲。当PSC=0时,IrDA编码器/解码器不工作。
  • 接收器可以与一低功耗发送器通信。
  • 在IrDA模式里,UART_CR2寄存器上的STOP位必须配置成1个停止位。

IrDA红外低功耗模式

IrDA可以工作在正常模式,也可以工作在低功耗模式。选择低功耗模式需要把UART_CR5寄存器的IRLP位置1。

发送器

在低功耗模式,脉冲宽度不再持续3/16个位周期。取而代之,脉冲的宽度是低功耗波特率时钟周期的3倍,该波特率的频率最小可以是1.42MHz。通常这个值是1.8432MHz(1.42 MHz<PSC<2.12 MHz)。一个低功耗模式可编程分频器把系统时钟进行分频以达到这个值。

接收器

低功耗模式的接收类似于正常模式的接收。
为了滤除尖峰干扰脉冲,UART应该滤除宽度短于1个周期的脉冲。只有持续时间大于2个周期的IrDA低功耗波特率时钟(UART_GTPR中的PSC)的低电平信号才被接受为有效的信号。
注意:1.宽度小于2个大于1个PSC周期的脉冲可能会也可能不会被滤除。
2.接收器的建立时间应该由软件管理。IrDA物理层技术规范规定了在发送和接收之间最小要有协10ms的延时(IrDA是一个半双工议)。

STM8_IrDA SIR ENDEC–框图
(图114:STM8_IrDA SIR ENDEC–框图)

STM8_IrDA数据调制(3/16)–普通模式
(图115:STM8_IrDA数据调制(3/16)–普通模式)

STM8 IrDA红外功能

——