找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6457|回复: 0
打印 上一主题 下一主题
收起左侧

STM8 IrDA红外功能

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-2 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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是一个半双工议)。

(图114:STM8_IrDA SIR ENDEC–框图)

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






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表