当前位置:文档之家› 自定义CAN通信协议

自定义CAN通信协议

自定义CAN通信协议

一、资源节点分配。

1.I/O输入地址00H---1FH

2.I/O输出地址20H----3FH

3.模拟量输入地址40H---5FH

4.模拟量输出地址60H---7FH

5.设备标识地址80H----9FH

6.通信参数地址A0H----BFH

6.1. A0H 本机物理地址(生产者地址)

6.2. A1H 主机物理地址(消费者地址1默认第一个为主机地址0)

6.3 A2H 主机物理地址(消费者地址2)

6.4 A3H 主机物理地址(消费者地址3)

6.5 A4H 主机物理地址(消费者地址4)

6.6 A5H 主机物理地址(消费者地址5)

6.7 A6H 主机物理地址(消费者地址6)

A7H 从机物理地址(服务者地址1)

A8H 从机物理地址(服务者地址2)

A9H 从机物理地址(服务者地址3)

AAH 从机物理地址(服务者地址4)

ABH 从机物理地址(服务者地址5)

ACH 从机物理地址(服务者地址6)

6.8. ADH CAN波特率(1=10K,2=50K,3=100K,4=200K,5=500K)

6.9. AEH 用户设置波特率(1=10K,2=50K,3=100K,4=200K,5=500K)

6.10. AFH 从站循环发送时间单位为2ms

6.11 B0H 节点心跳时间单位5ms

6.12 B1H 节点发送数据方式(0主从方式。1循环发送。2主动发送。)

6.13 B2H 节点主动发送的资源节点起始地址

6.14 B3H 节点主动发送的数据量

6.15 B4H 本机为主机或者从机

7. 自定义地址区域C0H----FFH

二、29位标识符分配

1. 物理地址分配28—23位(源地址)

2. 目的地址分配22----17位

3. 功能码地址分配16——13位

4. 被操作的资源节点起始地址分配12---5位

5. 主动帧/应答帧分配4位

6. 保留位3----0位

三、数据域分配

第一个数据为分段码。(6---7位表示分段标识,0----5位表示分段计数器)

四、功能码编码

1. 00H保留

2.01H删除连接

3. 02H建立连接

4. 03H通信参数设置

5. 04H写连续的资源节点

6. 05H读连续的资源节点

7. 06H节点心跳(由从机主动发送节点心跳)此功能码不用应答

8.07H

五、功能码解析

1. 01H删除连接和02建立连接:一个节点可以是其他节点的主机也可以是其他节点的从机,但是在整个网络中绝对主机是地址为00的主机,他管理整个网络的网络联机,即各个相对主机的分配或者取消,网络参数的设置由00绝对主机设置。

六、网络管理

1.节点离线(当主机定时检测节点连接的节点超时的时候表示节点离线)

2.响应超时

TCP自定义通讯协议

一.设计 1.详细设计: 2个字节的起始字头,1个字节的命令字,1个字节的数据包编号,4个字节的报文总大小, 4个字节的传输数据总大小, 2个字节的文件名大小, 1个字节的保留(备用)字,若干字节的数据块. 2.详细内容 (1)报头的内容: 1.标志位, 2.命令字, 3.数据包的编号, 4.该报文的总大小, 5.该段传输 数据的大小, 6.文件名的大小, 1)命令字: 1.普通图片, 2.普通文档, 3.普通消息, 4.加密图片, 5.加密文档, 6.加密消息. 2)数据包编号: 1.对大文件或长消息体, 以一定的大小进行分割. 一次编号. 3)文件名大小: 1.数据包的数据块中, 刚开头的部位, 进行写文件名, 用来保证每段新数据写入对应的文件. 4)标志位: 1.消息体中需要对与报头,校验字相同的内容进行转义. (2)消息体: 1.文件名或消息名; 2.文件或消息的具体内容. 定义一个规则,发送的时候按照规则封装,接收的时候再按照这个规则解封装(TLV)。 二.TCP报文分段传输的依据: (1)MTU(最大传输单元) 是链路层中的网络对数据帧的一个限制,以以太网为例,MTU为1500个字节。 一个IP数据报在以太网中传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU。分片传输的IP数据报不一定按序到达,但IP首部中的信息能让这些数据报片按序组装。IP数据报的分片与重组是在网络层进完成的。

