基于Matlab的红外串行通信研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab的红外串行通信研究
李俊华
【摘要】介绍一种基于Matlab的红外通信电路的研究设计.简要介绍了Matlab 进行数据处理方面的优点,然后分析Matlab进行串口传输的原理和方法.设计出基于AT89S51的红外发送和接收电路.并将Matlab产生的数据作为数据源进行红外传输.这种方法有利于结合Matlab的数据处理和数据传输的优点,有一定的实用性.%The research and design of a Matlab-based infrared communication circuit are introduced.The Matlab advantages for data processing are presented briefly.The principles of Matlab-based serial transmission is analyzed.IR transceiving circuit based on AT89S51 is designed.The data generated by Matlab is taken as a data source to perform the IR transmission.This approach is conducive to combination of Matlab-based data processing and data transmission advantage.Therefore, it has a certain practicality.
【期刊名称】《现代电子技术》
【年(卷),期】2011(034)003
【总页数】3页(P59-60,64)
【关键词】Matlab;红外;串行通信;AT89S51单片机
【作者】李俊华
【作者单位】闽江学院现代教育技术中心,福建福州,350108
【正文语种】中文
【中图分类】TN929.1-34
0 引言
Matlab是一种开放型程序设计语言,拥有集计算、可视化、编程和仿真于一体的开发环境。

同时它具有功能强、易学习、效率高等特点,可以方便地应用到科学计算、算法研究、数据采集和处理、系统建模和仿真、数据分析和可视化、科学和工程绘图、图形用户界面建立等方面。

从Matlab 6.0版本开始,软件中增加了设备控制箱(Instrument Control Toolbox)功能,提供了对RS 232/RS 485通信标准的串口通信的正式支持[1]。

利用该工具箱的serial类及fopen,fread等函数,能可靠地进行实时串行通信。


据Matlab的设备控制箱功能,将Matlab产生的数据,例如图像数据等,通过串口输出作为红外传输的数据源。

红外传输控制电路由AT89S51单片机实现。

这种方法有利于结合Matlab的数据处理和数据传输的优点,从而增加电路的实用性[2]。

1 Matlab串口通信原理
在Matlab 6.0中的设备控制工具箱可以用来负责上、下位机之间的通信。

该设备控制工具箱的特点有:支持的串行接口包括有RS 232,RS 422,RS 485;支持的通信数据包括二进制和文本两种方式;支持异步通信和同步通信以及事件驱动的通信。

Matlab支持面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便[3]。

首先使用serial函数创建串
口对象,并定义串口对象的属性,如数据传输的波特率、奇偶校验位、串口类型等,一般选用“com1”来进行数据的传送。

然后用fopen,fread函数打开串口和写
入串口数据,这个数据可以是Matlab处理得到并需要传输的数据。

数据传输完毕之后,利用fclose函数来关闭对象。

常用的与串口操作有关的函数如表1所示。

表1 Matlab串口传输函数说明函数说明serial创建1个串口对象,格式:m= serial('coml')fopen打开串口对象,格式:fopen(m)fread读取串口数据,格式: fread(m)fclose关闭串口对象,格式:fclose(m)free解除Matlab对串口对象的控制delete删除对象,格式:delete(m)clear从工作空间中删除对象,格式:clear(m)
下面是串口通信的一个例子,这个例子是使用Matlab来向串口发送数据
0,18,24,32的。

先在Matlab软件中输入函数代码,如图1所示。

图1 使用Matlab发送二进制数据组
然后使用串口调试助手来接收串口发送的数据,其中“com3”和“com4”为一对虚拟串口对,如图2所示。

可以看出,输出的数据组00,12,18,20为原来数据的十六进制显示,证明显示正确。

图2 串口调试助手接收数据
由于Matlab 6.0封装的串口对象支持对串口的异步读写操作,使得计算机在读写串口时能同时进行其他处理工作,因而能大大提高计算机执行效率。

这样就能确保实时进行红外传输。

