摘要:论述红外通讯的根本作业原理;结合在单相电度表抄表体系中的详细运用,介绍一种合适单片机体系的红外通讯计划,规划详细的硬件接口电路,阐明其作业原理,给出运用于红外通讯的程序流程,并指出在施行进程中应留意的一些问题。 关键词:单片机 红外通讯 串行接口 抄表体系 导言 在许多单片机运用体系中,常常运用非电信号(如光信号、超声波信号等)传送操控信息和数据信息,以完结遥控或遥测的功用。例如在单相电度表抄表体系中,便是运用手持抄表器经过遥控的方法,来完结电度表用电量的抄写、设置表底数、电度表校时等作业。红外通讯具有操控简略、施行便利、传输可靠性高的特色,是一种较为常用的通讯方法。完结单片机体系红外通讯的关键在于红外接口电路的规划以及接口驱动程序的规划。 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不断扫描键盘,若发现有指令键按下,则调用发送子程序发送相应的操作指令;发送完毕后即发动接纳子程序,以接纳电度表回送的信息,然后对接纳到的信息进行后续处理。 结语 本文介绍的运用于单片机体系的红外串行通讯接口,具有硬件电路简略、本钱低价、编程便利、通讯可靠性高的特色,完结了通讯两边非触摸式的数据传送。在电度表抄表体系中,因为装备了红外通讯接口,运用手持抄表器能够便利地完结对电度表的抄写和校准等作业,大大提高了抄表作业的功率,并且抄表确认高并杜绝了估抄和误抄的问题。这种红外通讯计划也可用于其它遥控、遥测的单片机运用场合。