(2)MSS(最大分段大小) MSS是TCP里的一个概念(首部的选项字段中)。MSS是TCP数据包每次能够传输的最大数据分段,TCP报文段的长度大于MSS时,要进行分段传输。 TCP协议在建立连接的时候通常要协商双方的MSS值,每一方都有用于通告它期望接收的MSS选项(MSS选项只出现在SYN报文段中,即TCP三次握手的前两次)。 MSS的值一般为MTU值减去两个首部大小(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以如果用链路层以太网,MSS的值往往为1460。而Internet 上标准的MTU(最小的MTU,链路层网络为x2.5时)为576; 如果不设置,则MSS的默认值就为536个字节。很多时候,MSS的值最好取512的倍数。TCP报文段的分段与重组是在运输层完成的。 TCP分段的原因是MSS,IP分片的原因是MTU,由于一直有MSS<=MTU,很明显,分段后的每一段TCP报文段再加上IP首部后的长度不可能超过MTU,因此也就不需要在网络层进行IP分片了。因此TCP报文段很少会发生IP分片的情况。 对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS)决定,MSS就是TCP 数据包每次能够传输的最大数据分段。 为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值.这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP 数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值, 确定为这次连接的最大MSS值。

自定义应用层通信协议

1.通信协议的概念及其要素 在OSI开放互联参考模型中,对等实体之间数据单元在发送方逐层封装,在接收方的逐层解析。发送方N层实体从N+1层实体得到的数据包称为服务数据单元(Service Data Unit,SDU)。N层实体只将其视为需要本实体提供服务的数据,将服务数据单元进行封装,使其成为一个对方能够理解的数据单元(Protocol Data Unit,PDU),封装过程实际上是为SDU增加对等实体间约定的控制信息(Protocol Control Information,PCI)的过程。为了保证网络的各个功能的相对独立性,以及便于实现和维护,通常将协议划分为多个子协议,并且让这些协议保持一种层次结构,子协议的集合通常称为协议簇。 网络协议的分层有利于将复杂的问题分解成多个简单的问题,从而分而治之。各层的协议由各层的实体实现,通信双方对等层中完成相同协议功能的实体称为对等实体。对等实体按协议进行通信,所以协议反映的是对等层的对等实体之间的一种横向关系,严格地说,协议是对等实体共同遵守的规则和约定的集合。 通信协议精确地定义了双方通信控制信息和解释信息:发送方能将特定信息(文本、图片、音频、视频)按协议封装成指定格式的数据包,最终以串行化比特流在网络上传输;接收方接收到数据包后,根据协议将比特流解析为本地化数据,从而获取对方发送过来的原始信息。通信协议包括三个要素: (1)语法:规定了信息的结构和格式; (2)语义:表明信息要表达的内容; (3)同步:规则涉及双方的交互关系和事件顺序。 整个计算机网络的实现体现为协议的实现,TCP/IP协议是Internet互联网的核心协议。2.通信协议开发步骤 (1)协议的开发主要包括协议设计、协议形式描述、协议实现和协议一致性测试。协议的开发过程与步骤如图1所示。 图1 协议开发过程与步骤 (2)协议设计过程中的分组发送接收模型如图2所示。

通信电源规约CSU03B通信协议-通信局电源、空调及环境集中监控管理系统前端智能设备通信协议

CSU03B通信协议更改记录 2006-06-13:V1.0;其中历史告警记录有重大调整,其他与CSU03A兼容。

CSU03B通信协议 本协议以电信总局《通信局(站)电源、空调及环境集中监控管理系统前端智能设备通信协议》(一九九九年三月)为基础制定;与CSU03A通信协议兼容(历史数据和历史告警除外)。 一.物理接口 1.串行通信口采用RS232/RS485,数据传输速率2400bps; 2.信息传输方式为异步方式,起始位1位,数据位8位,停止位1位,无校验。 3.局站监控系统(SU)与设备监控单元(SM)的通信为主从方式。SU呼叫SM并下发命令,SM收到命令后返回响应信息。SU500ms内收不到SM响应或接收响应信息错误,则认为本次通信过程失败。 二.信息类型及协议的基本格式 1.信息分两种类型: (1) 由SU发出到SM的命令信息(简称命令信息); (2) 由SM返回到SU的响应信息(简称响应信息)。 基本格式的注解见表2.2、表2.3。 表2.2 协议的基本格式 说明: COMMAND INFO由以下控制命令码(其中一部分)组成: COMMAND GROUP(1字节):表示同一类型设备的不同组号; COMMAND ID(1字节):表示同一类型设备相同组内的不同监控点; COMMAND TYPE(1字节):表示不同的遥控命令或历史数据传输中的不同控制命令; COMMAND TIME(1字节):表示时间字段。 DA TA INFO由以下应答码(其中一部分)组成: DATAI:含有整型数的应答信息;

