查看:
27460
回复: 33 |
基于stm8L单片机的IrDA红外数据通讯实验
|
|||
立创快报
【官方工作人员】
8
主题
1
回复 |
发表于2017-05-17 10:39:42
|
只看该作者
1#
电梯直达
基于stm8L单片机的IrDA红外数据通讯实验 作者: 立创赵工 1、作品简介 最近发现立创商城上有个IrDA收发器出现!玩够了常见的WIFI、蓝牙、GPRS、2.4G nRF24L01电子器件和模块,笔者对IrDA还是没用过,决定尝尝鲜咯!因此,做了下面这个IrDA红外数据通讯实验。 实验板外形图:
PS: 这个实验板,因为电路较简单,笔者采用的是立创商城上,下单即可免费拿的“STM8L051+LT8920+ME6209的评估板模块(PCB空板)”进行改装的,该板的商品编号是:C94731。 什么是IrDA? 顺此,先给大家简单介绍一下: IrDA是红外数据组织(Infrared Data Association)的简称,目前广泛采用的IrDA红外连接技术就是由该组织提出的.到目前为止,全球采用IrDA技术的设备超过了5000万部。 IrDA已经制订出物理介质和协议层规格,以及2个支持IrDA标准的设备可以相互监测对方并交换数据。 初始的IrDA1.0标准制订了一个串行,半双工的同步系统,传输速率为2400bps到115200bps,传输范围1 m,传输半角度为15度到30度。最近IrDA扩展了其物理层规格使数据传输率提升到4Mbps。 IrDA数据协议由物理层,链路接入层和链路管理层三个基本层协议组成,另外,为满足各层上的应用的需要,IrDA栈支持IrLAP, IrLMP, IrIAS, IrIAP, IrLPT, IrCOMM,IrOBEX和IrLAN等。 需要特别指出的是:本实验只是IrDA物理层的通讯实验。 2、作品亮点 ① 所选用的IrDA收发器TFBS4711是一个小体积的红外收发模组,尺寸6x3x1.9mm。 ② 符合IrPHY1.2 标准,IrFM快速链接需求。 ③ 通信速率:115.2kbs (SIR),支持双向、全半工的通讯链接。 ④ 可实现的直线通讯距离:~1米。 ⑤ 使用内置支持IrDA底层信号编码和解码的低功耗单片机STM8L051F3P6做主控。 ⑥ 该IrDA模组耗电量极小,关断电流只有大概10nA。 ⑦ 采用最常用的MicroUSB插座作为电源输入接口。 ⑧ 本实验所用的IrDA通信具有功耗低、链接时间短、通信安全、无电磁干扰等优点! 3、硬件原理图描述 首先,我们先来这个实验电路的构架图:
其中,单片机驱动部分的原理图,可为多个部分,下面逐个介绍: 第一部分: 单片机主控部分
备注说明: 上图采用ST公司的低功耗单片机STM8L051F3P6进行设计,该单片机的PC5和PC6分别链接到IrDA收发器TFBS4711的TX和RX端口,而单片机的PB4用来控制TFBS4711的电源使能端,当PB4=0的时候,IrDA收发器才可正常工作,反之PB4=1,那么IrDA收发器关断,此时的耗电量极少噢!D1和D2是工作状态指示灯,分别连接到PC0、PC1。 第二部分:单片机外围部分
备注说明: 如上图所示,P2是SWIM接口,单片机STM8L051F3P6的程序,可通过ST-LINK/V2 开发工具对该芯片下载或仿真。而S1~S4是轻触按键,本实验电路,只焊接安装了S4按键,因为其它按键用不到。 第三部分:系统的供电电源部分
备注说明: 如上图所示,F1是可恢复保险丝(0.2A), U3是3.3V的LDO。D3是电源指示灯。 第四部分:IrDA模组TFBS4711的相关简介 TFBS4711是一个小体积的红外收发模组,它支持半双工的IrDA红外通信,传输速率可达115 .2kbit/s(SIR). 模组内部包含了一个PIN类型的光电二极管、一个红外发射管(IRED)和一个低功耗的CMOS控制芯片。它是为低功耗的IRDA标准而设计,直线通信高达至1米。支持低功耗模式,当SD引脚有效的时候,这个模组的电流消化才10nA左右。相比一般的无线电传输(蓝牙、WIFI、2.4G nRF24系列等等),红外传输具有无电磁干扰、通信距离短但安全性高、使用简单的特点,比如STM8或者STM32一般都集成了IrDA的硬件支持单元,结合使用TFBS4711即可快速建立起一个基于光技术的“无线”数据通信系统。
4、材料清单(BOM列表) 以下是这个电子制作的BOM列表,器件全部采购来自立创商城(http://www.szlcsc.com),PCB板的制造在深圳嘉立创完成。
5、软件部分的描述 本实验的主控单片机stm8L051F3P6 使用IAR公司的编译器进行软件开发,结合ST官方网站可下载的stm8L函数驱动库,进行coding。软件实现的主要功能是,按键S4触发后,两块同样配置和固件的PCBA板之间进行数据信息的交换,驱动LED等等。如下是实验代码的关键片段: 6-1、单片机stm8L051F3P6的IrDA 初始化片段
6-2、主控程序片段
PS: 该实验的完整软件、工程源码在这里,点击下载:TFBS4711的IrDA测试工程源码.rar 6、现场试验&视频
具体的实验视频链接如下: http://v.youku.com/v_show/id_XMjc2NzUxNDQwMA==.html
7、总结 通过以上相关实验介绍,特别是视频方面的功能演示,相信大家对IrDA有了一定的了解。相比一般的无线电传输(蓝牙、WIFI、2.4G nRF24系列等等),红外传输具有无电磁干扰、通信距离短但安全性高、使用简单的特点,STM8或者STM32一般都集成了IrDA的硬件支持单元,操作IrDA就像操作串口一样简单!结合使用IrDA器件TFBS4711即可快速建立起一个基于光技术的“无线”数据通信系统。后续,我们将通过光纤的引入,进一步来介绍TFBS4711的高级应用,比如可隔离数万伏高电压的远距离数据通信或完整的IrDA协议栈功能应用等等。。。 此账号用于发布《立创快报》最新资讯及相关趣味文章,欢迎大家多多关注!!!
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-05-18 11:20:19
|
只看该作者
2#
今天,大致又看了一下stm8L051的手册,发现ST芯片的功能还是挺多,比如除了对 IrDA的编解码支持,它还支持对普通红外遥控(器)那种编码格式和相关硬件的支持:
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-05-18 11:25:53
|
只看该作者
3#
实际应用中,如果单独设计这个IrDA的模组,建议的电路图和BOM如下:
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-05-18 11:39:14
|
只看该作者
4#
读者思考一下,为何单片机的TXD引脚(波特率: 115200bps )输出的是这个波形?
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-05-18 11:45:13
|
只看该作者
5#
相应的,IrDA器件TFBS4711在收到串口的IrDA编码数据后,它的RXD引脚输出的实际波形如下:
|
|||
xcl123
0
主题
10
回复 |
发表于2017-10-12 10:09:09
|
只看该作者
6#
赵工,这个可以用串口进行数据透传吗?
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-10-12 11:02:48
|
只看该作者
7#
完全可以! MCU1串口的输出 = MCU2串口的输入。 但使用这个IrDA器件,需要该单片机内部硬件支持IrDA的编码或解码, 还好ST的单片机比如 stm8或stm32 绝大部分都是支持的。 使用该功能,单片机只需初始化,使能一下IrDA的编码或解码即可,随后的“无线传输“ 跟一般的串口操作一模一样。 使用这个器件,比使用红外遥控器那种3个脚的接收器,简单的多了。 传统使用遥控器那种,单片机还要解码或编码(载波+数据,进行联合调制),代码量还挺多,一般的初学者未必能写出来或写好。 |
|||
遇见好时光
0
主题
1
回复 |
发表于2017-10-25 10:39:46
|
只看该作者
8#
5V系统中对于这个模块有什么要注意的。 |
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2017-10-25 11:56:12
|
只看该作者
9#
对于5V: VCC2 这个引脚不能直接接较高电压,比如5V。如果接5V需要串联一个电阻,确保Ired <= 85mA(建议用半,即85/2mA即可) VCC1 这个是输入给芯片用的,可直接接入5V,但TXD和RXD跟外部的3.3V设备接口对接,要注意电平兼容或转换问题。 |
|||
yesterdat
0
主题
6
回复 |
发表于2017-12-03 15:41:24
|
只看该作者
10#
楼主辛苦了! 请问下这个红外收发器,传输距离可以有多远呀,6米能做到么?谢谢! |
|||
贪恋小白
0
主题
2
回复 |
发表于2018-01-16 13:38:20
|
只看该作者
11#
我猜测:第一个高电平是起始位,后面八位是数据位,LSB位在前面。这是被加码后的数据吧,加码规则:0转换成窄脉冲,1不做处理
|
|||
贪恋小白
0
主题
2
回复 |
发表于2018-01-16 13:38:44
|
只看该作者
12#
手册上好像是说1米
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2018-01-16 14:57:05
|
只看该作者
13#
IrDA 主要是从安全性和低功耗考虑,因此传输距离都很近,一般1米多以内,这款也是。 当然,如果脑洞大开些,用光纤进行传播,距离就相当远了。 在空旷地,如果想传输30米以上,就得增加IR发射管的驱动电流,也可直接对接UART的收发引脚,不用额外编解码。但这个是另外一个方案了。 |
|||
孤君style
0
主题
1
回复 |
发表于2018-04-01 16:04:52
|
只看该作者
14#
赵工你好,如果用遥控功能,能达到2米吗?在这个距离下这个模块的发送和接收的电流能做到多低?谢谢
|
|||
FOCUS电路设计
3
主题
152
回复 |
发表于2018-04-01 21:26:17
|
只看该作者
15#
学习学习
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2018-04-16 15:37:50
|
只看该作者
16#
就这个器件来说,对射达不到2米,除非是用光纤进行对射传播。 得使用其它办法,比如类似这种TSAL6100大功率的发射管,就可以传很远(30米估计有的) |
|||
WENTONG
0
主题
3
回复 |
发表于2018-05-28 10:11:22
|
只看该作者
17#
如何设置红外模式。stm32f103 MUC还是不行。请指教。 #include "stm32f10x.h" |
|||
WENTONG
0
主题
3
回复 |
发表于2018-05-28 10:25:00
|
只看该作者
18#
使用两种模式: 普通的RS232:一个TFBS4711的TX接RS232的TX,另外一个TFBS4711的RX监控 一个TFBS4711的TX接仿真器CHANNEL 0,另外一个TFBS4711的RX仿真器CHANNEL 1 通过RS232直接发‘AA’实验图片如下 NUCLEO-F103RB MCU: USART1 Tx (PA.9) ,USART1 Rx PA.10,USART2 Tx (PA.2),USART2 Rx PA.3 下载上面程序,通过仿真器现象一样,说明红外模式设置没有成功。
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2018-05-28 11:46:24
|
只看该作者
19#
STM32F103 需要这样打开IrDA功能,才能使用这个IrDA收发模组,大致如下:
|
|||
WENTONG
0
主题
3
回复 |
发表于2018-05-28 12:09:45
|
只看该作者
20#
1.上图是我们的待测试板,TXD 接到NUCLEO-F103RB MCU板上USART2 Tx (PA.2),RXD接到 NUCLEO-F103RB MCU板上USART2 Rx PA.3------板子VCC为3.3V。 2.还有一个单独U2我们接到一块小板子上,IRED_A上拉12OHM电阻到3V3 ,SD直接拉GND,TXD 接到NUCLEO-F103RB MCU板上USART2 Tx (PA.9),RXD接到 NUCLEO-F103RB MCU板上USART2 Rx PA.10上。 |
|||
新际星空
0
主题
2
回复 |
发表于2018-06-20 15:30:06
|
只看该作者
21#
赵工,您好。IrDA红外收发器/TFBS4711-TR1这个模组能不能使用在人体感应上面?比如当我人在50cm处,这个模组会收到红外被档的信号。。。谢谢!
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2018-06-20 16:24:02
|
只看该作者
22#
TFBS4711 这个用在人体感应上不合适,因为它收发是一体的,结构上太靠近。实际观察到,它发射的同时,也能收到数据,不管是否前面有反射物。 可以简单用红外发射二极管和光敏二极管或光敏三极管,通过拉开一定的距离和隔离,是可以做到你的需求。 |
|||
新际星空
0
主题
2
回复 |
发表于2018-06-20 18:56:11
|
只看该作者
23#
谢谢。如何用简单用红外发射管与接收管的话,它的反应速度达不到要求。上升沿太慢了。而且距离只能到30CM.,,,
|
|||
立创商城工程部
【官方工作人员】
113
主题
1325
回复 |
发表于2018-06-28 22:04:40
|
只看该作者
24#
不考虑价格,可以参考这个光电模组: |
|||
青龙
59
主题
726
回复 |
发表于2018-07-01 19:24:25
|
只看该作者
25#
方案很好,打算测试下,单片机计划用APT32F003带触摸按键,32位MCU,引脚兼容STM8S003,并且是大存储器2KB RAM,36KB Flash,功耗更低,成本低很多。
|
|||
TBS666
0
主题
1
回复 |
发表于2019-08-14 14:43:54
|
只看该作者
27#
赵工,TFBS4711的载波频率多少,我看手册上没有呢
|
|||
行走在路上
0
主题
2
回复 |
发表于2019-09-19 15:23:31
|
只看该作者
28#
这个是怎么打开的?我也是这样配置的,但没有数据收发到,我用的是4652这一块IrDA
|
|||
行走在路上
0
主题
2
回复 |
发表于2019-09-19 15:26:00
|
只看该作者
29#
你解决了吗?我现在遇到和你同样的问题
|
|||
杯吹的恩吉尼
22
主题
608
回复 |
发表于2020-06-17 11:45:22
|
只看该作者
30#
很早的IBM及日本牌子的笔记本电脑上都带这个红外传输组件。
|
|||
一本道君
1
主题
252
回复 |
发表于2021-12-29 12:26:14
|
只看该作者
31#
请教一下,这个贴着STM32 FAN的是什么东东? 比较好奇,哈哈~ 谢谢! |
|||
LiJingYa
0
主题
1
回复 |
发表于2022-08-24 17:08:56
|
只看该作者
32#
一个TFBS4711模块,可以发送和接受吗,单片机接收中断进不去,
|
|||
阿斯克的算法
0
主题
1
回复 |
33#
赵工,您好。请问IRDA红外模块发出的数据能被普通的红外模块接收到吗?电表发出的红外是不带IRDA协议的,请问只用一个IRDA红外模块能采集到电表的数据吗? |
|||
LiXF
0
主题
1
回复 |
34#
ST芯片的Irda编码模式与一般常见的通用红外遥控器编码不一样吧? 普通开发板配的遥控器不能使用Irda解码功能?需要输入捕捉等进行解码 |
|