VisionShow版本LED显示屏异步控制卡通讯协议.docx
《VisionShow版本LED显示屏异步控制卡通讯协议.docx》由会员分享,可在线阅读,更多相关《VisionShow版本LED显示屏异步控制卡通讯协议.docx(22页珍藏版)》请在冰豆网上搜索。
![VisionShow版本LED显示屏异步控制卡通讯协议.docx](https://file1.bdocx.com/fileroot1/2022-12/10/7d409515-d594-4fb6-ba6b-a59567edd821/7d409515-d594-4fb6-ba6b-a59567edd8211.gif)
VisionShow版本LED显示屏异步控制卡通讯协议
VisionShow,版本LED显示屏,异步控制卡通讯协议
部门:
xxx
时间:
xxx
制作人:
xxx
整理范文,仅供参考,可下载自行修改
LED显示屏异步控制卡通讯协议
一.协议概述
本协议协议采用链路层和传输层和节目应用层三层协议模式.
链路层协议将传输层协议进行封装打包,包括添加起始符,添加结束符,计算并添加CRC校验<校验算法见附录),对数据段进行关键字符转义.b5E2RGbCAP
传输层协议是用于发送控制命令,或者节目数据拆分组包地协议.对于控制命令,一条控制命令形成一个传输层地数据包;对于节目数据,一次节目数据地发送,对应多个传输层数据包<起始包,数据包,数据包,……,数据包,结束包;一个起始包,多个数据包,一个结束包).p1EanqFDPw
节目应用层协议,是播放节目地数据,包括节目属性头部,页面,内码文字,数字时钟,图像等元素地协议定义.
二.链路层协议
1.链路层协议定义
编号
名称
长度<字节)
描述
1
起始符<0x55)
1
链路层数据包地起始符
2
数据段
N
链路层数据包地数据段
3
结束符<0xAA)
1
链路层数据包地结束符
2.数据段协议描述
数据段数据是由应用层形成地数据转换形成地,其转换过程如下:
1)应用层数据+CRC校验<2字节)
2)对数据<包括CRC校验值)进行转义,替换掉数据中地关键字符.
0x55替换为0xBB0x56
0xAA替换为0xBB0xAB
0xBB替换为0xBB0xBC
三.控制命令协议<传输层)
1.协议结构说明
ØPC到控制卡
名称
数据长度
取值
说明
Command
2
6:
校正控制卡时间
9:
读取电源状态
10:
设置电源状态
11:
读取亮度
12:
设置亮度
命令代码
srcAddr
1
0
源地址
dstAddr
1
目标地址<控制卡地址)
SerialNo
4
电源,亮度值
Data
N
附加数据,根据命令代码不同,定义不同
DXDiTa9E3d
Ø控制卡到PC
名称
数据长度
取值
说明
Command
2
3:
应答标识
应答代码,固定值
srcAddr
1
源地址<控制卡地址)
dstAddr
1
0
目标地址
SerialNo
4
包序列号,或者电源和亮度值
SrcCommand
2
命令代码<从PC发来地协议中取得)
Result
2
命令执行结果
RTCrpUDGiT
2.校正控制卡时间
ØPC到控制卡
工程成员
取值
说明
Command
6
SerialNo
0
Data
要校正地时间值
采用如下时间值结构
typedefstructSYSTEMTIME{
WORDyear。
WORDmonth。
WORDweek。
WORDday。
WORDhour。
WORDminute。
WORDsecond。
WORDmsecond。
}TSystemTime,*PSystemTime。
Ø控制卡到PC
工程成员
取值
说明
Command
6
SerialNo
0
SrcCommand
6
Result
1
3.读取电源状态
ØPC到控制卡
工程成员
取值
说明
Command
9
SerialNo
0
Data
无
没有附加数据
Ø控制卡到PC
工程成员
取值
说明
Command
3
SerialNo
=0电源关闭
=1电源开启
返回地电源状态
SrcCommand
9
Result
1
4.设置电源状态
ØPC到控制卡
工程成员
取值
说明
Command
10
SerialNo
=0电源关闭
=1电源开启
要设置地电源状态
Data
无
没有附加数据
Ø控制卡到PC
工程成员
取值
说明
Command
3
SerialNo
=0电源关闭
=1电源开启
返回地电源状态
SrcCommand
10
Result
1
5.读取亮度
ØPC到控制卡
工程成员
取值
说明
Command
11
SerialNo
0
Data
无
没有附加数据
Ø控制卡到PC
工程成员
取值
说明
Command
3
SerialNo
0到7
返回地亮度值
SrcCommand
11
Result
1
6.设置亮度
ØPC到控制卡
工程成员
取值
说明
Command
12
SerialNo
0到7
要设置地亮度值
Data
无
没有附加数据
Ø控制卡到PC
工程成员
取值
说明
Command
3
SerialNo
0到7
返回地亮度值
SrcCommand
12
Result
1
四.节目数据拆分组包协议<传输层)
1.拆分组包
发送节目数据时,节目数据要按照每包512字节地长度进行拆分组包发送.
例如节目数据长度为1200字节时,则会拆成3包,分别为512字节,512字节,176字节.那么,实际发送过程为5PCzVD7HxA
jLBHrnAILg
2.协议结构说明
组包协议与命令协议结构一样,只是命令代码不同.
ØPC到控制卡
名称
数据长度
取值
说明
Command
2
0:
起始包
1:
结束包
2:
数据包
命令代码
srcAddr
1
0
源地址
dstAddr
1
目标地址<控制卡地址)
SerialNo
4
从0开始编号
起始包=0
第1个数据包=1
第2个数据包=2
…
第n个数据包=n<最后一个)
结束包=n+1
包序列号
Data
N
节目数据
起始包和结束包时,该段不填
xHAQX74J0X
Ø控制卡到PC
名称
数据长度
取值
说明
Command
2
3:
应答标识
应答代码,固定值
srcAddr
1
源地址<控制卡地址)
dstAddr
1
0
目标地址
SerialNo
4
包序列号<从PC发来地协议中取得)
SrcCommand
2
命令代码<从PC发来地协议中取得)
Result
2
1:
包正确<可以发送下一个包)
0:
数据错误<需要重新发送该包)
命令执行结果
LDAYtRyKfE
五.节目数据协议说明<节目应用层)
1.协议概述
播放节目地数据,包括节目数据头部,页面,内码文字,数字时钟,图像等元素地协议定义.
节目属性头部:
Root
页面:
Leaf
显示对象<文字、日期时间、图像等):
Object
Zzz6ZB2Ltk
2.节目数据头部
名称
数据长度
说明
id
2
节目代码17:
发送节目18:
下载节目
Count
2
页面数量
Size
4
数据长度,TRoot长度+所有子页面长度
Type
2
节目类型1:
单路数据2:
RG双路数据
Reserved
2
保留
dvzfvkwMI1
3.页面
名称
数据长度
说明
id
2
页面代码0x30
Count
2
对象数量
Time
4
页面显示时间
Elapse
4
置0
Size
4
数据长度,TLeaf长度+所有子对象长度
rqyn14ZNXI
4.内码文字对象
名称
数据长度
说明
Object头部
id
2
对象代码=0x33
Transparent
2
是否透明置1
Size
4
数据长度,TObject长度+所有子数据长度
Left
2
显示区域左坐标
Top-
2
显示区域上坐标
Right
2
显示区域右坐标
Bottom
2
显示区域下坐标
Method
2
显示方式
Speed
2
显示速度置1
Param
8
置0
Color
4
红色:
0xFF;绿色:
0xFF00;黄色:
0xFFFF
FontSet
4
字体=0:
16点阵宋体;=1:
24点阵宋体
Str
N
文字字符串,必须以0为结尾,长度为4地倍数
例如:
要显示“ABCDE”,那么此处Str地字节数为8,分别为:
‘A’,‘B’,‘C’,‘D’,‘E’,‘\0’,‘\0’,‘\0’
EmxvxOtOco
5.图像对象
名称
数据长度
说明
TObject头部
id
2
对象代码=0x31
Transparent
2
是否透明置1
Size
4
数据长度,TObject长度+所有子数据长度
Left
2
显示区域左坐标
Top-
2
显示区域上坐标
Right
2
显示区域右坐标
Bottom
2
显示区域下坐标
Method
2
显示方式
Speed
2
显示速度置1
Param
8
置0
TPixels点阵头部
Id
2
0x36
Width
2
图像宽度
Height
2
图像高度
Bits
2
对单色屏,置1;对双色屏,置4
Size
4
数据长度,TPixels长度+点阵数据长度
Data
N
点阵数据,如何定义下面有说明
SixE2yXPq5
Data地定义说明:
对于RG双路数据地显示屏,每个像素点占用2个Bit.图像数据采用列为主地方式,点阵数据是一列一列存储地,每列地数据占用地字节数必须为4地倍数,不足地用0补齐.6ewMyirQFL
例如,一个16宽*12高地图片,共有16列数据,每列数据有12个点;因为每个字节有4个像素,所以12点要3个字节,加上补4字节对齐地一个字节,每列占用4字节;整个图像占用4*16=64字节.kavU42VRUs
数据使用DWORD类型来存储,下面是一列数据地例子
以图像左上角为起始点<0,0)
31
30
29
28
27
26
25
24
(0,0>-R
(0,0>-G
(0,1>-R
(0,1>-G
(0,2>-R
(0,2>-G
(0,3>-R
(0,3>-G
23
22
21
20
19
18
17
16
(0,4>-R
(0,4>-G
(0,5>-R
(0,5>-G
(0,6>-R
(0,6>-G
(0,7>-R
(0,7>-G
15
14
13
12
11
10
9
8
(0,8>-R
(0,8>-G
(0,9>-R
(0,9>-G
(0,10>-R
(0,10>-G
(0,11>-R
(0,11>-G
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
6.日期时间对象
名称
数据长度
说明
Object头部
id
2
页面代码=0x32
Transparent
2
是否透明置1
Size
4
数据长度,TObject长度+所有子数据长度
Left
2
显示区域左坐标
Top-
2
显示区域上坐标
Right
2
显示区域右坐标
Bottom
2
显示区域下坐标
Offset
4
置0
Format0
1
格式
Index0
1
点阵编号
Format1
1
格式
Index1
1
点阵编号
Format2
1
格式
Index2
1
点阵编号
Format3
1
格式
Index3
1
点阵编号
Format4
1
格式
Index4
1
点阵编号
Format5
1
格式
Index5
1
点阵编号
Format6
1
格式
Index6
1
点阵编号
Format7
1
格式
Index7
1
点阵编号
Format8
1
格式
Index8
1
点阵编号
Format9
1
格式
Index9
1
点阵编号
Format10
1
格式
Index10
1
点阵编号
Format11
1
格式
Index11
1
点阵编号
Format12
1
格式
Index12
1
点阵编号
Format13
1
格式
Index13
1
点阵编号
Format14
1
格式
Index14
1
点阵编号
Format15
1
格式
Index15
1
点阵编号
TPixelSet点阵组头部
Id
2
点阵组标识代码=0x37
Count
2
点阵组中地点阵数量
Size
4
数据长度,TPixelSet长度+所有子数据长度
点阵0
TPixels点阵头部
Id
2
0x36
Width
2
图像宽度
Height
2
图像高度
Bits
2
对单色屏,置1;对双色屏,置4
Size
4
数据长度,TPixels长度+点阵数据长度
Data
N
点阵数据,如何定义下面有说明
点阵1
TPixels点阵头部
Id
2
0x36
Width
2
图像宽度
Height
2
图像高度
Bits
2
对单色屏,置1;对双色屏,置4
Size
4
数据长度,TPixels长度+点阵数据长度
Data
N
点阵数据,如何定义下面有说明
点阵2
TPixels点阵头部
Id
2
0x36
Width
2
图像宽度
Height
2
图像高度
Bits
2
对单色屏,置1;对双色屏,置4
Size
4
数据长度,TPixels长度+点阵数据长度
Data
N
点阵数据,如何定义下面有说明
…
…
…
…
0YujCfmUCw
Format和Index是成对地,Format表示要显示地内容类型,Index表示对应后面点阵组中地索引号.eUts8ZQVRd
Format地取值为1到8,分别对应1年2月3日4星期5时6分7秒8固定字.
当Format=1<2,3,5,6,7)时,如果Index=0,表示显示地是年<月日时分秒)地十位;Index=1,表示显示地是年<月日时分秒)地个位.此时,点阵组中,第0到9个点阵应该是数字’0’到’9’地点阵.sQsAEJkW5T
当Format=8时,Index表示点阵组中地索引号.
当Format=4是,表示要显示星期,此时Index必须设为0x7F,并且点阵0到点阵6分别对应’日’、’一’、’二’、’三’、’四’、’五’、’六’地文字.GMsIasNXkA
举例:
年月日地显示,例如显示“2018年05月31日”:
【点阵组】为'0','1','2','3','4','5','6','7','8','9','年','月','日'TIrRGchYzg
Format0=8,Index0=2,表示20XX年地2字
Format1=8,Index1=0,表示20XX年地0字
Format2=1,Index2=0,表示2018年地1字<十位)
Format3=1,Index3=1,表示2018年地2字<个位)
Format4=8,Index4=10,表示汉字‘年’字,‘年’在点阵组中位于第10个
Format5=2,Index5=0,表示05月地0字<十位)
Format6=2,Index6=1,表示05月地5字<个位)
Format7=8,Index7=11,表示汉字‘月’字,‘月’在点阵组中位于第11个
Format8=3,Index8=0,表示31日地3字<十位)
Format9=3,Index9=1,表示31日地1字<个位)
Format10=8,Index10=12,表示汉字‘日’字,‘日’在点阵组中位于第12个
时分秒地显示,例如显示“09:
35:
28”:
【点阵组】为'0','1','2','3','4','5','6','7','8','9',':
'
Format0=5,Index0=0,表示09地0字<十位)
Format1=5,Index1=1,表示09地9字<个位)
Format2=8,Index2=10,表示‘:
’,在点阵组中位于第10个
Format3=6,Index3=0,表示35地3字<十位)
Format4=6,Index4=1,表示35地5字<个位)
Format5=8,Index5=10,表示‘:
’,在点阵组中位于第10个
Format6=7,Index6=0,表示28地2字<十位)
Format7=7,Index7=1,表示28地8字<个位)