RUNSTATE:设备的运行状态; WARNSTA TE:设备的告警状态; DATAFLAG:标示字节;本协议中该字节无效,固定为00H; DATATIME:时间字段。 表2.3返回码RTN 3.数据格式 3.1 基本数据格式 在表2.1基本格式中各项除SOI和EOI是以十六进制解释(SOI=7EH,EOI=0DH),十六进制传输外,其它各项都是十六进制解释,十六进制—ASCII码的方式传输,每个字节用两个ASCII码表示,即高四位一个ASCII码表示,低四位用一个ASCII码表示。 例:CID2=4BH,传送时顺序发送34H和42H两个字节。 3.2 LENGTH数据格式 LENGTH共两个字节,由LENID和LCHKSUM组成,LENID表示INFO项的ASCII 码字节数,当LENID=0时,INFO为空,即无该项。LENGTH传输中先传高字节,再传低字节,分四个ASCII码传送。 校检码的计算:D11D10D9D8+D7DD6D5D4+D3D2D1D0,求和后模16余数取反加1。例:I NFO项的ASCII码字节数为18,即LENID=0000 0001 0010B。 D11D10D9D8+D7D6D5D4+D3D2D1D0=0000B+0001B+0010B=0011B,模16余数为0011B,0011B取反加1就是1101B,即LCHKSUM为1101B。 可得: LENGTH为1101 0000 0001 0010B,即D012H。 3.3 CHKSUM数据格式 CHKSUM的计算是除SOI、EOI和CHKSUM外,其他字符按ASCII码值累加求和,所得结果模65536余数取反加1。 例:收到或发送的字符序列是:“~1203400456ABCDFEFC72C C R R”(“~”为SOI,“C C R R”为EOI),则最后五个字符“FC72C C R R”中的FC72是CHKSUM,计算方法是: ‘1’+‘2’+‘0’+…+‘A’+‘B’+…+‘F’+‘E’ = 31H + 32H + 30H + …+ 41H + 42H + …+ 46H + 45H = 038EH 其中‘1’表示1的ASCII码值,‘E’表示E的ASCII码值。038EH模65536余数是

常用几种通讯协议

