分享

SmartCard

 waston 2014-03-05
   学东西还是从实际的物体开始吧,先看下我们常用的触点式IC卡的管脚定义。

                             

     接口设备应通过触点VCC向卡提供下列标称电源:

—— A类:5V

—— B类:3V

因此,卡和接口设备应仅工作在A类,或者仅工作在B类,或者工作在A类及B类(以下表示为AB类)。

A类卡应能在A类或AB类接口设备上操作。AB类卡应能在A类、B类或AB类接口设备上操作。B类卡应能在B类或AB类的接口设备上操作;B类卡应具有防护卡在A类操作条件下不被损坏的功能(根据定义,损坏的卡为不能按规定操作或包含有错误的数据的卡)。

一、各个管脚的功能

1、VCC

该触点用来向卡提供电源电压。表1中的电流值是1ms时间内的平均值。为卡规定了最大电流。接口设备应能在规定电压值范围内提供此电流值或者更大的电流值。

2、  I/O

该触点用作输入(接收模式)或输出(发送模式)。通过触点I/O的信息交换使用了以下两种逻辑状态(如GB/T 3453-1994中定义):

—— 状态Z,如果卡和接口设备处于接收模式或者该状态由发送方强制。

—— 状态A,如果这个状态是由发送方强制。

当线路的两端处于接收模式时,这条线路应处于状态Z(高状态)。当线路的两端处于不匹配发送模式时,则该线路的逻辑状态可能是不确定的。在操作期间,接口设备和卡不应都处于发送模式。

当输入电压在允许范围内时,接口设备应能支持规定范围的输入电流。接口设备应对卡呈现一个阻抗,以使接口设备不妨碍卡能保持输出电压在规定的范围内。

3、  CLK

该触点用来向提供时钟信号。时钟信号的实际频率由f指定。

在稳定工作期间,时钟信号周期的占空比应为40%~60%。当频率从一个值切换到另一个值时,应注意保证没有比卡允许的最短周期的40%更短的脉冲。当切换频率值时,没有信息被交换。对于切换频率值,建议使用两个不同的时间:

—— 在复位应答后立即进行,或

—— 在一次成功的PPS交换后立即进行。

4、  RST

该触点用来向卡提供复位信号,有冷复位和热复位

5、  VPP

在B类操作条件下,该触点保留待将来使用。

在A类操作条件下,该触点可用来向卡提供为了写或擦除内部非易失性存储器所要求的编程电压。表6定义了触点VPP上的两种激活状态:暂停状态和编程状态。除非卡要求编程状态,接口设备应将触点VPP保持在暂停状态。

二、卡的操作过程

当卡的触点与接口设备的触点在机械上被连接时,电路才被激活。

接口设备和卡之间交互应通过下列条款规定的连续操作来进行。

—— 接口设备激活电路;

—— 卡和接口设备之间的信息交换总是起始于卡对冷复位的应答;

—— 接口设备停活电路。

电路的停活序列应在卡的触点和接口设备的触点机械断开前结束

1、  激活

为启动与机械上连接的卡交互,接口设备应按下图所示下列次序来激活电路:

—— 将RST置为状态L;

—— 按照接口设备所选择的操作条件:A类或B类,VCC应被加电;

—— 将接口设备上的I/O置于接收模式;

—— 在A类条件下,VPP应置于暂停状态;在B类条件下,VPP保留待将来使用;

—— 应为CLK提供时钟信号。至少在复位应答期间,时钟的频率f应在以下范围内:

●      1~5MHz,A类,或

●      1~4MHz,B类。

电路的激活序列结束(RST为状态L,VCC加电,接口设备上的I/O为接收模式,当操作在A类时VPP为暂停状态,为CLK提供一个合适且稳定的时钟信号)后,按规定的时序,卡准备好冷复位。

 

2、  信息交换

如果卡支持操作条件的类别,则卡应对任何复位进行应答。在任何复位应答完成后,接口设备可启动卡的热复位。对于热复位的应答可能会与对前一个复位的应答不同,而无论前一个复位是冷复位,还是热复位。在完成一个指明协商方式的复位应答后,接口设备可按照规定启动PPS交换。

