==模拟语音通讯控制物理层协议== *通过485总线,4800波特率,校验位无,数据位8位,停止位1位 参与通信的节点有报站控制盒、AMP。需要实现的功能有司机间对讲、人工广播。 ==应用层协议== *起始位1个字节,0xA5 *目的地址:2个字节,0x0000到0xffff,其中0x0000为广播地址,0xffff为激活主机1地址,0xfffe为非激活主机1地址,0xfffd为非激活主机2地址,0xfffc为非激活主机3地址,设备地址是0x0001到0xfffb。比如,设备IP地址是,192.168.3.25,则设备568地址是,0x0319(0x19即25)。设备地址和IP地址关联。 *数据发出地址:2个字节,0x0001到0xffff,0xffff为激活主机1地址,0xfffe为非激活主机1地址,0xfffd为非激活主机2地址,0xfffc为非激活主机3地址,设备地址是0x0001到0xfffb。比如,设备IP地址是,192.168.3.25,则设备568地址是,0x0319(0x19即25)。设备地址和IP地址关联。 *命令位:1个字节。0x00为主机发送给分机的广播命令,0x01为主机发送给分机的结束广播命令,0x02为主机发送给分机的请求对讲命令,0x03为主机发送给分机的结束对讲命令,0x04表示分机发送给主机的请求对讲命令,0x05表示分机发送给主机的结束对讲命令,0x06表示主机发送给分机以太网正常命令,0x07表示主机发送给分机的以太网故障命令,0x08表示分机发送给主机的以太网正常命令,0x09表示分机发送给主机的以太网故障命令,0x0a为主机发送给分机的对讲正式连接命令,0x0b为分机发送给主机的对讲正式连接命令,0x0c为对讲心跳命令,0x0d到0xff备用 *应答标示:1个字节,0x00,标示不需要应答,0x01标示需要数据有应答。对需要应答的数据没有收到应答的情况需要重新发送2次。一共发送三次 *校验位:从目的地址到应答标示的异或校验。对于校验错误的数据不与处理 *帧尾位1个字节,0x5A === 命令位 === {| class="wikitable sortable" |- ! 命令ID !! 含义 !! 备注 |- |0x00 || 主机发送给分机的广播命令 || |- |0x01 || 主机发送给分机的结束广播命令 || |- |0x02 || 主机发送给分机的请求对讲命令 || |- |0x03 || 主机发送给分机的结束对讲命令 || |- |0x04 || 分机发送给主机的请求对讲命令 || |- |0x05 || 分机发送给主机的结束对讲命令 || |- |0x06 || 主机发送给分机以太网正常命令 || |- |0x07 || 主机发送给分机的以太网故障命令 || |- |0x08 || 分机发送给主机的以太网正常命令 || |- |0x09 || 分机发送给主机的以太网故障命令 || |- |0x0a || 主机发送给分机的对讲正式连接命令 || |- |0x0b || 分机发送给主机的对讲正式连接命令 || |- | 0x0c|| 对讲心跳命令 || |- |} ==通讯协议实例== *A5 00 00 FF FF 00 00 00 5A 表示激活主机发起广播命令,分机设备接收到此命令后无需应答。未激活主机,车厢广播接收到此命令后,需要动作接受播放广播语音。在广播过程中,此命令每500ms发送一次,直到广播结束 *A5 00 00 FF FF 01 00 01 5A 表示激活主机结束广播命令。分机设备接收到此命令后无需应答。未激活分机,车厢广播接收到此命令后,需动作关闭播放广播语音。此命令发送两次,每次间隔500ms *A5 FF FE FF FF 02 01 XX 5A 表示激活主机发送对讲命令。接受分机地址是0xFFFE,即未激活分机设备。接受设备接收到此命令后,开始响铃,并需要应答激活主机(应答数据为:A5 FF FF FF FE 02 00 XX 5A),并需要动作与激活主机对讲。激活主机未收到接受设备的应答时,需要再发送2次命令(间隔时间为500ms),3次命令均未收到应答信号,激活主机放弃对讲动作。收到应答后,主机进入响铃状态。 *A5 FF FE FF FF 03 01 XX 5A 表示激活主机发送结束对讲命令。接受分机地址是0xFFFE,即未激活分机设备。接受设备接收到此命令后,需要应答激活主机(应答数据为:A5 FF FF FF FE 03 00 XX 5A),并需要动作关闭与激活主机对讲。激活主机未收到接受设备的应答时,需要再发送2次命令(间隔时间为500ms),3次命令均未收到应答信号,激活主机结束对讲动作。 *A5 FF FF 03 19 04 01 XX 5A 表示地址为0x0319的设备发送与激活主机对讲命令。激活主机收到此命令后需要应答(应答数据为:A5 03 19 FF FF 04 00 XX 5A),并开始响铃,。分机设备在收到激活主机的应答数据后,进入响铃状态。分机设备在未收到激活主机动作时,需要重新发送两次命令(间隔时间为500ms),3次命令均未收到应答信号,分机结束对讲动作。 '''此命令情况下,可以通过命令0x03或0x05结束对讲,即可以主机主动结束对讲,也可以分机主动结束对讲''' *A5 FF FF FF FE 0A 01 XX 5A 表示激活主机正式开始与分机设备对讲。接受设备收到命令后需应答主机(A5 FF FE FF FF 0A 00 XX 5A),解除响铃并开始对讲。主机收到应答后也进入对讲状态,超过一定时限未收到应答则放弃对讲操作。 *A5 FF FE FF FF 0B 01 XX 5A 表示未激活主机正式开始与主机对讲。接受设备收到命令后需应答主机(A5 FF FF FF FE 0B 00 XX 5A),解除响铃并开始对讲。从机收到应答后也进入对讲状态,超过一定时限未收到应答则放弃对讲操作。 *A5 FF FF FF FE 0C 00 XX 5A 表示设备发出对讲心跳包,设备在响铃以及对讲中都需要发送心跳包,每5s一个,超过一定时限(15s)未收到对方的心跳包则放弃对讲操作。