常用几种通讯协议 Modbus Modbus技术已成为一种工业标准。它是由Modicon公司制定并开发的。其通讯主要采用RS232,RS485等其他通讯媒介。它为用户提供了一种开放、灵活和标准的通讯技术,降低了开发和维护成本。 Modbus通讯协议由主设备先建立消息格式,格式包括设备地址、功能代码、数据地址和出错校验。从设备必需用Modbus协议建立答复消息,其格式包含确认的功能代码,返回数据和出错校验。如果接收到的数据出错,或者从设备不能执行所要求的命令,从设备将返回出错信息。 Modbus通讯协议拥有自己的消息结构。不管采用何种网络进行通讯,该消息结构均可以被系统采用和识别。利用此通信协议,既可以询问网络上的其他设备,也能答复其他设备的询问,又可以检测并报告出错信息。 在Modbus网络上通讯期间,通讯协议能识别出设备地址,消息,命令,以及包含在消息中的数据和其他信息,如果协议要求从设备予以答复,那么从设备将组建一个消息,并利用Modbus发送出去。 BACnet BACnet是楼宇自动控制系统的数据通讯协议,它由一系列与软件及硬件相关的通讯协议组成,规定了计算机控制器之间所有对话方式。协议包括:(1)所选通讯介质使用的电子信号特性,如何识别计算机网址,判断计算机何时使用网络及如何使用。(2)误码检验,数据压缩和编码以及各计算机专门的信息格式。显然,由于有多种方法可以解决上述问题,但两种不同的通讯模式选择同一种协议的可能性极少,因此,就需要一种标准。即由ISO(国际标准化协会〉于80年代着手解决,制定了《开放式系统互联(OSI〉基本参考模式(Open System Interconnection/Basic Reference Model简称OSI/RM)IS0- 7498》。 OSI/RM是ISO/OSI标准中最重要的一个,它为其它0SI标准的相容性提供了共同的参考,为研究、设计、实现和改造信息处理系统提供了功能上和概念上的框架。它是一个具有总体性的指导性标准,也是理解其它0SI标准的基础和前提。 0SI/RM按分层原则分为七层,即物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。 BACnet既然是一种开放性的计算机网络,就必须参考OSIAM。但BACnet没有从网络的最低层重新定义自己的层次,而是选用已成熟的局域网技术,简化0SI/RM,形成包容许多局 域网的简单而实用的四级体系结构。 四级结构包括物理层、数据链路层、网络层和应用层。

三菱FX系列通信协议

FX系列PLC专用协议通信指令一览 以下将详细列出PLC专用协议通信的指令: 指令注释 BR 以1点为单位,读出位元件的状态 WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值 BW 以1点为单位,写入位元件的状态 WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件 BT 以1点为单位,SET/RESET 位元件 WT 以16点为单位,SET/RESET 位元件,或写入值到字元件 RR 控制PLC运行RUN RS 控制PLC停止STOP PC 读出PLC设备类型 TT 连接测试 注:位元件包括X,Y,M,S以及T,C的线圈等; 字元件包括D,T,C,KnX,KnY,KnM等。 三菱FX系列PLC编程口通信协议总览 该协议实际上适用于PLC编程端口以及FX-232AW 模块的通信。通讯格式: 命令命令码目标设备 DEVICE READ CMD "0" X,Y,M,S,T,C,D DEVICE WRITE CMD "1" X,Y,M,S,T,C,D FORCE ON CMD " 7" X,Y,M,S,T,C FORCE OFF CMD "8" X,Y,M,S,T,C 传输格式: RS232C 波特率: 9600bps 奇偶: even 校验: 累加方式(和校验) 字符: ASCII 16进制代码: ENQ 05H 请求 ACK 06H PLC正确响应 NAK 15H PLC错误响应 STX 02H 报文开始 ETX 03H 报文结束 帧格式: STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H SUM=CMD+......+ETX; 30h+31h+30h+46h+36h+30h+34h+03h=74h;

设备通讯协议

设备通信协议

目录 1.适用范围 (3) 2.协议框架 (3) 3.协议内容 (3) 3.1设备内部组网协议(或者MCU透传模式协议) (3) 3.1.1 通讯命令格式 (3) 3.1.2 配对机制 (3) 3.1.3 连接机制 (4) 3.1.4 心跳机制 (5) 3.2 设备与云端通讯协议 (5) 3.2.1 通讯命令格式 (5) 3.2.2 连接流程 (5) 3.3 数据包格式定义 (6) 3.3.1 设备间通讯数据格式 (6) 3.3.2 设备与云、APP通讯数据格式 (11) 4. ..............................................................................................................................................公共命令定义 11 5. ........................................................................................................................................................... 编码表 18 5.1节点类型编码表 (18) 5.2命令回应编码表 (18)

1.适用范围 本协议定义WiFi模块与MCU控制单元,WiFi模块与云APP间,以及主从模块之间的通讯协议框架。 2.协议框架 协议基于二进制协议框架,完成命令发送接收、命令上报、内部组网等功能。 3.协议内容 3.1设备内部组网协议(或者MCU透传模式协议) 备内部组网协议包括设备配对、连接、心跳机制等,目的是将一个子设备加入到设备组中,并保持连接。3.1.1 通讯命令格式 采用二进制的通讯协议格式,包格式如下表: 详细的包格式在后续章节介绍 3.1.2 配对机制 配对机制仅适用于设备内组网模式,MCU透传模式不需要组网协议。 进入配对模式由主从设备分别触发,只有在进入配对模式后,才处理相关的配对命令。 从设备进入配对模式后定时发送配对请求,直到收到请求回应。 主设备收到请求后分配一个设备ID给从设备,标识此ID被占用,并等待采集器的上线通知,一定时间内收到通知之后确认存入设备列表,如果没有上线通知,则认为设备没有配对成功,从子设备中删除。 从设备收到配对回应后存储设备ID,并且发送上线通知,收到上线通知后完成配对。 配对的过程如下图所示:

基于串口自定义协议的数据通信方式设计

基于串口自定义协议的数据通信方式设计 ?引言 计算机与计算机之间的数据交换不仅可以采用常用的通信协议进行联网方式交换,还可以采用串行通信方式或并行通信方式通过非常规的通信协议方式交换。不同安全等级的计算机之间需要进行数据传输(出于安全考虑,多数是从安全等级高的计算机向安全等级低的计算机单向传输数据) ,而不同安全等级的计算机是不允许进行直接网络连接的,由此设计了自定义通信协议下通过串行通信端口RS2232 实现处于不同安全等级的计算机之间进行数据传输。 1.RS232 串行端口 一组比特数据在多条线上同时被传送的传输方式被称为并行传输。在传输过程中各数据位可并行传送,传送速度快、效率高,多用于要求实时、快速的场合。但是有多少数据位就需要多少根数据线,传送成本高。而串行端口通信是数据通过一根传输线逐位传送,数据传送按位顺序进行,至少只需要一根传输线即可完成,节省传输线。由于串行通信方式使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用. 1.1 RS 2232 端口简介 RS232 串行通信端口属于PC 机(个人计算机)及电信应用领域中最为成功的串行数据标准。它被定义为一种在低速率串行通信中增加通信距离的单端标准,是目前PC 机与通信工业中应用最广泛的一种串行通信接口。现在的PC机一般有1 到2 个串行通信端口COM1 及COM2 ,这些串行通信端口均为9 个引脚,即异步通信的9 个信号。在通信速率低于20 kbit / s时,与其直接连接的电缆最大物理距离为15 m(即直接传输距离) 。RS232 标准规定,若不使用Modem ,在码元畸变小于4 %的情况下,数据终端设备(DTE)和数据通信设备(DCE)之间最大传输距离为15 m。一般应用中当通信距离小于12 m 时,可以用电缆线直接连接标准RS232 端口。若距离较远, 须附加调制解调器(Modem) 。本方案中传输数据的2 台计算机距离很近,采用最基本的接法,将RS232 端口的关键引脚直接用电缆线相连。 RS2232 端口引脚说明见表1。

CAN总线自定义协议使用说明

CAN总线自定义协议使用说明 用C语言实现自己的协议 进入EV5000安装目录下builddriver目录(如图1),这个目录里面的fbserver.c文件即协议程序,用户不需要了解CAN口的细节编程,只需要按照该框架,用C语言来编写自己的协议即可。不可随意更改该文件中的函数名及头文件引用。 图1

CAN 自定义协议程序的流程图 接收线程流程 主程序流程 图2 需要用户实现的函数 void Init (CAN_PORT canport) 调用方式:仅在组态程序运行的时候执行一次 功能:用户程序的初始化 void main_process (CO_Data* d, UNS32 id) 调用方式:周期性执行,默认周期为10ms ,周期可以在void Init(CAN_PORT canport)中调用Set_Cycle 来设定,最小周期为10ms 功能:用户程序的“main 函数” void MsgDispatch (CO_Data* d, Message *m) 调用方式:每接收到一帧CAN 数据,就执行一次 功能:常用于对接收到的数据做解析,或者做出响应。与main_process 没有关联。

供用户调用的API_V0.1 除了C语言标准库中的API可以使用外,还提供以下AP I void Set_Cycle(ms) 功能:用于设定main_process的运行周期, 参数:ms的单位为毫秒, 非零 UNS8 Send_Msg(CAN_PORT port, Message *m,UNS8 bExtended) 功能:向CAN总线发送一帧CAN数据 参数:port指向已打开CAN口的句柄,m指向Message结构体的指针,bExtended为1时按扩展帧发送,为0时按标准帧发送 void Write_LW8K (UNS32 n,UNS16 val) 功能:将val 写入LW8000+n的寄存器 参数:n偏移量、最大999,val待写入的值 UNS16 Read_LW8K (UNS32 n) 功能:读取LW8000+n的寄存器的值 参数:n偏移量、最大999 void Set_Timer(TimerCallback_t callback,TIMEVAL value, TIMEVAL period) 功能:使用定时器,经过设定的时间后,调用callback函数 参数:callback回调函数指针,value单次定时时间,period周期定时时间 int CopyToLW(UNS32 addr,const void *src, size_t n) 功能:由src所指内存区域复制n个字节到LW +addr所在内存区域 参数:addr 为LW寄存器地址、最大8999;src待写入数据缓冲的指针;n写入的字节数 说明:src和LW8000+addr所在内存区域不能重叠 返回值:失败,返回‐1 成功,返回写入的字节数 int CopyFromLW(UNS32 addr,const void *src, size_t n) 功能:由LW8000+addr所在内存区域复制n个字节src所指内存区域 说明:addr 为LW寄存器地址、最大9999;src存储读取数据缓冲的指针;n读取的字节数 返回值:失败,返回‐1 成功,返回读取的字节数 早期的版本只能使用LW8000~8999这段寄存器,现在已取消该限制,CopyToLW,CopyFromLW 这个两个API的参数意义有所变化,现在CopyToLW,CopyFromLW的第一个参数表示LW的地址,而之前用0~999表示LW8999~LW8999。因此,之前的代码需要做小的改动,如: 老版本 CopyFromLW(100,readbuff, 8) 表示将从LW8100开始的8个字节读取到readbuff中

单片机通信协议处理解析

单片机通信协议处理 现在大部分的仪器设备都要求能过通过上位机软件来操作,这样方便调试,利于操作。其中就涉及到通信的过程。在实际制作的几个设备中,笔者总结出了通信程序的通用写法,包括上位机端和下位机端等 1. 自定义数据通信协议 这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我们通常所用到的 RS232、 RS485、红外、光纤、无线等等通信方式。在这个层面上,底层软件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。 通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的 TCPIP 协议一般,比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。 帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比较可靠。 地址信息主要用于多机通信中,通过地址信息的不同来识别不同的通信终端。在一对多的通信系统中,可以只包含目的地址信息。同时包含源地址和目的地址则适用于多对多的通信系统。

触摸屏自定义通讯协议

信捷触摸屏自定义通讯协议 操作手册 无锡信捷电气股份有限公司 资料编号HC083 20120924 2C6

目录 1 概述 (3) 2 协议设置 (4) 2-1 了解协议设备对象 (4) 2-2 注册及创建协议文件 (5) 2-3 编写协议文件 (7) 2-3-1 简介 (7) 2-3-2 在哪里编写协议代码 (7) 2-3-3 协议代码的结构 (8) 2-3-4 设置步骤 (8)

1 概述 ■什么叫自定义通讯协议? 自定义通讯协议的意思就是:借助触摸屏自定义协议方式,编写协议驱动文件,以实现与触摸屏软件中不支持设备的通讯。 ■为什么要使用自定义通讯协议? 通信协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。也就是说触摸屏与设备之间的沟通必须讲述相同的语言,才能互相传输信息。 在触摸屏编辑软件Touchwin里,已自带了市面上主流PLC,变频器和仪表等设备的通讯协议,用户只需要针对自己的设备在触摸屏里选择相应的协议即可实现通讯。 图示:设备列表 但是如果用户的设备不在通讯设备选择列表中,请先阅读该设备所支持的通讯协议,因为该设备的协议可能与设备列表中已存在的设备协议相同,例如被广泛使用的modbus协议。 如果确认在设备列表中没有支持该设备的协议,这种情况,就必须借助触摸屏自定义协议方式,编写协议驱动文件。

2 协议设置 2-1 了解协议设备对象 为了更好的理解自定义协议的制作过程,这里我们以仪表V900(注:V900是一个虚构的名称)的自由格式通讯协议的编写过程为例: 仔细阅读仪表V900的通讯协议,确定需要发送和接受的代码信息。根据用户的要求,需要在触摸屏上显示“当前重量”,“流量”显示和“目标量”。 V900的地址空间分布 当前重量H42 流量H43 目标量H44 V900 读寄存器通讯格式 发送信息站号读指令功能码 03 目标寄存器地址和校验 V900回复信息站号寄存器内容高字 节寄存器内容低字 节 和校验 V900的站号设置为1,波特率设为9600,偶校验,8位数据位,1位停止位。根据上表中V900的通讯格式,下面枚举了“发送数据帧内容”及“回应的格式”。 1、读当前重量:H01 H03 H42 sumcheck; 回复:01 (回复内容高字节)(回复内容低字节)sumcheck; 2、读流量:H01 H03 H43 sumcheck; 回复:01 (回复内容高字节)(回复内容低字节)sumcheck; 3、读目标量:H01 H03 H44 sumcheck; 回复:01 (回复内容高字节)(回复内容低字节)sumcheck;

STMZET6与S7-1200自定义通信协议实现串行通信

摘要:针对现有潜水器模拟装置数据采集和处理方法单一、故障率高、通讯系统复杂的不足。介绍了STM32单片机与西门子S7-1200系列PLC 实现远距离自定义通信协议的串行通信的硬件连接和软件实现方法;重点阐述了自定义通信协议的实现。该方案已实际应用于潜水器模拟控制平台项目中;实现了系统交互式通信。 关键词:PLC ,单片机,通信协议,串行通信 Abstract 押This paper introduces the hardware connection and software realization method of serial communication between STM32MCU and SIEMENS S7-1200series PLC.Focuses on the implementation of the custom communication protocol.This scheme has been applied to the submarine simulation control platform project.It realizes the system interactive communication. Keywords 押PLC熏MCU熏communication protocol熏serial communication 传统的潜水器模拟装置控制系统存在以下两个不足:一是数据采集和处理方式单一,故障率高;二是通讯系统逻辑层次凌乱,没有统一标准。能够解决上述问题意义重大。因此本文采用单片机和PLC 的相互配合,扩展控制功能,实现对系统的综合控制。下面以西门子PLC S7-1200系列与STM32单片机的通信为例,阐述自定义通信协议的实现方法。1硬件设计 1.1STM32单片机 ST 公司的STM32单片机的优异性体现在以下几个方面:价格低廉、外设较多、开发成本极低以及杰出的功耗控制等。STM32的串口资源相当丰富,功能也相当强大。本文所使用的STM32F103ZET6型号开发板最多可提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯等。采用串口2来实现串行通信所需的两条引脚是PA2和PA3,通过STM32的PG9控制MAX485E 的收发以及三极管的基极。当PG9=0时,为接收模式;当PG9=1时,为发送模式。1.2S7-1200系列PLC 西门子公司S7-1200系列PLC 通过增添通信模块CM1241(RS422/485)实现串行通信,本文采用RS-485接口标准,接收差模信号,可以组成半双工串行通信网络。S7-1200采用自由端口模式协议,协议通过在软件中配置消息接收的格式和编程实现。通过单片机与PLC 的配合实现自定义协议通信,在传送大量数据时是很方便的。1.3MAX485E 芯片 MAX485E 采用半双工通讯方式,它实现TTL 电平转换为RS-485电平的功能。MAX485E 芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO 和DI 端分别为接收器的输出和驱动器的输入端,与STM32的串口2的PA2和PA3相连即可;接收和发送的使能端分别为/RE 和DE 端,当/RE 为逻辑0时,MAX485E 处于接收状态;当DE 为逻辑1时,MAX485E 处于发送状态。因为MAX485工作在半双工状态,所以只需用STM32的PG9控制这两个引脚即可。同时需在A 和B 端之间加匹配电阻,一般可选120赘的电阻。1.4S9013三极管 S9013是一种NPN 型小功率三极管。S9013NPN 三极管主要用途:音频放大、推挽输出以及开关等。本文中采用单片机 来控制PLC ,但是单片机的管脚最大输出电压只有3.3V ,不足以控制PLC 的IO 口。采用图1的接法(共发射极)能够放大电压起到开关的作用从而控制PLC 的IO 口。 图1信号转换电路 2通信系统设计 为了提高通讯的实时性及可靠性,除了改变传输的波特率以外,还应尽量减小每个通信周期传送的数据量。制定用户通信协议的核心是合理安排数据结构,使频率变化高的数据在每个通信周期内都能及时传输,而频率变化低的数据只有在变化稳定后方可进行传输[1-3]。2.1通信协议设计 单片机使用串口2进行异步发送和接收,协议用C 语言编程实现。一次发送的一组数据作帧,每帧数据最多可由30个字符组成,考虑到传输数据量较大,本文一次传送16个字符,且采用多次传送方式。单片机发送的命令的具体格式如下:1)起始符占一个字符,设置为6A (可任意配置);2)标识符占一个字符,用于区分多组数据;3)数据占12个字符,存储需要发送的数据; 4)校验符占一个字符,校验发送的数据是否正确;5)结束符占一个字符,设置为1C (可任意配置)。 PLC 采用自由口通信模式,可以实现用户自定义通信协议。本文中PLC 接收消息开始字符设置成6A ,接收数据的长度为16个字符,消息结束字符为1C ,配置如图2、图3所示。这样配置刚好与单片机所发送的数据相对应。 STMZET6与S7-1200自定义通信协议实现串行通信 张 堃1牟少芳1刘晓杰2丁新平1张民1 (1青岛理工大学自动化工程学院,山东青岛266520;2中石油华北油田华港燃气集团有限公司,河北任丘062552) STMZET6and S7-1200Custom Communication Protocol to Achieve Serial Communication STMZET6与S7-1200自定义通信协议实现串行通信 104