命令的操作规程取决于传输协议。主要有以接口设备为主的异步半双工字符传输和异步半双工块传输。当从卡没有传输(相当于一个命令完成后和另一个命令启动前),如果卡支持时钟停止,则接口设备甚至可以停止时钟信号。

2.1、冷复位

按上图,在Ta时刻对CLK施加时钟信号。在施加到CLK的时钟信号的200个时钟周期(ta)(时间段taTa之后)的范围内,卡应把I/O线置为状态Z。在时钟信号施加到CLK后,通过将RST保持在状态L至少400个时钟周期(tb)(时间段tbTa之后)来复位卡。

Tb时刻,RST被置于状态H。I/O上的应答应在RST上信号的上升沿之后的40040000个时钟周期tc)(时间段tcTb之后)之间开始。

在RST处于状态H的情况下,如果应答在40000个时钟周期内仍未开始,则RST上的信号应被返回到状态L,且接口设备将电路停活。 

2.2、热复位

按图,接口设备通过将RST置为状态L至少400个时钟周期(时间段te)来启动热复位,同时VCCCLK仍保持稳定

Td时刻,RST置于状态H。I/O的应答应在RST上信号上升沿之后400到40000个时钟周期(tf)(时间段tfTd之后)之间开始。

在RST处于状态H时,如果应答在40000个周期内开始,应将RST上的信号返回状态L,且接口设备将电路停活。 

 

2.3、时钟停止

当接口设备认为从卡没有传输且I/O保持状态Z至少1860个时钟周期(时间段tg)时,则按下图,接口设备可停止CLK上的时钟(在Te时刻)。

当时钟被停止(从Te时刻到Tf时刻),CLK应被保持在状态H或状态L;这个状态由参数X来指出。

Tf时刻,接口设备重启动时钟,I/O上的信息交换在至少700个时钟周期之后(时间段thTf之后)继续进行。

 

3、  停活

当信息交换结束或放弃时(例如,无卡响应或检测到卡移出),接口设备应按图所示下列顺序停活电路。

—— RST被置为状态L;

—— CLK置为状态L(除非时钟已停止在状态L上);

—— VPP被停活(如果它已被激活);

—— I/O置为状态A;

—— VCC停活。

 

 

       通过根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位的应答发送给接口设备的。通过卡对接口设备作为复位的应答的字节传送的顺序的值在I/O电路上,每个字节通过异步字符来运送。

每个成功的复位操作都会在在I/O上产生,一个初始字符TSTS后面按下列次序紧跟有最多32个字符,见图。

T0-----------------------------------------格式字符,必备的

TA(i) TB(i) TC(i) TD(i)----------------接口字符,任选的

T1 T2TK------------------------------.历史字符,任选的

TCK---------------------------------------校验字符,有条件的

 初始字符建立解码每个后续字符的约定用以设置条件以编译每个后面的字符。

 格式字符显示用以告之第一组接口字符和所有历史字符。

 接口字符的出现通过格式字符所启动的位图技术指出。

 历史字符的出现通过编码在格式字符中的1个数指出。

 校检字符的出现依赖于某些接口字符中参数T的值。

为了记法简化,以后T0TA(i)T1TCK不但表示字节而且也表示运送这些字节的字符

 

1、参数T

参数T指传输协议和/或限定接口字节数。在每个字节TD(i)TA(2)PPS0(见7.3)中,位b4~b1编码参数T的值。

——       T=0               异步半双工字符传输。

——       T=1               异步半双工块传输。

——       T=2T=3     保留用于将来的全双工操作。

——       T=4               保留用于增强的异步半双工字符传输。

——       T=5T=13   保留待将来使用。

——       T=14              指未由ISO/IEC JTC1 SC17进行标准化的传输协议

——       T=15              不指某一种传输协议,仅限定了全局接口字节。

2、格式字节T0

按照图,字节T0由两部分组成:

——       b8b5构成Y(1);每个等于1的位指示了后续接口字节的存在;

——       b4b1构成KK编码了历史字节的个数,从015

3、  接口字节TA(i) TB(i) TC(i) TD(i)

3.1 TD(i)

按照图,字节TD(i)含有两部分:

——       b8b5构成Y(i+1);每个等于1的位指示后续接口字节的存在;

