目录

1. 红外基本介绍:

红外线的特点

红外线发射和接收

2.NEC协议介绍:

NEC的数据格式:

NEC协议中数据(DATA)段编码:

NEC协议典型脉冲链:

NEC载波调制:

NEC载波解调:

NEC软件方式载波解调:

3.NEC中断处理:

4.NEC协议的编码流程(发送原理)

5.NEC协议的解码流程(接收原理)

6.NEC相关红外驱动的内核配置

1. 红外基本介绍:


红外线的特点

我们知道,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。

红外遥控具有抗干扰,电路简单,容易编码和解码,功耗小,成本低的优点。红外遥控几乎适用所有家电的控制。

红外线发射和接收

人们见到的红外遥控系统分为发射和接收两部分。

发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。

接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏压,它才能正常工作而获得高的灵敏度。

红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。然而现在不论是业余制作或正式的产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比较器输出等的模块,性能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路不仅简单而且可靠性大大提高。

红外遥控是发送的脉冲,现在一般用的一体化接收头,已经将脉冲信号放大,检波,滤波等把原编码信号还原出来了,原编码脉冲信号频率一般很低,发送脉冲时需要用38K的脉冲串调制,调制后实质上就是两个脉冲波形相乘的结果,也可以通过一个或非门将编码信号与38K脉冲串做输入,输出后接到红外发射二极管就行了。

红外遥控通常是由发送端和接收端两个部分组成。发送端将要发送的二进制信号编码成一系列的脉冲信号,然后通过红外发射管发射红外信号。接收端完成对红外信号的接收,放大,整形,并解调出遥控编码脉冲。这个过程如下:

什么是载波?

如使用38K脉冲信号,那么脉冲的周期就是1/38000s,这不是高电平的时间长度,这是一个脉冲的时间长度也就是一个周期。

如果占空比为1/2,则在一个脉冲周期内,一半时间高电平,一半时间低电平。

2.NEC协议介绍:


先看一组标准的NEC协议的波形(注意是未调制的):

NEC的数据格式:

在NEC协议中,一个完整的全码 = 引导码 +地址码(8位) +地址反码(8位) + 操作码(8位) + 操作反码(8位) 。

Ps:在NEC协议中,各个段都有一些不一样的称呼,为了方便不混淆,这里给一起提一下。

引导码也被称作:同步码、引导码、起始码、

地址码/地址反码也被称作:用户码、地址码、用户识别码、

操作码/操作反码也被称作:按键码、命令码、数据码、操作码、控制码、

NEC协议各编码的作用:

NEC协议规定首先发送9ms+4.5ms的引导码,接下来是两字节用户码,第三字节是数据码,用来判断按键值,第四字节是数据反码,可以用来校验,提高按键的准确性。

引导码:由(9ms脉冲 + 4.5ms间隔)的波形组成。NEC协议规定按键按下首先发送9ms+4.5ms的引导码,当一直按住一个按钮的时候,会隔110ms左右重发一次引导码,附带重复码。

地址码:(data)中前16位为用户识别码,能区别不同的红外遥控设备,以防止不同的机种遥控码互相干扰。

地址反码:(data)后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。

操作码:(data)实际要执行的操作码,根据不同的操作码,设置执行不同的操作。(键值-操作)

操作反码:(data)校验操作码,提高按键的准确性。

重复码:由(9ms脉冲 + 2.25ms间隔)的波形组成。如果按键超过110ms(也有的是108ms)仍未松开,将发送重复码。重复是在持续按键时发送的码。它告知接收端。某键是在被连续的按着。

NEC协议中数据(DATA)段编码:

在NEC协议中,地址码和操作码都为8位的二进制编码。

二进制编码中的‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式(PPM)。

NEC规定:对于接收到的脉冲信号,

若低电平时间固定为0.56毫秒,高电平时间为1.125-0.56=0.56毫秒,这个脉冲代表0;

而低电平时间固定为0.56毫秒,高电平时间为2.25-0.56=1.69毫秒时。这个脉冲代表1。

(注意:实际使用时间会有误差,所以不用准备判断具体时间,只需要在一个范围里去判断高电平时间即可。)

NEC协议特征:

  • 每次传输两遍地址(用户码)和命令(按键值)(确保可靠性)
  • 8位地址和8位命令长度
  • 通过脉冲串之间的时间间隔来实现信号的调制(PPM)
  • PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”
  • 38Khz载波
  • 每位的周期为1.12ms(低电平)或者2.25ms(高电平)
  • 按照低位在前,高位在后的顺序发送。

