阅读导言可知,在SECS协议的基础结构中,SECS-I是一项物理链路协议,采用了R232串口的物理连接方式,定义设备在链路上使用的消息格式以及一些消息交互行为。以下介绍将大致以消息传输与消息格式两部分进行。
1. 消息传输 - 物理传输*:
START Bit |
LSB 1 |
2 |
3 |
4 |
5 |
6 |
7 |
MSB 8 |
STOP Bit |
图1.1 SECS-I的实际传输格式
在实际的传输中,SECS-I要求设备使用多个连续的10 bit进行传输,大致如上所示,为 1 start bit + 8 data bits + 1 stop bit,其中的两个特殊bit决定了消息传输的方向,为 Start - > Stop 。
同时,传输的过程双向、异步,方向由特殊字符和握手建立,同一时间只能有一个方向的数据进行传输。
2. 消息传输 - 逻辑传输*:
在传输的过程中,消息被视为一个完整的通信单元,但并非最小的单元,这是由于消息格式限制导致的 - SECS-I要求每个最小单元(Block)中数据最大字节长为254,因而消息数据被分为了许多个块,有一个消息可以拥有最多32767(2^15 - 1)个块。
3. 消息格式 - Block的结构:
Length Byte(1) |
Data Byte(10 + N) |
CheckSum(2) |
Header(10) |
Message(N) |
图1.2 Block的数据格式
Block由Length Byte 、Data Byte、CheckSum三部分构成。
3.1 Length Byte:单字节,用于记录后续数据的字节数,不包括最后两位校验码的数据。
3.2 Data Byte:10-254字节,包括Header(10字节)和Message两部分。
3.2.1 Header - 由10个字节构成,用于描述Message部分的内容:
R | Upper Device ID |
Lower Device ID | |
Wait | Upper Message ID |
Lower Message ID | |
End | Upper Block No. |
Lower Block No. | |
System Byte | |
System Byte | |
System Byte | |
System Byte |
图1.3 Data Byte Header
3.2.2 Message
数据部分,格式由更高一层的设备间消息协议定义(当前我们假定为SECS - II)。
3.3 CheckSum
SECS - I 中校验码采用校验和的方式,将数据部分全部相加(不包含Length以及CheckSum本身)。
4. 消息传输 - Block的传输
4.1* 传输顺序
在传输时,设备将先传输块的长度,再传输块。
4.2 SECS - I 握手规则
SECS - I规定设备在每次消息交换前都进行一次握手,握手过程及过程中使用的握手码如下所示:
Name |
Code(bit8-1) |
Function |
ENQ |
00000101 |
Request to Send |
EOT |
00000100 |
Ready to Receive |
ACK |
00000110 |
Correct Reception |
NAK |
00010101 |
Incorrect Reception |
图1.4 Block 握手编码
图1.5 SECS-I传输过程
图1.5中的T1、T2为超时参数(SECS协议中常见,用于各种超时警报的参数),定义分别如下:
T1:限制设备接收Length字节后与接收CheckSum前,数据块中每个字节的传输时间间隔。
T2:限制设备发送ENQ与接收EOT间的时间间隔。
下一节:半导体基础SECS协议(HSMS)
Header由10个字节组成,用于描述Message部分的内容
标签:协议,10,传输,SECS,半导体,Byte,Message,Block From: https://www.cnblogs.com/MangRan/p/17807992.html