——       b4b1构成参数T的值。

因此,T0运送Y(1)TD(i)运送Y(i+1)。在运送Y(i)的字节中,位b8b5表示与b5对应的TA(i)、与b6对应的TB(i)、与b7对应的TC(i)、与b8对应的TD(i)按照这个次序运送Y(i)的字节之后是否存在(取决于相关的位是否等于1)。

如果TD(i)不存在,则接口字节TA(i+1)TB(i+1)TC(i+1)TD(i+1)也不存在。

如果两个或更多个参数T的值存在于TD(1)TD(2)……中,它们应当按照数字升序存在。如果存在,T=0应是第一个,T=15应是最后一个。TD(1)中禁止值T=15

“第一次提供的协议”定义如下:

——       如果TD(1)存在,则第一次提供的协议是T

——       如果TD(1)不存在,则提供的唯一的协议是T=0

 

3.2 TA(i) TB(i) TC(i)

接口字节TA(i)TB(i)TC(i)i=123,…)是全局的或特定的。

——       有关卡上集成电路参数的全局接口字节。

——       有关卡提供的传输协议的参数的特定接口字节。

接口字节TA(1)TB(1)TC(1)TA(2)TB(2)是全局的。接口字节TC(2)是特定的;它是为T=0定义的。i>2时对接口字节TA(i)TB(i)TC(i)的解释依赖于TD(i-1)中参数T的值。

——       如果T15,则接口字节是协议T特定的。

——       如果T=15,则接口字节是全局的。

如果为参数T的同一个值定义了超过三个的接口字节TA(i)TB(i)TC(i),并且这些接口字节在复位应答中出现,则它们应相继出现于指明相同T值的TD(i-1)TD(i)…(i>2)之后;因此,当这些接口字节在TD(i-1)i>2时)中的T第一次、第二次或第n次出现之后出现,就被无二义性地识别出来。

4、历史字节T1 T2……TK

历史字节指明一般信息,例如卡制造商、插入卡内的芯片、芯片的掩膜ROM、卡的寿命状态。GB/T 16649.4规定了历史字节的内容。

如果K不为0,则复位应答在K个历史字节T1 T2……TK上继续。

5、校验字节TCK

字节TCK的值应是这样的,以致使它与T0TCK的所有字节(包括T0TCK)的异或运算结果为0

如果只有T=0存在(可能通过默认来指明),则字节TCK应不存在。如果T=0T=15都存在,或者在其他所有情况下时,字节TCK应存在。

6、全局接口字节的内容

字节TA(1)TB(1)TC(1)TA(2)TB(2)TD(i-1)i>2)中T=15第一次出现后的字节TA(i)。这些字节以二进制的形式对无符号整数FIDIIIPI1NPI2XIUI进行编码,这些无符号整数等于或用于计算此后出现的参数FDNPIXU的值。

——       如果出现,为正确处理任一协议应解释该字节;

——       如果该字节不出现,则当需要时,对于相关参数使用默认值。

TA(1)对以下内容进行编码

——       FI,对位b8b5上的时钟速率转换因子的引用。

——       DI,对位b4b7上波特率调节因子的引用。

b8=0TB(1)对以下内容进行编码

——       II,对位b7b6上最大编程电流的引用,。

——       PI1,对位b5b1上编程电压的值。

注:       接口设备可以忽略TB(1)的位b8

TC(1)对以下内容进行编码

——       N,对计算8位上的额外保护时间的引用。

TA(2)是特定方式字节

TB(2)使用8位上的编程电压值PI2代替PI1进行编码。

TA(i)TD(i-1)i>2)中的T=15第一次出现后对以下内容进行编码

——       XI,对位b8b7上的时钟停止指示符的引用。

——       UI,对位b6b1上的类别指示符的引用。

6.1、传输因子FD

参数FD分别是时钟速率转换因子和波特率调整因子。在I/O电路上所使用的etu依赖于传输因子FD的实际值。etu应等于F/D时钟周期。

etu = F/D×(1/f)

频率f的最小值应为1MHz。最大值作为FI的函数在表7中给出。默认最大值是5MHz

为了计算etuFD因子对应当采用下面三对值之一:

——       FiDi,由卡按照在TA(1)中给出;如果TA(1)不存在,则FiDi置为默认值;

——       FdDd,默认值为3721

——       FnDn,由成功的PPS交换在FdFiDdDi范围内协商所得的值。

在复位应答期间,应使用FdDd。复位应答后,FD的值取决于操作方式。

——       在可协商方式中,应继续使用FdDd,直到PPS交换成功完成。PPS成功交换后,应立即使用FnDn

——       在特定方式中

     如果TA(2)b5=0,则在复位应答成功完成之后应立即使用FiDi

     如果TA(2)b5=1,则应使用隐含值。

6.2、额外保护时间N

参数N是将字符从接口设备发送到卡的额外保护时间。没有额外保护时间用来将字符从卡发送到接口设备。默认值N=0

0254范围内,N表示在准备好接收下一字符之前,卡要求从前一个字符(也是由卡或接口设备发送的)的起始沿开始的下列延迟:

 etu +Q×(N/f)

公式中,Q应取下面两个值中的一个:

——       F/D,即用于计算etu的值,当T=15不存在于复位应答中时,

——       Fi/Di,当T=15存在于复位应答中时。

N=255表示在传输协议期间,两个连续字符的起始沿之间的最小延迟在传输的两个方向上是相同的。这个最小延迟值是

——       T=0时,12etu

——       T=1时,11etu

6.3、编程参数PI

       编程参数PI分别是编程电压和最大编程电流;它们定义了触点VPP上的编程状态。

——       编程电压:VPP=PV

——       最大编程电流:IPP=ImA

525范围内,PI1给出了P的值,单位为伏。PI1=0表示在卡中VPP在电路上未连接,卡使用触点VCC提供的电源在内部生成编程电压。PI1的任何其他值保留作将来使用。

50250范围内,PI2给出了P的值,单位是十分之一伏。PI2的任何其他值保留作将来使用。如果PI2存在,则PI1的值应被忽略。

如果T=15不存在于复位应答中,默认值是P=5I=50。如果T=15存在,则VPP在卡中不连接,除非TB(1)/TB(2)存在。

6.4、时钟停止指示符X

参数X表示卡支持(XI00)或不支持(XI=00)时钟停止,以及支持时,当时钟停止时,在CLK上优先选用哪个电气状态。默认值是X=“不支持时钟停止”。

6.5、类别指示符U

参数U表示了卡所接受的操作条件的类别。UI的每个位代表了4.2.1中定义的一个操作条件类别:b1对应A类,b2对应B类。默认值是U=“仅支持A类”。

6.6、特定方式字节TA(2)

TA(2)是特定方式字节。按照图,它描述了卡操作的特定方式的相关特征

 

我得到的ATR数据时:3b 6c 00 00 4e 54 49 43 30 27 73 00 4a 03 00 00

13b  表示正向卡(3f表示反向卡,这个定死的)

26c  0110 1100,其中6表示TB1TC1存在,TA1TD1不存在,所以由此可以

推定传输协议T=0,没有TCK。其中的c表示历史字节为12

300 00:表示TB1TC1的值

44e 54 49 43 30 27 73 00 4a 03 00 00 :历史字节0x0c


模式操作

在复位应答后,卡处于下面两种操作模式之一:

——       TA(2)存在,则处于特定模式;

——       TA(2)不存在,则处于协商模式。

图示出了卡操作模式的选择和切换。

1、  特定模式

在特定模式中,直接在复位应答之后,由TA(2)所指示的协议应使用

——若TA(2)b5=0,使用FiDi

——若TA(2)b5=1,使用隐含值。

然而,IFD可启动热复位来调用卡中的协商模式。

2、  协商模式

在协商模式中,只要IFD发送给ICC的第一个字节允许在PPS请求与协议命令之间有无二义性差别,则“隐式选择”是可能的。

——若在复位应答后无PPS请求被直接发送,应使用FdDd来应用“第一次提供的协议”;

——对于另一个由ICC提供的协议和/或参数FD的其他值(F范围为FdFiD的范围为DdDi),IFD应发送一个使用FdDdPPS请求,以便从协商模式转到特定模式。直接在成功的PPS交换之后,应使用FnDn来应用协商的协议。

