长文图解工业HART总线协议

2023-05-16

关注、星标嵌入式客栈,精彩及时送达

[导读] 在AIOT蓬勃发展的今天,也掀起传统工业设备IOT革新的浪潮。那么需要对工业设备进行IOT改造,除了直接开发具有IOT互联协议的新型设备,对原有总线设备的接入改造其实也是一块很大的蛋糕。因此,掌握传统工业现场设备通讯总线,也是很必要的,即便在现在或者将来传统的工业总线也不会被淘汰,这是由于这些现场总线是专为复杂的工业控制现场而设计的。今天,就来分享一下HART总线。

初始HART总线

基本信息

HART(Highway Addressable Remote Transducer)可寻址远程变送器高速通道协议,翻译起来有点绕口。HART协议是用于过程控制设备的面向事务的通信服务。HART通信设备旨在增强传统的4-20 mA模拟信号传输,可在工业环境中提供相对低带宽、适度的响应时间的通信协议。应用包括远程过程变量查询,参数设置和诊断。从名字上就可看出,这个协议是用于变送器(有的也翻译为传感器),名字不重要,重要的是理解这究竟是什么个内涵.所谓变送器就是指能将现场情况的物理参数进行采集(比如温度、压力、流量等)并以工业标准模拟信号输出的设备,所谓工业标准模拟信号是指国际电工委员会(International Electro technical Commission,简称IEC)定义的4-20mA或者1-5V信号。

那么HART协议究竟是怎样一个协议呢?

HART协议是混合模拟信号以及数字信号的工业自动化开放协议。HART被广泛用于过程和仪表系统,从小型自动化应用到高度复杂的工业应用。它最显着的优点是,可以通过传统的4–20 mA仪表电流回路进行通信,有线HART协议的物理层为一对导线:

  • 该导线可以为设备供电

  • 导线内为4-20mA电流环

  • 同时进行模拟以及数字通信

什么是模拟通信呢?也就是前面说的4-20mA输出物理量的概念,比如现场是一个温度变送器,当前测温范围为 ,那么4mA就对应-200℃,而20mA就对应500℃,存在下面的关系:

其数字通信协议支持:

  • 访问仪表的参数及诊断信息,这不是简单的读取,而是有专用公共的命令规范,获取诊断数据。

  • 支持多变量设备,这是什么意思呢?比如一个变送器可以同时测量压力以及温度,则是双变量变送器。

  • 设备在线状态监测

  • 完全开放的事实标准

  • 标准通用命令及数据结构

  • DDL(Device Description Language)支持,这是啥意思,就是用这样一种规范的文本描述语言抽象设备的信息其他的组态软件可以直接导入,从而实现互联互通。这就是标准的力量,不同厂家做的设备为什么可以在一个系统里快速组网,实现过程控制系统。

其模拟通信特点:

  • 模拟4-20mA通信与数字通信同时进行

  • 兼容现有的4-20mA设备,即便某个4-20mA设备没有HART支持。

  • 模拟4-20mA本身就是一种通信,比如一个测量变动器可直接接入一个控制器的模拟4-20mA通道,将测量值实时传输给控制器,而控制器的4-20mA输出又可以接到执行器(比如阀门控制器)的4-20mA输入通道,从而控制阀门的开度,形成闭环控制。

本文主要介绍基于有线连接物理层的HART,HART的物理层还支持2.4GHz,基于802.15.4规范的无线物理层。

网络分层

从前面介绍,基本知道了大致信息,现在来看看该协议的分层情况


