当前位置:文档之家› RS232主从式通讯协议V2.0

RS232主从式通讯协议V2.0

RS232通讯协议(SG6电源第二版)V2.0

1 总线结构

A 接口方式双线RS 232

B 传输方式:

异步串行双线半双工,主从应答式。

2 协议说明

A 数据格式和波特率:9600bps,n,8,1。

波特率9600,1起始位,8数据位,1停止位,无奇偶校验

B 报文结构

同步字段命令标识数据长度数据段校验段

2字节1字节1字节N字节1字节

同步字段2字节(规定为0AAH,055H)

命令段1字节具体定义见“命令列表”

数据长度段1字节数据段的字节个数,最小值0最大值16。

数据段N字节,N在数据长度段指明。

校验和1字节,本报文内除本字节外,所有字节的累加和,大于255自动溢出,例如,080H+092H=0112H,校验和值为012H。

3 命令列表

具体含义见命令详细说明。

命令标识功能说明回应标识回应数据说明

081H 查询状态001H 模块状态

082H 设置参数002H 设参数应答

083H 查询参数003H 模块参数

084H 开关机004H 开关机应答(数据长度为0)085H 恢复出厂设置005H 恢复设置应答(数据长度为0)

4 命令详细说明

A (081H)查询状态(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4

0AAH 055H 081H 数据长度校验

B (001H)回复状态

Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10

0AAH 055H 001H 数据长度输出电压输出电流故障代码温度校验

C (082H)设置参数

Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10

0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16

保护值1 保护值2 CANOPEN波特率选择校验

D (002H)回复设置参数据包

Byet0 Byet1 Byet2 Byet3 Byet4 Byet5

0AAH 055H 002H 数据长度错误标识校验

E (083H)查询参数数据包(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4

0AAH 055H 083H 数据长度校验

F (003H)回复模块参数数据包

Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10

0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16

保护值1 保护值2 CANOPEN波特率选择校验

G (084H)开关机(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4 Byet4

0AAH 055H 084H 数据长度0开机1关机校验

F(004H)开关机应答(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4

0AAH 055H 04H 数据长度校验

G(085H)恢复出厂值(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4

0AAH 055H 085H 数据长度校验

H(005H)恢复出厂值应答(无数据段)

Byet0 Byet1 Byet2 Byet3 Byet4

0AAH 055H 005H 数据长度校验

5数据格式

1)输出电压、电流、充电机温度设置数据

电压双字节0.1A/bit 例如:十进制750(十六进制2EE)表示输出电

压为75V

输出电压范围为0—750(十进制),超过此范围,设置无效。

输出电压保护值1、保护值2的范围为0—800,超过此范围,设置无

效。

15 8 7 0

电压高字节电压低字节

电流双字节0.1V/bit 例如:十进制250(十六进制FA)输出电流为

25A

输出电流范围为0—250(十进制),超过此范围,设置无效。

15 8 7 0

电流高字节电流低字节

温度一字节1℃/bit 偏移量:-40 例如:十进制60(十六进制3C)实际温度为:60-40=20℃。温度的范围为:-40℃--210℃。超过此范围,应该认为是无效的数据。

2)故障代码(0—正常、1—故障)

Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7

输出电压高输出电

压低

输出电

流高

输出电流

过温关机交流异常关机

串口控制

开关机

遥控状态

(开机或

关机)

3)错误标识:(0—正常、1—故障)

Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7

电压设置错误电流设

置错误

地址设

置错误

保护值1

设置错误

保护值2设

置错误

CanOpen波特

率设置错误

保留保留

4)CANOpen波特率选择:

0—1mbps 1—500kbps 2—250kbps 3—125kbps

波特率选择超过此范围设置无效。

5)电源模块地址:

电源地址范围1--10,超过此范围设置无效。

6)电源出厂缺省设置值如下:

SMR地址:1

输出电压:75V

输出电流:25A

保护值1:80V

保护值2:80V

CAN通讯波特率:500Kbps

6其他说明

充电机与主控制器是主从关系,即主控制器为主,电源为从,只有当主控制器向充电机发送指令且数据的校验值正确时,充电机才向主控制器返回数据。在设置电源输出参数时,最好要连续发送2次设置命令,以确保设置值能够正确的写入单片机的EEPROM存储器中。EEPROM的写入寿命大约

