工业遥控系统RF通信协议
1
范围
本协议约定工业遥控系统RF通信协议,本协议适用于工业遥控系统的射频数据通信。
2 规范性引用文件
无。 3 术语与定义
本标准术语定义引用:无。
4 网络物理描述
本标准物理层描述引用:无。
5 符号缩写的含义 表 1 符号缩写
符号 2-FSK AFC BER CRC ESR FIFO GFSK LBT LO MCU PA PD PQT RF RX SNR TBD VCO XOSC 含义 2进制频率转换按键 自动频率补偿 位误差率 循环冗余检查 等价串联阻抗 先进先出堆栈 高斯整形频率转换键控 发送之前侦测 局部振荡器 微控制器单元 功率放大器 功率降低 前导质量门限 电磁波频率 接收,接收模式 信噪比 待定义 电压控制振荡器 石英晶体振荡器 符号 ADC AGC CCA EIRP FEC FSK IF LNA LQI MSK PCB PQI RCOSC RSSI SAW SPI TX WOR XTAL 含义 模数转换器 自动增益控制 清理信道评估 等价等方性的辐射功率 前向误差校正 频移键控 中间频率 低噪声放大器 链接质量指示器 最小化转换按键 印制电路板 前导质量指示器 RC振荡器 接收信号长度指示器 接口水波 连续外围接口 发送,发送模式 电磁波激活,低功率拉电路 石英晶体 第 1 页 共 10 页
6 物理层
由于通信接口芯片采用TI公司的数字调制解调电路CC1100,调制方式为2-FSK,数据速率为38400 bps。物理层的帧格式依据CC1100的技术特点而设计。
6.1 CC1100物理层基本帧结构
图 1 基本帧结构
设计采用固定长度的报文,长度为21字节。并由CC1100硬件实现用户数据的循环码校验(CRC16)、交织编码(INTERLEAVING)、前向纠错(FEC)、数据白化(WHITENING),并在白化数据发送前插入前导码(我们编程为4字节),同步码结构(我们编程为4字节)。
软件通过编程CC1100控制寄存器,实现功能配置。
表 2 CC1100调制码参数配置
项目 内容 前导码 长度(字节) 4 数据 同步码 4 白化数据(CC1100生成) M 7 链路层
7.1 通信匹配地址
本系统采用点对点通信方式,只有通信地址匹配的报文才得到处理,通信地址不匹配的报文被丢弃,以确保系统的稳健可靠。对于港口起重等需要双遥控器情况,通过功能码扩展主、从遥控器。系统采用16位二进制匹配地址码,理论上支持65535套遥控系统。
7.2 通信连接
通信状态维护采用连接方式,除了信道管理相关的数据包外,其他遥控命令数据包的发送前均应检查无线信道连接状态,只有在连接正常的情况下,才启动数据包发送。
数据包发送时间分析:4+4+(21+2)*2=54字节,54*8/38.400=11.25ms。 再考虑通信的收发转换、频率校准、接收机的数据处理周期等开销,一问一答的开销约25ms。考虑到系统容余等因素,通信周期可设计为30ms。
7.2.1 信道连接的建立
遥控器开机后处在接收状态,进行信道统计。信道统计的方法为按信道表依次轮询,读取信道的RSSI值,统计出每个信道上的最大RSSI、最小RSSI,计算出每个信道的RSSI平均值。每个信道的统计时间为T3(信道统计时间)。为确保该信道不被同类设备占用,T3必须大于心跳包发送周期T2。从统计的信道中选取最好的信道进行连接。信道选取过程为:
第 2 页 共 10 页
1, 最大RSSI与平均RSSI差值不超过10dBm,且平均RSSI小于-70dBm的信道作为可用信道;
统计出可用信道的平均RSSI值作为噪声参考值; 2, 在可用信道中选取平均RSSI值最小的信道进行连接; 3, 若没有可用信道,则选取所有信道中平均RSSI值最小的信道进行连接,所有信道的平均RSSI
值作为噪声参考值。
信道选取完成后,固定在此信道,转换成发送模式,开始发送连接请求,等待T4(等待应答超时),若收到应答数据包,建立连接,开始发送命令。若超时没有收到数据包,则重新发送连接请求。数据包发送采用CSMA/CA机制。若等待信道clear时间超过T7(CCA等待超时),不使用CSMA/CA机制,强行发送。最长发送周期T9= T7+T1+ T4。
接收机开机后处于接收状态,按信道表进行周期性查询。接收机信道查询时间T5>3个最长发送周期T9。也就是,接收机轮询到遥控器所在的频率后,最多有3次接收连接请求的机会。若接收到地址码匹配的数据包,建立连接,发送连接应答数据包。连接过程如图2。
若遥控器在一个信道上等待的时间T10(信道等待时间)超过1个接收机轮询周期T6,更换信道,在新的信道上等待接收机。
各段时间表如表二。 表 3 各段时间表 1个数据包发送时间T1 心跳包周期T2 信道统计时间T3 等待应答超时T4 接收机信道查询时间T5 接收机轮询周期T6 CCA等待超时T7 接收机超时等待时间T8 最长发送周期T9 信道等待时间T10
11.25 ms 200 ms 210 ms 20 ms 230 ms 230 ms *总信道数16=3680 40 530 ms 71.25 ms 3700 ms 图 2 连接请求命令与应答
7.2.2 信道连接的维护
考虑到无线信道的特点,要求遥控器、接收机分别设置连接状态寄存器及连接超时寄存器,并按如下状态转移模式进行连接维护。
连接成功后,遥控器开始发送命令数据包,若命令发出后经过等待应答超时T4没收到应答,则重发命令。重发命令模式与重发连接运行模式类似。若一个命令数据包重复发送3次后仍没收到应答包,则认为连接丢失,更换信道,在新的信道等待接收机。接收机若超时没收到遥控器的命令数据包,则认为连接丢失,继续按信道表查询。超时等待时间T8>4*最长发送周期T9。信道维护流程图如图4。
第 3 页 共 10 页
遥控器端连接成功接收机端连接成功超时计时器复位超时计时器复位等待遥控超时发心跳包连接丢失应答失败(重发3次)遥控命令超时等待命令成功其他命令应答用户遥控应答成功连接丢失超时计数器复位
图 3 连接后的信道维护
7.2.3 跳频
若遥控器在一个信道上的等待时间超过T10未收到应答,或者连接上后重发次数已满还未收到应答,此时需要进行跳频。
跳频的过程为: 1,
再次统计当前信道的RSSI,若RSSI满足可用信道条件,且平均RSSI小于RSSI参考值,则继续停留在该信道发送连接报文,等待接收机
2,
如果当前信道不满足可用信道条件,则依次跳到下一个信道进行统计。直到找到一个满足条件的信道。
3,
若没有满足条件的信道,则使用所有信道中平均RSSI值最小的信道进行通信
7.3 数据发送模式
数据的发送采用CSMA/CS机制和应答机制。 1, CSMA/CS机制
考虑到在系统附近范围内可能存在多个同类系统,并且与这些系统存在使用相同信道的可能,有必要采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)机制来防止冲突发生和解决冲突问题。
在802.11(主要应用于无线局域网)和802.15.4(主要应用于Zigbee)中,都采取了CSMA/CA机制。这种机制在一些点到点的无线通信中也比较常见。其过程是:
(1)数据发送就绪时,先检查信道是否被占用。
(2)如果信道被占用,则等到介质空闲后,再随机退避一段时间,重复(1)过程。 (3)发送数据。
第 4 页 共 10 页
(4)等待接收者应答。如果等待应答超时,则重复(1)过程。如果成功接收到应答,则此次发送过程成功结束。
下面这个图示用来说明两个遥控系统如何避让:
发送准备,等待CCA,随机延时发送到接收转换/3.4ms有命令输入,发送准备发送数据过程/12.5ms等待接收机应答等待输入命令等待CCA10ms随机延时等待CCA10ms随机延时等待CCA10ms随机延时发送数据过程/12.5ms接收数据发送应答/12.5接收到发送转换+发送准备载波监听发送过程接收过程
认为信道clear的条件有两个
1, 相对差值。当前采集的RSSI值比上一次采集的RSSI值小10dBm。 2, 绝对值。当前采集的RSSI值小于-70dBm。
为了防止无限制等待,当等待CCA时间超过了CCA等待超时T7,将强制发送。
2, 应答机制
遥控器端发送的任何消息都要求接收机立即应答。如果超时未收到接收机的应答,则重发报文。重发次数为3次。只有遥控器端发送使用CSMA/CA机制,接收机应答不使用CSMA/CA机制。
下图表示通信3种情况。
第 5 页 共 10 页
遥控器端接收机端T2-T1 = 11.25msT3-T2< 5msT6-T5 = 11.25ms 总开销=27.25ms无错误通信过程发送报文T1T2接收到报文T3T4发送应答接收到应答,通信成功错误模式1接收机接收到错误请求数据包情况发送报文T1T2接收到错误包T4T5接收到报文发送应答等待应答超时,T3重发报文T2-T1 = 11.25msT3-T2= 20msT4-T3 = 11.25msT5-T4 < 5msT6-T5 = 11.25ms 总开销=58.75ms接收到应答,通信成功T6错误模式2遥控器接收到错误应答情况等待应答超时,T1重发报文T2接收到报文T3发送连接应答,连接成功T4错误数据应答包等待应答超时,T5重发报文T6T7T8接收到应答,通信成功T2-T1 = 11.25msT3-T2 < 5msT4-T3 = 11.25msT5-T2= 20msT6-T5 = 11.25msT7-T6 < 5msT8-T7 = 11.25ms 总开销=58.75ms接收到报文发送应答
7.4 通信包结构
设备链路层实现数据包封装与数据发送,我们定义CC1100进行CRC16计算前的数据为链路层数据,链路数据由应用层数据打包得到。
表 4 链路层帧结构
项目 数据 内容 地址码 功能码 报文长度 命令编号 应用层数据 长度(字节) 3 1 1 1 N=14 地址码:用于遥控器与接收机配对,配对码错误,后续报文自动丢弃。
功能码:用来描述数据包的功能用途。
报文长度:是指“应用层数据”的长度,固定长度为14,小于255。保留该字节是为了链路层的媒介无关的特性。
命令编号:为了防止遥控器重发命令时,接收机重复执行命令。当遥控器收到正确回应命令编号加1,如果接收机收到命令编号与前一次的相同,则不执行该命令。
第 6 页 共 10 页
XOR校验数据 1 应用层数据:等待输的应用层数据,直接表达应用层的要求。
XOR校验:“地址码、功能码、报文长度、应用层数据”的所有字节的异或值,长度为1个字节。
链路层的数据包总长度为21字节。 8 应用层帧格式
工业遥控系统支持报文类型参见下表。
表 5 报文类型表
序号 报文类型 1 A0 2 A1 应用层功能 报文长度 说明 遥控器发起:通信连接 固定长度为14 接收机应答:通信连接 固定长度为 14 3 A2 遥控器发起:遥控命令 固定长度为 14 4 A3 接收机应答:遥控命令 固定长度为 14 5 A4 遥控器发起:心跳包 固定长度为 14 6 A5 接收机应答:心跳包 固定长度为 14 7 8 9 10 11 12 A6 A7 AA AB AC AD AE AF 13 14 15 16 遥控器发起:PWM电流调节 接收机应答:PWM电流调节 遥控器请求:对时命令 固定长度为14 固定长度为14 保留不用 保留不用 保留不用 保留不用 保留不用 保留不用 接收机应答:对时命令 表 6 请求通信连接:A0
字节 序号 报文内容 数据格式 用途 第 7 页 共 10 页
1 2 3 4 5 6 7 8 9 10 11 12 13 14 T_CH T_LINK_ST T_STATUS Year Month Day hour Minute Second T_VERSION 遥控器的信道号 遥控器连接状态字节,待补充,默认为0X00。 遥控器状态字节,待补充,默认为0X00。 时间 遥控器系统版本号。默认为0X01。 表 7 应答通信连接:A1
字节 序号 1 2 3 4 5 6 7 报文内容 R_CH R_LQI_AV R_RSSI_MS R_RSSI_MIN R_RSSI_MAX R_RSSI_AV R_STATUS 数据格式 信道质量 信号强度 D7:=1 ARM自检故障 D7:=0 ARM自检正常 D6:=1 DSP自检故障 D6:=0 DSP自检正常 D5:=1 电源自检故障 D5:=0电源自检正常 D4:=1 急停自检故障 D4:=0电源自检正常 D3:=1 D3:=0 D2:=1 D2:=0 D1:=1 D1:=0 D0:=1 D0:=0 用途 接收机的信道号 接收机通讯时LQI平均值 接收机通讯时RSSI 接收机无通讯时RSSI最小值 接收机无通讯时RSSI最大值 接收机无通讯时RSSI平均值 接收机状态字节,待补充,默认为0X00。 8 9 10 11 12 13 14
R_VERSION 接收机系统版本号。默认为0X01。 第 8 页 共 10 页
表 8 遥控命令 A2
字节 序号 1 2 3 4 5 6 7 8 9 报文内容 ANALOG0 ANALOG1 ANALOG2 ANALOG3 ANALOG4 ANALOG5 ANALOG6 ANALOG7 ANA_DIR0 数据格式 D7:摇杆7正向开关状态。 D6:摇杆7反向开关状态。 D5:摇杆6正向开关状态。 D4:摇杆6反向开关状态。 D3:摇杆5正向开关状态。 D2:摇杆5反向开关状态。 D1:摇杆4正向开关状态。 D0:摇杆4反向开关状态。 D7:摇杆3正向开关状态。 D6:摇杆3反向开关状态。 D5:摇杆2正向开关状态。 D4:摇杆2反向开关状态。 D3:摇杆1正向开关状态。 D2:摇杆1反向开关状态。 D1:摇杆0正向开关状态。 D0:摇杆0反向开关状态。 D7:泵送启动开关 D6:泵送停止开关 D5:正泵开关。 D4:反泵开关 D3:快速泵送开关 D2:慢速泵送开关 D1:发动机转速加 D0:发动机转速减 D7:电笛开关 D6:发动机熄火开关 D5:遥控器电池状态 D4:遥控器开关机 D3: D2: D1: D0: D7: 0 D6:摇杆5 D5:摇杆4 D4:摇杆3 D3:摇杆2 D2:摇杆1 用途 摇杆0数据,用于控制臂架旋转。 摇杆1数据,用于控制一节臂上下运动。 摇杆2数据,用于控制二节臂上下运动。 摇杆3数据,用于控制三节臂上下运动。 摇杆4数据,用于控制四节臂上下运动。 摇杆5数据,用于控制五节臂上下运动。 备用模拟量。 排量数据 摇杆方向信息字节0,用于控制臂架正反运动方向。 顺时针方向为正向;逆时针方向为反向。 向上为正向;向下为反向。 1,表示对应位开关闭合。 0,表示对应位开关打开。 10 ANA_DIR1 摇杆方向信息字节1,用于控制臂架正反运动方向。 11 SW_STATUS0 开关量当前状态字节0。 1,表示对应位开关闭合。 0,表示对应位开关打开。 12 SW_STATUS1 开关量当前状态字节1 D5=1,电池低电压,遥控器即将进入待机状态,命令接收机关闭所有输出;D5=0,电池正常。 D4=1,遥控器已关机,接收机断开连接,关闭所有输出;D4=0,遥控器开机 13 SW_CHG0 变位状态字节1。值为1时表示该开关量或模拟量有变化。 未定义数据位为备用数据,要求发送方强制设置为0。 第 9 页 共 10 页
14 SW_CHG1 D1:摇杆0 D0:排量 D7:泵送开关 D6:正/反泵开关 D5:快/慢速泵送开关 D4:发动机转速加/减 D3:电笛开关 D2:发动机熄火开关 D1:遥控器电池状态 D0:急停 开关量变位状态字节0。值为1时表示该开关量有变化。 表 9 应答遥控命令 A3
字节 序号 1 2 3 4 5 6 7 报文内容 R_CH R_LQI_AV R_RSSI_MS R_RSSI_MIN R_RSSI_MAX R_RSSI_AV R_STATUS 数据格式 D7:=1 ARM自检故障 D7:=0 ARM自检正常 D6:=1 DSP自检故障 D6:=0 DSP自检正常 D5:=1 电源自检故障 D5:=0电源自检正常 D4:=1 急停自检故障 D4:=0电源自检正常 D3:=1 D3:=0 D2:=1 D2:=0 D1:=1 D1:=0 D0:=1 D0:=0 用途 接收机的信道号 接收机通讯时LQI平均值 接收机通讯时RSSI 接收机无通讯时RSSI最小值 接收机无通讯时RSSI最大值 接收机无通讯时RSSI平均值 接收机状态字节,待补充,默认为0X00。 8 9 10 11 12 13 14 R_VERSION 遥控器系统版本号。默认为0X01。 表 10 心跳:A4
字节 序号 1 报文内容 T_CH 数据格式 用途 遥控器当前通信的信道号。 第 10 页 共 10 页
2 3 4 5 6 7 8 9 10 11 12 13 14 备用报文填0XOO。 表 11 应答心跳:A5
字节 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 报文内容 R_CH 数据格式 用途 接收机当前通信的信道号 备用报文填0XOO。 表 12 PWM电流调节:A6
字节 序号 1 报文内容 RESET 数据格式 D7:恢复出厂设置 D6-D0:保留,填0 用途 恢复出厂设置命令。若为0,取 PWM_FAST和PWM_SLOW进行设定,若为1,恢复出厂设定值。 快速时的PWM最大值。其值为实际PWM电流/4 慢速时的PWM最大值。其值为实际PWM电流/4 第 11 页 共 10 页
2 3 4 5 6 7 8 PWM_FAST PWM_SLOW 9 10 11 12 13 14 表 13应答PWM电流调节:A7
字节 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 报文内容 数据格式 用途 全部填0x00 9 通信报文数据流
下图给出了无线通信的数据流。
A0A1建立连接1A0A1A0A1建立连接2A0A1A0A1A0A1建立连接3A4A5控制命令1A4A5A4A5控制命令2A4A5A4A5A4A5控制命令3A6A7停机命令1A6A7A6A7停机命令2A6A7A6说明:A7正确包A6错误包A7停机命令3
第 12 页 共 10 页
图 4 无线通信数据流图格
第 13 页 共 10 页