从上面的图可以看出,HART协议对应OSI模型,实现了其中的5层:

  • 有线物理层:

    这里有句题外话,协议的物理层负责地产BIT流的传输,其实你用其他的物理层来传HART报文是否可以呢?当然也是可以的,比如你就用SPI去传也能传能收,为什么不用?无法适应工业现场的噪声环境,也无法可能满足现场组网的需求,比如总线仲裁等。

    • FSK物理层:有线HART的物理层主要采用采用FSK(Frequency Shift Keying)频移键控将0/1调制在4-20mA电流环路上,稍后在对FSK进行介绍。

    • PSK物理层:实际上是C8PSK(Coherent 8-way Phase Shift Keying), 它实际上是一种数字通信调制技术,通过改变恒定频率参考信号(参考信号称为载波)的相位来传输数据。所谓相位就是通过精确地改变正弦或余弦输入时间来完成调制。

    • RS-485物理层:这个是比较常见的半双工差分串行总线,实际上此类设备不是HART协议的主流,使用并不广泛。

  • 无线物理层:无线HART则采用基于IEEE802.15.4的无线2.4GHz频段物理层。

    IEEE802.15.4是一项定义了低速无线个人局域网(low-rate wireless personal area networks简称LR-WPAN)操作的技术标准。它规范了LR-WPAN的物理层和媒体访问控制,并由IEEE 802.15工作组维护,该工作组在2003年定义了该标准。它是Zigbee,ISA100.11a,WirelessHART,MiWi,6LoWPAN,Thread和SNAP规范的基础,它们各自都通过开发IEEE 802.15.4中未定义的上层来进一步扩展了标准。6LoWPAN还定义了WPAN上的Internet协议(IP)的IPv6版本的绑定,并且本身被Thread等上层所使用。需要注意的是WIFI虽然也使用2.4GHz频段,但是它遵循802.11规范。

    所谓Mesh网络,看看下面这个网络拓扑图就很好理解了:

  • 链路层:

    • 数据链路层为数据传输提供可靠的、面向事务的通信路径。对于FSK/PSK HART通信是通过双绞线进行传输,双绞线可能同时传输4-20mA信号。数据链路层将通过使用错误检测信息和自动重复请求(Automatic Repeat Request 简称ARQ)协议来请求重新传输可能被线路噪声或其他干扰破坏的数据块,从而来纠正由于通信链路上的噪声引起的错误。

    • 对于无线HART,则通过基于时间同步的TDMA/CSMA机制进行链路管理、冲突检测。在检测到出错时自动重复请求的跳频技术。所谓跳频,就是在802.15.4规范的带宽里,将带宽划分为多个信道,主从直接约定好跳频机制,从而有效的利用空闲信道。

  • 网络层(仅无线HART):主要实现功率优化,mesh网络管理。网络时间同步,时间同步的精确性对于基于时分复用 (Time-division multiple access简称TDMA) 的网络至关重要,时间不同步,网络将瘫痪。

  • 传输层:HART的传输层主要对于大块数据进行拆分传输。

  • 应用层:应用层定义了协议支持的公共命令,响应,数据类型和状态报告。因此HART应用层确保不同公司的设备的互操作性中起着重要作用。所谓互操作性,是指互联互通的基础上,还定义了应用操作。比如温度变送器,接入控制系统可以很容易与另一个阀门控制器、加热控制器快速组成温控系统。

HART规范书

HART原来由HART基金会管理,现在由FieldComm Group进行管理,FieldComm Group由现场总线基金会(Fieldbus Foundation 简称FF)以及HART基金会合并而来,统一管理FF以及HART总线标准。有兴趣可以去https://www.fieldcommgroup.org/进一步了解。

那么HART协议标准文档基本由哪些组成呢?这里总结了一个思维导图供参考:

从上面这个导图,可以看到,HART还为不同类型的工业设备制定了相应的通信规范,比如温度变送器、压力变送器、阀门控制器、PID控制器、累加器、液位变送器、科里奥力流量变送器、涡街流量变送器、电磁流量变送器等。

而对于无线HART则由HCF_SPEC_290文档进行集中描述。有了这份图,如果你是从事相关开发工作,相信对HART标准文档会有一个比较清晰的认识。

HART协议GB对应GB/T 29910.1~6-2013 type 20,IEC61158于2017年将HART标准收录,对应其子类的type 20。

下面来对于其中比较重要的物理层、链路层以及应用层做进一步的介绍。

物理层

一般的,FSK/PSK物理层与数据链路层都按照下面的模型进行设计,本文仅介绍最为常用 的FSK物理层,对C8PSK有兴趣的,可以查阅HCF_SPEC-60。


FSK物理层

HART采用二进制频移键控(Binary FSK简称BFSK),其工作原理为:

所谓BFSK就是将待传输的数据按照二进制BIT流变换成相应的频率信号叠加起来,简单的可以理解成下图这样一个收发过程:


调制器与解调器一起组成了调制解调器,对于设备间通信而言基本都有这样一个调制解调的过程。

发送端调制器:

在两种不同信号频率间信号按照一定的时间间隔根据输入的二进制位为0或者1,选择成频率1或者频率2,进而合成为一个信号输出。将该物理信号输出到物理介质。当然实际使用的FSK,由不同的实现参数以及细节,还分连续相位频移键控、高斯频移键控、最小频移键控、高斯最小频移键控、音频频移键控等。

接收端解调器:

接收端将从物理介质接收到的电信号,分两路进入两个带通滤波器,带通滤波器分别为调制器对应的0/1调制频率,将该有用信号检出,再送入到检波器电路将信号检出为数字信号,双路数字信号再由判决电路按照对应的波特率判决成二进制数据流,从而完成物理层的解调过程。显然,这两个带通滤波器的通带应是不相交的,才能检出各自有用频率信号。

基本明了FSK的大致原理后,那么HART的FSK又是怎么样的呢?


HART采用连续相位频移键控(Continuous Phase Frequency-Shift-Keying,也简称为CPFSK)技术,所谓连续相位可以观察0/1相邻的点,简单理解就是赋值是连续的。HART利用1200Hz正弦电流信号表征逻辑1,而由2200Hz正弦电流信号表征逻辑0。0/1调制的时间宽度是一样的,采用一周期1200Hz正弦时间。这些调制的信号再线性叠加到4-20mA上,因此在4-20mA上的波形大致就是这样:

有童鞋可能会说,这样岂不是污染了4-20mA环路吗?HART协议规定调制信号的频带基本须在500-10KHz内:


4-20mA变送通道的变化频率低于1200Hz,设备会做一个低通滤波,滤除掉这些调制信号,再进入被接入设备的I/V转换电路,进而采样环路电流。所以一般的,接入端会并接一个250欧的电阻,将4-20mA转换为1-5V,当然也可能是其他电阻值。工业测量的过程量,一般都是低频信号,所以这样设计是没有问题的。

此调制解调器器可以由专用芯片完成,比如 安森美的NCN5192,Maxim的DS8500等都可以,也可以自己设计调制电路实现。

链路层

链路层向上层提供稳定可靠的数据链路服务,以及对下层的物理层介质进行介质访问管理,同时定义了数据报文结构。

帧结构

首先来看看HART协议报文结构:

其定界符定义为:

校验码采用异或校验算法,包括自定界字节开始至所有有效字节的异或结果便生成校验码。

报文结构之前绘制过一个思维导图,这里附上:

由于地址类型有可能是1字节或者5字节两种类型,因此报文的帧长由下面示意图确定:

  1. 根据地址类型确定Byte Count字段的位置

  2. 根据Byte Count长度确定校验自己的位置

接收帧算法,主要由下面几个关键事件完成:

长地址格式:由主站地址类型、Burst 模式标志、设备类型字段、ID字段组成。

主站类型:

  • 主要主站

  • 辅助主站

设备类型,设备类型主要定义可参考下面思维导图:

介质管理服务

看这个图好像很复杂,其实这是一般标准的严谨表述方式,姑且称为协议原语,所谓协议原语就是某一确定的动作抽象,对于物理层的控制就包含这样一些操作管理:

  • RESET复位原语,比如你自己做的调制解调器或者现有的芯片,需要实现状态复位的操作,比如现成的芯片可能提供复位脚或者控制命令,那么编程就是控制物理层进行复位。

  • ENABLE使能原语,对物理层的使能控制操作,比如MODEM芯片的ENABLE引脚的控制

  • DATA传输/接受原语,将物理层数据进行收发控制,对于发,就是将上层数据发送给物理层发送到总线介质的意思,对于收而言就是物理层接收到的BIT流进行成帧,并上传给上层。

总的指导控制操作,按照上述建议交互图进行与物理层进行交互。

注:标准中以SAP(Service Access Point)进行描述,所谓SAP,就是对介质或上层服务的一种抽象说法,至于这个名词不必觉得不好理解。

链路管理服务

链路管理主要描述链路层对应用层的服务,主要分两种服务,报文服务,以及管理服务:

  • **报文服务:**发送消息和接收回复的基本功能。此外,还指定了SAP,以允许捕获未经请求的消息,比如捕获Burst报文。

  • 管理服务:管理服务指允许配置数据链路层本身参数的服务。


