一种用于51单片机的红外串行通信接口

发布者:梦想启航最新更新时间:2011-12-28 关键字:单片机  红外通信  串行接口  抄表系统 手机看文章 扫描二维码
随时随地手机看文章

引言

在很多单片机应用系统中,常常利用非电信号(如光信号、超声波信号等)传送控制信息和数据信息,以实现遥控或遥测的功能。例如在单相电度表抄表系统中,就是使用手持抄表器通过遥控的方式,来完成电度表用电量的抄录、设置表底数、电度表校时等工作。红外通信具有控制简单、实施方便、传输可靠性高的特点,是一种较为常用的通信方式。实现单片机系统红外通信的关键在于红外接口电路的设计以及接口驱动程序的设计。

1 红外通信的基本原理

红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。

简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。

2 红外通信接口的硬件电路设计

单片机本身并不具备红外通信接口,但可以利用单片机的串行接口与片外的红外发射和接收电路,组成一个应用于单片机系统的红外串行通信接口,如图1所示。

 

2.1 红外发送器

红外发送器电路包括脉冲振荡器、驱动管T1和T2、红外发射管D1和D2等部分。其中脉冲振荡器由NE555定时器、电阻(R1、R2)和电容(C1、C2)组成,用以产生38kHz的脉冲序列作为载波信号;红外发射管D1和D2选用Vishay公司生产的TSAL6238,用来向外发射950nm的红外光束。

红外发送器的工作原理为:串行数据由单片机的串行输出端TXD送出并驱动T1管,数位“0”使T1管导通,通过T2管调制成38kHz的载波信号,并利用两个红外发射管D1和D2以光脉冲的形式向外发送。数位“1”使T1管截止,红外发射管D1和D2不发射红外光。若传送的波特率设为1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图2所示。


    2.2 红外接收器

红外接收电路选用Vishay公司生产的专用红外接收模块TSOP1738。该接收模块是一个三端元件,使用单电源+5V电源,具有功耗低、抗干扰能力强、输入灵敏度高、对其它波长(950nm以外)的红外光不敏感的特点,其内部结构框图如图3所示。

TSOP1738的工作原理为:首先,通过红外光敏元件将接收到的载波频率为38kHz的脉冲调制红外光信号转化为电信号,再由前放大器和自动增益控制电路进行放大处理。然后,通过带通滤波器和进行滤波,滤波后的信号由解调电路进行解调。最后,由输出级电路进行反向放大输出。

为保证红外接收模块TSOP1738接收的准确性,要求发送端载波信号的频率应尽可能接近38kHz,因此在设计脉冲振荡器时,要选用精密元件并保证电源电压稳定。再有,发送的数位“0”至少要对应14个载波脉冲,这就要求传送的波特率不能超过2400bps。利用上述红外收发电路构成的红外信道最大通信距离为8m。


3 红外通信的软件设计

3.1 通信方式

考虑到红外光反射的原因,在全双工方式下发送的信号也可能会被本身接收,因此红外通信需采用异步半双工方式,即通信的某一方发送和接收是交替进行的。这里设置单片机的串行口采用方式3通信;通信的数据格式为每帧11位,包括1位起始位、8位数据位、1位奇偶校验位和1位停止位;片内定时器T1作为波特率发生器,选择传送的波特率为1200bps,则定时器T1的初值应设置为TL1=TH1=E8H,另外应禁止定时器T1中断,以免因定时器T1溢出而产生不必要的中断。

3.2 通信协议

进行红外通信之前,通信双方首先要根据系统的功能要求制订某种特定的通信协议,然后才能编写相应的通信程序。例如在电度表抄表系统中,红外通信的一方是单相电度表,另一方是手持抄表器,双方遵循表1格式的通信协议。

表1 抄表系统的通信协议

          格 式
  操 作
操作码 地址码 数  据 结束符
读取表数 AAH 3字节BCD码 3字节BCD码 EDH
设置表号 BBH - 3字节BCD码 EDH
设置表底数 CCH 3字节BCD码 3字节BCD码 EDH
开/关表设备 DDH 3字节BCD码 A0H/B0H EDH
校验出错 EEH 3字节BCD码 - EDH

