随笔分类 - 协议编程
摘要:linux蓝牙协议栈bluez(https://github.com/bluez/bluez/tree/master),提供了丰富的蓝牙开发工具和示例。 bluez5主要提供基于HCI和基于DBUS的接口,基于HCI的接口主要用于更细致控制蓝牙硬件模块,而基于DBUS的接口提供大量的蓝牙上层协议,能
阅读全文
摘要:1. gRPC简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objec
阅读全文
摘要:EtherNet/IP CIP协议 1.EtherNet/IP简述 EtherNet/IP(Ethernet/Indstrial Protocol,以太网/工业协议)是一种基于以太网和TCP/IP技术的工业以太网,其物理层和数据链路层使用以太网协议,网络层和传输层使用TCP/IP协议族中的协议,应用
阅读全文
摘要:DF1协议 1. 概述 可编程控制器(PLC)因编程方便,抗干扰能力强,被广泛应用于各种领域。DF1协议是AB公司可编程控制器系统广泛支持的数据链路层通信协议,各系列可编程控制器及装有RSLinx通信软件的计算机均支持DF1协议。它的物理层建立在RS232和RS485等电气标准之上,针对不同的设备建
阅读全文
摘要:PCCC:Programmable Controller Communication Commands. AB PLC常用指令 根据http://www.iatips.com/pccc_tips.html,SLC5/MicroLogix常用指令如下: The best commands for SL
阅读全文
摘要:1. gRPC简述 RPC,远程方法调用,就是像调用本地方法一样调用远程方法。 gRPC是Google实现的一种RPC框架,基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。目前提供 C、Java
阅读全文
摘要:MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议。MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展。适用于设备硬件存储空间有限或网络带宽有限的场景。物联网平台支持设备使用MQTT协议接入。 官网:mqtt.org wiki
阅读全文
摘要:简述 USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB2.0目前比较常用。由于USB是主从模式的结构,设备与设备之间、主机与主机之间不能互连,为解决这个问题
阅读全文
摘要:linux内Bluetooth的协议栈为BlueZ,http://www.bluez.org/。在4.46上,BlueZ实现了对A2DP Sink的支持,而之前的版本只支持A2DP Source。 主机实现到HCI层,底层由蓝牙芯片实现。HCI层实现的是蓝牙芯片与主机通讯的方式。目前一般是串口或者U
阅读全文
摘要:PPPOE简述 PPP主要是用来通过拨号或专线方式在两个网络节点之间建立连接、发送数据。PPP是一种分层协议,物理层用来进行实际的点到点连接。由链路控制层(LCP)发起对链路的建立、配置和测试。在LCP初始化完成后,通过一种或多种网络控制协议来传送特定协议族的通信。PPP协议具有处理错误检测、支持多
阅读全文
摘要:PPP或PPPOE都支持身份验证,有两种验证方式:PAP和CHAP。 PAP,Passwd Authentication Protocol,密码验证协议,以客户端明文方式传递用户名和密码,服务器和本省存储的密码进行比较验证,属二次握手。 CHAP,Challenge Handshake Authen
阅读全文
摘要:1. 简述 一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-Clark
阅读全文
摘要:Inter-Integrated Circuit I2C(IIC)属于两线式串行总线,由飞利浦公司开发用于微控制器(MCU)和外围设备(从设备)进行通信的一种总线,属于一主多从(一个主设备(Master),多个从设备(Slave))的总线结构,总线上的每个设备都有一个特定的设备地址,以区分同一I2C
阅读全文
摘要:协议——如何制作一个简易的串口通信协议 粘包问题及解决 Unity C# 自定义TCP传输协议以及封包拆包、解决粘包问题(网络应用层协议)
阅读全文
摘要:一. modbus概述 Modbus是一项应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。包含两个通信规程:串行链路上的MODBUS和TCP/IP上的MODBUS。 二. 协议描述 2.1 事务交互 对于异常响应,服务器返回一个与原始功能码等同的码,设置该原始功
阅读全文
摘要:1. 功能码 modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。 线圈:PLC的输出位,开关量,在MODBUS中可读可写 离散量:PLC的输入位,开关量,在MODBUS中只读 输入寄存器:PLC中只能从模拟量输入端改变的寄存器,在MODBUS中只读 保持寄存器:PLC中用于输出模
阅读全文
摘要:linux使用terminfo数据库来描述终端能力以及调用对应功能的方法。C++封装好的库为ros-kinetic-serial。 一、工作模式 在 Linux 系统中,串口属于终端 I/O 操作。终端 I/O 有两种不同的工作模式,通过termios结构体的c_lflag成员来设置Canonica
阅读全文