当前位置: 首页 > news >正文

通讯协议学习之路:IrDA协议协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。

后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)

序、个人理解

IrDA通讯属于红外通讯

IrDA在ST系列中通常只有STM32F7系列才在硬件上得到支持

IrDA为异步半双工通讯

目前存在用法就是将UART的TTL电平转换为IrDA数据进行红外传输,最后再重新转化为UART的TTL电平

一、简述

IrDA(Infrared Data Association)通信是一种基于红外线的无线通信技术,用于在短距离内传输数据。它最初由IrDA协会制定,用于在电子设备之间进行数据传输,如手机、电脑、打印机等。

IrDA通信使用红外线作为传输介质,通过发送和接收红外光信号来实现数据的传输。它的工作原理是通过调制红外光信号的强度和频率来表示二进制数据。发送端将数据转换为红外光信号,接收端通过接收红外光信号并解调来恢复数据。

IrDA通信的通讯格式主要包括以下几个方面:

1. 帧格式:IrDA通信使用帧格式来组织数据的传输。一个帧由起始位、数据位、停止位和校验位组成。起始位用于标识帧的开始,数据位用于传输实际的数据,停止位用于标识帧的结束,校验位用于检测数据的正确性。

2. 速率:IrDA通信支持不同的数据传输速率,通常以每秒传输的位数(bps)来表示。常见的速率有115.2 kbps、4 Mbps等,具体的速率取决于设备的支持和配置。

3. 编码方式:IrDA通信使用红外光信号的强度和频率来表示二进制数据。常见的编码方式有Pulse Position Modulation(PPM)和Pulse Width Modulation(PWM)。PPM编码方式通过红外光信号的强度来表示二进制数据,而PWM编码方式通过红外光信号的频率来表示二进制数据。

4. 协议:IrDA通信使用一系列的协议来管理数据的传输和处理。常见的协议有IrLAP(IrDA Link Access Protocol)、IrLMP(IrDA Link Management Protocol)等。这些协议定义了数据的传输方式、错误处理、连接管理等。

需要注意的是,IrDA通信需要发送端和接收端之间的红外传感器进行对齐,以确保红外光信号的传输和接收的准确性。此外,IrDA通信通常用于短距离的数据传输,通常在几米范围内。

半双工

红外通信是半双工的,因为发送端发送的时候部分红外光会反射回接收端,形成干扰,所以只能是半双工的,在发送的时候应该关闭接收,避免接收到自己发出去的数据。

波特率

SIR: 9.6–115.2 kbit/s

SIR:慢速红外通信,波特率为9600~115200。其它还有中速红外(MIR)、快速红外(FIR)、超快速红外(VFIR)等。如果只是用来代替串口,用慢速红外(SIR)就可以了。

3/16 调制

串口发送0时,红外输出3/16宽度的脉冲。串口发送1时,无脉冲。

参考文章:IrDA红外通信的几个要点:半双工,3/16_红外最大波特率-CSDN博客

 

相关文章:

通讯协议学习之路:IrDA协议协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 序、…...

互联网摸鱼日报(2023-10-20)

互联网摸鱼日报(2023-10-20) 博客园新闻 OPPO让折叠机超越直板旗舰成为可能 特斯拉的“大空头”,是马斯克那张嘴 逃避内卷的年轻人,盯上了老年大学的音乐课 理想市值超蔚来1倍,一场属于增程式的胜利 补足折叠屏影像短板,OPPO…...

C/C++ 快速入门

参考:https://blog.csdn.net/gao_zhennan/article/details/128769439 1 下载Visual Studio Code并安装中文插件,此处不再叙述 2 插件安装C/C插件 3 使用快捷键【Ctr ~】打打开终端 验证并未安装编译器 4 我们即将使用【MinGW-64】做为编译器 https:…...

【Git】升级MacOS系统,git命令无法使用

终端执行git命令报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun安装这个东东,?需要42小时 最终解决: 下载安装 https…...

单点登录是什么?