自定义CAN通信协议

自定义CAN通信协议 一、资源节点分配。 1.I/O输入地址00H---1FH 2.I/O输出地址20H----3FH 3.模拟量输入地址40H---5FH 4.模拟量输出地址60H---7FH 5.设备标识地址80H----9FH 6.通信参数地址A0H----BFH 6.1. A0H 本机物理地址(生产者地址) 6.2. A1H 主机物理地址(消费者地址1默认第一个为主机地址0) 6.3 A2H 主机物理地址(消费者地址2) 6.4 A3H 主机物理地址(消费者地址3) 6.5 A4H 主机物理地址(消费者地址4) 6.6 A5H 主机物理地址(消费者地址5) 6.7 A6H 主机物理地址(消费者地址6) A7H 从机物理地址(服务者地址1) A8H 从机物理地址(服务者地址2) A9H 从机物理地址(服务者地址3) AAH 从机物理地址(服务者地址4) ABH 从机物理地址(服务者地址5) ACH 从机物理地址(服务者地址6) 6.8. ADH CAN波特率(1=10K,2=50K,3=100K,4=200K,5=500K) 6.9. AEH 用户设置波特率(1=10K,2=50K,3=100K,4=200K,5=500K) 6.10. AFH 从站循环发送时间单位为2ms 6.11 B0H 节点心跳时间单位5ms 6.12 B1H 节点发送数据方式(0主从方式。1循环发送。2主动发送。) 6.13 B2H 节点主动发送的资源节点起始地址 6.14 B3H 节点主动发送的数据量 6.15 B4H 本机为主机或者从机 7. 自定义地址区域C0H----FFH 二、29位标识符分配 1. 物理地址分配28—23位(源地址) 2. 目的地址分配22----17位 3. 功能码地址分配16——13位 4. 被操作的资源节点起始地址分配12---5位 5. 主动帧/应答帧分配4位 6. 保留位3----0位 三、数据域分配 第一个数据为分段码。(6---7位表示分段标识,0----5位表示分段计数器)

