890 likes | 1.1k Views
第四章、数据校验和防碰撞算法. 在 RFID 系统中,数据传输的完整性存在两个方面的问题:一是外界的各种干扰可能使数据传输产生错误,二是多个应答器同时占用信道使发送数据产生碰撞。 分别运用数据检验(差错检测)和防碰撞算法可以分别解决这两个问题。. 4.1 差错检测. 当数字信号在 RFID 系统中传输时,由于系统特性不理想和信道中有噪声干扰,信号的波形会产生失真,在接收判断时可能误判而造成误码,最终导致传输错误。因此, RFID 系统中必须具有差错控制功能。 在数字通信系统中,利用检纠错码进行差错控制的方法有 3 种: 反馈重发 (ARQ) ;
E N D
第四章、数据校验和防碰撞算法 在RFID系统中,数据传输的完整性存在两个方面的问题:一是外界的各种干扰可能使数据传输产生错误,二是多个应答器同时占用信道使发送数据产生碰撞。 分别运用数据检验(差错检测)和防碰撞算法可以分别解决这两个问题。
4.1 差错检测 • 当数字信号在RFID系统中传输时,由于系统特性不理想和信道中有噪声干扰,信号的波形会产生失真,在接收判断时可能误判而造成误码,最终导致传输错误。因此,RFID系统中必须具有差错控制功能。 • 在数字通信系统中,利用检纠错码进行差错控制的方法有3种: • 反馈重发(ARQ); • 前向纠错( FEC); • 混合纠错(HEC)。
(1)反馈重发(ARQ) • 在ARQ方法中,发送端需要在得到接收端正确收到所发信息码元(通常以帧的形式发送)的确认信息后,才能认为发送成功,因此该方法需要反馈信道。 • ARQ有两种方式:停一等方式和连续工作方式。 • (2)前向纠错(FEC) • 在FEC方法中,接收端通过纠错解码自动纠正传输中出现的差错,所以该方法不需要重传。 • 这种方法需要采用具有很强纠错能力的编码技术,其典型应用是数字电视的地面广播。 • (3)混合纠错(HEC) • HEC方法是ARQ和FEC的结合,其设计思想是对出现的错误尽量纠正,纠正不了则需要通过重发来消除差错。
一、奇偶检验码 • 检验码中最简单的是奇偶检验码,它是在数据后面加上一个奇偶位(Parity Bit)的编码。 • 奇检验时,若字节的数据位中1的个数为奇数,则奇偶检验位的值为0,反之为1; • 偶检验时,若字节的数据位中1的个数为奇数,则奇偶检验位的值为1,反之为0。 • 例如,当1011 0101通过在末尾加一位, • 以偶检验方式传送时,就变成了1011 01011; • 以奇检验方式传送时,就变成了1011 01010。 • 奇偶检验,它只能检测单比特差错,检测错误的能力低。
二、CRC码 • CRC码(循环冗余码)具有较强的检错能力,且硬件实现简单,因而在RFID中获得了广泛的应用。 • (1)算法步骤 • CRC码是基于多项式的编码技术。在多项式编码中,将信息位串看成阶次从 到 的信息多项式M(X)的系数序列,多项式M(X)的阶次为k-1。 • 在计算CRC码时,发送方和接收方必须采用一个共同的生成多项式G(X),G(X)的阶次应低于M(X),且最高和最低阶的系数为1。 • 在此基础上,CRC码的算法步骤为: ①将k位信息写成k-1阶多项式M(X); ②设生成多项式G(X)的阶为r; ③用模2除法计算 ,获得余数多项式R(X); ④用模2减法求得传送多项T(X), ,则T(X)多项式系数序列的前k位为信息位,后r位为检验位,总位数n=k+ r 。
(2)检验原理 • 因为T(X)一定能被G(X)模2整除,所以判断接收到的T(X)能否被G(X)整除,则可以知道在传输过程中是否出现错码。当采用循环移位寄存器实现CRC码计算时,应注意收、发双方的循环移位寄存器的初始值应相同 。 • (3)编码标准 • CRC的优点是识别错误的可靠性较好,且只需要少量的操作就可以实现。 • 16位的CRC码可适用于检验4 KB长数据帧的数据完整性,而在RFID系统中,传输的数据帧明显地比4 KB短,因此除了16位的CRC码外,还可以使用12位(甚至5位)的CRC码。
以下3个生成多项式已成为国际标准: • CRC-12 • CRC-16 • CRC-CCITT • 在RFID标准ISO/IEC 14443中,采用CRC-CCITT的生成多项式。但应注意的是: • 该标准中TYPE A采用CRC-A,计算时循环移位寄存器的初始值为6363H; TYPE B采用CRC-B,循环移位寄存器的初始值为FFFFH。
4.2 防碰撞算法 • 一、有关概念 • RFID系统在工作时,可能会有一个以上的应答器同时处在阅读器的作用范围内。这样,如果有两个或两个以上的应答器同时发送数据,那么就会出现通信冲突,产生数据相互的干扰,即碰撞。 • 有时也可能出现多个应答器处在多个阅读器的工作范围之内,它们之间的数据通信也会引起数据干扰,不过一般很少考虑这种情况。 • 为了防止碰撞的产生,RFID系统中需要采取相应的技术措施来解决碰撞(冲突)问题,这些措施称为防碰撞(冲突)协议。
防碰撞协议由防碰撞算法( Anti-collision Algorithms)和有关命令来实现。 • RFID系统中存在的通信形式一般有3种: • ①无线广播,即在一个阅读器的阅读范围内存在多个应答器,阅读器发出的数据流同时被多个应答器接收; • ②多路存取,即在阅读器的作用范围内有多个应答器同时传输数据给阅读器; • ③多个阅读器同时给多个应答器发送数据。 • 在RFID系统中经常遇到的是“多路存取”这种通信方式。
在无线通信技术中,多路存取的解决方法有4种:在无线通信技术中,多路存取的解决方法有4种: • 空分多址(Space Division MultipleAccess,SDMA) • 频分多址(Frequency Division Multiple Access,FDMA) • 码分多址(CodeDivision Multiple Access,CDMA) • 时分多址(Time Division Multiple Access,TDMA) • 在RFID系统中,一般采用时分多址法来解决碰撞。TDMA是一种把整个可供使用的通路容量按时间分配给多个用户的技术。
在RFID系统中,多路存取有以下特征。 • ①阅读器和应答器之间数据包总的传输时间由数据包的大小和比特率决定,传播延时可忽略不计。 • ②RFID系统可能会出现多个应答器,并且它们的数量是动态变化的,因为应答器有可能随时超出或进入阅读器的作用范围。 • ③应答器在没有被阅读器激活的情况下,不能和阅读器进行通信。对于RFID系统,这种主从关系是唯一的,一旦应答器被识别,就可以和阅读器以点对点的模式进行通信。 • ④相对于稳定方式的多路存取系统,RFID系统的仲裁通信过程是短暂的过程。
防碰撞算法利用多路存取技术,使RFID系统中阅读器与应答器之间的数据能够完整地传输。在很多应用中,系统的性能很大程度上取决于系统的防碰撞算法。防碰撞算法利用多路存取技术,使RFID系统中阅读器与应答器之间的数据能够完整地传输。在很多应用中,系统的性能很大程度上取决于系统的防碰撞算法。 • 二、ALOHA算法ALOHA是一种时分多址存取方式,它采用随机多址方式。相关研究始于1968年,最初由美国夏威夷大学应用于地面网络,1973年应用于卫星通信系统。
ALOHA(阿洛哈,或阿罗哈)是世界上最早的无线电计算机通信网。它是1968年美国夏威夷大学的一项研究计划的名字。70年代初研制成功一种使用无线广播技术的分组交换计算机网络,也是最早最基本的无线数据通信协议。取名ALOHA,是夏威夷人表示致意的问候语,这项研究计划的目的是要解决夏威夷群岛之间的通信问题。Aloha网络可以使分散在各岛的多个用户通过无线电信道来使用中心计算机,从而实现一点到多点的数据通信。ALOHA(阿洛哈,或阿罗哈)是世界上最早的无线电计算机通信网。它是1968年美国夏威夷大学的一项研究计划的名字。70年代初研制成功一种使用无线广播技术的分组交换计算机网络,也是最早最基本的无线数据通信协议。取名ALOHA,是夏威夷人表示致意的问候语,这项研究计划的目的是要解决夏威夷群岛之间的通信问题。Aloha网络可以使分散在各岛的多个用户通过无线电信道来使用中心计算机,从而实现一点到多点的数据通信。
1.纯ALOHA算法纯ALOHA算法的基本思想很简单,即只要有数据待发,就可以发送。 • 在RFID系统中,纯ALOHA算法仅用于只读系统。 • 当应答器进入射频能量场被激活以后(此时称为工作应答器),它就发送存储在应答器中的数据,且这些数据在一个周期性的循环中不断发送,直至应答器离开射频能量场。 • 为减小出现碰撞的概率,数据传输时间只是重复周期的较少部分。
帧时——表示发送一个标准长度的帧所需的时间,也就是帧长度除以数据传输速率(bps)。帧时——表示发送一个标准长度的帧所需的时间,也就是帧长度除以数据传输速率(bps)。 • 帧产生率G——为每帧时内新、旧帧传送数的平均值,即信道的载荷。 • 信道吞吐率S——指在单位时间内通过某通信信道或某个节点成功交付数据的平均速率(bps)。 • 纯ALOHA算法的信道效率是不高的。数学分析指出,纯ALOHA算法的信道吞吐率S与帧产生率G之间的关系为: • 对上式求导,可以得出当G= 0.5时,最大吞吐率:
发送帧不会产生碰撞(即发送成功)的概率P为: • 上式表明,G越大,则发送成功的概率越小。 • 显然,帧时越长,应答器数量越多,则G越大,发送成功的概率就越低。 2.时隙ALOHA算法 • 1972年,Roberts发表了一种能把ALOHA系统利用率提高一倍的方法,即时隙ALOHA( Slotted ALOHA)算法。
时隙ALOHA算法的思想是,把时间分为离散的时间段(时隙),每段时间对应一帧,这种方法必须有全局的时间同步。时隙ALOHA算法的思想是,把时间分为离散的时间段(时隙),每段时间对应一帧,这种方法必须有全局的时间同步。 • 在RFID系统中,所有应答器的同步由阅读器控制,应答器只在规定的同步时隙开始才传送其数据帧,并在该时隙内完成传送。 • 时隙ALOHA算法的信道吞吐率S和帧产生率G的关系为: • 当G=1时,吞吐量S为最大值1/e,约为0.368,是纯ALOHA算法的两倍。
在时隙ALOHA算法中,所需的时隙数量N对信道的传输性能有很大影响:在时隙ALOHA算法中,所需的时隙数量N对信道的传输性能有很大影响: • 如果有较多应答器处于阅读器的作用范围内,而时隙数有限,再加之还有另外进入的应答器,则系统的吞吐率会很快下降。在最不利时,没有一个应答器能单独处于一个时隙中而发送成功,这时就需要进行调整以便有更多的时隙可以使用。 • 如果准备了较多的时隙,但工作的应答器较少,则会造成传输效率降低。 • 因此,在时隙ALOHA算法的基础上,人们还发展了动态时隙ALOHA算法,该算法可动态地调整时隙的数量。
动态时隙ALOHA算法的基本原理是: • 阅读器在等待状态中的循环时隙段内发送请求命令,该命令使工作应答器同步,然后提供1或2个时隙给工作应答器使用,工作应答器将选择自己的传送时隙,如果在这1或2个时隙内有较多应答器发生了数据碰撞,则阅读器就用下一个请求命令增加可使用的时隙数(如4,8,…),直至不出现碰撞为止。
三、二进制树型搜索算法 • 二进制树型搜索算法是时分多址法,按照其工作方式可分为下面两种。 • 1.基于序列号的方法在这种方法中,每个应答器拥有一个唯一的序列号(即唯一标识符,UID),阅读器和多个应答器之间按规定的相互握手(命令和应答)的顺序进行通信,以实现在较大的应答器组中选出所需的应答器。 • 该算法要求阅读器能准确辨别碰撞的位置(位检测),算法的原理和具体实现(即协议)请见4.3节。
2.基于随机数和时隙的方法该方法采用递归的工作方式,遇到碰撞就进行分支,成为两个子集。这些分支越来越小,直到最后分支下面只有一个信息包或者为空。2.基于随机数和时隙的方法该方法采用递归的工作方式,遇到碰撞就进行分支,成为两个子集。这些分支越来越小,直到最后分支下面只有一个信息包或者为空。 • 分支的方法如同抛一枚硬币一样,将这些信息包随机地分为两个分支,在第一个分支里,是“抛正面”(取值为0)的信息包。 • 在接下来的时隙内,主要解决这些信息包所发生的碰撞。如果再次发生碰撞,则继续再随机地分为两个分支。 • 该过程不断重复,直到某个时隙为空或者成功地完成一次数据传输,然后返回上一个分支。 • 这个过程遵循“先入后出”(First-in Last-out)的原则,等到所有第一个分支的信息包都成功传输后,再来传输第二个分支,也就是“抛反面”(取值为1)的信息包。
图4.5所示为四层(m=4)树算法的原理示意图。 • 每个顶点表示一个时隙,每个顶点为后面接着的过程产生子集。如果该顶点包含的信息包个数大于或等于2,那么就产生碰撞,于是就产生两个新的分支。 • 算法从树的根部开始,在解决这些碰撞的过程中,假设没有新的信息包到达。 • 第一次碰撞在时隙1发生,开始并不知道一共有多少个信息包产生碰撞,每个信息包好像抛硬币一样,抛0的在时隙2内传输。 • 第二次发生碰撞是在时隙2内,在本例中,两个信息包都是抛1,以致时隙3为空。在时隙4内,时隙2中抛1的两个信息包又一次发生碰撞和分支,抛0的信息包在时隙5内成功传输,抛1的信息包在时隙6内成功传输,这样所有在时隙1内抛0的信息包之间的碰撞得以解决。
在树根时抛1的信息包在时隙7内开始发送信息,新的碰撞发生。在树根时抛1的信息包在时隙7内开始发送信息,新的碰撞发生。 • 这里假设在树根时抛1的信息包有两个,而且由于两个都是抛0,所以在时隙8内再次发生碰撞并再一次进行分割,抛0的在时隙9内传输,抛1的在时隙10内传输。 • 在时隙7内抛1的实际上没有信息包,所以时隙11为空闲 。 • 只有当所有发生碰撞的信息包都被成功地识别和传输后,碰撞问题才得以解决。从开始碰撞产生,到所有碰撞问题得以解决的这段时间称为解决碰撞的时间间隔( Collision Resolution Interval,CRI)。 • 在本例中,CRI的长度为11个时隙。
二进制树型算法是在碰撞发生后如何解决碰撞问题的一种算法。二进制树型算法是在碰撞发生后如何解决碰撞问题的一种算法。 • 需要指出的是,当碰撞正在进行时,新加入这个系统的信息包禁止传输信息,直到该系统的碰撞问题得以解决,并且所有信息包成功发送完后,才能进行新信息包的传输。 • 例如,在上例中,在时隙1到时隙11之间,新加入这个系统的信息包,只有在时隙12才开始传输。
二进制树型算法也可以按照堆栈的理论进行描述:二进制树型算法也可以按照堆栈的理论进行描述: • 在每个时隙,信息包堆栈不断地弹出与压栈,在栈顶的信息包最先传输。当发生碰撞时,先把抛1的信息包压栈,再把抛0的信息包压栈,这样抛0的信息包处在栈顶,在下个时隙弹出能进行传输。 • 当完成一次成功传输或者出现一次空闲时隙的时候,栈顶的信息包被继续弹出,依次进行发送。 • 显然,当堆栈为空时,即碰撞问题得以解决,所有信息包成功传输。 • 接下来,把新到达这个系统的信息包压栈,操作过程同前面的一样。
4.3 ISO/IEC 14443标准中的防碰撞协议 • 在ISO/IEC 14443标准中,阅读器称为PCD (Proximity Coupling Device),应答器称为PICC (Proximity IC Card)。 • 当两个或两个以上的PICC同时进入射频区域时,它们都接收到PCD发出的查询命令,根据PICC上的控制逻辑,会同时发送响应,这样造成了PICC之间的信号冲突,PCD无法检测到正确的信号,即发生了碰撞。 • 因此,必须在PICC和PCD之间建立防碰撞协议,以使PCD能从多个PICC中检测出一个PICC。
ISO/IEC 14443-3标准中提供了A型(TYPE A)和B型(TYPE B)两种不同的防碰撞协议。 • TYPE A采用位碰撞检测的二进制树型搜索算法的防碰撞协议。 TYPE B是基于时隙匹配的动态时隙算法来实现防碰撞。下面分别介绍这两种防碰撞协议。 • 一、 TYPE A的防碰撞协议 • 1.帧结构 • TYPE A的帧有3种类型:短帧、标准帧和面向比特的防碰撞帧。 • (1)短帧 • 短帧的结构如图4.6所示,它由起始位S、7位数据位和通信结束位E构成。 • (2)标准帧标准帧的结构如图4.7所示,帧中每一个数据字节后有一个奇检验位P。
(3)面向比特的防碰撞帧 • 该帧仅用于防碰撞循环,它是7个数据字节组成的标准帧。 • 在防碰撞过程中,它被分裂为两部分,第1部分从PCD发送到PICC,第2部分从PICC发送到PCD。 • 第1部分数据的最大长度为55位,最小长度为16位,第1部分和第2部分的总长度为56位。 • 这两部分的分裂有2种情况,如图4.8所示。 • 第1种情况是在完整的字节之后分开,在完整字节后加检验位。 • 第2种情况是在字节当中分开,在第1部分分开的位后不加检验位,并且对于分裂的字节,PCD对第2部分的第1个检验位不予检查。
2.命令集 • (1) REQA / WUPA命令 • 这两个命令为短帧。 • REQA命令的编码为26H(高半字节取3位), • WUPA命令的编码为52H(高半字节取3位)。 • (2) ATQA应答 • PCD发出REQA命令后,处于休闲(Idle)状态的PICC都应同步地以ATQA应答PCD,PCD检测是否有碰撞。 • ATQA的编码结构如表4.1所示。 • ①RFU(备用)位都设置为0。 • ②b8b7编码:00时UID级长为1(CL1),01时级长2(CL2),10时级长为3(CL3),11为备用。( UID,标识符) • ③b5~b1中仅有1位设置成1,表示采用的是比特帧防碰撞方式。
(3) ANTICOLLISION和SELECT命令 PCD接收ATQA应答,PCD和PICC进入防碰撞循环。ANTICOLLISION和SELECT命令的格式如表4.2所示。
①SEL域的编码 • 93H为选择UID CL1,95H为选择UID CL2,97H为选择UID CL3。 • ②NVB(有效位数)域的编码 • 高4位为字节数编码,是PCD发送的字节数,包括SEL和NVB,因此字节数最小为2,最大为7,编码范围为0010~0111。 • 低4位表示命令的非完整字节最后一位的位数,编码0000~0111对应的位数为0~7位,位数为0表示没有非完整字节。 • SEL和NVB的值指定了在防碰撞循环中分裂的位。 • 若NVB指示其后有40个有效位(NVB=70H),则应添加CRC-A(2字节),该命令为SELECT命令,SELECT命令是标准帧。 • 若NVB指定其后有效位小于40位,则为ANTICOLLISION命令。 • ANTICOLLISION命令是比特防碰撞帧。
③UID CLn • UID CLn为UID的一部分,n为1,2,3。 • ATQA的b8b7表示UID的大小,UID的构成对应于n有4,7或10个字节。 • UID CLn 域为4字节,其结构如表4.3所示,表中的CT为级联标志,编码为88H。 • UID可以是一个固定的唯一序列号,也可以是由PICC动态产生的随机数。 • 当UID CLn为UID CL1时编码如表4.4所示,为UID CL2或UID CL3时编码如表4.5所示。 • ④BCC • BCC是UID CLn的检验字节,是UID CLn的4个字节的异或。
(4) SAK应答 • PCD发送SELECT命令后,与40位UID CLn匹配的PICC以SAK作为应答。 • SAK为1字节,它的结构和编码如表4.6所示。 • b3位为Cascade位。 • b3=1表示UID不完整,还有未被确认部分; • b3=0表示UID己完整。当b3=0时,b6 =1表示PICC依照ISO/IEC 14443-4标准的传输协议,b6=0表示传输协议不遵守ISO/IEC 14443-4标准。 • SAK的其他位为RFU(备用),置0。 • SAK后附加2字节CRC-A,它以标准帧的形式传送。
(5) HALT命令 • HALT命令为在2字节(0050H)的命令码后跟CRC-A(共4字节)的标准帧。 • 3.PICC的状态 • TYPE A型PICC的状态及转换图如图4.9所示。 • (1) Power-off(断电)状态 • 在任何情况下,PICC离开PCD有效作用范围即进入Power-off状态。 • (2) Idle(休闲)状态 • 此时PICC加电,能对已调制信号解调,并可识别来自PCD的REQA命令。
(3) Ready(就绪)状态 • 在REQA或WUPA命令作用下PICC进入Ready状态,此时进入防碰撞流程。 • (4) Active(激活)状态 • 在SELECT命令作用下PICC进入Active状态,完成本次应用应进行的操作。 • (5) Halt(停止)状态 • 当在HALT命令或在支持ISO/IEC 14443-4标准的通信协议时,在高层命令DESELECT作用下PICC进入此状态。 • 在Halt状态,PICC接收到WUPA(唤醒)命令后返回Ready状态。
4.防碰撞流程PCD初始化和防碰撞流程如图4.10所示,包括以下步骤。4.防碰撞流程PCD初始化和防碰撞流程如图4.10所示,包括以下步骤。 • (1) PCD选定防碰撞命令SEL的代码为93H,95H或97H,分别对应于UID CL1,UID CL2或UID CL3,即确定UID CLn的n值。 • (2) PCD指定NVB=20H,表示PCD不发出UID CLn的任一部分,而迫使所有在场的PICC发回完整的UID CLn作为应答。 • (3) PCD发送SEL和NVB。 • (4)所有在场的PICC发回完整的UID CLn作为应答。 • (5)如果多于1个PICC发回应答,则说明发生了碰撞;如果不发生碰撞,则可跳过步骤(6)~(10)。
(6) PCD应认出发生第1个碰撞的位置。 • (7) PCD指示NVB值以说明UID CLn的有效位数目,这些有效位是接收到的UID CLn发生碰撞之前的部分,后面再由PCD决定加一位“0”或一位“1”,一般加“1”。 • (8) PCD发送SEL,NVB和有效数据位。 • (9)只有PICC的UID CLn部分与PCD发送的有效数据位内容相等,才发送出UID CLn的其余位。 • (10)如果还有碰撞发生,则重复步骤(6)~(9),最大循环次数为32。 • (11)如果没有再发生碰撞,则PCD指定NVB=70H,表示PCD将发送完整的UID CLn。
(12) PCD发送SEL和NVB,接着发送40位UID CLn,后面是CRC-A检验码。 • (13)与40位UID CLn匹配的PICC,以SAK作为应答。 • (14)如果UID是完整的,则PICC将发送带有Cascade位为“0”的SAK,同时从Ready状态转换到Active(激活)状态。 • (15)如果PCD检查到Cascade位为1的SAK,则将CLn的n值加1,并再次进入防碰撞循环。 • 在图4.10中,仅给出了步骤(1)~(13)
二、TYPE B的防碰撞协议 • TYPE B的防碰撞协议为通用的时隙ALOHA算法,其PICC状态转换与防碰撞流程如图4.11所示。 • 1.命令集 • (1) REQBIWUPB命令 • REQB/WUPB命令的结构如表4.7所示。
①Apf前缀 • Apf= 05H= 00000101b • ②AFI(应用族标识符) • AFI代表由PCD指定的应用类型,它的作用是在PICC应答ATQB之前预选PICC。 • AFI的编码如表4.8所示。 • AFI编码为1字节,其高4位用于编码所有的应用族或某一类应用族,低4位用于编码应用子族。 • 当AFI=00H时,所有的PICC满足AFI匹配条件。 • 当AFI匹配且PARAM域中M编码的Nmax=1时,PICC应答REQB / WUPB命令。 • 当AFI匹配但M编码的Nmax≠1时,PICC要选择随机时间片N(N在1~Nmax之间),若N=1则立即应答,若N>1则要等待SLOT-MARKER命令来匹配时间片。
③PARAM(参数parameter) • PARAM编码为8位,高4位备用。 • b4为REQB/WUPB位,b4 =0时定义为REQB命令,PICC在Idle状态和Ready状态应处理应答REQB命令; • b4=1时定义为WUPB命令,PICC在Idle状态、Ready状态和Halt状态应处理应答WUPB命令。 • M为低3位,其编码定义随机时间片N的范围,Nmax=1,2,4,8,16 (M=000,001,010,011,100,而101,110和111为备用)。 • PICC收到此命令后产生的随机时间片N应在1~Nmax之间。