基本功能描述:
控制器或计算机通过RS232接口发出指令,包括查询指令,切换指令,锁定解锁指令等等,矩阵的控制板在收到这些指令之后,将这些数据通过485总线转发给对应的视音频切换板〔或其他电路板〕,并将结果回传给发出指令的控制器或计算机。控制器或计算机发出切换指令之后,还要自动发出查询指令,以检验指令的执行情况是否正确。
通讯协议
字符定义:SOH: ASCII码“01”,起始标志字符
EOT: ASCII码“04”结束标志字符 ACK: ASCII码“06”正确应答字符 NAK: ASCII码“0x15”错误应答字符
‘N’代表矩阵所有层,’V’代表视频,’A’代表音频左声道,’B’代表音频右声道。 默认速率为 9600,N,8,1
控制器(计算机)与控制板通讯协议
1:查询指令
SOH ‘RD’ ‘N’〔V,A〕‘0’ ‘0’ CHECK-SUM EOT 这里,‘RD’为查询指令的关键字,‘RD’后面的’N’代表查询矩阵所有层,该字符可能的替换字符为’V’或’A’,其中,’V’表示视频,’A’表示音频,如果是’V’则表示只查询视频,’A’表示只查询音频。‘0’ ‘0’代表输出口第一路,如果是第二路则为‘0’ ‘1’, ‘0’ ‘A’是16进制的10代表第11路,‘0’ ‘F’代表第16路,依此类推。CHECK_SUM为校验和,关于校验和的算法见后面。 ――应答指令如下:
SOH ‘DR’ ‘U’〔L〕 ‘V’ ‘0’ ‘0’ ‘A’ ‘0’ ‘0’ ‘B’ ‘0’ ‘0’ CHECK-SUM EOT ‘DR’表示对 ‘RD’指令的应答,’U’表示该路未被锁定可以进行操作,’L’表示被锁定,不能进行切换。’V’代表视频, ‘A’代表音频,‘B’代表音频右声道,下同。’V’后面的’0’ ‘0’ 表示被查询输出口的视频输入路数为第一路,同样,音频的左右声道输入都是第一路,如果是第二路则为 ‘0’ ‘1’,下同。
如果出现错误,例如,视频板没有应答,则结果如下:
SOH ‘DR’ ‘U’〔L〕 ‘V’ ‘T’ ‘O’ ‘A’ ‘0’ ‘0’ ‘B’ ‘0’ ‘0’ CHECK-SUM EOT
‘T’ ‘O’ 是TIME OVER即超时的意思,表示在规定的时间内没有收到应答信号,或者是板子不存在,或者是板子故障。如果音频板故障,则应答 ‘A’ ‘T’ ‘O’。
2:切换指令
SOH ‘WR’ ‘N’〔V,A〕‘x’ ‘0’ ‘0’ ‘y’ ‘0’ ‘0’ CHECK-SUM EOT
这里,‘WR’为切换指令的关键字,’x’表示目的数,’y’表示源数,’x’ ‘0’ ‘0’ ‘y’ ‘0’ ‘0’表示把输入1切换至输出1,’x’ ‘0’ ‘F’ ‘y’ ‘0’ ‘F’表示把输入16切换至输出16。一次最多只能发送2组切换数据,不可超过此!
1
――应答指令如下:
ACK :数据正确接收。
NAK ‘1’ :数据接收校验错误。
NAK ‘2’ :数据接收错误,无起始位。
NAK ‘3’ :数据接收错误,无结束位或数据超长,超过128字节。
3:锁定和解锁指令
SOH ‘LK’ ‘N’〔V,A〕 ‘0’ ‘0’ CHECK-SUM EOT :锁定 SOH ‘UK’ ‘N’〔V,A〕 ‘0’ ‘0’ CHECK-SUM EOT :解锁
该命令对某个输出口进行锁定或解锁,控制板在收到该命令后,就在相应的路数上作个标记,表示该路数暂时不能被切换,即使其他控制器或计算机发出切换指令也不能执行,直到收到解锁命令为止。
――应答指令如下:
ACK :数据正确接收。
NAK ‘1’ :数据接收校验错误。
NAK ‘2’ :数据接收错误,无起始位。
NAK ‘3’ :数据接收错误,无结束位或数据超长,超过128字节。
4:其他指令: 待定。
附录 CHECKSUM 的计算
下面以具体的例子来说明CHECKSUM的计算方法,以及一些常见命令:
RD:查询输出端口(DESTINATION)状态
格式:SOH ‘RD’ ‘V’ ‘0’ ‘1’ CHECK-SUM EOT 以查询视频层输出口2为例:
计算时要从后面的数开始,到之前两个字节为止,对所有的数进行异或运算。Checksum=“R” XOR “D” XOR “V” XOR “0” XOR “1” = 0x41 〔16进制〕
起始位 命令 输出数 校验字节 Dest_Number R D V 0 1 4 1 0x01 0x52 0x44 0x56 0x30 0x31 0x34 0x31 层 结束位 0x04 上面表中第3行为上述字符对应的16进制数,实际发送时要将计算机通讯端口设置为ASCII码(TEXT文本)方式。
2
WR:将输出端口3切换到输入端口4:(模拟视音频同时切换)
格式:SOH ‘WR’ ‘N’ ‘x’‘0’ ‘2’ ‘y’‘0’ ‘3’ CHECK-SUM EOT
Checksum=“W” XOR “R” XOR “N” XOR “x” XOR “0” XOR
“2” XOR “y” XOR “0” XOR “3”
= 0x4B 〔16进制〕
起始 SOH 命令 W R 层 N x 输出数 0 2 Y 输入数 0 3 校验字节 4 B 结束 EOT 0x01 0x57 0x52 0x4E 0x78 0x30 0x32 0x79 0x30 0x33 0x34 0x42 0x04
WR:将输出端口11切换到输入端口16:(模拟视音频同时切换)
格式:SOH ‘WR’ ‘N’ ‘x’‘0’ ‘A’ ‘y’‘0’ ‘F’ CHECK-SUM EOT
Checksum=“W” XOR “R” XOR “N” XOR “x” XOR “0” XOR
“A” XOR “y” XOR “0” XOR “F”
= 0x4D 〔16进制〕
起始 SOH 命令 W R 层 N x 输出数 0 A y 输入数 0 F 校验字节 4 D 结束 EOT 0x01 0x57 0x52 0x4E 0x78 0x30 0x41 0x79 0x30 0x46 0x34 0x44 0x04 注意:当路数大于9路时,采用16进制表示,如实际路数为11路时,软件中对应的数字为0A路;实际路数为16路时,软件中对应的数字为0F
WR:将输出端口11切换到输入端口16(只切换模拟视频层V):
格式:SOH ‘WR’ ‘V’ ‘x’‘0’ ‘A’ ‘y’‘0’ ‘F’ CHECK-SUM EOT
Checksum=“W” XOR “R” XOR “V” XOR “x” XOR “0” XOR
“A” XOR “y” XOR “0” XOR “F”
= 0x55 〔16进制〕
起始 SOH 命令 W R 层 N x 输出数 0 A y 输入数 0 F 校验字节 5 5 结束 EOT 0x01 0x57 0x52 0x4E 0x78 0x30 0x41 0x79 0x30 0x46 0x35 0x35 0x04
3
WR:将输出端口11切换到输入端口16(切换数字层D)为例:
格式:SOH ‘WR’ ‘D’ ‘x’‘0’ ‘A’ ‘y’‘0’ ‘F’ CHECK-SUM EOT Checksum=“W” XOR “R” XOR “D” XOR “x” XOR “0” XOR
“A” XOR “y” XOR “0” XOR “F”
= 0x47 〔16进制〕
起始 SOH 命令 W R 层 N x 输出数 0 A y 输入数 0 F 校验字节 4 7 结束 EOT 0x01 0x57 0x52 0x4E 0x78 0x30 0x41 0x79 0x30 0x46 0x34 0x37 0x04
RD:查询数字视频输出1口对应的输入路数
起始位 命令 输出数 校验字节 Dest_Number R D D 0 0 5 2 0x01 0x52 0x44 0x44 0x30 0x30 0x35 0x32 WR:切换数字矩阵输入1至输出1起始 SOH 命令 W R 层 D x 输出数 0 0 y 输入数 0 0 层 结束位 0x04 校验字节 4 0 结束 EOT 0x01 0x57 0x52 0x44 0x78 0x30 0x30 0x79 0x30 0x30 0x34 0x30 0x044