DHT11自定义总线通信协议实例详解(附详细示波器实测波形图)

DHT11详解 有的时候,外围器件与MCU之间的通信并不是常见通用的通信方式,而是厂家自定义的一种通信格式。所以,最重要的应该是掌握根据时序图编写驱动程序的能力,本文通过对一种利用厂家自定义的通信格式和MCU之间通信的详细讲解,以期让读者掌握这种能力。在本文就以DHT11数字温湿度传感器为例来讲解。 一、DHT11与MCU的通信协议 首先需要得到DHT11的Datasheet,然后根据Datasheet编写程序。DHT11的Datasheet前面部分是该传感器的介绍和一些接口及其相关性能参数的说明,这部分读者可以自己去看,我们关注的是改手册的第4部分:串行接口(单线双向)。接下来详细讲解这一部分。 DHT11的DATA引脚用于微处理器与DHT11之间的通讯和同步,采用单总线的数据格式,一次通信时间为4ms左右。先来看一下MCU发送开始信号和DHT11响应信号这部分的时序图: 图1 开始信号和响应信号时序图 从图1可以看出,总线空闲的时候为高电平(图1第1段的前面所示),MCU 把总线拉低至少18ms(图1第1段),然后拉高总线(图1第2段)等待DHT11响应。DHT11接收到MCU的开始信号后,等待MCU开始信号结束,然后发送80us 低电平响应信号(图1第3段),然后DHT11拉高总线80us(图1第4段)准备输出数据。图1第5段和图1第6段分别是数据1和数据0的格式。 根据图1编写的MCU开始信号如下: #define DHT_IO PORTA_PA0 void DHT11_init(void) { DHT_IO=1; DDRA_DDRA0=0xFF; //总线空闲高电平 DHT_IO = 0; //总线拉低 DDRA_DDRA0 = 0xFF; //设置为输出 Dlyms(18); //主机至少拉低18ms DHT_IO = 1; //释放总线 delay_us(19); //主机拉高20~40us DDRA_DDRA0 = 0x00; //设置为输入,等待DHT11响应 } 实测的MCU发出开始信号的波形如下:

tcp自定义协议

竭诚为您提供优质文档/双击可除 tcp自定义协议 篇一:tcp 实验报告 专业_姓名__学号_日期 1、实验目的: 1、掌握tcp协议的首部格式。 2、掌握tcp协议的序号确认机制。 3、掌握tcp协议的流量控制机制。 4、 学会协议分析软件发送自定义数据包的方法。 2、实验原理和内容 tcp协议是面向连接服务和提供可靠数据传输的协议,通过抓包分析tcp的如何建立连接,数据传输,释放连接来分析tcp协议。 tcp 协议是通过三次握手来建立连接,通过序列号和确认号来维护双方的通信,通过发送窗口的大小来控制流量。 通过多台电脑建立一台电脑的tcp连接,可以分析tcp 流量控制的实质

3、实验步骤 1、在pc机上运行wireshark抓包工具准备抓包; 2、在web浏览器上,输入网址(比如或者其他uRl)后回车,待页面打开完毕后停止抓包。 3、在filter中输入tcp进行过滤,则可以开始对tcp 进行分析 4、实验分析与思考 tcp报文段的首部格式 篇二:tcpip协议知识总结 /***********************0809tcp/ip知识总结 *********************************/ 1.osi开放系统互连模型(理想化的状态,在这个状态内给个层各司其职)总共有7层。应用层: Ftp,www,telnet,nFs,smtp,gateway,snmp 表示层:tiFF,giF,jpeg(编解码),pict,ascii,ebcdic, encryption,mpeg,midi,html 会话层: Rpc,sql,nFs,netbios,names,appletalk,asp,decnet,scp 传输层:tcp,udp,spx 网络层:ip(寻址方式),ipx(),appletalk(苹果自定义的协议)数据链路层:FrameRelay,hdlc,ppp(点对点),ieee 802.3/802.2,Fddi,atm,ieee802.5/802.2

相关主题