显示语音控制卡(横屏、小竖屏)串口协议
默认波特率:9600 N 1
注意事项:
1、每个包的数据字节之间间隔不得大于 10ms
2、单个数据包的最大长度 255 字节
3、下载固定显示内容指令、参数配置和修改指令,这两类指令发送完后间隔 50ms 以上,再发下一条指令,否则可能出现数据丢失,或者死机。而且该类指令不能由软件自动发送,否则会造成硬件永久性损坏。其他指令没有要求。
协议解析:
上位机下发单包数据格式
| 字段 | 包头 | 流水号 | 地址 | 保留 | 命令值 | 长度 | 数据 | 校验 | 结束符 |
| 长度 | 2 | 1 | 1 | 1 | 1 | 2 | N | 2 | 1 |
包头:固定为:0xAA,0X55
流水号:上位机确定的业务流水号,下位机返回应答时,流水号原数返回,可全为 0
地址:下位机 485 地址,出厂默认 100 = 0X64
保留:保留
命令:CMD 参考命令集
长度:2 字节,指定数据内容的长度,高字节在前,低字节在后,比如 255 个字节的长度应表述为 0x00 0xff
数据内容:N 个字节
校验:CRC16,2 字节,具体算法请参考附件结束:固定 0xAF
| 命令 | 释义 | 备注 |
| 0x01 | 查询版本 | |
| 0x10 | 设置日期时间 | |
| 0x12 | 红绿灯控制 1 | 不带延时管理 |
| 0x13 | 红绿灯控制 2 | 带延时管理 |
| 0x21 | 取消临显指令 | |
| 0x22 | 播报语音 1 | 立即播报 |
| 0x25 | 加载广告指令 | 下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发 |
| 0x27 | 加载临显指令 | 常用 |
| 0x28 | 加载二维码指令 | |
| 0x29 | 加载临显指令 2 | 不常用,可同时加载 4 行,组包复杂,容易出错,不推荐使用 |
| 0x32 | 缓存语音指令 | |
| 0x56 | 勿扰模式设置 | 下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发 |
| 0xF0 | 设置音量 | |
| 0XF1 | 设置速度 | |
| 0XF2 | 加密解密 | |
| 0XF3 | 修改地址 1 | |
| 0XF4 | 修改地址 2 |
| 0XF5 | 调整极性 | |
| 0XF6 | 时间显示方式 | |
| 0XF7 | 设置单双色模式 | |
| 0XF8 | 设置波特率 | |
| 其他 | 保留 |
命令详解:
1、查询命令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x01 | 0 | 无 |
说明:该命令查询版本信息等内容。该指令有强制返回数据,可作为心跳包。
2、设置时间
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x10 | 0x06 | 年(后两位)、月、日、时、分、秒 |
说明:内容的值,采用 16 进制格式
3、红绿灯(继电器)控制 1
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x12 | 0x01 | 0 或者 1 |
说明:0 表示松开继电器,1 表示吸合继电器,一般 0 为红灯,1 为绿灯
4、红绿灯(继电器)控制 2
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x13 | 0x01 | 1~255 |
说明:内容参数表示吸合继电器的时长,时间到了,自动松开继电器 单位 秒
5、取消临显(即时显示)内容命令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x21 | 0x01 | data |
说明:data 数据按位操作,bit7…bit0
Bit0 = 1,表示取消第一行临显,恢复到广告内容 Bit1 = 1,表示取消第二行临显,恢复到广告内容 Bit2 = 1,表示取消第三行临显,恢复到广告内容 Bit3 = 1,表示取消第四行临显,恢复到广告内容其他位数保留
6、语音播放指令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0x22 | 1~100 | N 个 data |
说明:data 内容 表示约定的语音内容,具体请参考语音目录。该指令下发,直接中断原有语音,立即播报最新内容。
为此,新加一条 0X32 指令,可以缓存语音内容,缓存区域 100 条语音,超过后,按先进先出原则覆盖。0X32 指令和 0X22 格式一模一样。0x32 指令对万能语音不生效。
7、加载广告内容指令
| 字段 | 命令值 | 长度 | 内容 | |||
| 值 | 0x25 | 3~63 | 控制字 1 | 控制字 2 | 控制字 3 | 内容(0~60 字节) |
说明:该指令用于加载广告内容,下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发。
控制字 1:定义加载内容的行号,有效值 1-4,其他值无效,行号示意如下图示
控制字 2:定义加载内容的显示颜色,有效期 1-3,1=红色,2=绿色,3=黄色,其他值默认为 1。
控制字 3:保留
8、下发临显内容指令
| 字段 | 命令值 | 长度 | 内容 | ||||
| 值 | 0x27 | 4~63 | 控制字 1 | 控制字 2 | 控制字 3 | 控制字 4 | 内容(0~60 字节) |
说明:该指令用于下发临显内容
控制字 1:定义下发内容显示的行号,行号只能是 1~4,其他参数无效
控制字 2:定义该临显内容显示的时长,单位 秒,该参数为 0 时,表示长期显示,掉电或者收到“取消临显指令”才恢复广告内容。
控制字 3:定义临显的显示颜色,1-3 有效,1=红色,2=绿色,3=黄色,其他默认为 1
控制字 4:保留。 9、二维码显示指令
| 字段 | 命令值 | 长度 | 内容 | |||
| 值 | 0x28 | 4~199 | 控制字 1 | 控制字 2 | 控制字 3 | 内容 |
说明:该指令用于显示二维码
控制字 1:二维码显示模式,有效值 0-2,=0 时表示二维码显示为两行居中模式,1=二维码显示为两行居左模式带 4 个汉字(8 个字节),=2 时,表示二维码显示为三行模式,两行模式下,二维码图象的最大容纳字符为 49 字节,三行模式下最大容纳字符为 180 字节。
控制字 2:表示二维码显示的时长,单位 秒,=0 时,长期显示。二维码对应的行可以被“取消临显指令取消”。
控制字 3:表示二维码本身的颜色 = 1 时红色,=2 时绿色,=3 时黄色,其他无效
内容:当控制字 1 = 1 时,内容最后面的 8 个字节是不参与图象绘制的,所以在下发内容的时候,一定要注意加上 8 个字节的内容,不足的用 0x20 补齐。
注意:二维码显示后,建议把显示屏安装在铁箱里面,透过黑色的玻璃去测试扫码效果。
10、加载临显指令 2
| 字段 | 命令值 | 长度 | 内容 | ||||||||||
| 值 | 0x29 | 12~244 | A1 | A2 | A3 | A4 | B1 | … | C4 | D1 | D2 | D3 | D4 |
说明:该指令用于 4 行临显同时下发
A 字段用于第一行控制
A1 = 第一行的时长,A2=第一行的颜色,A3=第一行的数据(A4 部分)长度,A4=第一行显示的内容,如果 A3=0,则 A4 不占用字节。
B\C\D 字段用于第二行、第三行、第四行控制。方式同第一行。单行数据内容(比如 A4 部分),不能超过 60 字节。
整包数据长度(含头 AA55 和尾 AF),不能超过 255 字节。
11、设置勿扰音量
| 字段 | 命令值 | 长度 | 内容 | |||||
| 值 | 0x56 | 6 | A | B | C | D | E | F |
说明:该指令可以设置每天不同时段(2 个时段)的音量。下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发。该指令对带有万能语音模块的不生效。
A = 0,取消勿扰模式,=1,生效勿扰模式,其他值无效
B = 0~9,勿扰时段的音量,大于 9 的值都写入为 9,0 为静音。
C = 起始的小时数,十六进制,0X16 = 22 点
D = 起始的分钟数,十六进制,0x30 = 48 分
E = 结束的小时数,十六进制,0X16 = 22 点
F = 结束的分钟数,十六进制,0x30 = 48 分
超过正常的值,比如小时数大于 0x17,或者分钟数大于 0x3B,会导致不可预测的错误。
12、设置音量指令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF0 | 0x01 | 0-9 |
说明:内容 0-9,0 表示静音,9=最大音量。下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发。
13、加解密指令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF2 | 0x04 | Data1,data2,data3,data4 |
说明:前两字节为原始密码 data1 data2 高字节在前后两字节为新密码 Data3 data4 高字节在前
加密成功后,加密指示灯亮,新密码为 0000,表示解密
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发。
14、超级修改地址指令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF3 | 0x01 | 新的地址 0-255 |
说明:该命令不需要验证原地址,第一行产生提示 10 秒,原临时信息被清除
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发。
15、修改地址指令
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF4 | 0x01 | 新的地址 0-255 |
说明:该命令需要验证原地址,第一行产生提示 10 秒,原临时信息被清除
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发
16、修改显示屏驱动极性
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF5 | 0x01 | 0=驱动恒流屏,1=驱动恒压屏,其他值无效 |
说明:该设置可以通过按键修改。
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发
17、修改时间显示位置及颜色
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF6 | 0x03 | Data1,data2,data3 |
说明:data1:表示时间显示的行号,行号为 0 不显示时间
Data2,表示时间显示的颜色,1=红色,2=绿色,3=黄色,其他默认为红色。 Data3:保留
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发
18、修改显示屏颜色
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF7 | 0x01 | 1=单色模式,1=双色模式,其他值无效 |
说明:该设置可以通过按键修改。上红下绿模组需要配置成单色模式
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发
19、修改控制卡波特率
| 字段 | 命令值 | 长度 | 内容 |
| 值 | 0xF8 | 0x01 | 0~7 |
说明:0 = 4800,1 = 9600(默认),2=14400,3=19200,4=38400,5=56000,6=56700,7=115200
下发该指令后,需间隔 50ms,发下一条指令。该指令一定要做成手动触发
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「BLOG.SDLINKA.COM」发布的内容若侵犯到您的权益,请联系站长进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。




暂无评论内容