对红外nec协议的传输速率的加快

传统的NEC协议

传统的nec协议一般完成一帧的传输需要大概100ms左右,13.5ms的帧头,再加上32位的0或1。一个0是560us的低电平加上560us的高电平。一个1是560us低电平加上1690us的高电平。也就是说,
如果32位全为1的话,这样一帧所占的时间最长,为

 13.5+2.25*32=85.5ms

如果是32位全为0的话为

 13.5+1.12*32=49.34ms

所以传统的nec协议的发送频率最快只能达到不到20hz,这样的频率一般家用电器是足够使用的,但是目前我运用在机器之间的通信,所以,需要加快一定的频率。

在红外通信中这种低速的通信往往是通过一个载波发送,市面上大部分使用的是38khz频率的方波作为载波,工业中也常常用到54khz频率的方波作为载波,虽说载波是作用于发射端的,但是载波的频率要和接收管的接收频率一一对应。于是接收管的属性决定了红外nec通信的频率的上限。

38khz频率的红外接收管

打开datasheet,我们可以看到这两个参数
在这里插入图片描述
这样的两句话,最小的脉冲长度为八个周期,最小的间隙为12个周期。
我对这两句话是这样理解的:这句话是对发射端的限制。
第一句话,最小脉冲长度:
首先我们知道这个接收管是只能接收到经过38khz的载波调制过的信号,也就是说发出的红外光必须是以脉冲的形式,并且这个脉冲是38k的频率。我们很轻易算的出来38k的频率,那么周期就是1s/38k=26.316us,那么这里的最小脉冲长度就是826us=208us,就是这样的脉冲必须至少持续8个周期,才能被红外接收管感知到。那么这就要求,在你的发送协议中你的脉冲长度不能小于208us。所以新协议中我设置成300us的脉冲触发。(在NEC协议中这个脉冲长度是560us)。
第二句话,最小脉冲间隙:
我的理解是,当你发送完一个能够被红外接收管接受到的有效脉冲后,紧接着能再发送一个脉冲的最短周期。通俗的说就是发射管的无脉冲时间不能低于26us
12=312us,就是说你在发送完一个300us的脉冲后你必须在308us后才能发送另一个脉冲,否则脉冲之间的的时间过短,红外接收管接收不到这个跳变。所以在我的新协议中,我把这个时间设置为了400us。(传统的nec协议中这个最短时间为560us)。
所以nec协议中的

0表示为300us的脉冲加上400us的低电平

1表示为300us的脉冲加上800us的低电平

这样能够保证0和1能够被区分开,并且能够有较低的丢帧率。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值