3.3 单相电度表通信程序

在电度表抄表系统中,单相电度表接收命令是被动的,因此它采用实时性的中断方式进行接收。在系统初始化程序中依据如前所述的通信方式,对串行口和定时器T1进行相应的设置。

在中断程序程序中按字节形式进行接收,将接收到的字节存放在预先设定的缓冲区内,当接收到命令结束符后,则转入命令处理并回送相应的信息。接收过程中若发现校验错误,则停止接收并调用错误处理子程序,发送接收出错的信息,要求发送端重新发送。串行口中断服务程序的流程如图4所示。

3.4 手持抄表器通信程序

在红外通信过程中,手持抄表器是通信的发起者,其发送和接收都是主动的。它的具体工作过程为:CPU不断扫描键盘,若发现有命令键按下,则调用发送子程序发送相应的操作命令;发送结束后即启动接收子程序,以接收电度表回送的信息,然后对接收到的信息进行后续处理。

结语

本文介绍的应用于单片机系统的红外串行通信接口,具有硬件电路简单、成本低廉、编程方便、通信可靠性高的特点,实现了通信双方非接触式的数据传送。在电度表抄表系统中,由于配备了红外通信接口,利用手持抄表器可以方便地完成对电度表的抄录和校准等工作,大大提高了抄表工作的效率,而且抄表确定高并杜绝了估抄和误抄的问题。这种红外通信方案也可用于其它遥控、遥测的单片机应用场合。

关键字:单片机  红外通信  串行接口  抄表系统 引用地址:一种用于51单片机的红外串行通信接口

上一篇:SPI总线在51单片机系统中的实现
下一篇:一种简单串行鼠标控制的51单片机实现

推荐阅读最新更新时间:2024-03-16 12:49

