新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的主从红外通信的系统设计

基于单片机的主从红外通信的系统设计

作者:时间:2012-10-10来源:网络收藏

3、软件

中主机接收、发送电路与从机的电路完全相同,红外线的载波频率也相同。在红外中,若采用不同载波频率来区分主机及从机之间的通信可以通过改善红外发射和接收电路的频率特性,但是这样会大大提高硬件成本,本通过配置适当的通信协议来降低硬件成本。为了避免发射时造成对本机的干扰,采用异步半双工通信模式,在同一时间内可以是主机发送,从机接收;也可以是从机发射,主机接收。主机及从机通信流程如下:

主机通信过程为:(1) 上电初始化,完成UART的工作模式、波特率的设置(系统波特率为2400bps);CCU模块PWM工作模式、PWM频率设定。CCU模块工作在对称的、非反向的PWM模式,频率38KHz,占空比50%;(2) 等待数据发送控制信号到来;(3) 若接收到发送控制信号,则立即通过红外串行发送16字节数据;(4) 通过红外接口接收从机返回的16字节数据;(5) 比较接收到的16字节与发送到16字节数据,若一致则发送下一个数据,否则重发该数据。

从机通信过程为:(1) 上电初始化,完成UART的工作模式、波特率设置;CCU模块PWM工作模式、PWM频率设定;(2) 通过红外接口从主机接收16字节数据;(3) 判断是否为重发数据,若是则覆盖前次接收到的数据。

主机和从机通信过程包括的函数主要有系统初始化函数UART_Init(),向串口发送数据函数UART_SendByte()、 串口接收红外信号数据 UART_RcvByte( )等。部分函数程序代码如下:

UART_SendByte(unit8 dat) //向串口发送数据

{ SBUF = dat; //发送数据

while(TI = =0; // 等待发送完毕

TI = 0;

}

unit8 UART_RcvByte() //接收串口数据

{if(RI = =0) return(0); //若没有接收到数据,则返回0

*dat = SBUF;

RI = 0;

return(1);

}

4、结束语

红外通信可用于许多需短距离及非接触式传输数据的场合。本文式红外通信接口具有硬件电路简单、成本低、通信可靠等特点,实现了主机及从机双方非接触式的数据传输。适当修改通信软件就可以让系统用于红外抄表、遥控、遥测等许多场合。

红外遥控器相关文章:红外遥控器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