国标645协议.....2007---项目所需二(数据链路层)
来源:互联网 发布:java 日志slj4j 编辑:程序博客网 时间:2024/05/19 13:14
数据链路层
本协议为主-从结构的半双工通信方式。手持单元或其他数据终端为主站,多功能电能表为从站。每个多功能电能表均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符7个域组成。每部分由若干字节组成。
1、字节格式
每个字节含8位二进制码,传输时加上一个起始符(0)、一个偶校验位和一个停止位(1),共11位。其传输序列如图所示。D0是字节的最低有效位,D7是字节的最高有效位。先传低位,后传高位。
字节传输序列
2、帧格式
帧是传送信息的基本单元。帧格式如下图所示。
2.1 帧起始符 68H
标识一帧信息的开始,其值为68H=01101000B。
2.2 地址域A0~A5
地址域由6个字节构成,每字节2位BCD码,地址长度可达12位十进制数。每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足6字节时,高位用0补足。
通信地址999999999999H为广播地址,只针对特殊命令有效,如广播校对和广播冻结等。广播命令不要求从站应答。
地址域支持缩位寻址,即从若干低位起,剩余高位补AAH作为通配符进行读表操作,从站应答帧的地址域返回实际通信地址。
地址域传输时低字节在前,高字节在后。
2.3 控制码C
控制码的格式如下所示。
2.4 数据域长度L
L为数据域的字节数。读数据时L小于等于200,写数据时L小于等于50,L=0表示无数据域。
2.5 数据域DATA
数据域包括数据标识、密码、操作者代码、数据、帧序号等,其结构随控制码的功能而改变。传输时发送方按字节进行加33H处理,接收方按字节进行减33H处理。
2.6 校验码CS
从第一个帧起始符开始到校验码之前的所有各字节的模256的和,即各字节二进制算术和,不计超过256的溢出值。
2.7 结束符 16H
标识一帧信息的结束,其值为 16H=00010110B。
3、传输
3.1 前导字节
在主站发送帧信息之前,先发送4个字节FEH,以唤醒接收方。
3.2 传输次序
所有数据项均先传送低位字节,后传送高位字节。数据传输的举例:电能量值为123456.78kWh,其传输次序如下图所示。
传输次序
3.3传输响应
每次通信都是由主站向按信息帧地址域选择的从站发出请求命令帧开始,被请求的从站接收到命令后作出响应。
收到命令帧后的响应延时 T d: 20ms≤ T d≤ 500ms 。
字节之间停顿时间 Tb :T b ≤500ms。
3.4差错控制
字节校验为偶校验,帧校验为纵向信息校验和,接收方无论检测到偶校验出错或纵向信息校验和出错,均放弃该帧信息,不予响应。
3.5 通信速率
标准速率:600bps、 1200bps、 2400bps、 4800bps、 9600bps、 19200bps。
特殊速率:由厂家规定。
通信速率特征字此处略(附录C)。特征字的各位不允许组合使用,修改通信速率时特征字仅在Bit0~Bit7,一个二进制位为1时有效。
通信速率的变更,首先由主站向从站发表更速率请求,从站发确认应答帧或否认应答帧。收到从站确认帧后,双方以确认的新速率进行以后的通信,并在通信结束后保持更改速率不变。
注:最大通信速率受光电头或多功能电能表光学接口的限制,也受多功能电能表数据处理单元中工作时钟频率的限制。
- 国标645协议.....2007---项目所需二(数据链路层)
- 国标645协议.....2007---项目所需四(应用层)
- 国标645协议.....2007---项目所需一
- 国标645协议.....2007---项目所需三(数据标识)
- (二)数据链路层
- 数据链路层协议
- 数据链路层协议
- 数据链路层协议
- 数据链路层的协议
- 【网络协议】数据链路层
- 《网络协议》数据链路层
- 【网络协议】数据链路层
- 数据链路层主要协议
- 数据链路层---PPP协议
- 数据链路层LLDP协议
- 协议-数据链路层-以太网
- 我们一起学网络(二)——数据链路层(CSMA/CD协议)
- 《TCP/IP详解卷一:协议》数据链路层(二)
- 用 NDK 编译 ffmpeg 到 Android 平台
- linux避免进程随终端关闭而被关闭
- In-Stream Big Data Processing
- poj 3041 Asteroids 二分图匹配
- Understanding GC pauses in JVM, HotSpot's minor GC.
- 国标645协议.....2007---项目所需二(数据链路层)
- Ogre空间变换,setPosition(),setDerivedPosition()和translate()的正确使用。
- 25岁研究生拿高薪互联网的offer,意气风发的走出学校
- 欢迎访问我的新个人网站,博客也搬家了。
- TCP采用哪些机制来实现可靠数据传输、流控和拥塞控制?
- 使用IO::Socket::INET模块实现socket编程
- Facebook unveils Presto engine for querying 250 PB data warehouse
- LCIS最长上升公共子序列(HDU 1423)
- Deep Learning(Logistic Regression)学习之MNIST C++实现