为100万次。如果发送的设置数据与上次的设置数据不同,EEPROM将会执行一次写的操作,如果与上次设置的数据相同,将不会执行写操作,因此不要频繁改动设置数据,延长EEPROM的使用寿命。

CAN通讯协议(SG6电源第二版)V2.0 CAN通讯协议采用CAN2.0A的标准,将电源内部工作状态返回给上位机监控程序。具体内容如下:(多字节发送,高字节在低位,低字节在高位)

通讯波特率:1Mbps、500Kbps、250Kbps、125Kbps(4种任选其一)

帧ID(11bit) 更新时间数据段

0x180+地址100ms Byte0 工作状态(0—工作、1—停止)

Byte1 电源温度

Byte2 故障代码(低字节)(详见上面串口协议中定义的故障代码)

Byte3 故障代码(高字节)(详见上面串口协议中定义的故障代码)

Byte4 输出电流(高字节)

Byte5 输出电流(低字节)

Byte6 输出电压(高字节)

Byte7 输出电压(低字节)

0x280+地址1s Byte0 本机地址

Byte1 开关机设置(0—开机、1—关机)

Byte2 保留(0)

Byte3 保留(0)

Byte4 保留(0)

Byte5 保留(0)

Byte6 保留(0)

Byte7 保留(0)

0x380+地址1s Byte0 输出电压设定值(高字节)

Byte1 输出电压设定值(低字节)

Byte2 输出电流设定值(高字节)

Byte3 输出电流设定值(低字节)

Byte4 输出电压保护1设定值(高字节)

Byte5 输出电压保护1设定值(低字节)

Byte6 输出电压保护2设定值(高字节)

Byte7 输出电压保护2设定值(低字节)

基于单片机的串口通信模块设计

1 绪论 1.1 研究背景 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用围也将越来越广。本文所介

RS232主从式通讯协议V2.0

RS232通讯协议(SG6电源第二版)V2.0 1 总线结构 A 接口方式双线RS 232 B 传输方式: 异步串行双线半双工,主从应答式。 2 协议说明 A 数据格式和波特率:9600bps,n,8,1。 波特率9600,1起始位,8数据位,1停止位,无奇偶校验 B 报文结构 同步字段命令标识数据长度数据段校验段 2字节1字节1字节N字节1字节 同步字段2字节(规定为0AAH,055H) 命令段1字节具体定义见“命令列表” 数据长度段1字节数据段的字节个数,最小值0最大值16。 数据段N字节,N在数据长度段指明。 校验和1字节,本报文内除本字节外,所有字节的累加和,大于255自动溢出,例如,080H+092H=0112H,校验和值为012H。 3 命令列表 具体含义见命令详细说明。 命令标识功能说明回应标识回应数据说明 081H 查询状态001H 模块状态 082H 设置参数002H 设参数应答

