微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 红外通信的设计与实现

红外通信的设计与实现

时间:09-26 来源:电子发烧友 点击:

制寄存器的位CPWMS置1,则TPM1工作在中心脉宽输出模式;将TPM1 通道0的状态控制寄存器的ELS0B:ELS0A设置为10,控制发生输出比较时将脉冲信号置高或置低。为使TPM1C1输出38 kHz频率的载波信号,就要对20 MHz的总线频率进行526分频,即526个20 MHz的方波周期产生一个38 kHz的方波周期,因为是中心脉宽输出模式,输出脉冲宽度是通道值寄存器TPM1C1V中值的2倍,输出脉冲周期是通道预置寄存器TPM1M0D中值的2 倍,因此令TPM1C1V=131,TPM1M0D=263,启动定时器后,定时器1的计数器TPM1CNTL在自增1计数时,当该值跟通道值寄存器 TPM1C1V中值匹配时,将脉冲输出信号拉低,定时器1的计数器TPMlCNTL在计数值开始进行自减1操作时,当下降到跟通道寄存器TPMlClV 时,将脉冲输出信号拉高。中心脉宽输出的时序图如图5所示。从此通道输出的方波频率通过示波器查看为37.9 kHz或38 kHz。


  5.2 数据编码的设计

  MC9S08GT60 单片机有36个端口,大部分端口都具有双重功能,本文使用端口PTA7,配置该端口的方向寄存器PTADD_PTADD7为1,即PTA7为输出,根据脉冲编码的规则,进行不同的延时操作,使该端口输出一定宽度的数据脉冲,通过示波器查看该端口,可看到稳定的脉冲序列。

  5.3 接收端信号的输入捕捉设计

  将 TPM2的状态控制寄存器的位CPWMS置0,则TPM2可以工作在输入捕捉模式、输出比较模式、边沿脉冲输出模式;为使TPM2通道0工作在输入捕捉方式,需要进一步设置TPM2通道0状态控制寄存器,将TPM2C0SC的模式选择位MS0B:MS0A设置为00,选择了输入捕捉方式,此外,要设置捕捉发生在什么条件下,那么需要设置TPM2COSC中的极性选择位ELS0B:ELS0A,使其为01,目的是在该引脚出现上升沿时发生捕捉。在发生捕捉时,通道值寄存器会将定时寄存器的值进行锁存,因此比较两次输入捕捉时,通道值寄存器的内容,根据编码规则,可知道该值对应的编码是‘1’或‘0’。此外通道值寄存器是16位的,如果希望通过串口调试窗口查看比较结果,因为串口接收数据缓冲寄存器是8位的,那么可以将其分解为两个8位的数据通过串口发送。

  以下是输入捕捉的中断子程序:

  程序功能描述:将捕捉的数据发往串口查看,这样不管用什么发射器,都可以通过观察串口数据得到识别码,完成不同的功能。

  6 结语

  红外通信一般用在低数据速率,并且短距离的场合中,因此需要低功耗的运行要求。而Freescale的这款单片机工作电压可达到1.8 V,在单片机空闲方式下,通过设置SOPT和SPMSC两个寄存器来设计不同的停止低功耗模式,或者执行一条WAIT指令,使单片机进入等待的低功耗模式,这里就不再详细讲述其实现过程。MC9S08GT60单片机与其他低电压、低功耗的单片机不同之处在于,它并非是以牺牲性能为代价来换取1.8 V的低电压。因此本文使用该单片机讨论了发送和接收红外电路的设计过程及通信协议的运用,该系统的设计切实可行,对红外控制开发者有一定的帮助。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top