嵌入式通信DQ单总线协议及UART(一)

文章目录

  • 一、DS18B20--DQ单总线
    • 1.1 单总线时序结构分析
      • 1.1.1 初始化:
      • 1.1.2 发送一位
      • 1.1.3 接收一位
      • 1.1.5 发送字节
      • 1.1.6 操作流程
      • 1.1.7 数据帧的理解
      • 1.1.8 数据帧的理解
  • 二、UART
    • 2.1 同步通信和异步通信
    • 2.2 双工通信
    • 2.3 串行通信常用数据校验方式
      • 2.3.1 奇偶检验
      • 2.3.2 和校验/异或校验
      • 2.3.3 循环冗余校验CRC


一、DS18B20–DQ单总线

在设计的时候一定要满足单总线时序,

总线有一个基本要求:

每次初始化以后,总线的控制权都是主机掌握。默认是写的状态,

有一个让从机发送的性质(从机此时具有控制权),因此此时主机就变成一个读的状态了。

1.1 单总线时序结构分析

1.1.1 初始化:

1.主机将总线拉低最少480us。

2.释放总线,等待15us~60us,时间不能超过,一定按照严格的时序来表达。

3.如果存在从机会拉低总线60us~240us以响应主机,之后从机将释放总线,总线回到高电平。

在从机拉低电平的时间,通过IO口读取电平,判断从机是否存在。

复位 和 响应两个部分。

在这里插入图片描述

每个操作之前都要都一个初始化

1.1.2 发送一位

发送一位:主机将总线拉低60~120us,然后释放总线,表示发送0主机将总线拉低1~15us,然后释放总线,表示发送1。从机将在总线拉低30us后(典型值)读取电平,整个时间片应大于60us。

在这里插入图片描述

时间片就是时序结构的意思,

一定是30us的时候进行读取电平。

60us一个周期进行理解,不管是发送还是接收。

1.1.3 接收一位

接收一位:主机将总线拉低1~15us,然后释放总线,并在拉低后15us内读取总线电平(尽量贴近15us的末尾),读取为低电平则为接收0,读取为高电平则为接收1,整个时间片应大于60us

在这里插入图片描述

60us一个周期进行理解,不管是发送还是接收。

1.1.5 发送字节

连续调用,低位在前。

在这里插入图片描述

1.1.6 操作流程

初始化:从机复位,主机判断从机是否响应

ROM操作:ROM指令+本指令需要的读写操作

功能操作:功能指令+本指令需要的读写操作

在这里插入图片描述

1.1.7 数据帧的理解

温度变化数据帧:当主机将这些数据发送给DS18N20以后,从机就会将温度传感器值刷新到RAM暂存器里面。

温度读取:读取暂存器指令,连续读操作(对于主机来说就是接收数据)。将这个指令发送给从机,目的就是告诉你,主机需要温度数据了,接着就是从机发送数据,也就是主机接收数据的操作。

两个温度字节读取以后,还可以继续读取,但是本次没有必要就不用读取。

在这里插入图片描述

1.1.8 数据帧的理解

在这里插入图片描述

二、UART

2.1 同步通信和异步通信

简单说,同步通信需要时钟信号,而异步通信不需要时钟信号

如何通信,怎么知道这是高电平或者是低电平或者说是我怎么知道这是两个高电平,
我可以假设这是在1ms内,我采集10次,那么其中有6次是高电平,那么我就认为这个1ms传输的就是高电平,那么这就是第一个第一个电平,同理,继续下一个1ms,因此就引出了波特率的概念。

波特率:数据传输的速率。

波特率:串行通信中,数据传送速率有两种名称,即比特率或波特率(对于二进制传输,两者等价)它表示可以支持每秒钟传送多少位数据,常用包括,600、1200、2400、4800、9600、19200、38400、115200波特等;串行通信的收发双方必须采用相同的波特率。

假设一帧是10位,那么1S可以传输960帧,也约等于1ms传输一帧。

在这里插入图片描述

  • 起始位:位于数据帧开头,占1位,始终为低电平,用于向接收设备表示发送端开始发送1帧数据,

  • 数据位:要传输的数据信息,一般为7/8位,可配置,通常由低位到高位依次传送:

  • 校验位:位于数据位之后,占1位,可配置,用于发送数据的校验,或传送多机串行通信的联络信息;

  • 停止位:位于数据位未尾,占0.5~2位,可配置,始终为高电平,用于向接收端表示1帧数据已发送完毕。