看这个图好像很复杂,其实就是描述了应用层对链路层三种基本操作:

  • TRANSMIT发送服务原语:应用层发送报文给链路层

  • RECEIVE接受服务原语:接收报文并传输给应用层

  • CYCLIC捕获服务原语:周期性接受总线Burst报文,所谓Burst就是某一个站点周期性向总线广播报文,一般会将测量值或控制信息周期性广播,接收设备可以捕获该数据实现相应的应用控制。

介质控制

无Buest设备:主要是完成介质冲突控制的,采用令牌传递方式进行介质冲突控制,当总线中没有Burst设备时,其控制状态机如下:

总线设备主要有可能有三类设备:主要主站、从设备、辅助主站。令牌在这三者间按照上述状态机进行切换控制。数据总是主站发起,从站应当。是一种主-从通信模式,唯一要考虑的时,总线中主要主设备发起通信,从设备应答,如果在从设备应答令牌周期没有应答或者完成应答,令牌将传递给辅助主站。

有Burst设备:如果总线中存在Burst模式设备,则总线设备角色就多了一个,其令牌传递状态机就变成这样了:

其实就是令牌多了一个角色可以获取,其机理还是与上面的一样。

应用层

应用层主要定义:

  • 通过协议传输应用数据的格式;

  • 所有现场设备的版本规则;

  • 定义通用命令编号,通用惯例,特定设备和设备系列命令使用;

  • 私有HART命令的构造要求;

  • 所有命令响应都需要返回的命令状态字节;

  • 设备使用状态和现场设备变量;

  • 主机用于识别现场设备和管理HART网络的过程

另外应用层还规定了12项基本原则:

  1. 所有设备都必须遵守HART现场通讯协议规范的有效兼容修订版;

  2. 48号的必须遵守通用操作命令规范中的要求;

  3. 任何时候都不得从任何设备上删除命令,兼容性考虑;

  4. 现场设备支持的命令中任何数据项的含义均不得更改

  5. 数据项可以添加到任何命令的末尾

  6. 不得从枚举表,位字段或响应代码中删除条目

  7. 设备变量的代码号不得更改

  8. 设备变量的设备系列必须保持固定。

  9. 设备变量的分类必须保持固定

  10. 遵循以下规则,现场设备可以从HART 4升级而无需更改设备类型:

  • 设备修订版所针对的HART现场通信协议规范的所有要求都必须遵守

  • 必须删除命令4和命令5

  • 除命令0外,所有命令都必须仅以长帧格式实现,命令0必须同时以短帧和长帧格式实现。

  • 必须为每个主机提供设备状态字节中单独的配置更改位(即一个用于主要主机,另一个用于辅助主机)。当接收到命令38时,必须仅复位与发出命令的主机相对应的位。根据HART 5的要求,这些位必须是非易失性的。所谓非易失性就是掉电保存

  • 必须为每个主机在设备状态字节中提供一个单独的冷启动位

  • 必须支持通用实践命令规范中指定的命令38和命令48

  • 遵循以下规则,现场设备可以从HART 5升级而无需更改设备类型

    • 设备修订版所针对的HART现场通信协议规范的所有要求都必须遵守

    • 必须为每个主机提供设备状态字节中单独的配置更改位

    • 必须为每个主机在设备状态字节中提供一个单独的冷启动位

    • 必须支持通用实践命令规范中指定的命令38和命令48

    • 如果支持“Burst模式”,则必须添加2条其他“Burst消息”。且必须添加事件通知。

  • 遵循以下规则,可以在不更改设备类型的情况下从HART 6升级现场设备

    • 必须遵守设备修订版所针对的HART现场通信协议规范的所有要求。

    • 必须按照“通用实践命令规范”中的说明来支持命令38和命令48。

    • 2字节命令格式:命令字段为0x1F,可在数据字段中找到WO字节扩展命令号。

    总结一下

    HART总线,是工业现场设备应用最为广泛的总线协议之一,除此之外还有常见的modbus协议、Profibus协议、FF基金会总线协议等。其实总线通信协议都有其相似的地方,这也是为什么有OSI七层模型这一说,就是我们日常生活息息相关的TCP/IP协议栈也脱离不了这些相似的地方。

    本文旨在梳理一下比较重要的信息,方便对有兴趣的童鞋起到一个提纲携领的作用,主要参考HART标准,同时加入自己的理解。短短的一篇文章并不能完整的总结这样一个协议,还有很多细节没有囊括,比如变量管理、诊断定义等等,具体开发中请以HART标准为准。整理本文,也是对之前工作中所使用到的工业总线协议做个总结。

    整理不易,如觉得有价值,请转发给有需要的朋友,是对我最大的支持和肯定!

    END

    往期精彩推荐,点击即可阅读

    ▲Linux驱动相关专辑 

    手把手教信号处理专辑

    片机相关专辑

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

