《软件》 国际IT专业品牌
基于单片机的电脑遥控系统的设计
高警卫
中国矿业大学信息与电气工程学院,徐州(221600)
E-mail:gjwjw@163.com
摘 要:文中提出了一种电脑遥控系统的设计方案,采用ATMEL公司的AT89C52单片机作为主控芯片,结合单片机和电脑的串行通信接口以及红外通信,再通过上位机控制管理系统实现对电脑的遥控。该系统由于采用单片机和利用数据库进行数据管理,因此成本低,安全,可以灵活的对电脑进行各种复杂的操作。该设计采用KEIL公司的编译软件KEILC51编写单片机程序,采用Visual Basic 6.0编写上位机程序。并且给出了系统电路原理图和程序流程图。
关键词:单片机;电脑遥控;串口通信;红外解码;红外通信 中图分类号:TP7
1. 引言
近几十年计算机迅猛发展,可以说计算机渗透到了各行各业,涉及了人民生活的方方面面,如今计算机已相当普及,但随着人民的生活水平的提高,人民对计算机的要求也越来越高,电脑用户已不满足于仅仅坐在计算机面前进行操作,希望能尽可能的摆脱物理连接线的束缚,扩展工作活动空间。于是相应的无线设备相继出现比如无线鼠标、无线键盘等。
本系统设计就是基于这种对电脑无线控制的思想,以红外信号为无线通信载体,使用AT89C52单片机为主芯片设计控制电路,通过单片机与计算机的串口通信,构建电脑遥控系统,系统依功能可以分为信号发射模块,信号检测与接受模块,数据传输模块和控制管理模块[1]。本系统不仅可以对计算机无线遥控,而且可以根据自己的需求和电脑系统软件特点任意修改扩展其他的功能以及加密等。解决了目前一些电脑遥控器功能单一且不能自定义功能的缺点。另外它适合大规模生产、功耗低、成本低、可靠性高、体积小、结构简单、避免人身伤害等优点,是一种先进的控制方式,具有广阔的应用前景[2]。
2. 系统总体结构
本系统在架构上主要由以下三个子系统组成:遥控板,单片机系统,上位机控制管理系统。如图1所示。
遥控板 红外通信 串口通信 控制管理系统 单片机系统 图1 电脑遥控系统结构框图
遥控板直接借助于普通电视红外遥控器。遥控板主要实现信号发射模块的功能:生成并发射红外信号。由于普通电视遥控器发出的信号一般为38K(Hz)的红外信号,所以红外信号接收装置选择使用型号TSOP1738的红外一体式接收器,红外信号的检测采用中断检测方式,检测与接收模块一旦检测到有效地红外信号立即进行接收以及对红外信号进行解码,并将解码后的数据交给数据传输模块,数据传输模块接到数据后负责与上位机建立串口通信,
- 1 -
《软件》 国际IT专业品牌
并传输相应数据给上位机控制管理系统,管理系统根据接受的数据在指令库中进行检索与匹配得到相应指令,继而执行电脑系统级操作。
3. 系统设计
整个系统的设计主要是单片机系统和上位机程序的设计,下面分别进行简单介绍。
3.1. 单片机系统设计
单片机系统由硬件和软件构成,硬件主要包括红外接收电路和串口通信电路。软件主要包括系统初始化程序、红外检测与解码程序、数据传输程序等。
硬件主要包括AT89C52单片机、一体化红外接收器TSOP1738、MAX232。AT89C52负责对红外信号的解码以及和MAX232构成串口通信电路对上位机传输数据[3],一体化红外接收器就负责检测和接收红外信号。单片机系统电路如图2所示。
图2 单片机系统电路图
在图2中,U1为AT89C52,U2为MAX232,TSOP1738为一体化红外线接收器,J1为串行通信连接设备。为了方便和准确的设置串行通信波特率,振荡电路中采用频率11.0592MHz的晶振。AT89C52自带看门狗,系统提供手动复位控制键。使用3-5V直流外电源或直接使用USB为系统供电。
单片机软件部分主要是红外信号解码程序的设计,本部分使用C语言进行编写,红外一体式接收头在没有检测到红外信号时数据输出引脚一直保持高电平,一旦检测到红外信号就会变为低电平,由于红外接收头输出端与单片机中断0端口相连,中断触发方式设置为下降沿触发,这样当红外接收头检测到红外信号时中断被触发,为了防止干扰信号引起的中断,在接收之前要进行红外信号的有效性判别。如果是有效信号就可以接收和解码,否则放弃。
[4]给出了38kHz红外信号编码格式的解析。应用比较广泛的一种编码格式是采用脉宽调制的串行码,当有按键按下时遥控板发射一组约108ms编码脉冲,其中包括:由9ms低电平和4.5ms高电平组成的引导码、16位二进制地址码、16位二进制数据码。二进制编码
- 2 -
《软件》 国际IT专业品牌
是以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,如图3所示。
0.56ms 1.125ms “0” 1.685ms 2.25ms “1”
图3 二进制编码格式
根据这种编码格式编写算法程序进行红外信号的接收和解码。通过引导码检验信号的有效性以及通过二进制编码的低电平长度来判断“0”和“1”, 解码程序流程如图4所示。
开始 系统初始化 N 延时0.84ms N 中断触发 低电平 位“0” Y 延时9ms 低电平 Y 有效信号 延时4.5ms 干扰信号 N N Y Y 位“1” 缓存变量 4字节数组 数据传输模块 下降沿
图4 解码程序流程图
当红外接收头检测到红外信号时中断被触发,软件延时9ms后如果检测到中断口是高电平则认为是干扰信号并返回重新检测,反之则是有效信号,再延时4.5ms跳过引导码高电平部分接收二进制编码。对于引导码之后的32位二进制“0”和“1”的脉宽同为0.565ms,但是它们的间隔不同,“0”为0.56ms,“1”为1.685ms,为了取得每个脉冲中间比较稳定的电平信号,从每一个脉冲下降沿开始软件延时0.565/2+0.56=0.8425≈0.84ms后再检测中断口,如果是高电平则为“0”,否则为“1”,然后把得出的结果移位存储到数据缓存变量中,由于AT89C52是8位处理器,而信号编码有32位串行码,所以需要循环32次判别每一个下降沿对应的二进制位,最后存储到32/8=4字节的数组中。等待接收解码成功完成后把解码后的数据通过串口通信方式传输给上位机控制管理系统进行分析处理。这种解码算法仅仅借助了编码的一个特征进行分析解码,因此该算法简单实用且利于编程实现。
3.2. 上位机系统设计
上位机控制管理系统使用Microsoft Visual Basic 6.0设计实现。该子系统主要功能包括数据接收、数据处理和数据管理。Visual Basic 6.0为用户提供了串行通信端口COM控件,编写相应的程序即可实现数据接收的功能。为该系统创建一个简单的数据库,如表1、表2所示。
- 3 -
《软件》 国际IT专业品牌
表1 控制标识码匹配函数数据表
控制标识码 控制函数 控制参数索引 272553761 mouse_event 1 272552932 ExitWindowsEx 2 272551256 myshell 3 ?? ?? ?? 表2 控制参数数据表
参数索引 参数1 1 MOUSEEVENTF_LEFTDOWN 2 EWX_SHUTDOWN 3 \?? ?? 参数2 0 0 1 ?? 参数3 0 ?? 参数4 0 ?? 参数5 0 ?? ?? ?? 利用数据库功能可以非常方便的对数据的处理和管理,控制管理系统把接收的数据作为控制标识码,在数据库中查询对应的响应函数和相应参数,然后去执行函数程序控制电脑。控制管理系统允许用户根据自己需求对数据库进行增加、删除、修改等操作。控制函数可以直接使用现有API函数[5]也可以自定义一些函数,从而实现对电脑更复杂、灵活、有效的控制。
4. 结论
本文给出了一种实现电脑遥控功能的设计方案,并且解决了目前常见的电脑遥控器不能功能扩展和修改的缺点。本系统经过实际使用表明其控制性能优越,灵活实用,可实现对装有windows操作系统的电脑0-10m短距离的遥控。由于USB支持热插拔等优点,所以如果本系统再采用目前非常流行的USB接口进行通信,使用起来将更加方便。
参考文献
[1]施宇光.基于蓝牙无线通信的PC遥控解决方案的设计与实现[D].北京:北京邮电大学,2008. [2]张敏辉,赵锡奎. 红外计算机遥控器的设计与实现[J].科技信息(学术版),2008,18:25-26. [3]曹智文,黄成玉. 基于AT89C52的监控系统设计[J].电气自动化,2007,29(6):49-51.
[4]方红萍,王阳. 具有学习功能的通用红外遥控系统关键技术的研究[J].计算机时代,2009,3:20-21. [5]赵仕元. Visual Basic 6.0对API函数引用的方法[J].机械工程与自动化,2008,3:173-174.
- 4 -
《软件》 国际IT专业品牌
Design of Remote Control System for PC Based on MCU
Gaojingwei
Room 7061,Building 3,XingYuan,NanHu section, China University of Mining and
Technology,XuZhou City,JiangSu Province
Abstract
The paper provides a design scheme of computer remote control system. AT89C52 of ATMEL company is the main control chip, combining the serial communication and IR communication and then through PC control management system to achieve remoting computer. Because the system adopts MCU and database is used to manage data, so the cost is low, safety,can control computer flexibly and complexly . This design uses KEILC51 of the KEIL software company to write microcontroller program and uses Visual Basic 6.0 to write computer programs.And given the circuit principle diagram and program flow chart.
Keywords: microcontroller;PC remote control;serial communication;Infrared decoding;IR communication
作者简介:高警卫(1986-),中国矿业大学在读研究生,专业:控制理论与控制工程,主要研究方向:智能控制,嵌入式系统。主要作品:电脑遥控系统,警卫语音识别系统等。
程序设计(汇编)
ORG 0000H ;主程序开始地址 LJMP MAIN
ORG 0003H ;外中断0中断入口 LJMP R_INT
ORG 000BH ;定时器T0中断关闭 RETI
ORG 0013H ;外中断1中断关闭 RETI
ORG 001BH ;定时器T1中断关闭 RETI
ORG 0023H ;串行口中断关闭 RETI
ORG 002BH ;定时器T2中断关闭 RETI
DLY512U: MOV R0,#0FFH ;延时512微妙子程序 D_W_LOOP: DJNZ R0,D_W_LOOP RET
DLY10M: MOV R1,#14H ;延时10毫秒子程序 D_1W_LOOP: LCALL DLY512U DJNZ R1,D_1W_LOOP
- 5 -