一般都是起始位是低电平 停止位是高电平。空闲位一般也是高电平。

在这里插入图片描述

2.2 双工通信

  • 单工
    指数据传输仅能沿一个方向,不能实现反向传输,
  • 半双工(RS485 CAN IIC)
    指数据传输可以沿两个方向,但需要分时进行
  • 全双工(SPI)
    指数据可以同时进行双向传输。

2.3 串行通信常用数据校验方式

2.3.1 奇偶检验

在这里插入图片描述

奇偶校验

针对一帧数据进行校验,在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中"1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

2.3.2 和校验/异或校验

在这里插入图片描述

和校验/异或校验

针对一包数据进行校验,和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块未尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。

2.3.3 循环冗余校验CRC

在这里插入图片描述

循环冗余校验(Cyclic Redundancy Check,CRC)
针对一包数据进行校验,这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。


文章源码获取方式:
如果您对本文的源码感兴趣,欢迎在评论区留下您的邮箱地址。我会在空闲时间整理相关代码,并通过邮件发送给您。由于个人时间有限,发送可能会有一定延迟,请您耐心等待。同时,建议您在评论时注明具体的需求或问题,以便我更好地为您提供针对性的帮助。

【版权声明】
本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议。这意味着您可以自由地共享(复制、分发)和改编(修改、转换)本文内容,但必须遵守以下条件:
署名:您必须注明原作者(即本文博主)的姓名,并提供指向原文的链接。
相同方式共享:如果您基于本文创作了新的内容,必须使用相同的 CC 4.0 BY-SA 协议进行发布。

感谢您的理解与支持!如果您有任何疑问或需要进一步协助,请随时在评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915382.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年SEVC SCI2区,利用增强粒子群算法(MR-MPSO)优化MapReduce效率和降低复杂性,深度解析+性能实测

目录1.摘要2.MapReduce-Modified Particle Swarm Optimization (MR-MPSO)3.结果展示4.参考文献5.算法辅导应用定制读者交流1.摘要 大数据的迅猛增长带来了严峻的数据管理挑战,尤其是在数据分布不均的庞大数据库中。由于这种不匹配,传统软件系统的效率大…

10-day07文本分类

文本分类使用场景文本分类任务 文本分类-机器学习贝叶斯算法应用在NLP中的应用 用贝叶斯公式处理文本分类任务 一个合理假设: 文本属于哪个类别,与文本中包含哪些词相关 任务: 知道文本中有哪些词,预测文本属于某类别的概率 贝叶斯…

Apache SeaTunnel详解与部署(最新版本2.3.11)

目录 一、概述 1.1、软件介绍 1.2、解决问题​ 1.3、软件特性​ 1.4、使用用户 1.5、产品对比 二、架构 2.1、运行流程 2.2、连接器​ 2.3、引擎 2.3.1、设计理念 2.3.2、集群管理​ 2.3.3、核心功能​ 2.3.4、引擎对比 三、软件部署 3.1、Docker部署 3.2、发…

pytorch | minist手写数据集

一、神经网络神经网络(Neural Network)是一种受生物神经系统(尤其是大脑神经元连接方式)启发的机器学习模型,是深度学习的核心基础。它通过模拟大量 “人工神经元” 的互联结构,学习数据中的复杂模式和规律…

[C/C++安全编程]_[中级]_[如何避免出现野指针]

场景 在Rust里不会出现野指针的情况,那么在C里能避免吗? 说明 野指针是指指向无效内存地址的指针,访问它会导致未定义行为,可能引发程序崩溃、数据损坏或安全漏洞。它是 C/C 等手动内存管理语言中的常见错误,而 Rust…

机器学习基础:从数据到智能的入门指南

一、何谓机器学习​ 在我们的日常生活中,机器学习的身影无处不在。当你打开购物软件,它总能精准推荐你可能喜欢的商品;当你解锁手机,人脸识别瞬间完成;当你使用语音助手,它能准确理解你的指令。这些背后&a…

steam游戏搬砖项目超完整版实操分享