长文图解工业HART总线协议 的相关文章

  • MPU6050对卡尔曼、一阶互补滤波、二阶互补滤波的比较

    这是总体的滤波效果 这是放大的版的 可以看出 xff0c 卡尔曼和二阶基本在重合在一起 xff0c 一阶也还好 xff0c 也没有差得太远 这里是从一放在桌子上一段时间后再进行测试的 xff0c 可以看出一阶的跟随性上面要比其他二个都要好
  • 基于UCOSIII+机智云的远程空调遥控器

    一年前 xff0c 我通过师兄的介绍知道了机智云这家创业公司 xff0c 后来 xff0c 他们的经理来我们学校开了一次宣讲会 xff0c 然后我就以个人开发者的名义申请了他们家的GoKit2代开发板 xff0c 开始对这家公司有一定的关注
  • VMware Workstation12安装Ubuntu和VMware Tools教程

    之前我通过百度经验上的过程来安装Ubuntu16 xff0c 但是每次安装的时候没有什么问题 xff0c 就是安装好了Tools xff0c 也设置好了共享文件夹 xff0c 但是在路径 xff1a mnt hgfs 下每次都找不到共享文件
  • IIC上拉电阻的选择

    上周项目评审的时候 xff0c 评审部门问了我一个问题 xff1a 为什么单片机内部有上拉电阻 xff0c 你们还要用外部的上拉电阻 xff1f 我的答复如下 xff1a 上拉电阻的选取要考虑上限值和下限值这两点 xff1a 上限值的最大限
  • 手写RTOS-创建工程

    今天开始我手写RTOS的第一步 xff0c 创建一个工程 这个工程要能够在MDK环境中能够进行编译和仿真 xff0c 不用借助任何的开发板和仿真器 xff0c 完全基于Cotex M3内核进行实验 现在我们开始创建这一个工程 xff0c 首
  • STM8S之TIM2_CH1输出不了PWM波解决办法

    最近由于项目需要 xff0c 用到STM8S103F3P6 xff0c 开发方式采用库函数方式开发 xff0c 编译环境为ST Visual Develop 43 Cosmic CxSTM8 32K 4 3 4 初始化PWM的程序如下 xf
  • 陀螺仪和加速度计互补滤波的一些推导

    1 首先 xff0c 简单介绍一下加速度计和陀螺仪的一些特性 加速度计 xff1a 静态稳定性好 xff0c 动态响应较慢 xff0c 在高频时信号不可用 xff0c 在运动时其数据相对不可靠 陀螺仪 xff1a 动态性能好 xff0c 响
  • 树莓派4B gpio readall 出现Oops - unable to determine board type... model: 17

    树莓派使用GPIO接口是基于wiringPi的 官网链接 xff1a http wiringpi com 1 xff1a 出现问题的界面 pi 64 raspberrypi gpio v gpio version 2 50 Copyrigh
  • 树莓派4B +远程SSH+远程桌面

    一 有线SSH连接树莓派 我的实验环境是笔记本电脑 43 树莓派4B 具体步骤为 xff1a 1 电脑连接上无线网络 xff0c 将电脑网线连接树莓派 2 打开如下界面 3 双击WLAN gt gt 点击属性 gt gt 再点击共享 选择以
  • 树莓派4B+wifi远程无线连接

    在树莓派无线连接前 xff0c 先设置一个静态IP 一来可以防范DHCP自动分配的ip来回变动 xff0c 导致远程SSH时常无法连接 xff1b 二来还可以提高树莓派的网络连接速率 1 一般先使用HDMI连接树莓派 xff0c 若没有额外
  • ESP32 FreeRTOS-流缓冲区(12)

    提示 xff1a 好记性不如烂笔头 本博客作为学习笔记 xff0c 有错误的地方希望指正 文章目录 前言 xff1a 一 xStreamBufferCreate xStreamBufferCreateWithCallback 二 xStre
  • windows10下安装docker,并运行ubuntu

    先上三个参考链接 xff1a 安装参考链接docker安装 xff1b docker镜像仓库 xff1a docker hub xff1b docker官方windows安装参考文档 xff1a install docker desktop
  • windows10下使用docker开启Ubuntu桌面

    先安装docker xff1a https blog csdn net Mr FengT article details 107007999 然后随便在仓库中选择一个带有桌面的Ubuntu 比如我下载的 xff1a docker pull
  • Linux下的tar压缩解压缩命令详解

    tar c 建立压缩档案 x xff1a 解压 t xff1a 查看内容 r xff1a 向压缩归档文件末尾追加文件 u xff1a 更新原压缩包中的文件 这五个是独立的命令 xff0c 压缩解压都要用到其中一个 xff0c 可以和别的命令
  • Apex安装

    直接 xff1a pip install apex 最后发现会出错 xff0c 用不了 所以使用以下方法来安装 xff1a git clone https github com NVIDIA apex cd apex python setu
  • ROS 主从通信机制要点记录

    本文主机是PC xff0c 从机是树莓派4B 1 主从机器都处于同一局域网下 xff0c 即连接同一wifi 2 分别在主从机上终端输入 ifconfig 查看当前ip 3 分别打开主从机器的 etc hosts 文件 xff0c 使用su
  • 怎么制作自己的数据集

    我们在做深度学习时 xff0c 一般都是跑别人公开的数据集 xff0c 如果想要跑自己的数据集怎么办 xff1f 今天就记录一下我自己用的一种方法 1 假设待分类一共有n类 2 新建一个文件夹 xff0c 在该文件夹下新建n子个文件夹和n个
  • python 将列表中的字符串转为数字

    python 将列表中的字符串转为数字 转自 xff1a https www jb51 net article 86561 htm 本文实例讲述了Python中列表元素转为数字的方法 分享给大家供大家参考 xff0c 具体如下 xff1a
  • AI编程软件会取代程序员吗?

    最近听到同事问了这样一个问题 xff0c 今天就来好好的唠一唠 xff0c 随着科学技术的发展 xff0c 现在生命上都已经开始出现AI编程软件了 不由得感叹 xff0c 一句现在时代发展还真快呀 xff01 然后我就和他一样产生了一种小小
  • python的requests快速上手、高级用法和身份认证

    https www cnblogs com linkenpark p 10221362 html 快速上手 迫不及待了吗 xff1f 本页内容为如何入门 Requests 提供了很好的指引 其假设你已经安装了 Requests 如果还没有

