通讯协议
文章平均质量分 84
主要记录与通讯协议相关的内容
高亚奇
医疗仪器软件、上位机开发者
展开
-
QByteArray::fromHex() 、QByteArray::toHex()原理及使用
第二步,以“31”为例,fromHex表示从16进制。所以把31当做16进制数,转成十进制数是3*16+1=49. 结合ASCII码对照表,十进制数49对应数字1,把数字1当做字符“1”。有时候从网络获取到一串的mac地址却是没有使用":"或空格分隔开来,未免会让用户阅读困难起来。变量test1用8个字符保存“31323235”,每个字符8位,两个字符16位。QByteArray::fromHex转换时,每16位作为转换单元。第一步,把“31323235”分成4组,“31”,“32”,“32”,“35”原创 2024-07-30 16:02:21 · 1021 阅读 · 0 评论 -
串口通信中QString与QByteArray的互相转换
QByteArray在串口通讯中经常被使用,通信处理过程中,经常会涉及到数据格式的转换,有一定必要较为全面详细的对QByteArray数据转换与处理部分进行阐述。本文通过以下几个部分加以介绍在使用串口发送数据时可以选择字符串发送或者十六进制发送,关于两者的区别,需要从计算机存储数据的格式说起。在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示。原创 2024-07-30 16:40:50 · 1241 阅读 · 0 评论 -
串口QSerialPort类同步与异步接收和发送数据及常见问题解决
QT作为C++的库,也是一样的道理。通讯的一方(B)如果不能及时处理串口数据,会设置自己的RTS为低电平,B的RTS连着对方(A)的CTS,A发现自己的CTS为低电平,将停止发送数据;因此每个bit紧接着下个bit,不存在额外的间隔,不管是起始bit,数据bit,奇偶bit,停止bit。通讯的双方A和B,假如A给B发送数据时,B反应过慢,A不管不顾的不停发送数据,结果会导致数据丢失。电脑串口以及一般使用的开发板串口都是默认8个数据bit,一个停止bit,(起始1bit是必须的)默认无奇偶校验位,无流控。原创 2024-07-23 10:31:34 · 1750 阅读 · 0 评论 -
常见通信方式(TTL、RS232、RS485、CAN、I2C)总结
1、从单片机软件编程角度来说,RS232、RS-485最终结果都是转换为TTL电平方式与单片机通信(CAN收发器把差分信号转化为TTL-->CAN控制器(MCU))。逻辑1:-1.5V--0V 逻辑0:+1.5V--+3V)这里的电平指CAN_High、CAN_Low 两线间的电压差。半双工、(逻辑1:+2V--+6V 逻辑0: -6V---2V)这里的电平指AB 两线间的电压差。全双工(逻辑1: 2.4V--5V 逻辑0: 0V--0.5V)全双工(逻辑1:-15V--5V 逻辑0:+3V--+15V)原创 2024-07-16 17:20:00 · 1354 阅读 · 0 评论 -
嵌入式软件必备知识--通讯协议(UART、I2C、SPI、CAN)
UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。UART全称是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),它通常称作UART,是一种异步收发传输器, 是设备间进行异步通信的关键模块。UART负责处理数据总线和串行口之间的串/并、并/串转换,并规定了帧格式;原创 2024-07-16 16:13:22 · 1176 阅读 · 0 评论 -
UART协议 分析
这里以发送字符‘D‘为例,通过璞石示波器,直接观察TTL实现传输的信号(探头接地端连接设备共地端,探头信号端连接上图蓝色信号线),可以获得如图 1‑4所示的信号波形。从波形可以看出,当没有数据传输时,UART信号会一直保持在高电平(具体信号幅度由I/O的供电电压决定),数据传输时信号发生跳变,传输完成后信号重新回到空闲的高电平状态。付出的成本则是在物理层需要对应的电平转换芯片来实现,发送端需要将内部的高低电平信号转换成电压更高的+/-电压信号,接收端需要将+/-电压信号转换成内部的高低电平信号。原创 2024-07-16 14:54:19 · 629 阅读 · 0 评论 -
串行通讯协议--起止式异步通讯协议 【异步通信中数据发送和接收的全过程】
异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。传输数据时先传送字符的低位,后传送字符的高位。由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。原创 2024-07-16 10:22:12 · 658 阅读 · 0 评论 -
Modbus通信协议
通过以太网传输时使用TCP,这种模式不使用校验,因为TCP协议是一个面向连接的可靠协议。数据在通信双方之间传输,本质是传输物理的电平 比方说传输5V的电压 -1V的电压信号,这些物理信号在传输过程中会受到很多干扰,比方说你传输一个5V的电压,到了接收端可能就变成了4.8V,并且通信的双方高低电平的参考电压可能不同。就好比老师和你打电话,老师拨通了你的电话号,然后老师跟你说,小王呀,我这里需要你给我发东西,发的内容是上周的一周总结,你说好的,然后打开你电脑的文件夹,把你的周报发给老师,这就是一个通信过程。原创 2024-02-28 09:40:59 · 1081 阅读 · 0 评论 -
【QT应用】 Modbus CRC16 校验码计算
记录一下QT中如何实现 ModbusCRC16 校验码计算;将16进制字符串转换为对应的字节序列。分两种方法:直接计算法、查表法。原创 2024-02-04 10:14:55 · 1519 阅读 · 0 评论 -
EtherCAT简介
EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。原创 2023-12-15 16:07:51 · 5206 阅读 · 2 评论 -
CANopen报文详解
CAN报文由7个不同的位域组成,CANopen主要是规定了其中的仲裁域和数据域的使用情况。本篇文章将对CANopen报文进行解析,包括报文格式、报文测试相关内容,并具体说明NMT报文、心跳报文、同步报文、SDO、PDO等CANopen是位于CAN总线之上的应用层协议。CAN报文由7个不同的位域组成,CANopen主要是规定了其中的仲裁域和数据域的使用情况。原创 2023-12-15 16:42:31 · 1536 阅读 · 0 评论 -
串口、COM口、UART口 ;TTL、 RS-232、 RS-485
区别首先 串口、COM口、UART口一般指的是。而TTL、RS-232、RS-485则是逻辑电平0和1的不同表示标准它们区别如下:1)和RS232相比,由于RS485采用了差分传输的方式,因此抗干扰能力强很多。TTL抗干扰能力最差。2)像STM32这类单片机的USART口,出来的电平都是TTL电平,想要和电脑通讯需要电平转换芯片。串口,即串行通信接口,与之相对应的另一种接口叫并口,并行接口。原创 2023-12-06 14:53:50 · 3727 阅读 · 0 评论 -
树莓派GPIO功能详解
GPIO全称是General Purpose Input Output (通用输入/输出)。来说它并不是类似USB、DVI、HDMI这样一种特定协议的接口,而是通用接口的总称。树莓派提供了40个PIN口,大致的定义如下。其中黄色的GPIO PIN口有26个。其余的是供电接口和接地口。每个GPIO接口都可以用作输入和输出,可以根据需要进行使用。原创 2023-11-24 15:46:54 · 5127 阅读 · 1 评论 -
软件和硬件的桥梁--驱动程序
计算机系统中存在着各种不同类型的硬件设备,例如打印机、显示器、网络接口卡等。这些设备通常由不同的制造商生产,因而其工作原理和通信协议也可能各不相同。为了实现操作系统与这些硬件设备的良好协作,需要一个中间层来处理硬件细节,提供一个标准的接口供操作系统和应用程序使用,这就是驱动程序的作用。应用程序通过操作系统调用到驱动程序,从而实现操控硬件,所以驱动程序中必然是操作硬件的具体细节代码。原创 2024-01-08 10:48:23 · 1067 阅读 · 0 评论