2 红外发送接收电路
2.1 红外通信原理
红外线是可见光谱中位于红色光之外的光线,它在光谱中的波长范围在0.76~400 μm之间。

由于红外线在频谱上居于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体[4]。

人们可以通过设计红外发射和接收电路来实现红外通信。

红外通信具有保密性强、抗干扰能力高、结构简单、价格低廉等优点,在无线传输领域有着广泛的应用[5]。

红外通信是采用红外线作为信息传递媒体。

红外通信的发送端是将要发送的二进制数字信号调制为一定频率的脉冲序列,一般采用38 kHz的方波作为载波信号,然后驱动红外发射管以光脉冲的形式向外发送;红外通信的接收端采用红外接收芯片,它能将接收到的光脉冲转换成电信号,通过信号放大、滤波、解调处理后,输出和
发送信号一样的数字信号,从而完成红外信号的通信。

2.2 红外发送电路设计
利用AT89S51的定时计数功能产生38 kHz红外载波信号,载波信号由P1.1口输出,C语言程序设计如下:
main()
while(1)
{
p1=0x1
/*P1.0口输出高电平*/
delay()
/*延时30 μs*/
}
delay()
{
for(i=0;i<=2;i++);
/*每循环一次10 μs*/
}
由Matlab产生的数据通过P1.0口,产生一定脉宽的方波信号,作为红外发送的
信息源。

红外发送电路如图3所示。

图3中,三极管起信号放大作用,电阻R3,
R4起到限流保护的作用。

通过两个三极管的级联,能将编码调制在38 kHz载波
上的二进制信号通过红外发射器发射出去。

当输入信号为低电平时, 两个三极管导通, 红外发射器上有电流通过,发射高电平信号。

而当输入信号为高电平时,两个三极管截止,红外发射器上无电流通过,发射低电平信号,其中LED为红外发射二极管。

图3 红外发送电路
2.3 红外接收电路设计
本系统中采用的红外接收模块为TSOP4838。

该接收模块是一个三端元件,它具
有功耗低、抗干扰能力强、输入灵敏度高等优点[5]。

TSOP4838的工作原理为:将接收到的调制在38 kHz的脉冲光信号转化为电信号,再由前置放大器和自动增益控制电路进行放大处理。

然后通过带通滤波器进行滤波,滤波后的信号由解调电路进行解调。

红外接收电路如图4所示。

三极管A1将TSOP4838的OUT口输出的二进制传输信号放大,电容C1起滤波作用,最终信号由OUT1输出。

由于OUT1输出的是串行数据,在实际应用中可以根据需要转为并行数据输出,
为此可以在OUT1口加一个移位寄存器74LS164。

图4 红外接收电路
3 结语
基于Matlab的红外串行通信电路的最大特点是对Matlab数据处理能力和红外通信能力的结合。

红外通信的结果真实可靠、错误率低。

本电路系统在一些实时传输方面,如用Matlab将处理的图形数据、计算结果等进行无线传输,将得到较为广泛的运用。

参考文献
[1] 何英,何强.Matlab扩展编程[M].北京:清华大学出版社,2003.
[2] 李泽光.基于单片机的红外遥控器解码器的设计[J].现代电子技
术,2007,30(9):36-37,40.
[3] 方红萍,王阳.具有学习功能的通用红外遥控系统关键技术的研究[J].计算机时代,2009(3):20-21.
[4] 向先波,徐国华,张琴.Matlab环境下PC机与单片机的串行通信及数据处理[J].单片机与嵌入式系统应用,2004(12):27-31.
[5] 叶晖.红外通信协议在嵌入式系统中的实现[J].电子技术应用,2000,26(7):27-30.
[6] 黄涛,褚淑杰.基于红外通信的智能家居系统[J].微计算机信息,2005,21(1):32-35.
[7] 张君怡,王海明,裴东兴.基于USB2.0的红外数据传输系统的设计与实现[J].电子设计工程,2009(12):49-50.
[8] 张利娜,洪显昌.红外通信的设计与实现[J].现代电子技术,2008,31(23):87-89,92.。

相关文档
最新文档