NEC协议典型脉冲链:

有时候我们从示波器上量到的波形如下图所示:

NEC波形中有大段的“阴影部分”,这是为什么?

将波形放大,可以看到里面是不断上下的脉冲波形,频率为38K。

即:NEC协议中,高电平处变成38K的脉冲波形。

原因就是NEC载波调制,继续看下文。

NEC载波调制:

在实际的通信领域,发出来的信号一般有较宽的频谱,而且都是在比较低的频率段分布大量的能量,所以称之为基带信号,这种信号是不适合直接在信道中传输的。为便于传输、提高抗干扰能力和有效的利用带宽,通常需要将信号调制到适合信道和噪声特性的频率范围内进行传输,这就叫做信号调制。在通信系统的接收端要对接收到的信号进行解调,恢复出原来的基带信号。这部分通信原理的内容,大家了解一下即可。

我们平时用到的红外遥控器里的红外通信,通常是使用38K左右的载波进行调制的,下面我把原理大概给大家介绍一下,了解一下,先看发送部分原理。

调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程,即用一个信号去装载另一个信号。比如我们的红外遥控信号要发送的时候,先经过38K调制,如图所示

再重新用两组图片

来回顾一下,上面调制的效果:

未调制之前:

调制之后:

这样调制之后的波形,在示波器中就是如下图所示:

NEC载波解调:

因为一体化接收头接收频率是38KHz,约26us,记住这个不是高电平的时间长度,这个是一个脉冲的时间长度也就是一个周期,例如我们利用一个中断产生38K脉冲,占空比是1/2,我们的中断时间就要设置为 1/38000/2 S中断一次,然后通过相隔一次中断电平翻转一次就形成了一个频率为38K占空比1/2的脉冲。所以在编程时,每两次中断的间隔时间为26/2us即13us。由上面可以知道,要发射9ms高电平+4.5ms低电平的前导码,由于高电平的发射要产生的是38KHz的脉冲,所以在每次中断中反转输出形成38KHz的脉冲,而低电平的发射只需要将引脚电平拉低即可,这样接收端接收到38KHz的信号则可知接收到的是高电平,而没有接收到38KHz则认为接收到的是低电平。

一体化红外接收头只接受38K信号(误差范围内),我们把接收头看出一个转换器。遇到38K就输出低电平,没有遇到38K就被上拉成高电平。于是所谓的“编码”的概念就这样产生了,我们利用有38K信号 跟 没有38K信号 这两种状态,利用红外接收头就翻译成低电平、高电平的信号。这就是最主要的东西。

NEC软件方式载波解调:

除了上述方式的硬件一体化红外接收头直接解调之外,还可以用软件的方式做解调。

大致的思路就是通过软件驱动+定时器方式,当收到的脉冲间隔在26us左右时,将其一直作为稳定的电平。

3.NEC中断处理:


当有IR波形发过来时,内部计数器(Counter)会将两个相邻的正边沿触发(如图中红色箭头所示)的时间差值放到寄存器中。

与此同时,正边沿触发一个ISR,去读取这个寄存器的值,并以数组的形式保存起来。等波形获取完毕后,再通过解析这个数组的Data来解析出key值。

什么是脉冲?

每一次电平的高低变换,称为一个脉冲。

4.NEC协议的编码流程(发送原理)


NEC协议为发送38Khz的红外载波来控制数据的传输,周期大概为26us。NEC发送的一次信号可分为引导码、地址码、地址反码、命令码、命令反码,如图:

可以看出,发送数据时从低位开始发。其中黑色阴影为载波信号,也就是高低电平交替的信号,如

其中阴影即载波,第二张图为放大后的样子。

5.NEC协议的解码流程(接收原理)


和发送原理相反,当收到发送的载波时接收头产生低电平,接收到不发送载波时接收头产生高电平。有图更容易理解。

6.NEC相关红外驱动的内核配置


IR发射
compatible = "pwm-ir-tx"pwm_ir_probedevm_pwm_getdevm_rc_register_device(rc1)device_create_file(&rcdev->dev, &ir_attrs[i])
IR接收
compatible = "gpio-ir-receiver"gpio_ir_recv_probedevm_gpiod_getgpiod_to_irqdevm_rc_register_device(rc0)device_create_file(&rcdev->dev, &ir_attrs[i])gpio_ir_recv_irqgpiod_get_valueir_raw_event_store_edge

参考:

https://blog.csdn.net/jiangchao3392/article/details/81501808