083H 查询参数003H 模块参数 084H 开关机004H 开关机应答(数据长度为0)085H 恢复出厂设置005H 恢复设置应答(数据长度为0) 4 命令详细说明 A (081H)查询状态(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 0AAH 055H 081H 数据长度校验 B (001H)回复状态 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 001H 数据长度输出电压输出电流故障代码温度校验 C (082H)设置参数 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16 保护值1 保护值2 CANOPEN波特率选择校验 D (002H)回复设置参数据包 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 0AAH 055H 002H 数据长度错误标识校验 E (083H)查询参数数据包(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 0AAH 055H 083H 数据长度校验 F (003H)回复模块参数数据包 Byet0 Byet1 Byet2 Byet3 Byet4 Byet5 Byet6 Byet7 Byet8 Byet9 Byet10 0AAH 055H 082H 数据长度输出电压输出电流模块地址保护值1 Byet11 Byet12 Byet13 Byet14 Byet15 Byet16 保护值1 保护值2 CANOPEN波特率选择校验 G (084H)开关机(无数据段) Byet0 Byet1 Byet2 Byet3 Byet4 Byet4 0AAH 055H 084H 数据长度0开机1关机校验 F(004H)开关机应答(无数据段)

(合同制定方法)单片机与上位机通信协议的制定

(合同制定方法)单片机与上位机通信协议的制定

单片机和上位机通信协议的制定 单片机和上位机的串口通信协议分为上行协议和下行协议,要分别制定!上行协议,即由单片机向上位机发送数据。 下行协议,即由上位机向单片机发送数据。 而通信协议又要分固定长度和不定长度俩种 本文所介绍的协议属于简单的固定字长的通信协议! 下行协议由四个字节构成

上表是简单的上位机对单片机的控制指令 下述函数是C#中封装的串口通信类中的发送函数的封装publicvoidSerSendCommu(byteorderDef,bytedata)//参数1为命令字,参数二为要发送的数 //据,需要时可直接调用 { Byte[]BSendTemp=newByte[SEND_LENTH]; BSendTemp[0]=PRE; BSendTemp[1]=orderDef; BSendTemp[2]=data; BSendTemp[3]=END; this.serialPort1.Write(BSendTemp,0,SEND_LENTH); } 下位机中用中断方式接收字符,本文用的是GCC语言,下面是串口接收数据中断 ISR(USART_RXC_vect)//串口接收中断

{ unsignedcharstatus,data; status=UCSRA;//**首先读取UCSRA的值,再读取UDR值,顺序不能颠倒,否则读取UDR后的UCSRA的 //值即会改变** data=UDR; if(!Uart_RecvFlag)//判断缓存中的数据是否读完,读完则接收指令 { if((status&((1<

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

通讯方式和通讯协议介绍

目录 一、RS232的串口通讯 (2) 应用 (2) 工作方式 (2) 接口标准 (2) 电路组成 (3) 概述 (3) 简介 (3) 二、RS485串行通讯 (3) 简介 (3) 接口 (4) 电缆 (4) 布网 (5) 区别 (5) 三、串行通信 (6) 概念 (6) 分类 (7) 同步通信 (7) 异步通信 (7) 特点 (7) 形式和标准 (7) 调幅方式 (7) 调频方式 (8) 数字编码方式 (8) 数据传输率 (8) 发送时钟和接收时钟 (9) 异步通信协议 (9) 通信协议 (10) 普遍协议 (10) USB (11) IEEE 1394 (11) 相关应用 (12) 四、通讯协议 (12) 简介 (12) 详细介绍 (13) TCP/IP (13) IPX/SPX (13) NetBEUI (14) 通信协议 (14) RS-232-C (14) RS-449 (14) V.35 (15) X.21 (15) HDLC (15) 管理协议 (15) SNMP (15) PPP (16)

一、RS232的串口通讯 应用 随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU 之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU 与接口之间仍按并行方式工作. 工作方式 由于CPU 与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有" 接收移位寄存器" (串→并)和" 发送移位寄存器" (并→串). 在数据输入过程中,数据1 位1 位地从外设进入接口的" 接收移位寄存器",当" 接收移位寄存器" 中已接收完1 个字符的各位后,数据就从" 接收移位寄存器" 进入" 数据输入寄存器" . CPU 从" 数据输入寄存器" 中读取接收到的字符.(并行读取,即D7~D0 同时被读至累加器中). " 接收移位寄存器" 的移位速度由" 接收时钟" 确定. 在数据输出过程中,CPU 把要输出的字符(并行地)送入" 数据输出寄存器"," 数据输出寄存器" 的内容传输到" 发送移位寄存器",然后由" 发送移位寄存器" 移位,把数据1 位 1 位地送到外设. " 发送移位寄存器" 的移位速度由" 发送时钟" 确定. 接口中的" 控制寄存器" 用来容纳CPU 送给此接口的各种控制信息,这些控制信息决定接口的工作方式. " 状态寄存器" 的各位称为" 状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5 位为"1" 表示" 数据输出寄存器" 空,用D0 位表示" 数据输入寄存器满",用D2 位表示" 奇偶检验错" 等. 能够完成上述" 串<- -> 并" 转换功能的电路,通常称为" 通用异步收发器" (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550 接口标准 ⑴实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

上位机通讯协议

2006 12 28 V1.0.01 [ ] 1 2006 11 29 V1.0 MODBUS-RTU MODBUS 01 ON/OFF) 02 ON/OFF) 03 04 05 06 07 8 8 08 09 484 PC 10 484 9 c u-t r a c

11 12 ModBus 13 184/384 484 584 PC 14 184/384 484 584 13 15 16 17 18 884 MICRO 84 PC 19 20 584L 21 584L 22 64 65 c u-t r a c

xx6X x x x abcd a b c d Bit7-bit4 Bit3-bit0B 66 xx6x X x x x x x x c u-t r a c

xx6x x x x x x (x) 67 [ ] 68 xx6x x x x x x x x x xx6x x x x x x x x (x) 0 1= 2= 3= 4= 5= 6= 7= 69 xx6X0x c u-t r a c

xx6x x 70 xx6X x x x xx6x 71 xx x X x x xx x x x 100 72 c u-t r a c

xx x X x x x xx x x 73 [ ] [ ] 74 [ ] [ ] 75 [ ] [ ] 76 [ ] [ ] 77 [ ] [ ] 78 [ ] [ ] 79 [ ] [ ] 80 [ ] [ ] 81 [ ] [ ] 82 [ ] [ ] 83 [ ] [ ] 84 [ ] [ ] 85 [ ] [ ] 86 [ ] [ ] 87 [ ] [ ] 88 [ ] [ ] 89 [ ] [ ] 90 [ ] [ ] c u-t r a c

RS232通讯协议

RS232通讯协议 说明:下列表述中,H仅代表数据是十六进制和空格是分隔符。 波特率 9600 bit / s,8bit ,1位停止位,无校验位 格式 EBH,地址,命令,数据长度,数据1,...数据n,冗余 EBH:为帧起始位,以二进制表示为:1110 1011 地址:设备的通讯代号,出厂时已设定好,用户不能修改,同一型号的所有设备共用一个相同的地址。 命令:用十六进制数据代表的操作。 数据长度:发送或接收的信息字节数,它只包括数据1到数据n的个数。 冗余:用来判断发送或接收是否正确的信息,在发送时由发送端计算,在回送信息中由设备自动计算。计算方法为: 冗余 = 地址 + 命令 + 数据长度 + 数1 +…数N 如果冗余= EBH,则发送反码,即冗余= 14H;若冗余有进位,则将进位取消只取低八位即可。例: 冗余=2AH+01H+01H+F3H=11FH 则将进位取消即为冗余=1FH。 在随设备配套的测试程序(CTCOM)中,冗余是由测试程序自动计算出。 回送信息 当转换器接收命令正确但无此命令时,回送信息为: EBH, 地址,命令,01H,F1H,冗余。 当转换器接收命令正确但数据超界时,回送信息为: EBH,地址,命令,01H,F2H,冗余。且不执行命令。 当转换器接收命令正确但有按键时,回送信息为: EBH,地址,命令,01H,F3H,冗余。且不执行命令。 当转换器接收缓冲区数据溢出时,回送信息为: EBH, 地址,命令,01H,F4H,冗余。 当转换器接收命令的冗余不正确时,回送信息为: EBH, 地址,命令,01H,F5H,冗余。 当转换器接收命令正确但数据长度超过协议规定时,回送信息为:

基于单片机的双机通信

基于单片机的双机通信 [摘要]双机通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。本文详细介绍了关于基于单片机AT89C51实现的双机之间的通信的设计。软件部分采用C语言编程实现接收部分和发射部分的功能,用Protues进行仿真。软件设计完成后,将程序烧入单片机。通信的结果实用数码管进行显示,数码管采用查表方式显示。在通信过程中,使用通信协议进行通信。 [关键词]51单片机;串行通信;接口

Two-machine communication based on single chip [Abstract]Dual machine communication is an important application of single chip. This course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. This paper introduces the realization based on single-chip microcomputer AT89C51 about the dual machine for communication between the design. Software part adopts the C programming language realization receiving part and emission, part of the Protues function, through simulation. The software design is completed, the procedure spread microcontroller. Communication results and practical to display, digital digital tube pipe, adopting look-up table display. In communication process, USES communication protocol to communicate. [Key words]51 SCM; serial communication; Interface

上位机与下位机之间通信协议格式

一、通信协议 1、命令帧格式 帧头标志参数校验帧尾 命令字 01累加和 2030 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

2、信息帧格式 帧头标志参数校验帧尾 命令字 2030 02累加和 1Byte1Byte2Byte1Byte1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。

3、数据帧格式 (文件mokuaideng.txt (模块指示灯地址) 20 Byte ) 帧头标志校验帧尾203003累加和数据数据1Byte 16Byte 1Byte 1Byte 1Byte 标志:03 数据帧 文件mokuaideng.txt (模块指示灯地址) 20 Byte 04 数据帧 文件daotongbiao.txt (导通表) 40 Byte 05 数据帧 文件canshu.txt (控制参数) 6 Byte 06 数据帧 校验文件mokuaideng.txt (模块指示灯地址) 20 Byte 07 数据帧 校验文件daotongbiao.txt (导通表) 40 Byte 08 数据帧 校验文件canshu.txt (控制参数) 6 Byte 4、信息帧格式 定位物理针位 下位机-》上位机 上位机-》下位机 点亮指示灯 帧头标志参数校验帧尾203011累加和物理针位1Byte 1Byte 2Byte 1Byte 1Byte 说明:1、累加和校验:各字节累加和与100的模。 2、 10进制输入;16进制传输。 标志位 13 ,单点检测 判断单点导通关系是否真确 5、信息帧格式 下位机-》上位机 自检、线检测 帧头标志参数1校验帧尾203012累加和起始针位1Byte 1Byte 2Byte 1Byte 1Byte 参数2终点针位2Byte 参数3状态1Byte 状态:00 导通 01 断路 02 短路/错路

RS485主从式多机通讯协议

RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在对等类型网络上转输 在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。 在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 二、传输方式 控制器能设置传输模式为RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器的时候,在一个网络上的所有设备都必须选择相同的串口参数。 地址功能代码数据数量数据1 ...….数据n CRC字节 每个字节的位 · 1个起始位 · 8个数据位,最小的有效位先发送 · 1个停止位 错误检测域 · CRC(循环冗余码校验) 三、消息帧

RS232通讯协议要点

RS232通讯协议基本结构 波特率9600 bit/s,8bit,1位停止,无校验位 格式 0EBH,地址,命令,长度(n),数据1,---数据n,冗余 说明: 0EBH为帧起始位 长度小于输出端口数 冗余=地址+命令+长度+数1+---+数n 如果冗余=0EBH,为防止与帧起始位相同,则发送反码,即冗余=14H 当接收正确时, 1)在命令1,2,5,6时,回送0EBH,地址,命令,01H,0FAH,冗余,并执行命令。 2)在命令3,4,7时,回送相应信息。 当接收不正确时, 1)地址正确,冗余不正确,回送0EBH,地址,命令,01H,0F5H,冗余。2)地址不正确,不回送任何信息。 串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、 传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于 ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字 符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处 理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。

