4G路由器串口自定义协议配置使用示例(路由器串口配置命令)

2022-04-15 08:52:12

4G路由器串口自定义协议的目标在于减少客户的OEM定制,尽可能地满足不同客户对数据封包的不同需求。当前可支持用户灵活定制的消息结构字段有消息前缀、消息长度域、消息序列号、设备ID、业务数据域、CRC校验及消息后缀七个字段。

下面以4G路由器局域网测试为例,分别说明以上使用情况。

1. 4G路由器lan口地址为192.168.8.1,路由器下面网口连接的电脑地址为192.168.8.152,分别如下:

2. 4G路由器smartlink串口参数设置。

2.1设置“模式配置”及各参数定义说明如下(以tcp客户端工作模式为例)。

启用:开启串口应用。

名称:自定义设置一个名称,默认为空。

工作模式:选择串口工作模式,这里以TCP客户端为例。

服务器地址:填写远端数据接收中心的服务器ip地址和端口。

协议:选择“自定义”;

消息前缀: 可选,不支持前缀时值为空,即可!该值必须配置为十六进制串,支持 以0x开头或不以0x开头的十六进制。最大支持4个字节的前缀。

消息长度:可选,消息长度占用0字节时表示不带消息长度域。可支持1个或2个字节的 消息长度域!高字节在前。

消息长度的值包括:消息长度域、消息序列号、设备ID、业务数据和CRC校 验值五个字段的长度。

消息序列号:可选,序列号占用0字节时表示不带消息序列号域。可支持1个或2个字节 的消息序列号域!高字节在前。

设备ID:可选,为空时表示不带设备ID;默认为17位的产品序列号内容长度。

业务数据:必填,包括协议头尾在内,整个消息包的长度最大为65535。

对于心跳消息,该值为配置的心跳内容。

CRC校验:CRC校验值基于 消息长度、消息序列号、设备ID、业务数据 四个部分进行校验。

CRC校验算法为CRC8, CRC16_ARC, CRC16_BuyPass, CRC16_CCITT_False, CRC16_Genbus, CRC16_Kermit, CRC16_X25, CRC16_Modem。

消息后缀:与消息前缀相同,可选,不支持前缀时值为空,即可!该值必须配置为十六进 制串,支持以0x开头或不以0x开头的进十六进制。最大支持4个字节的前 缀。

设备模式:仅支持透传模式,完全透明传输。

启用心跳:串口是否支持心跳包上传功能,心跳包内容位ASCII格式。默认不开启,可根据具体情况设置。

2.2设置“串口配置”

串口com1的各波特率和奇偶校验位必须和用户串口设备完全一样,否则服务器端数据会接收不到或异常。

以上所有参数设置完,必须点击“保存及应用”按钮使参数生效。设备连接成功如图:

3. 4G路由器串口和电脑TCP/UDP工具进行局域网数据收发测试。

具体地,4G路由器串口端使用DB9母头(孔)接线端子,电脑端使用USB转DB9公头(针)连接线接好,然后电脑上分别打开sscom32串口助手和TCP/UDP测试工具进行数据收发测试。

3.1 设备端不带 消息前缀、后缀、无消息长度及消息序列号,数据收发测试如下:

注意:服务器端如果需要下发数据到4G路由器,则必须按照当前自定义格式下发,否则串口端无法正常解析数据。

示例:

设备ID:1120ZR21911306677(对应HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)

消息前缀HEX数据:空

消息长度:0字节

消息序列号:0字节

消息后缀HEX数据:空

串口发送HEX数据:11 22 33

则服务器端接收HEX数据为:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33

服务器下发HEX数据:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88

则串口侧接收HEX数据为:66 77 88

3.2 设备端带 消息前缀、后缀、无消息长度及消息序列号(均为0字节),数据收发测试 如下:

注意:服务器端如果需要下发数据到4G路由器,则必须按照当前自定义格式下发,否则串口端无法正常接解析数据。

示例:

设备ID:1120ZR21911306677(对应HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)

消息前缀HEX数据:7B7B

消息后缀HEX数据:7D7D

串口发送HEX数据:11 22 33

则服务器端接收HEX数据为:

7B 7B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

服务器下发HEX数据:

7B 7B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D

则串口侧接收HEX数据为:66 77 88

3.3 设备端带 消息前缀、后缀、无消息长度,有1或2个字节消息序列号,数据收发 测试分别如下:

注意:服务器端如果需要下发数据到4G路由器,则必须按照当前自定义格式下发,否则串口端无法正常接解析数据。

示例1:

设备ID:1120ZR21911306677

(对应HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)

消息前缀HEX数据:7B7B

消息后缀HEX数据:7D7D

消息序列号:1个字节,支持范围00-ff,即0-255个消息

串口发送HEX数据:11 22 33

则服务器端接收HEX数据依次为:

7B 7B 01 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 02 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 03 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

......

服务器下发HEX数据:

7B 7B 09 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D

则串口侧接收HEX数据为:66 77 88

示例2:

设备ID:1120ZR21911306677

(对应HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)

消息前缀HEX数据:7B7B

消息后缀HEX数据:7D7D

消息序列号:2个字节,高字节在前,支持范围0000 -ffff,即0-65355个消息

串口发送HEX数据:11 22 33

则服务器端接收HEX数据依次为:

......

7B 7B 00 0A 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 00 0B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 00 0C 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

......

服务器下发HEX数据:

7B 7B 00 09 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D

则串口侧接收HEX数据为:66 77 88

3.4设备端带 消息前缀、后缀,并且有消息长度及消息序列号(都以2个字节为例),数据收发测试如下:

示例:

设备ID:1120ZR21911306677(对应HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)

消息前缀HEX数据:7B7B

消息后缀HEX数据:7D7D

消息长度:2个字节,高字节在前,支持范围0000 -ffff,即0-65355个消息,长度范围 =消息长度自身(2B)+消息序列号(2B)+设备ID(17B)+数据内容(实际长度B)=21B+数据内容(实际长度B)

消息序列号:2个字节,高字节在前,支持范围0000 -ffff,即0-65355个消息

串口发送HEX数据:11 22 33

则服务器端接收HEX数据依次为:

7B 7B 00 18 00 00 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 00 18 00 01 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

7B 7B 00 18 00 02 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D

......

其中消息长度00 18为24个字节,即 消息总长度(24B)=消息长度自身(2B)+消息序列号(2B)+设备ID(17B)+数据内容(3B)

服务器下发HEX数据:

7B 7B 00 18 00 03 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D

则串口侧接收HEX数据为:66 77 88