通信协议书应用举例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//信息头+ 控制卡地址+ 命令字+ 数据区长度+ 数据内容+ 校验码
说明:
1.信息头:
四个字节, 内容依次为: 0x51, 0x44, 0x45, 0x4C
2.控制卡地址:
单字节, 范围为1~255(0为广播地址)
3.命令字:
单字节
⑪发送设置屏参的命令字为0xD1
⑫发送设置扫描方式的命令字为0xD2
⑬发送设置硬件参数的命令字为0xD3
⑭发送回读硬件参数的命令字为0xD4
⑮发送节目数据的命令字为0xD5
⑯发送定时开关机的命令字为0xD6
⑰发送校准时间的命令字为0xD7
⑱发送显示屏当前节目内容回读的命令字为0xD8
⑲发送调节显示屏亮度的命令字为0xD9
⑳下位机回送接收状态的命令字为0xDD
⑴发送通信结束的命令字为0xFD
4.数据区长度:
双字节,表示本次发送的数据区长度,但是每次发送的信息内容的长度最大为512字,数据区长度未标明的其值为0
5.数据内容:
主要是上位机将要发给下位机的数据, 需要注意: 数据发送顺序必须严格按照数据协议的规则发送.
6.校验码:
双字节
“信息头+ 控制卡地址+ 命令字+ 信息内容长度+ 信息内容”中的所有数据的每个字依次异最终所得结果再与0x5555异或就是校验码
1. 网口通信采用以太网通信协议80
2.3
2. ARP和IP数据包格式
3. 传输协议采用UDP协议和ICMP协议
4. 网口通信数据区协议格式如下:
//信息头+ 控制卡地址+ 命令字+ 数据区长度+ 数据内容+ 校验码
说明:
(1) 信息头:
四个字节, 内容依次为: 0x51, 0x44, 0x45, 0x4C
(2)控制卡地址:
单字节, 范围为1~255(0为广播地址)
(3) 命令字:
单字节
①发送设置屏参的命令字为0xD1
②发送设置扫描方式的命令字为0xD2
③发送设置硬件参数的命令字为0xD3
④发送回读硬件参数的命令字为0xD4
⑤发送节目数据的命令字为0xD5
⑥发送定时开关机的命令字为0xD6
⑦发送校准时间的命令字为0xD7
⑧发送显示屏当前节目内容回读的命令字为0xD8
⑨发送调节显示屏亮度的命令字为0xD9
⑩下位机回送接收状态的命令字为0xDD
⑪发送通信结束的命令字为0xFD
(4)数据区长度:
双字节,表示本次发送的数据区长度,但是每次发送的信息内容的长度最大为512字,数据区长度未标明的其值为0
(5)数据内容:
主要是上位机将要发给下位机的数据, 需要注意: 数据发送顺序必须严格按照数据协议的规则发送.
(6)校验码:
双字节
“信息头+ 控制卡地址+ 命令字+ 信息内容长度+ 信息内容”中的所有数据的每个字依次异最终所得结果再与0x5555异或就是校验码
//------------------数据区协议--------------------- //-------------------------------------设置屏参-------------------------------------
typedef struct _ScreenPara //0xD1
{
unsigned char ucRGBData; //低四位表示数据(0正常,1反相)
//高四位表示显示颜色(0表示R+G或1表示G+R) unsigned short lHPixels; //横向点数(32-2048)
unsigned short lVPixels; //纵向点数(16-256)
}ScreenPara;
发送内容顺序: 数据类型(0xD1) + 结构体(ScreenPara)内容
//------------------------------设置扫描方式-----------------------------------
typedef struct _ScanMode //0xD2
{ unsigned char ucScanType; //扫描方式
//0静态扫描, 1两扫, 2四扫, 3八扫, 4十六扫unsigned char ucScanOutput; //扫描输出
//1每区1行, 2每区2行, 4每区4行,
//8每区8行, 16每区16行
unsigned char ucHeapRowCol; //最低六位打折列数, 4四列, 8八列, 16十六列
//bit6表示行顺序, bit7表示列顺序(0正常, 1反相) unsigned char ucScanRate; //扫描频率
}ScanMode;
发送内容顺序: 数据类型(0xD2) + ScanMode
//-------------------------------设置硬件参数-------------------------------------
typedef struct _HardwareSet //0xD3
{
unsigned char ucCardAdd; //控制卡地址(1~255)
unsigned long UartBaud; //串口波特率
unsigned short usPortID; //端口号(5000~6000)
unsigned short usIP[2]; //IP地址(先低字节,后高字节)
unsigned short SubnetMask[2]; //子网掩码
unsigned short GatewayIP[2]; //默认网关
}HardwareSet;
发送内容顺序: 数据类型(0xD3) + HardwareSet
//-------------------------------回读硬件参数---------------------------------
上位机:
注意:数据区为空(数据长度为0)
下位机应答:
typedef struct _HardwareSet //0xD4
{
unsigned char ucCardAdd; //控制卡地址(1~255)
unsigned long UartBaud; //串口波特率
unsigned short usPortID; //端口号(5000~6000)
unsigned short usIP[2]; //IP地址(先低字节,后高字节)
unsigned short SubnetMask[2]; //子网掩码
unsigned short GatewayIP[2]; //默认网关
}HardwareSet;
//---------------------------节目-----------------------------------------
typedef struct _TIME1302 //时间
{
unsigned char chSec; // seconds after the minute - [0,59]
unsigned char chMin; // minutes after the hour - [0,59]
unsigned char chHour; // hours after the midnight - [0,23]
unsigned char chDate; // day of the month - [1,31]
unsigned char chMon; // months since January - [0,11]
unsigned char chDay; // days since Sunday - [0,6]
unsigned short usYear; //4位年
}TIME1302;