通信协议简介及区别(串行、并行、双工、RS232等)

基本的通讯方式有并行通讯和串行通讯两种。 并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。 并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。 串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。 串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。 异步通信:接收器和发送器有各自的时钟; 同步通信:发送器和接收器由同一个时钟源控制。 1、异步串行方式的特点 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为: ①以字符为单位传送信息。 ②相邻两字符间的间隔是任意长。 ③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。 ④异步方式特点简单的说就是:字符间异步,字符内部各位同步。 2、异步串行方式的数据格式 异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成: ①1位起始位,规定为低电0; ②5~8位数据位,即要传送的有效信息; ③1位奇偶校验位; ④1~2位停止位,规定为高电平1。 3、同步串行方式的特点 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。同步串行通信的特点可以概括为: ①以数据块为单位传送信息。 ②在一个数据块(信息帧)内,字符与字符间无间隔。 ③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。 4、同步串行方式的数据格式 同步串行通信的数据格式如图2所示,每个数据块(信息帧)由3个部分组成: ①2个同步字符作为一个数据块(信息帧)的起始标志; ②n个连续传送的数据 ③2个字节循环冗余校验码(CRC) 图1 异步串行数据格式图2 同步串行数据格式

基于51的MODBUS-RTU多机主从通信

基于51的MODBUS-RTU多机通信 实验环境:Proteus 编程语言:汇编 编程环境:KEIL 单片机: AT89C51,AT89C52 晶振:11.0592MHz 功能说明:本实验运用了MODBUS-RTU通信协议的功能码03多寄存器读和 功能码10多寄存器写,其中主机首先通过03功能码读取1号从机的时,分和秒的值,并将它们用液晶LCD显示器显示出来。然后利用10功能将读取的值送入2号从机,2号从机在接收到主机送来的数据后再将它们以与1号从机相同的方式显示出来。为1号从机设置了按钮,可调节它的时间,同是主机和2号从机也随之显示相同的时间。 图示:

部分程序源代码: 1、主机 ORG 000H LJMP MAIN ORG 000BH LJMP TMR0 ORG 0023H LJMP USART ORG 0040H MAIN: ACALL INIT HERE: CLR RS0 CLR RS1 JB FLAG2.7,TXWORK JB UFLAG.7,RXWORK; AJMP HERE TXWORK: AJMP TXWORK1 RXWORK: CLR UFLAG.7 ;**********接收完成,显示操作 JB UFLAG.3,RXWMB03 RXWMB10: JNB UFLAG.5,HERE AJMP RXMBW101 RXWMB03: CLR UFLAG.3

MOV R0,#HOUR1 MOV A,CND3 CLR C RRC A MOV R7,A MOV R1,#CND5 RWORK1: MOV A,@R1 MOV @R0,A INC R1 INC R1 INC R0 DJNZ R7,RWORK1 MOV DSPC,#8 TIMDIS: MOV A,DSPC MOV DPTR,#DISTB MOVC A,@A+DPTR MOV LCDD,A ACALL LCDWP MOV A,#HOUR1 ADD A,DSPC MOV R1,A MOV A,@R1

上位机与下位机通过蓝牙通讯协议

文档名称:蓝牙通信协议编制审定:解晓飞

目录 1 前言 (2) 2帧定义 (2) 2同步字 (2) 3帧类型 (3) 4通讯流程 (3) 4.1设置采集信息 (3) 4.2采集测试命令 (3) 4.3开始采集、结束采集 (4) 5通信原则 (4)