随机推荐

  • MongoDB

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库 由C 43 43 语言编写 旨在为WEB应用提供可扩展的高性能数据存储 解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的产品 xff0c 是非关系数据库当中
  • 路由器的连接——图解

    导读 现如今路由器的使用越来越普遍 xff0c 路由器有很多网线口 xff0c 你知道这些网线口该如何连接吗 xff1f 路由器后面都有哪些口 下图为一张最常用的路由器接口示意图 我们可以看到 xff0c 除了电源接口外 xff0c 路由器
  • 【PX4自动驾驶用户指南】距离传感器

    距离传感器 xff08 测距仪 xff09 距离传感器提供距离测量 xff0c 可用于地形跟踪 地形保持 如摄影时精确悬停 改进着陆行为 距离辅助 高度限制警告 碰撞预防等 本节列出了PX4支持的距离传感器 链接到更详细的文档 xff0c
  • 【MATLAB UAV Toolbox】使用指南(一)

    开始使用UAV Toolbox 设计 xff0c 仿真和部署无人机应用程序 UAV Toolbox给设计 仿真 测试和部署无人机应用程序提供了工具和参考应用 你能够设计自动飞行算法 无人机任务和飞行控制器 飞行日志分析仪应用程序可以让您交互
  • 【MATLAB UAV Toolbox】使用指南(二)

    可视化和回放MAVLink飞行日志 这个例子将展示如何将包含MAVLink包的遥测日志 xff08 TLOG xff09 加载进MATLAB 提取的详细信息用来绘图 然后再次仿真飞行 xff0c 这些消息通过MAVLink通信接口重新发布
  • ROS小乌龟程序在服务器通信的应用

    上次我们已经利用launch 文件和话题通信成功实现了小乌龟的位置与姿态的消息发布 xff0c 这次我们将利用服务通信来实现这一功能 我们将以spawn 产卵 xff0c 生成新的小乌龟 为例进行实践 首先是对相关信息的获取 xff1a r
  • STM32实验:串口接受和发送消息

    在STM32里 xff0c USART负责进行串口通信 STM32可以通过串口和其他设备进行传输并行数据 xff0c 是全双工 异步时钟控制 xff0c 设备之间进行的是点对点的数据传输 对应的STM32引脚分别是RX xff08 接收端
  • 关于传感器标定(imu标定,camera标定,camera-imu联合标定)

    博主最近在帮同门做实验 关于传感器这些标定也是初次接触 xff0c 使用orb slam3代码包 其中涉及一些传感器标定 xff0c 这里就把我用的东西汇总一下 目录 1 imu标定 1 1 使用imu utlies标定 1 1 1安装步骤
  • nuxt服务器渲染,获取数据赋值给组件 - nuxtServerInit

    前言 xff1a vue 43 nuxt js 项目中 xff0c 根据IP定位赋值 xff0c 头部可切换城市 xff0c header在layouts下调用 xff0c 首页根据定位接口返回一些数据 async asyncData ct
  • Docker基础篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 概述 官网 xff1a https docs docker com 1 1 容器较为
  • Docker进阶篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 Docker镜像详解 1 1 UnionFS xff08 联合文件系统 xff09
  • sw模型转urdf,并在gazebo和rviz中显示

    sw模型转urdf xff0c 并在gazebo和rviz中显示 1 sw模型转urdf1 1建立机器人的三维模型1 2机器人三维模型预处理1 3装配1 4建立坐标系 2 显示2 1 在gazebo中显示2 2 在rviz中显示 3 让模型
  • JSON对象/数组与JSON字符串之间的相互转换

    文章目录 前言JSON介绍如何判断JS数据类型JSON数组转化为JSON字符串JSON对象转化为JSON字符串JSON字符串转化为JSON数组 对象注意点 前言 这里先介绍一个个人觉得很好用的谷歌浏览器的功能 xff1a snippet 就
  • js分片上传&断点续传

    一 基本介绍 1 xff0c 什么是 WebUploader xff1f WebUploader 是由百度公司团队开发的一个以 HTML5 为主 xff0c FLASH 为辅的现代文件上传组件 官网地址 xff1a http fex bai
  • JavaScript超大文件上传解决方案:分片断点上传(一)

    前段时间做视频上传业务 xff0c 通过网页上传视频到服务器 视频大小 小则几十M xff0c 大则 1G 43 xff0c 以一般的HTTP请求发送数据的方式的话 xff0c 会遇到的问题 xff1a 1 xff0c 文件过大 xff0c
  • 基于JS的大文件分片

    项目需要上传超大文件 xff0c 后台为DJANGO xff0c 不能直接用H5 的FILE API来POST xff0c 所以采用slice分片 在分片后为BLOB不能直接传 xff0c bolb转file有些浏览器又有支持问题 所以做一
  • 【网络安全】如何在 Apache 安装开源 WAF

    说明 xff1a 本文以 Windows 环境下的 Apache 安装 mod security 为例 xff0c 介绍开源 WAF 产品的安装使用 http www modsecurity cn https github com Spid
  • 手把手教系列之梳状滤波器设计实现

    导读 前面一篇文章关于IIR 移动平均滤波器设计的文章 本文来聊一聊陷波滤波器 该滤波器在混入谐波干扰时非常有用 算法简单 实现代价低 本文来一探其在机理 应用场景 注 尽量在每篇文章写写摘要 方便阅读 信息时代 大家时间都很宝贵 如此亦可
  • 看思维导图:一文带你学Verilog HDL语言

    关注 星标嵌入式客栈 xff0c 精彩及时送达 导读 基于FPGA的SOC在嵌入式系统应用越来越广了 xff0c 往往一个复杂系统使用一个单芯片基于FPGA的SOC就搞定了 比较流行的方案主要有Altera xilinx两家的方案 要用这样
  • 长文图解工业HART总线协议

    关注 星标嵌入式客栈 xff0c 精彩及时送达 导读 在AIOT蓬勃发展的今天 xff0c 也掀起传统工业设备IOT革新的浪潮 那么需要对工业设备进行IOT改造 xff0c 除了直接开发具有IOT互联协议的新型设备 xff0c 对原有总线设