串行通讯规范
版本:1.0
2010年12月10日
一、协议原理
本规范定义的串行链路协议是一个主-从协议。 在同一时刻,只有一个主节点连接于总线,一个或多个子节点
(最大编号为247 ) 连接于同一个串行总线,通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。子节点之间从不会互相通信。主节点在同一时刻只会发起一个事务处理。
主节点以两种模式对子节点发出请求:
1、单播模式:
主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个 ‘应答’)。在这种模式, 一个事务处理包含2个报文: 一个来自主节点的请求, 一个来自子节点的应答。
2、广播模式:
主节点向所有的子节点发送请求。对于主节点广播的请求没有应答返回,所有设备必须接受广播模式的写功能。地址0是专门用于表示广播数据。
二、字节格式
说明:
1、每个字节包含11位
2、主节点发送的所有地址字节第10(地址数据检测位)位必须为1
3、所有数据字节和从机发送帧第10(地址数据检测位)位必须为0
4、字节发送时低位在前,从左到右顺序发送
三、数据编码
在多个字节发送时,使用高字节在前的发送方式,即首先发送最高有效位。
例如:
16比特0x1234, 发送的第一字节为0x12 ,然后0x34。
四、报文帧
所有在总线上的通讯都是以报文的形式进行收发,由主节点或从节点发出的符合报文帧结构的一串数据称为报文帧。一个报文帧的最大长度为256字节,整个报文帧必须以连续的数据流发送,主节点和从节点发送的数据必须符合报文帧结构。
报文帧结构
五、报文帧描述
地址域说明
1、地址范围1-247。
2、地址0为广播地址,所有的子节点必须识别广播地址,对于主节点广播的请求没有应答返回。
3、地址248-255为保留地址
4、主节点没有地址,所有子节点必须有一个地址,该地址在同一串行总线上必须是唯一的
5、主节点通过将子节点的地址放到报文的地址域对子节点寻址。
6、当子节点返回应答时, 它将自己的地址放到应答报文的地址域以让主节点知道哪个子节点在回答。
功能码说明
1、
指明要执行的动作。功能码后面可跟有表示含有请求和响应参数的数据域。
2、
功能码范围为:1-127,十六进制为:0x01-0x7F
数据域说明
1、
根据功能码的不同数据域数据含义和数据多少不同。
2、
在某些功能码中,数据域可以是不存在的(0长度),在此情况下任何附加信息。功能码仅说明操作。
差错校验
1、差错检验域是对报文内容执行
“冗余校验” 的计算结果,占用2字节
2、采用CRC16,计算方式见附录A.。
3、发送时校验值的低字节在前,高字节在后
|