康海时代 NC600 IO-Server 串口控制指令的数据格式 康海时代 NC600 IO-Server提供了能够设置IO-Server 的串口参数和串口状态的协议。程序编写者可依据相关的数据格式编写TCP socket 程序,实现对IO-Server串口的控制。产品提供了两套指令,一套是以RFC2217为基础的标准指令集,另外一套是由产品提供的指令集。 两套指令的命令字都是 0XFF,编写程序时请依照下列注意事项 1.命令和数据使用同一个SOCKET
2.命令以0xFF开头, 如果从网口向串口发送一个0xFF,实际要发送两个0xFF
3.串口到网口的数据中的0xff转换为连续的两个0xff
一 RFC2217指令集
安徽p2p需要把IO-Server的 [模式] 设置为 TCP/UDP SOCKET
在 [详细参数] 中, 把 [数据] 设置为 telnet
串口参数配置指令 ( 0xff 0xfa 0x2C 开头, 0xff 0xf0 结束)
主机发送到IO-Server,设置IO-Server的串口参数
FF FA 2C 参数类型设置串口参数FF F0
IO-Server返回到主机,确认串口参数设置成功
FF FA 2C 参数类型确认串口参数FF F0
其中“参数类型设置”和“参数类型确认”的含义,见下表
串口参数 参数类型设置
(主机到IO-SERVER)
参数类型确认 (IO-Server到主机)
签名 (signature) 00 64
波特率 (set-baudrate) 01 65
数据位 (set-datasize) 02 66
校验位 (set-parity) 03 67
停止位(set-stopsize) 04 68
流控和握手信号(set-control) 05 69
串口运行状态变化通知(notify-linestate) 6A
MODEM状态变化通知(notify-linestate) 6B
串口运行状态掩码(set-linestate-mask) 0A 6E
MODEM状态掩码(set-modemstate-mask) 0B 6F
清除缓冲区数据(purge-data) 0C 70
讨论:
签名 (signature)
主机与IO-Server交换识别标志,即:通过主机发送指令获得IO-Server 名称和端口名称.
格式 iac sb com-port-option signature <text> iac se
客户与IO-Server之间互相交换识别标志的命令如果没有 <text>选项,它是发送者要
求接收端提供识别标志的命令。<text>可以包含任何字符。 <text>选项没有固定的格式。它
可以包含制造商信息,版本号信息,或任何另外的信息。如果有iac 字符在<text>出现,必须转
换成iac-iac以避免命令终止。
例如: 主机发送到IO-Server FF FA 2C 00 FF F0
IO-Server返回到主机 FF FA 2C 64 4E 43 36 30 30 20 2C 70 6F 72 74 20 31 2E FF F0
NC600 , port 1.
波特率 (set-baudrate)
是由客户端发送给IO-Server请求设置串口波特率的命令
格式 iac sb com-port-option set-baud <value(4)> iac se
<value>是4个八位二进制数 (4字节)。value是将要设置的波特率,一种特殊情形value
为0。如果value是零,则客户查询IO-Server串口当前的波特率。
例如: 主机发送到IO-Server FF FA 2C 01 00 00 4B 00 FF F0 /* 设置IO-Server串口波特率19200 */
波特率19200
IO-Server返回到主机 FF FA 2C 65 00 00 4B 00 FF F0德沃金
/
* IO-Server通知主机:波特率19200设置成功 */
数据位 (set-datasize)
是由客户端发送给IO-Server请求设置串口数据位的命令
格式 iac sb com-port-option set-datasize <value> iac se
<value>是1个八位二进制数(1字节)。value是将要设置的数据位。5、6、7和8分别表示 5位、6位、7位和8位。0表示:客户查询IO-Server当前的数据位。
例如:主机发送到IO-Server FF FA 2C 02 07 FF F0 /* 设置IO-Server 数据位为 7 */
数据位:7
IO-Server返回到主机 FF FA 2C 66 07 FF F0
/* IO-Server通知主机:数据位7 设置成功 */
校验位 (set-parity)
是由客户端发送给IO-Server请求设置串口数据位的命令
格式 iac sb com-port-option set-parity <value> iac se
<value>是1个八位二进制数(1字节)。value是将要设置何种校验位。Value值的涵义见下表
value 0 1 2 3 4 5
校验位类型查询当前值 无校验 奇校验 偶校验 标记校验 空格校验
例如: 主机发送到IO-Server FF FA 2C 03 02 FF F0 /* 设置IO-Server 校验为 奇校验 */
奇校验
IO-Server返回到主机 FF FA 2C 67 02 FF F0
/* IO-Server通知主机:奇校验 设置成功 */
停止位(set-stopsize)
是由客户端发送给IO-Server请求设置串口停止位的命令
格式 iac sb com-port-option set-stopsize <value> iac se
<value>是1个八位二进制数(1字节)。value是将要设置的停止位。Value值的涵义见下表
value 0 1 2 3
停止位查询当前值 1停止位2停止位 1.5停止位
例如: 主机发送到IO-Server FF FA 2C 04 02 FF F0 /* 设置IO-Server 停止位为2 */
2停止位
IO-Server返回到主机 FF FA 2C 68 02 FF F0
/* IO-Server通知主机:2停止位 设置成功 */
串口控制(set-control)
是由客户端发送给IO-Server请求设置串口控制的命令。包括:流量控制, 改变DTR和RTS状态等 格式 iac sb com-port-option set-control <value> iac se
<value>是1个八位二进制数(1字节)。value是将要设置的流量控制类型。Value值的涵义见下表
乳酸左氧氟沙星value 0 1 2 3
流量控制 查询当前流量控制(输出)无(输出)Xon/Xoff(输出) RTS/CTS(输出)
value 4 5 6
BREAK 查询BREAK 发送 BREAK 清除 BREAK
value 7 8 9
DTR状态 查询DTR当前状态 DTR置高DTR置低
value A B C
RTS状态 查询RTS当前状态 RTS置高RTS置低
value D E F 10
流量控制 查询当前流量控制(输入) 无(输入)Xon/Xoff(输入)RTS/CTS(输入)
例如:主机发送到IO-Server FF FA 2C 05 02 FF F0 /* 设置IO-Server 串口流量控制为:Xon/Xoff */
Xon/Xoff
IO-Server返回到主机 FF FA 2C 69 02 FF F0
/* IO-Server通知主机:Xon/Xoff 流控<;输入> 设置成功 */
串口状态报告(NOTIFY-LINESTATE)
是由客户端发送给IO-Server请求,查询串口状态变化的命令。包括:超时错误,校验错误等。
滴水穿石的启示教学设计格式 iac sb com-port-option NOTIFY-LINESTATE <value> iac se
比特位 值 含义
7 80 超时错误
6 40 传送移位寄存器为空
5 20 传送保持寄存器为空
4 10 中断检测错误
3 8 帧错误
2 4 奇偶校验错误
1 2 超载错误
0 1 数据就绪
例如:主机发送到IO-Server FF FA 2C 06 04 FF F0 /* 请求IO-Server在奇偶校验错误时,发送报告 */
MODEM状态报告(NOTIFY-MODEMSTATE)
是由客户端发送给IO-Server请求,查询MODEM状态的命令。包括:DCD,DSR,CTS等状态的变化
格式 iac sb com-port-option NOTIFY-MODEMSTATE <value> iac se
移位寄存器及其应用比特位 值 含义
7 80 接收线性信号检测(即载波检测)
6 40 来访指示(敲门)
5 20 data-set-ready 信号状态
4 10 clear-to-send 信号状态
3 8 delta接收线性信号检测
查尔斯 泰勒
2 4 trailing-edge ring 检测器
1 2 delta data-set-ready
0 1 delta clear-to-send
例如:主机发送到IO-Server FF FA 2C 07 20 FF F0 /* 请求IO-Server在对应串口的DSR状态发生变化时,发送报告 */
流量控制
iac sb com-port-option flowcontrol-suspend iac se