大家好,我是阿阳,今天再次最详细的给大家综合全面的分析讲解下steam搬砖,可以点击后面跳转往期文章了再次解下阿阳网客:关于steam游戏搬砖项目,我想说!最早是21年5月份公开朋友圈,初次接触是在2…

vue2 面试题及详细答案150道(21 - 40)

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

原生前端JavaScript/CSS与现代框架(Vue、React)的联系与区别(详细版)

原生前端JavaScript/CSS与现代框架(Vue、React)的联系与区别,以及运行环境和条件 目录 引言原生前端技术概述 JavaScript基础CSS基础 现代框架概述 Vue.jsReact 联系与相似性主要区别对比运行环境和条件选择建议总结 引言 在现代Web开发中&…

基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现

基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 摘要 本文设计并实现了一种基于机器视觉的迈克耳孙干涉环自动计数系统。该系统…

设计模式笔记(1)简单工厂模式

最近在看程杰的《大话设计模式》,在这里做一点笔记。 书中主要有两个角色: 小菜:初学者,学生; 大鸟:小菜表哥,大佬。 也按图中的对话形式 01 简单工厂模式 要求:使用c、Java、C#或VB…

Vue3 学习教程,从入门到精通,Vue 3 声明式渲染语法指南(10)

Vue 3 声明式渲染语法指南 本文将详细介绍 Vue 3 中的声明式渲染语法,涵盖所有核心概念,并通过一个完整的案例代码进行演示。案例代码中包含详细注释,帮助初学者更好地理解每个部分的功能和用法。 目录 简介声明式渲染基础 文本插值属性绑…

React hooks——useReducer

一、简介useReducer 是 React 提供的一个高级 Hook,用于管理复杂的状态逻辑。它类似于 Redux 中的 reducer 模式,适合处理包含多个子值、依赖前一个状态或逻辑复杂的状态更新场景。与 useState 相比,useReducer 提供更结构化的状态管理方式。…

SEO中关于关键词分类与布局的方法有那些

前边我们说到关键词挖掘肯定很重要,但如何把挖掘出来的关键词用好更为重要,下边我们就来说说很多seo刚入行的朋友比较头疼的关键词分类问题,为了更直观的感受搭配了表格,希望可以给大家一些帮助!SEO优化之关键词分类​挖掘出的关键…

考研最高效的准备工作是什么

从性价比的角度来说,考研最高效的准备工作是什么呢? 其实就是“卷成绩”。 卷学校中各门课程的成绩,卷考研必考的数学、英语、政治和专业课的成绩。 因为现阶段的考研,最看重的仍然是你的成绩,特别是初试成绩。 有了…

【Linux】基于Ollama和Streamlit快速部署聊天大模型

1.环境准备 1.1 安装Streamlit 在安装Streamlit之前,请确保您的系统中已经正确安装了Python和pip。您可以在终端或命令行中运行以下命令来验证它们是否已安装 python --version pip --version一旦您已经准备好环境,现在可以使用pip来安装Streamlit了。…

Jetpack - ViewModel、LiveData、DataBinding(数据绑定、双向数据绑定)

一、ViewModel 1、基本介绍 ViewModel 属于 Android Jetpack 架构组件的一部分,ViewModel 被设计用来存储和管理与 UI 相关的数据,这些数据在配置更改(例如,屏幕旋转)时能够幸存下来,ViewModel 的生命周期与…

Go并发聊天室:从零构建实战

大家好,今天我将分享一个使用Go语言从零开始构建的控制台并发聊天室项目。这个项目虽然简单,但它麻雀虽小五脏俱全,非常适合用来学习和实践Go语言强大的并发特性,尤其是 goroutine 和 channel 的使用。 一、项目亮点与功能特性 …

疯狂星期四第13天运营日报

网站运营第13天,点击观站: 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 昨日访问量 昨天大概60个ip, 同比上个星期是高点的,但是与星期四差别还是太大了。😂 昨日搜索引擎收录情况 百度依旧0收录 …

吴恩达《AI for everyone》第二周课程笔记

机器学习项目工作流程以Echo/Alexa(语音识别AI)作为例子解释: 1. collect data 收集数据——人为找很多人说 Alexa,并录制音频;并且还会让一群人说其他词语,比如hello 2. train model 训练模型——用机器学…