PDA与下位机蓝牙通讯协议 1 前言 本协议用于定义PDA通过蓝牙与下位机进行数据通信的底层操作。数据传输以信息帧格式传输,且帧长度为非定长信息。 2帧定义 系统中共有三种帧格式,根据类型的不同帧的格式也不同具体定义如下: 3.1、命令帧 3.2 回复帧 3、2数据帧 其中命令帧是由PDA发给单片机的,回复帧和数据帧是由单片机发给PDA 的。 2同步字 为保证数据正确传输,帧格式中设有起始同步字和结束同步字,起始同步字包括两个字节,内容为0xaa、0xaa,结束同步字包括两个字节,内容为0x55、0x55。

3帧类型 类型字包括一个字节,表示发送的数据的类型,本系统中包括三个类型:命令、回复、数据三类。具体定义如下: 4通讯流程 操作过程中PDA均采用主动模式,单片机采用被动模式。 4.1设置采集信息 单片机启动后等待接收蓝牙命令首先进行参数设置,本部分由PDA控制。 PDA发送设置命令(帧类型0x30)并将信息发送到单片机,单片机接收到数据后检测数据个数是否正确,如果检测正确返回接收正确命令否则返回接收错误命令。 如果单片机返回的数据为接收错误,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值,自动重新发送命令并等待,重复上述操作。 发送三次都没有返回值时弹出警告对话框,提示蓝牙通讯故障。 如发送数据正常则提示设置成功信息对话框。 4.2采集测试命令 1、PDA发送采集命令 PDA发送采集设置命令(帧类型0x30),单片机接收到数据后检测数据是否正确,如果检测错误则返回接收错误命令。PDA接收到单片机返回接收错误回复,PDA重新发送命令。 从数据发送时起PDA进行计数等待,等待500ms后没有接收到返回值(采集数据或错误回复值),自动重新发送命令并等待,重复上述操作。

MODBUSRTU通讯协议

MODBUS通讯协议使用手册

1. RTU方式通讯协议 1.1.硬件采用RS-485,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。 1.2.数据帧10位,1个起始位,8个数据位,1个停止位,无校验。 波特率:9600;19200 38400 1.3.功能码03H:读寄存器值 主机发送: 第1字节ADR :从机地址码(=001~254) 第2字节 03H :读寄存器值功能码 第3、4字节:要读的寄存器开始地址 要读FCC下挂仪表, 第5、6字节:要读的寄存器数量 第7、8字节:从字节1到6的CRC16校验和 从机回送:

第1字节 ADR : 从机地址码(=001~254) 第2字节 03H : 返回读功能码 第3字节 : 从4到M (包括4及M )的字节总数 第4到M 字节 : 寄存器数据 第 M +1、M+2字节 : 从字节1到M 的CRC16校验和 当从机接收错误时,从机回送: 第1字节 ADR : 从机地址码(=001~254) 第2字节 83H : 读寄存器值出错 第3字节 信息码 : 见信息码表 第4、5字节 : 从字节1到3的CRC16校验和 1.4. 功能码06H : 写单个寄存器值 主机发送:

