专利名称:一种红外通信信号的调制与接收方法
技术领域:
本发明属于MCU之间的数据通信技术领域,更为具体地讲,涉及一种红外通信信号的调制与接收方法。
背景技术:
在嵌入式系统中,MCU与MCU之间的数据通信通常采用的方式是1、近距离使用总线、串口、SPI(Serial Peripheral Interface,串行外设接口)、1 等进行近距离数据通信。通常使用串口,因为MCU内部有专门的硬件电路。2、远距离通常使用RS485总线进行远距离通信,这也用到了 MCU的串口,传输距离比较远。以上两种数据通信方式满足了在嵌入式系统中开发的基本需求。但在一些恶劣的环境中,为了保证相连接的重要设备或是人机操作一侧的安全, 并降低开发和生产中的相关成本,不用同时使用高性能的器件与设备,如耐高压,高温,高温度,高腐蚀的器件,需要将两块MCU进行全方位的电气隔离,以保证整个嵌入式系统的可靠性与安全性,避免或减少可能产生的大的财产损失。要想实现电气系统的完全隔离,通过红外线在空中的传播来传递信息,进行数据通信是常用且可靠的数据传输手段。由于红外线的波长较短,对障碍物的衍射能力差,需要小角度(30度锥角以内),短距离,点对点直线数据传输才能传输信息,故安全性较强。红外通信适合应用在需要短距离无线通信的场合,进行点对点的直线数据传输。 红外通信收/发的组件也是标准化产品,要利用红外线来实现上述功能,得由红外发射管和接收管实现。在发射端,将数据调制为某一频率的脉冲序列,经电光转换电路,驱动红外发射管以红外光脉冲的形式发出。图1是红外通信信号的解码原理图。红外通信过程中,红外接收直接影响整个红外通信过程的成败,基本原理如图1
7J\ ο基本参数与要求如下1、红外发射、接收管工作频率f在(30k,56k)范围内,较为常用的工作频率f = 38khz ;2、为使红外通信信号成功地解码数据为一个低电平,要求连续输入的规则的红外光脉冲个数η不小于10个,且频率为红外接收管工作频率f,则一个低电平对应的红外光脉冲持续时间tpi ^ 10/f,其中,Ee为红外光脉冲的幅度;3、红外接收管开始解码的时间与红外通信信号开始时间相比较,会有一个延迟时间td,其大小在7/f与15/f之间,即7/f < td< 15/f ;4、实际输出的红外通信信号的解码数据的低电平时间tD。与红外光脉冲持续时间tpi有一个时间_5/f到6/f的误差,即tpi-5/f < tpo < tpi+6/f,其中,VH、VL分别为高电平、 低电平;红外通信信号的调制方法有1、硬件调制2、软件调制PWM波的输出,或是普通I/ 0 口输出。硬件调制无疑增加了硬件电路,而上面提到的软件调制方法是比较为繁琐,并且占用了 MCU非通信端口。
发明内容
本发明的目的在于克服现有技术的不足,提供一种不增加硬件电路、不占用MCU 非通信端口,简单可靠且能减少软件开发成本的红外通信信号的调制与接收方法。为实现上述发明目的,本发明红外通信信号的调制与接收方法,其特征在于,包括以下步骤(1)、将发送端MCU内置的串行外设接口 SPI的波特率设置为红外通信信号的工作频率f ;(2)、发送端的MCU要送一个数据时,将其对应的二进制的每一位进行调制发送一位数据0时,串行外设接口 SPI连续发送a个,a大于等于3的0x55数据, 即 01010101 ;发送一位数据1时,串行外设接口 SPI连续发送a个,a大于等于3的0x00数据, 即 00000000 ;串行外设接口 SPI发送的数据驱动红外发射管,输出调制的红外通信信号 个规则的频率为工作频率f的红外光脉冲对应一个低电平,无红外光脉冲对应高电平;(3)、在接收端,红外接收管对接收到的调制的红外通信信号进行接收当接收到如个规则的红外光脉冲时,解码为一个低电平,没有接收红外光脉冲时,解码为高电平。本发明的发明目的是这样实现的本发明红外通信信号的调制与接收方法,首先将发送端MCU内置的串行外设接口 SPI的波特率设置为红外通信信号的工作频率f ;然后对需要发送的数据进行调制发送一位数据0时,串行外设接口 SPI连续发送a个,a大于等于3的0x55数据,即01010101 ;发送一位数据1时,串行外设接口 SPI连续发送a个,a大于等于3的0x00数据,即00000000 ;串行外设接口 SPI发送的数据驱动红外发射管,输出调制的红外通信信号;最后,在接收端, 红外接收管对接收到的调制的红外通信信号进行接收当接收到如个规则的红外光脉冲时,解码为一个低电平,没有接收红外光脉冲时,解码为高电平。本发明充分利用MCU自带的串行外设接口 SPI来对发送的数据进行调制,不增加硬件电路、不占用MCU非通信端口, 简单可靠且能减少软件开发成本。
图1是红外通信信号的解码原理图;图2是本发明红外通信信号的调制与接收方法一具体实施方式
的红外通信信号的调制解调波形图。
具体实施方式
下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。一般地,MCU具有SPI接口和SCI接口。串行外设接口 Serial Peripheral hterface,简称SPI接口)是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。串行通信接口(Serial Communication hterface,简称SCI接口)是相对于并行通信的串行通信技术的一种总称,在本实施例中,SCI接口是一个标准的异步接收、发送器 (UART Universal Asynchronous Receiver/Transmitter)属于异步串行通信方式。当红外接收管解码出来一串串高低电平的数据送到接收端的MCU时,接收的方式有多种,一是用MCU本身带有的通信模块SPI/SCI,二是普通I/O 口。由于经过红外接收管解码后的数据与红外通信信号相比有一个延迟时间td,而串行外设接口 SPI是同步通信模块,故不能直接用来接收红外接收管解码后的信号;用查询普通I/O 口的方法接收,软件又较为繁琐。综上,用MCU内部的串行通信接口 SCI来接收最为简单,该串行通信接口 SCI是一个标准的异步接收、发送器。想要使红外解码的数据是以 SCI协议的形式输出,则要求接收红外通信信号的占空比是有规则的而且被解码的每位都是等长度的。对于红外通信信号的调制,常用的方法有1、用串行通信接口 SCI发送数据,然后硬件调制,这样的方法精度高,但增加了硬件成本。2、软件调制,软件调制常用的方法a、定时器控制普通I/O 口输出;b、PWM配置输出。方法a对定时器操作太频繁显然不是可取之举;方法b在控制输出规则方波的长短,需要另加定时器操作。显然,本发明提出的用串行外设接口 SPI来调制简易方便多了,由于特殊数据 0x55,其对应的二进制码为01010101,刚好是4个规则高低电平,即方波。在本实施例中,采用的红外接收管tsopl238,其工作频率为381ΛΖ,即红外通信信号的工作频率f为38Wiz。为了让红外接收管解码出来的信号是模拟SCI协议的信号首先将串行外设接口 SPI的波特率为设置工作频率f,即381ΛΖ,使发送端MCU的串行外设接口 SPI输出的数据满足红外接收管的工作频率,这样驱动红外发射管,输出调制的红外通信信号的频率就等于工作频率f。要送一个数据,将其对应的二进制的每一位进行调制发送一位数据0时,只要串行外设接口 SPI连续发送a个(a大于等于3)的0x55,得到如个频率为工作频率f的规则的高低电平,其可以被红外接收管解释成一个低电平;发送一个位数据1时,只要串行外设接口 SPI连续发送a个0x00,在红外接收管将其解译成一个高电平。在本实施例中,要使红外接收管解码出来的数据具有SCI通信协议格式。那么必须在每个数据前加上一个与数据位长度相等的低电平,即串行外设接口 SPI连续发送a个 0x55,然后再逐位调制发送数据,在一个数据发送完的末尾加上一个高电平,即串行外设接口 SPI连续发送a个0x00。
5
将接收端的SCI接口的波特率设置为f/加,对于红外接收管解码出的SCI格式数据,通过接收端的SCI接口直接对解码后的SCI格式数据进行接收。在本实施例中,根据红外接收管对调制的红外通信信号进行解码的方式,如图1 所示,在用串行外设接口 SPI调制发送数据的同时,也进行了对红外接收管解码后的信号按SCI的通信协议进行接收。本发明红外通信信号的调制与接收方法,利用了 MCU内置的通信结构,即内置的串行外设接口 SPI,实现了发送数据的调制,不需要另加硬件调制电路,不占用MCU其它的硬件模块与接口,如PWM 口等,发送与接收操作简单可靠。实例在本实例中,发送端采用型号为430F122的MCU,其内置的串行外设接口 SPI采用 SCI协议格式发送数据0x15。在接收端,采用型号为430F149的MCU,其SCI接口对红外接收管解码后的数据进行接收。红外接收管型号为tsopl238,工作频率为381ΛΖ。用430F122的串行外设接口 SPI对准备发送的数据0x15进行调制,调制后得到的红外通信信号如图2中DO所示,红外接收管解码后的数据如图2中Dl示。如图2所示,发送数据0x15时,前加入了一位0,最后加入了一位1。从本实例,可以看出这种利用串行外设接口 SPI调制的SCI协议的数据能够通过红外接收管解码出标准的SCI格式的数据,在接收端侧的430F149的SCI接口能够准确的无误码率的接收到430F122发送的数据0x15。在本实施例中,利用MCU内置的串行外设接口 SPI对数据进行简单方便的调制,并模拟SCI协议格式。这种方法略去了硬件调制电路,充分利用了 MCU内部通信端口,简化了硬件电路的同时留出了更多的端口以便扩展;优化了一般软件调制方法,简单,稳定的传输数据。从而减少了软硬件开发周期。这种方法可广泛的应用于一些为实现电气完全隔离而采用红外信号传输的系统中。如高压环境中的检测系统,希望能实现与高压设备直接相连的一次侧和人机控制监测的二次侧设备的完全电气隔离系统中,利用红外实现两端设备的数据通信,保证了二次侧的安全性。尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
1.一种红外通信信号的调制与接收方法,其特征在于,包括以下步骤(1)、将发送端MCU内置的串行外设接口SPI的波特率设置为红外通信信号的工作频率f ;(2)、发送端的MCU要送一个数据时,将其对应的二进制的每一位进行调制发送一位数据0时,串行外设接口 SPI连续发送a个,a大于等于3的0x55数据,即 01010101 ;发送一位数据1时,串行外设接口 SPI连续发送a个,a大于等于3的0x00数据,即 00000000 ;串行外设接口 SPI发送的数据驱动红外发射管,输出调制的红外通信信号 个规则的频率为工作频率f的红外光脉冲对应一个低电平,无红外光脉冲对应高电平;(3)、在接收端,红外接收管对接收到的调制的红外通信信号进行接收当接收到如个规则的红外光脉冲时,解码为一个低电平,没有接收红外光脉冲时,解码为高电平。
2.根据权利要求1所述的红外通信信号的调制与接收方法,其特征在于,串行外设接口 SPI在每个数据前加上一个与数据位长度相等的低电平,即串行外设接口 SPI连续发送 a个0x55,然后再逐位调制发送数据,在一个数据发送完的末尾加上一个高电平,即串行外设接口 SPI连续发送a个0x00;在接收端,用MCU内部的串行通信接口 SCI来接收红外接收管解码数据,该串行通信接口 SCI是一个标准的异步接收、发送器。
全文摘要
本发明公开了一种红外通信信号的调制与接收方法,首先将发送端MCU内置的串行外设接口SPI的波特率设置为红外通信信号的工作频率f;然后对需要发送的数据进行调制串行外设接口SPI发送一位数据0时,连续发送a个大于等于3的0x55数据;发送一位数据1时I连续发送a个大于等于3的0x00数据;串行外设接口SPI发送的数据驱动红外发射管,输出调制的红外通信信号;最后,在接收端,红外接收管对接收到的调制的红外通信信号进行接收当接收到4a个规则的红外光脉冲时,解码为一个低电平,没有接收红外光脉冲时,解码为高电平。本发明充分利用MCU自带的串行外设接口SPI来对发送的数据进行调制,不增加硬件电路、不占用MCU非通信端口,简单可靠且能减少软件开发成本。
文档编号H04B10/00GK102545999SQ20121000607
公开日2012年7月4日 申请日期2012年1月10日 优先权日2012年1月10日
发明者余青青, 白利兵, 程玉华, 郑伟, 陈凯 申请人:电子科技大学