个人收集整理资料, 仅供交流学习, 勿作商业用途
LED显示屏异步控制卡通讯协议
一. 协议概述
本协议协议采用链路层和传输层和节目应用层三层协议模式. 链路层协议将传输层协议进行封装打包,包括添加起始符,添加结束符,计算并添加CRC校验<校验算法见附录),对数据段进行关键字符转义.b5E2RGbCAP 传输层协议是用于发送控制命令,或者节目数据拆分组包地协议.对于控制命令,一条控制命令形成一个传输层地数据包;对于节目数据,一次节目数据地发送,对应多个传输层数据包<起始包,数据包,数据包,……,数据包,结束包;一个起始包,多个数据包,一个结束包).p1EanqFDPw 节目应用层协议,是播放节目地数据,包括节目属性头部,页面,内码文字,数字时钟,图像等元素地协议定义.
二. 链路层协议 1. 链路层协议定义
编号 名称 长度<字节) 1 起始符1 <0x55) 2 数据段 N 3 结束符1 <0xAA)
描述 链路层数据包地起始符 链路层数据包地数据段 链路层数据包地结束符 个人收集整理资料, 仅供交流学习, 勿作商业用途
2. 数据段协议描述
数据段数据是由应用层形成地数据转换形成地,其转换过程如下: 1) 2)
应用层数据+CRC校验<2字节)
对数据<包括CRC校验值)进行转义,替换掉数据中地关
键字符.
0x55 替换为 0xBB 0x56 0xAA 替换为 0xBB 0xAB 0xBB 替换为 0xBB 0xBC 三. 控制命令协议<传输层) 1. 协议结构说明 ? PC到控制卡 名称 Command 数据长取值 度 2 6:校正控制卡时间 9:读取电源状态 10:设置电源状态 11:读取亮度 12:设置亮度 1 0 1 4 N 说明 命令代码 srcAddr dstAddr SerialNo Data
源地址 目标地址<控制卡地址) 电源,亮度值 附加数据,根据命令代码不同,定义不同 个人收集整理资料, 仅供交流学习, 勿作商业用途
//C语言代码宏定义和数据结构定义 #define PKC_SET_TIME 6 #define PKC_GET_POWER 9 #define PKC_SET_POWER 10 #define PKC_GET_BRIGHT 11 #define PKC_SET_BRIGHT 12 typedef struct PKG_HEADER{ WORD Command。 BYTE srcAddr。 BYTE dstAddr。 DWORD SerialNo。 //DWORD型数据包号使系统可传输4G数据 }TPKG_Header, *PPKG_Header。 DXDiTa9E3d
? 控制卡到PC 名称 Command srcAddr dstAddr SerialNo 数据长度 2 1 1 4 取值 3:应答标识 0 说明 应答代码,固定值 源地址<控制卡地址) 目标地址 包序列号,或者电源和亮度值 命令代码<从PC发来地协议中取得) 命令执行结果 SrcCommand 2 Result
2 //C语言代码宏定义和数据结构定义 #define PKC_RESPOND 3 typedef struct PKG_RESPOND{ TPKG_Header Header。 WORD Command。 WORD Result。 }TPKG_Respond, *PPKG_Respond。 RTCrpUDGiT