当从机接收正确时,从机回送: 当从机接收错误时,从机回送: 第1字节ADR :从机地址码(=001~254) 第2字节86H :写寄存器值出错功能码 第3字节错误数息码:见信息码表 第4、5字节:从字节1到3的CRC16校验和

1.5.功能码10H:连续写多个寄存器值 当从机接收正确时,从机回送: 当从机接收错误时,从机回送:

RS485通信协议

串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。 本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。 传输协议 什么是RS-485?Profibus又是什么?与其它串行协议相比,它们的性能如何?适用于哪些应用?为了回答这些问题,我们对RS-485 物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较[1](本文中的RS表示ANSIEIA/TIA标准)。 RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的波特率,后来速率提高至1Mbps。RS-232的其它技术指标包括:标称±5V发送电平、±3V接收电平(间隔/符号)、2V共模抑制、2200pF最大电缆负载电容、300最大驱动器输出电阻、3k最小接收器(负载)阻抗、100英尺(典型值)最大电缆长度。RS-232只用于点对点通信系统,不能用于多点通信系统,所有RS-232系统都必须遵从这些限制。 RS-422是单向、全双工通信协议,适合嘈杂的工业环境。RS-422规范允许单个驱动器与多个接收器通信,数据信号采用差分传输方式,速率最高可达50Mbps。接收器共模范围为±7V,驱动器输出电阻最大值为100,接收器输入阻抗可低至4k。 RS-485标准 RS-485是双向、半双工通信协议,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。该规范满足所有RS-422的要求,而且比RS-422稳定性更强。具有更高的接收器输入阻抗和更宽的共模范围(-7V至+12V)。 接收器输入灵敏度为±200mV,这就意味着若要识别符号或间隔状态,接收端电压必须高于+200mV或低于-200mV。最小接收器输入阻抗为12k,驱动器输出电压为±1.5V(最小值)、±5V(最大值)。 驱动器能够驱动32个单位负载,即允许总线上并联32个12k的接收器。对于输入阻抗更高的接收器,一条总线上允许连接的单位负载数也较高。RS-485接收器可随意组合,连接至同一总线,但要保证这些电路的实际并联阻抗不高于32个单位负载(375)。 采用典型的24AWG双绞线时,驱动器负载阻抗的最大值为54,即32个单位负载并联2个120终端匹配电阻。RS-485已经成为POS、工业以及电信应用中的最佳选择。较宽的共模范围可实现长电缆、嘈杂环境(如工厂车间)下的数据传输。更高的接收器输入阻抗还允许总线上挂接更多器件。

RS485通讯协议

RS485 通讯协议 RS-232与RS-422之间转换原理和接法 通常我们对于视频服务器、录像机、切换台等直接播出、切换控制主要使用串口进行,主要使用到RS-232、RS-422与RS-485三种接口控制。下面就串口的接口标准以及使用和外部插件和电缆进行探讨。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。例如:视频服务器都带有多个RS422串行通讯接口,每个接口均可通过RS422通讯线由外部计算机控制实现记录与播放。视频服务器除提供各种控制硬件接口外,还提供协议接口,如RS422接口除支持RS422的Profile 协议外,还支持Louth、Odetics、BVW等通过RS422控制的协议。 RS-232、RS-422与RS-485都是串行数据接口标准,都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布。RS-422由RS-232发展而来,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和突保护特性,扩展了总线共模范围,后命名为TIA/EIA485-A标准。 1. RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。 2. RS-422与RS-485串行接口标准 (1)平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 (2)RS-422电气规定 由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为

单片机主从机通信

#include unsigned char led[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //用一维数组定义0-9、横杠 unsigned char a[8]; unsigned char second=0,minute=0,hour=0; unsigned char b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //扫描 unsigned char k=0; unsigned int temp; // 记录1000毫秒为1秒的变量 unsigned char M,S_flag; //M是模式,更新时间的4种模式加上正常模式S_flag闪烁标志sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; void delay(unsigned n) //0.2毫秒 { int x,y; for(x=0;x

几大通信协议区别

I2C和SPI,UART的区别 2009-12-07 21:55 SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS 公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。 能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。 最主要的优点是其简单性和有效性。它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):单端,远距离传输。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。----------------------------------------------------------------------------------------------------------------------------------- 区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

相关主题
文本预览
相关文档 最新文档