单点登录(Single Sign On, SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。 单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的&#xff…...

面向对象设计原则之依赖倒置原则

目录 定义原始定义进一步的理解 作用实现方法代码示例 面向对象设计原则之开-闭原则 面向对象设计原则之里式替换原则 面向对象设计原则之依赖倒置原则 面向对象设计原则之单一职责原则 定义 依赖倒置原则(Dependence Inversion Principle)&#xff0c…...

MATLAB——概率神经网络分类问题程序

欢迎关注“电击小子程高兴的MATLAB小屋” %% 概率神经网络 %% 解决分类问题 clear all; close all; P[1:8]; Tc[2 3 1 2 3 2 1 1]; Tind2vec(Tc) %数据类型的转换 netnewpnn(P,T); Ysim(net,P); Ycvec2ind(Y) %转换回来...

微信小程序的OA会议之首页搭建

目录 一.小程序的布局 1.1. flex是什么 1.2. flex布局 1.3.总体布局 二.轮播图 2.1. 组件 2.2. 数据请求 2.3. 页面 三.首页 2.1. 视图 2.2.数据 2.3. 样式 好啦今天就到这里了,希望能帮到你哦!!! 一.小程序的布局 …...

JS初步了解环境对象this

什么是环境对象? 环境对象:指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境 作用:弄清楚this的指向,可以让我们代码更简洁 在普通函数中: // 每个函数里面都有this 普通函数的this指向wind…...

Unbuntu-18-network-issue

第六步:容器管理 查看zfs储存卷的占用情况zpool list 为容器修改参数配置 我们不想每个人使用全部的硬件资源,所以还需要限制每个人的参数容器参数配置说明配置容器参数lxc config edit YourContainerName 配置默认容器参数(新容器的参数会…...

Vue、React和小程序中的组件通信:父传子和子传父的应用

序言: 组件化开发是将一个大型应用程序拆分成独立的、可重用的、可组合的模块,使得开发人员可以快速构建和开发应用程序。组件化开发提倡将应用程序的各个功能模块分离开发,每个模块完成自己的功能并且可以在不同的应用程序中被复用。这可以…...

leetcode_171Excel表列序号

1. 题意 把excel中列序号字符串转换为10进制数。 Excel表列序号 2. 题解 26进制转10进制 class Solution { public:int titleToNumber(string columnTitle) {int sz columnTitle.size();int ans 0;int base 1;for ( int i sz - 1; ~i; --i){int v columnTitle[i] - A …...

北斗GPS卫星时钟同步服务器在银行数据机房应用

北斗GPS卫星时钟同步服务器在银行数据机房应用 北斗GPS卫星时钟同步服务器在银行数据机房应用 有些银行、政务、公安等重要业务单位,机房是采用屏蔽保密机房,这种情况下的时钟同步装置方案和普通机房的时钟同步方案又是不一样的。下面我们重点介绍保密机…...

Mysql数据库 1. SQL基础语法和操作

一、Mysql逻辑结构 一个数据库软件可以包含许多数据库 一个数据库包含许多表 一个表中包含许多字段(列) 数据库软件——>数据库——>数据表——>字段(列)、元组(行) 二、SQL语言基础语法 1.SQL…...

ChatGPT-GPT4:将AI技术融入科研、绘图与论文写作的实践

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车,就有可能被淘汰在这个数字化时代,如何能高效地处理文本、文献查阅、PPT…...

SLAM从入门到精通(构建自己的slam包)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 我们学习了很多的开源包,比如hector、gmapping。但其实我们也可以自己编写一个slam包。这么做最大的好处,主要还是可以帮助…...

全球二氧化碳排放数据1deg产品(ODIAC)数据

简介 全球二氧化碳排放数据1deg产品(ODIAC)是一个空间分辨率为1deg*1deg的全球化石燃料燃烧产生的二氧化碳空间分布产品。它率先将基于空间的夜间灯光数据与单个发电厂的排放/位置相结合来估计化石燃料二氧化碳的排放。该产品被国际研究界广泛用于各种研究应用(例如…...

Element-UI 日期选择器--禁用未来日期

在做项目的时候经常会遇到一些报表需要填写日期,一般是填写当日及当日以前,这时候我们的日期选择器就需要进行一些限制,比如: 这样之后,就不会误填写到明天啦,下面让我们看一下代码实现 html页面代码 这里…...

终端常用脚本命令

Mac编写shell脚本文件 Rvm切换Ruby Mac系统指定更新 Mac应用安装:允许任何来源 Mac终端常用命令与Vim常用命令 Mac退出VIM模式 git协议实现管理(三个步骤) GIT 常用命令 .gitignore git工具常用操作指令 prettier前端本地格式化工具 SourceTree撤销Commit提交 pod i…...

百度翻译很方便,几点注意事项

前几天修改资源,就想翻译一些字串。用了一下百度,还是很方便的。 昨天开通了开发者账号,试了一下批量翻译。也发现了一些问题: 有的语言不支持,如ben/tr/jav好像没有区分地区。也可能是我还不熟悉。使用太多会欠费。比…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

python打卡day49

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...