如果复位应答仅提供某个协议(T=014)以及FdDd,则该协议应使用FdDd且紧随复位应答之后启动。因此,这样的卡不必支持PPS

既不支持PPS又不支持“第1次提供的协议”的IFD或者可以复位ICC以尝试从协商模式转到IFD支持的特定模式,或者可以拒绝卡。 


协议和参数选择(PPS

PPS请求和响应应该以与复位应答相同的方式来发送,即,以相同的波特率(因此使用FdDd),符合TS建立的约定,并且在连续两个字符的起始沿具有最小延迟12etu。然而如果接口字节TC(1)出现在复位应答中,且不等于“FF”,则应保证有附加的保护时间。PPS响应的两个连续字符的起始沿之间的延迟不应超过“初始等待时间”

1PPS协议

只有IFD被允许启动PPS交换。

——       IFD应发送一个PPS请求给ICC

——       如果ICC收到一个错误PPS请求,则它不发送任何响应;

——       如果ICC收到一个正确PPS请求,如果完成,则它应发送一个PPS响应,否则将超过初始等待时间;

——       如果超过初始等待时间,则IFD或者复位,或者拒绝ICC

——       如果IFD收到错误PPS响应,则IFD或者复位,或者拒绝ICC

如果PPS交换不成功,则IFD或者复位,或者拒绝ICC

2、  PPS请求和响应的结构和内容

PPS请求和响应分别包括一个初始字节PPSS,后面是格式字节PPS0,三个可选参数字节PPS1PPS2PPS3和一个检验字节PCK作为最后一个字节。

PPSS标识了PPS请求或响应并等于“FF”。

PPS0根据位b5b6b7是否等于1来指明可选字节PPS1PPS2PPS3是否存在。位b4b1运送参数T的值以建议一种协议。位b8保留作将来使用并应置为0

PPS1允许IFD向卡建议FD的值。按与TA(1)中相同方法进行编码,这些值应分别位于Fd~FiDd~Di的范围内。如果IFD不发送PPS1,则它建议继续使用FdDdICC或者通过回送PPS1来确认两个值(然后这两个值就变为FnDn),或者不发送PPS1,继续使用FdDd(然后,Fn置为372Dn置为1)。

PPS2PPS3保留作将来使用。

PCK的值是这样的,以致使涉及所有字节PPSSPCK(包括PPSSPCK)的异或运算结果为0

 

3、  成功的PPS交换

如果PPS响应准确地回复了PPS请求,则PPS交换是成功的。这是最常见的情况。然而也可能发生其他情况。

PPS响应属于下列情况之一时,该PPS交换也是成功的:

—— PPSS响应=PPSS请求;

—— PPS0响应:

      应回送位b1b4

      应回送位b5或将其置为0

      如果b5=1PPS1响应=PPS1请求;

      如果b5=0PPS1响应不存在,就意味着应使用FdDd

      应回送位b6或将其置为0

      如果b6=1PPS2响应=PPS2请求;

      如果b6=0,则PPS2响应和PPS2请求都不存在。

      应回送位b7或将其置为0

      如果b7=1PPS3响应=PPS3请求;

      如果b7=0,则PPS3响应和PPS3请求都不存在。

PPS交换的任何其他情况都应被解释为不成功。


协议T=0,异步半双工字符传输协议

协议在复位应答或成功的PPS交换之后启动。

1、  字符级

字符帧同对复位应答所定义的一样,使用TS所建立的约定,同时按照操作模式来考虑。ICCIFD应按照使用错误信号和字符重发。

由过程字节触发的VPP上的任何跃变都应在从字符上升开始的12etu内发生。

特定接口字节TC(2)对它的8位进行编码以得到整数WI的值。空值留待将来使用。如果在复位应答中没有TC(2)出现,则WI的默认值为10。由IFD发出的任何一个字符的前沿和由ICCIFD发出的前一个字符起始沿之间的时间间隔应不超过960×WI×(Fi/f)。这个最大延迟称为“工作等待时间”。

—旦超过工作等待时间,VPP应被置为暂停状态或被保持暂停状态。

2、  命令的结构和处理

接口设备通过发送5个字节报头,告诉卡做什么来启动每个命令。在卡发送的过程字节控制下,该命令处理在一个方向上继续运送不定量的数据字节。

为了区分用于输入数据的命令(其中处理数据字节时该数据字节进入卡)和用于输出数据的命令(其中处理数据字节时该数据离开卡),假设卡和接口设备预先知道数据运送方向。

 2.1、命令头  

       该命令头是5个字节的系列,这5个字节指定为CLAINSP1P2P3

       CLA:是指令类别,值‘FF’被保留给PPS

       INS:是指令类别中的指令代码。指令代码仅当位b8~b5不等于‘6’和‘9’时才有效。

       P1P2:是一个完成指令代码的参考(例如地址)。

       P30:对命令期间被传送的数据字节D(1)~D(n)的数目n进行编码。

       在输出数据的传送命令中,P3=0表示从卡传输256个字节。 

       在输入数据的传送命令中,P3=0表示不从卡传输数据。

发送该命令头之后,接口设备应等待一个运送过程字节的字符。

2.1、过程字节

       有三种类型的过程字节:

       NULL等于‘60’。

ACK中,位b8~b2应与INS中的位b8~b2相一致或为互补,但INS的这些位的值应不等于‘6X’和‘9X’。

       SW1等于‘6X’或‘9X’,但不等于‘60’。

就每一个过程字节而言,卡可以由一个ACKNULL字节来使命令继续进行下去,或由结束序列SW1 SW2来结束这个命令,或变成不响应来表示不赞同。

2.1.1 NULL字节

NULL既不请求VPP状态上的进一步动作也不请求数据传送的进一步动作。IFD应仅等待运送过程字节的字符。

2.1.2响应字节

ACK字节用来控制数据传送和VPP状态。

如果INS字节与ACK字节进行异或运算结果为‘00’或‘FF’,则VPP应置为或保持在暂停状态。

如果INS字节与ACK字节进行异或运算结果为‘01’或‘FE’,则VPP应置为或保持在编程状态。

如果ACK字节中的位b8~b2INS字节中的那些位的值相同,则如果还有剩余数据字节,则应继续传送所有剩余的数据字节D(i)~D(n)

如果ACK字节中的位b8~b2INS字节中的那些位互补,则如果还有剩余数据字节,则只有下一个数据字节D(i)应被传送。

在这些动作完成之后,接口设备等待一个运送过程字节的字符

2.1.3 状态字节

SW1请求将VPP置为或保持在暂停状态。IFD等待一个运送SW2字节的字符。这里对SW2的值无限制。

SW1SW2构成结束序列,结束序列在命令的结尾处指示卡的状态。SW1 SW2=9000’表示正常结束。

本部分没有解释当SW1的位b8~b5等于‘9’时的其他结束序列,这些结束序列与应用本身相关。

SW1的位b8~b5等于‘6’时,SW1的含义是与应用无关的。

6E   卡不支持指令类别;

6D   指令代码没有被编程或者无效;

6B   引用不正确;

67    长度不正确;

6F   没有给出准确的诊断。

其他值保留给将来使用。

如果SW1既不等于‘6E’,也不等于‘6D’,则卡支持该指令。

 

协议 T=1,异步半双工块传输协议

块传输协议在复位应答或一个成功的PPS交换之后开始。其协议的主要特征如下:

              协议从IFD发送的第一个块开始;该协议伴随在交替发送一个块的全程中。

              块是可交换的最小数据单位。块可以用来运送

              对传输协议透明的应用数据;

     包括传输差错处理的传输控制数据。

              块结构允许在处理运送的数据之前检验收到的块。

本协议应用了OSI参考模型的分层原则,特别注意到了将跨越各边界的交互作用减到最小。被定义的有三层:

              物理层传输以异步字符组织的时间段;

              数据链路层,包括字符成分和块成分。

     字符部分处理块标识(识别块的开始和结束)并且确保对于9.6的控制。

              应用层,处理命令,这些命令包括在每一方向上交换至少一个块或块链。

1、  术语

  block

由定义为起始字段,信息字段和终止字段的两个或三个字段组成的字节序列。

信息块  information block

主要用于运送应用层信息的块。

接收就绪块  receive ready block

一个块,它运送期望的I块的个数,用作肯定确认或否定确认

监控块  supervisory block

运送传输控制信息的块。

差错检测代码  error detection code

由应用于起始字段和信息字段中的所有字节的差错校验方法所产生的终止字段中的内容。

字段  field

块的三个组成部分之一,块被定义为起始字段、信息字段和终止字段。

起始字段  prologue field

块的第1个字段,它运送下列子字段:结点地址字节、协议控制字节和长度字节。

信息字段  information field

块的一个字段,用于运送数据,通常是应用数据。

终止字段  epilogue field

块的最后一个字段,它运送差错检测代码。

子字段  subfield

一个字段中的功能部分

结点地址字节  node address byte

起始字段中的一个子字段,它指示块的目的地址和源地址并控制VPP状态。

目的结点地址字节  destination node address byte

子字段结点地址的一部分,用于识别块的预期接收者。

源结点地址字节  source node address byte

结点地址子字段的一部分,用于标识块的发送者。

协议控制字节  protocol control byte

起始字段中的一个子字段,它包含传输控制信息。

长度字节  length byte

起始字段中的一个子字段,它包含在块的信息字段中被发送的字节个数。

传输控制  transmission control

用来控制接口设备和集成电路卡之间数据传输的功能。它包含VPP状态控制、顺序控制的块传输、同步的块传输以及传输差错恢复。

2、块帧

块是指一序列字节:每个字节由异步字符来运送。如图所示块由下列字段组成。

              起始字段是必备的;它由结点地址字节、协议控制字节和长度字节组成;

              信息字段是任选的;它由0-254个字节组成;

              终止字段是必备的;它由一个或两个字节组成。

本协议定义了三种块类型:

              信息块(I块)用来运送应用层用的信息。另外,它还运送肯定或否定确认。

              接收就绪块(R块)用来运送肯定或否定确认。它的信息字段应不出现。

              监控块(S块)用来交换IFDICC之间的控制信息,S块的信息字段的存在随其控制功能而定。

 

2.1、起始字段

2.1.1、结点地址字节

结点地址(NAD)允许标识块的源点和预期目的地;NAD可用来区分共存的多逻辑连接。

b1b3是指源结点地址SAD,位b5b7指目的结点地址DAD,位b4b8用于VPP状态控制。

在不使用编址时,SADDAD的值都应被置为0。当SADDAD的值相同时,NAD的任何其他值留待将来使用。

在由IFD发送的第一个块中,通过将地址SADDAD联系起来,NAD建立了一个逻辑连接。随后的块中的NAD包含相同的地址对SADDAD,这些块也被连接到相同的逻辑连接上。在信息交换期间,其他的逻辑连接可由其他的地址对SADDAD来建立。

2.1.2、协议控制字节(PCB

PCB运送控制传输所要求的信息。

PCB决定了块的类型,即该块是I块、R块还是S块。

              在每个I块的PCB中,位b8被置为0。位b7 b6如图所示使用。位b5b1留待将来使用并应置为0

              在每个R块的PCB中,位b8 b7被置为10。位b6b1如图所示使用;

              在每个S块的PCB中,位b8 b7被置为11。位b6b1如图所示使用

 

   2.1.3、长度字节

LEN表示块的信息字段中出现的字节的个数(见9.5.2)。编码应是:

值‘00’表示不存在信息字段。

01’至‘FE’的任何值表示信息字段中出现的字节的个数,对应为1254个。

FF’留待将来使用

 2.1.4、信息字段(INF

INF的用途取决于块的类型。

              INF存在于I块中时,INF运送应用信息。

              R块中应该不存在INF

              INF存在于S块中时,INF运送非应用信息。

     当调节IFSWTX时,INF应以单个字节存在于S块中。

     当发出VPP状态差错信号,或管理链接放弃,或重新同步时,INF应不在S块中

 2.1.5、终止字段

EDC运送块的差错检测代码。协议使用了LRC(纵向冗余校验)或CRC(循环冗余校验)。

              纵向冗余校验(LRC)由一个字节组成。它与块中的所有字节的异或运算结果为0

              循环冗余校验(CRC)由两个字节组成,关于它的值见ISO/IEC 3309


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多