https://www.cnblogs.com/cposture/p/4321293.html

【字符设备驱动】 -- NEC红外通信原理|红外协议|红外驱动|红外编解码|红外遥控器...相关推荐

  1. 通信原理与MATLAB(十三):AMI的编解码

    目录 1.AMI的的编解码原理 1.1 AMI编码原理 1.2 AMI解码原理 2.AMI编解码的代码 3.AMI编解码结果图 4.AMI的误码率曲线 4.1 原理 4.2 AMI的误码率曲线代码 4 ...

  2. 「硬见小百科」红外通信原理

    一. 红外通信原理 红外遥控有发送和接收两个组成部分.发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号.红外接收完成对红外信号的接收.放大.检波.整形,并解 ...

  3. 伦茨科技小知识-蓝牙的通信原理和协议

    蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接.其实质内容是为固定设备或移动设备之间的通信环境建立通用的无线电空中接口(R ...

  4. cubemx stm32 陶晶驰 串口屏 基于YXY通信原理的串口屏驱动代码

    陶晶驰串口屏 资料 陶晶驰串口屏是本质是一个MCU,屏幕是MCU的模块,一般是一块TFT屏幕.在串口屏厂商提供的软件上面编写界面,然后通过串口直接烧到串口屏的MCU上,然后在屏幕上展示出来. 串口屏资 ...

  5. Base64编解码原理并用Java手工实现Base64编解码

    Base64编解码原理 目前Base64已经成为网络上常见的传输8比特字节代码的编码方式之一.在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后进行签名或加密,之后再次Bas ...

  6. php与单片机通信,通过单片机的无线通信软件实现编解码的解决方

    随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活中.例如,遥控车门开关(RKE)系统.汽车轮胎压力监视系统(TPMS).无线内窥镜系统.蓝牙技术等.利用单片机和无线 ...

  7. 计算机网络-ENSP华为设备中的交换机通信原理【敲重点】

    目录 交换机 MAC地址表 交换机转发过程 配置实验过程 总结 大家好,我是薄荷,今天给大家聊一聊华为交换机的工作原理,如果哪方面写的不好还请各位大佬多多包涵和指教呀╭❤- 交换机 交换机是当今以太网 ...

  8. iic通信原理_电子知识之IIC通信原理和协议分享

    IIC 的一些特征: 两条总线:串行数据总线(SDA)和串行时钟总线(SCL) 真正的多主机总线 连接到相同总线的ic数量只受到总线的最大电容400pF限制. 串行8位双向数据在标准模式下可达100K ...

  9. 信工实验参考——《通信原理实验1——话音信号的PCM编译码综合实验》

最新文章

  1. 离线轻量级大数据平台Spark之MLib机器学习库朴素贝叶斯实例
  2. 以太坊完整工作原理和运行机制!
  3. DL之VGG16:基于VGG16(Keras)利用Knifey-Spoony数据集对网络架构进行迁移学习
  4. 背包问题lingo求解
  5. UIAutomation识别UI元素
  6. Effective STL中文版pdf
  7. Python 真的勒死 R 了吗?
  8. 第十一周学习进度报告
  9. ETL工具学习以及安装部署
  10. python cookbook 2字符串(2)
  11. 1925异常 xshell_Xmanager Power Suite 6
  12. C#获取枚举的key-value格式
  13. C#文件和文件文件夹排序
  14. 使用傲梅分区软件删除U盘分区后U盘无法识别的解决方法
  15. html怎么设置seo,简单说明一下html相关的seo设置!
  16. STC51入门笔记(郭天祥C语言)---第二节:Keil 软件使用及流水灯设计
  17. PDF压缩的使用工具有哪些
  18. Android 8 WiFi断流,小米8wifi断流怎么解决
  19. nas服务器共享文件夹打不开,win7无法访问NAS上的CIFS共享
  20. 【091】肖邦《降B小调第一夜曲》

热门文章

  1. 微方歌词管理系统 v6.0 免费
  2. 管理员取得所有权(win10 )
  3. matlab画奥运五环,MATLAB在同一坐标轴下,画出奥运五环标志,要求比例合适,每环用不同颜色表示怎么...
  4. 三个柱子的汉诺塔问题
  5. 腾讯云 Ubuntu16.04.1 允许 root 用户 SSH登录 修改 sshd_config PermitRootLogin 后登录失败
  6. PCT专利申请流程有哪些?
  7. Linux mmap讲解
  8. 零碳更经济,发展可持续
  9. ajax-file-upload IE出错
  10. Canvas合成图片