51单片机学习知识点
1.单片机内部资源三大指标: a.FLASH(程序存储控件 ROM ) 相当于: 电脑硬盘(断点后还保存在) b.RAM(内存) 相当于: 电脑内存(存储一些) c.SFR(特殊功能寄存器) 2.单片机的选择: a.STC89C52 (国内生产的) 1k=1024字节 b.P89V51RD+ 支持与KEIL联机进行在线仿真。 3.单片机最小系统 三要素:电源电路,复位电路,晶振电路。 特点:单片机可以运行程序,是单片机控制系统的核心。 可以独立运行的模块,叫做最小系统. 4. 5V就是高电频,0V就是低电平,数字电路,就是一个高一个低 高电平(正极)接VCC ,低电平(负极)接GND,这样就给单片机供电了。 电流对直流来说相当于
[单片机]
51<font color='red'>单片机</font>学习知识点
51单片机软件复位
我们知道51单片机可以把数据放在程序存储器里面,也就是程序和数据没有本质区别,都是一些特定的数据。如果我们将一段程序,以数组数据的形式存储在程序存储器里面,那么是不是也可以执行呢?答案是肯定的。 言归正传,先来看看这个数组数据 0xe4,0xc0,0xe0,0xc0,0xe0,0x22,中Keil的汇编窗口看出,它其实是四条汇编语句: CLR A ;编译后为 0XE4 PUSH ACC ;编译后为 0XC0 0XE0 PUSH ACC ;编译后为 0XC0 0XE0 RET ;函数返回 编译后为 0X22可以看出,其实这就是51单片机的汇编复位指令。
[单片机]
单片机定时器-遥控器解码程序分析
一、前言 利用STC公司1T内核的STC12C08S2 单片机对一款遥控器进行解码,将解码的数据转换为以us为单位的时间通过单片机串口通讯发送到STC下载软件自带的串口调试工具接收框进行显示。 本文主要对测试结果进行展示与分析并对单片机控制程序进行分析,以此起到抛砖引玉的作用,希望读者理解程序以后可以利用单片机对身边的任意一款遥控器进行解码并将遥控器与单片机的实际应用联系在一起。 二、测试结果展示 1、实验材料介绍 实验材料硬件部分 软件部分 为KEIL V2 编程软件 和 单片机程序下载软件STC_ISP_V479 为了高效率学习程序编写,本实验平台采用单片机教程网的51hei-5单片机开发
[单片机]
<font color='red'>单片机</font>定时器-遥控器解码程序分析
一种基于单片机的速度测量系统
1. 引言 在我室研制的某型测控系统中,遇到一弹丸状物体的初速测量要求,速度范围在0~150m/s,要求测速模块实现成本低、可靠性高,测速数据送上位机显示。 目前科研生产中采用的速度测量方法可分为两类;直接测量法和间接测量法两大类。直接测量法是通过某种测量原理或效应直接获得速度量, 如多普勒测速仪、空间滤波测速等。这种方法的最大优点是反应快、可测量瞬时速度,但设备成本高,且受到大气物理环境的限制。间接测量法是测量目标的移动距离和时间, 通过计算得到速度量, 如光电测速、光栅测速、磁栅测速和图像测速等,用于测量小型弹丸的天幕法和光幕法测速系统、用于车辆测速的激光测速仪,以及用于生产流水线上的光电脉冲测速方法等等。 根据本系统的特点,我
[测试测量]
一种基于<font color='red'>单片机</font>的速度测量<font color='red'>系统</font>
Key.h头文件下载-AVR系列单片机的4*4小键盘驱动头文件
/***************************************************************************** 文件名称:Key.h 文件标识:_KEY_H_ 摘 要:AVR系列单片机的4*4小键盘驱动头文件 当前版本:V1.0 *****************************************************************************/ #ifndef _KEY_H_ #define _KEY_H_ #include BaiYuAvrKuDataType.h #include BaiYuAvrKuP
[单片机]
基于51单片机的温控风扇设计
前 言 在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能CPU风扇等。而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。 随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。 本文设计了基于单片机的温控风扇系统,用单片机为
[单片机]
基于51<font color='red'>单片机</font>的温控风扇设计
基于EFM32TG840F16 MCU的室内甲醛检测仪设计
甲醛是一种重要的化工原料和有机溶剂,广泛使用于家庭装修的材料中。过量甲醛气体,将诱发疾病甚至致癌,直接危害着人们的身体健康和生命安全。本检测仪采用32 位超低功耗EFM32TG840F16 微处理器和高灵敏度甲醛传感器CH20/S-10,实现甲醛浓度的信号处理和采样,系统外接通讯接口及必要的扩展功能模块,构建智能化、多功能的检测系统。 1 系统硬件设计 甲醛检测 仪硬件主要由单片机主控系统、甲醛传感器接口、液晶显示(LCD)、功能键盘、数据存储、打印和报警输出等功能模块构成。系统硬件结构框图(见图1)。 图1: 系统功能框图 该系统采用32 位EFM32TG840F16 单片机作为主控核心,内
[单片机]
基于EFM32TG840F16 <font color='red'>MCU</font>的室内甲醛检测仪设计
-51单片机中软时钟设计的优化方法
0 引言 随着微电脑应用的普及,以MCS-51单片机为核心的微机测控系统已随处可见。为满足用户要求,这些系统通常都具有数码显示时钟的功能。由于MCS-51内部包含2个定时计数器,通过采用将其中一个定时计数器用于软时钟设计的方法,可以大大节省硬件开销。本文提出了如何提高软时钟的定时精度,以及在软时钟存在的情况下,如何提高以MCS-51单片机为核心的测控系统的设计质量的方法。 1 MCS-51单片机内部定时计数器概述 MCS-51单片机内部包含2个定时计数器T0和T1,它们都是16位的加法计数器,既可用于定时,也可用于计数,在用于定时的情况下,计数脉冲由内部提供,因此计数速率固定为CPU振荡频率的1/12;在用于计数的情况下
[单片机]
-51<font color='red'>单片机</font>中软时钟设计的优化方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved