首页> 中国专利> 同相移位方式的制约竞争计数码电路

同相移位方式的制约竞争计数码电路

摘要

本发明公开一种同相移位方式的制约竞争计数码电路,包含16位移位寄存器(A)、16位移位寄存器(B)、4位码输出寄存器(C)、初始化预置开关(D)、初始化预置开关(E),移位寄存器(A、B)的最高位和最低位首尾相接,移位寄存器(A、B)分别被初始化预置开关(D、E)预置为固定的特征序列,计数脉冲接16位寄存器的移位控制端口(CLK),移位寄存器(B、A)的第0位分别接4位码输出锁存器的低两位,移位寄存器(B、A)的第12位,分别接4位码输出锁存器的高两位。经过初始化预置后,输入脉冲,通过同相移位可以实现计数,并输出制约竞争计数码。

著录项

  • 公开/公告号CN1921316A

    专利类型发明专利

  • 公开/公告日2007-02-28

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN200610041210.0

  • 发明设计人 李冰;

    申请日2006-07-28

  • 分类号H03M7/16(20060101);H03M7/14(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人陆志斌

  • 地址 214028 江苏省无锡市新锡路8号

  • 入库时间 2023-12-17 18:21:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-09-18

    未缴年费专利权终止 IPC(主分类):H03M7/16 授权公告日:20090603 终止日期:20120728 申请日:20060728

    专利权的终止

  • 2009-06-03

    授权

    授权

  • 2007-04-25

    实质审查的生效

    实质审查的生效

  • 2007-02-28

    公开

    公开

说明书

技术领域

本发明涉及一种制约竞争的16进制编码的同相移位方式的制约竞争计数码电路。

背景技术

目前,公知的16进制编码是8421码,这是一组自然二进制基础上的权重码,8421码是数据中的半字节,可以方便的组成字节(Byte)、字(Word)等现代信息技术的基础数据格式,可以方便的用于逻辑电路的计数、计算、存储和交换。但是,8421码是一组16进制循环码,其编码相邻位间转换时,有两位以上的数据需要同时发生变化的机会。用在计数方式时,在某些时候,例如下表从16进制数的7(对应的8421码为0111)变为8(对应的8421码为1000)时,8421码的4位二进制数据均发生跳变,多位同时变化带来的竞争对数据的可靠性有影响,增加了数据出错的可能性。由下表可以发现8421码发生2位以上同时变化的相邻码字共计8次,分别为1-2,3-4,5-6,7-8,9-A,B-C,D-E,F-0。多位同时变化带来的竞争,有可能导致数据的不确定性。

  16进制数  8421码  格雷码  bit3 bit2 bit1 bit0  bit3 bit2 bit1 bit0  0  0000  0000  1  0001  0001  2  0010  0011  3  0011  0010  4  0100  0110  5  0101  0111  6  0110  0101  7  0111  0100  8  1000  1100  9  1001  1101  A  1010  1111  B  1011  1110
  C  1100  1010  D  1101  1011  E  1110  1001  F  1111  1000

现有技术中的格雷码,主要是一种制约竞争编码,约束了每个码字之间每次只允许一位发生变化,但是,由于格雷码不是一种权重码,在用于计数时,很不方便,没有规律性,即缺乏特征序列。若用于计数,对四个序列均要设置相应的寄存器,所以实现的电路比较复杂。

发明内容

本发明的目的在于解决上述问题,提供一种同相移位方式的制约竞争计数码电路,它能够限制两个相邻编码组之间转换时两位以上的数据跳变,提高数据的可靠性。

本发明采用如下技术方案解决技术问题:

一种同相移位方式的制约竞争计数码电路,包含16位移位寄存器A、16位移位寄存器B、4位码输出寄存器C、初始化预置开关D、初始化预置开关E,移位寄存器A的最高位和最低位首尾相接,移位寄存器B的最高位和最低位首尾相接,脉冲输入信号分别接移位寄存器A和移位寄存器B的CLK移位控制端口,移位寄存器A被初始化预置开关D预置为固定的特征序列0111111110000000,移位寄存器B被初始化预置开关E预置为固定的特征序列0001110011100011,移位寄存器B并行输出的由低到高的第12位和码输出寄存器C的数据最高输入位d3连接,移位寄存器A并行输出的由低位到高位的第12位和码输出寄存器C的数据次高位d2连接,移位寄存器B并行输出的由低位到高位的第0位和码输出寄存器C的数据次低位d1连接,移位寄存器A并行输出的由低位到高位的第0位和码输出寄存器C的数据最低位d0连接,由码输出寄存器C的输出控制端控制输出由高位d3到低位d0的4位制约竞争计数码。

本发明的编码原理如下,首先构造一组制约竞争编码,其次根据计数码的特点,构造其特征序列,以此可以简化电路的设计,所以,一种制约竞争计数码,从高位到低位的排列为bit3 bit2 bit1 bit0,构成十六进制数0~F的循环计数,从0~F的bit0序列为[bit0]={0111,1111,1000,0000}(以下简称B0),bit1序列为[bit1]={0001,1100,1110,0011}(以下简称B1),bit2序列由bit0按0~F顺序循环下移4位构成[bit2]={0000,0111,1111,1000}(以下简称B2),bit3序列由bit1按0~F顺序循环下移4位构成[bit3]={0011,0001,1100,1110}(以下简称B3)。制约竞争计数码与8421码的比较如下表所示:

  16进制数  8421码  制约竞争计数码  B3B2B1B0  B3B2B1B0  0  0000  0000  1  0001  0001  2  0010  1001  3  0011  1011  4  0100  0011  5  0101  0111  6  0110  0101  7  0111  1101  8  1000  1111  9  1001  1110  A  1010  0110  B  1011  0100  C  1100  1100  D  1101  1000  E  1110  1010  F  1111  0010

由上表可知,本发明的制约竞争计数码的显著特点是对计数方式加以约束,每次计数只允许1bit发生变化(零竞争),从根本上限制了多位同时变化有可能带来的数据的不确定性。此制约竞争码构造了两组特征序列,即B0、B1序列,B2、B3序列可以从B0、B1序列移位得到,构成的编码具有固定的顺序关系,适合运用循环移位特征序列的方式来实现计数,并由特征序列得到完整编码。

本编码特征序列为B0=0111111110000000,B1=0001110011100011,特征序列从左到右分别按照第0位到第15位的从低位到高位的排列。

复位后,对应计数码0,若需要递增计数,则循环左移5次后,B0=1111000000001111,B1=1001110001100011,则取B1[12]=0,B0[12]=1,B1[0]=1,B0[0]=1,构成制约竞争计数码0111,对应于计数码5。若再要递增计数一次,则循环左移1次后,B0=1110000000011111,B1=0011100011000111,则取B1[12]=0,B0[12]=1,B1[0]=0,B0[0]=1,构成制约竞争计数码0101,对应于计数码6。

复位后,对应计数码0,若需要递减计数,则循环右移5次后,B0=0000000111111110,B1=0001100011100111,则取B1[12]=0,B0[12]=1,B1[0]=0,B0[0]=0,构成制约竞争计数码0100,对应于计数码B。若再要递减计数一次,则循环右移1次后,B0=0000000011111111,B1=1000110001110011,则取B1[12]=0,B0[12]=1,B1[0]=1,B0[0]=0,构成制约竞争计数码0110,对应于计数码A。

上述制约竞争计数码与格雷码的比较如下表所示:

  16进制数  格雷码  制约竞争计数码  B3B2B1B0  B3B2B1B0  0  0000  0000  1  0001  0001  2  0011  1001  3  0010  1011  4  0110  0011  5  0111  0111  6  0101  0101  7  0100  1101  8  1100  1111  9  1101  1110  A  1111  0110  B  1110  0100  C  1010  1100  D  1011  1000  E  1001  1010  F  1000  0010

与现有技术相比,本发明具有以下优点:

由上述制约竞争计数码与格雷码的比较结果可知,制约竞争计数码由B0和B1两个基本序列构成,B2、B3分别是B0、B1循环下移4位形成的,为从前面的实例中,可以看出这个特点非常适合实现计数方式的编码。本发明的制约竞争计数码既具有制约竞争编码的特点,即每次只允许一位数据发生变化,同时又具有适合计数方式的编码结构,可以采用特征序列的循环移位实现递增和递减的计数。

附图说明

图1是制约竞争计数码电路原理框图。

图2是采用16位移位寄存器方式实现的制约竞争计数码电路图。

图3是制约竞争计数码电路的寄存器级实现方式的电路图。

具体实施方式

如图1所示,一种同相移位方式的制约竞争计数码电路,包含16位移位寄存器A、16位移位寄存器B、4位码输出寄存器C、初始化预置开关D、初始化预置开关E,移位寄存器A的最高位和最低位首尾相接,移位寄存器B的最高位和最低位首尾相接,脉冲输入信号分别接移位寄存器A和移位寄存器B的CLK移位控制端口,移位寄存器A被初始化预置开关D预置为固定的特征序列0111111110000000,移位寄存器B被初始化预置开关E预置为固定的特征序列0001110011100011,移位寄存器B并行输出的由低到高的第12位和码输出寄存器C的数据最高输入位d3连接,移位寄存器A并行输出的由低位到高位的第12位和码输出寄存器C的数据次高位d2连接,移位寄存器B并行输出的由低位到高位的第0位和码输出寄存器C的数据次低位d1连接,移位寄存器A并行输出的由低位到高位的第0位和码输出寄存器C的数据最低位d0连接,由码输出寄存器C的输出控制端控制输出由高位d3到低位d0的4位制约竞争计数码。

如图2所示,同相移位方式的制约竞争计数码电路包含移位寄存器1、移位寄存器2、移位寄存器3、移位寄存器4及锁存器5,特征序列初始化预置开关6,特征序列初始化预置开关7,移位寄存器1、2、3、4的串行输入端Ax、Bx都分别连结在一起,移位寄存器1的串行输入端Ax通过特征序列初始化预置开关6的一端将由移位寄存器1和移位寄存器2构成的上述16位移位寄存器A的16位数据通过特征序列的反序列0000000111111110的逐位串行输入预置为特征序列011111111000000,移位寄存器1的并行输出最高位端Q7接移位寄存器2的串行输入端Ax,移位寄存器2的最高位端Q7通过特征序列初始化预置开关6的另一端接移位寄存器1的串行输入端Ax,移位寄存器3的串行输入端Ax通过特征序列初始化预置开关7的一端将由移位寄存器3和移位寄存器4构成的上述16位移位寄存器B的16位数据通过特征序列的反序列1100011100111000的逐位串行输入预置为特征序列0001110011100011,移位寄存器3的并行输出最高位端Q7接移位寄存器4的串行输入端Ax,移位寄存器4的并行输出的最高位端Q7通过特征序列初始化预置开关7的另一端接移位寄存器3的串行输入端Ax,移位寄存器1、2、3、4的时钟端CLK全部连结在一起,同时接脉冲计数输入端,各个移位寄存器1、2、3、4的复位端MR也全部连结在一起接高电位,同时接锁存器5的清零端CLR,移位寄存器1的并行输出端Q0接锁存器5的数据输入端D1,移位寄存器2的并行输出端Q4接锁存器5的数据输入端D3,移位寄存器3的并行输出端Q0接锁存器5的数据输入端D2,移位寄存器4的并行输出端Q4接锁存器5的数据输入端D4,锁存器5的输出控制端C1和C2端连结在一起,其输出端Q4、Q3、Q2、Q1由高到低地排列输出4位的制约竞争计数码d3、d2、d1、d0。

如图3所示,同相移位方式的制约竞争计数码电路包含由两组16位锁存器、两组16位预置开关、以及两组两相16位移位控制开关构成的两组各16个数据锁存单元,每个数据锁存单元包含一个预置开关、一个时钟开关和一个锁存器,锁存器由两个首尾相接的倒相器组成,锁存器的输入端分别接预置开关的输入端和时钟开关的输入端,锁存器的输出端接到下一个数据锁存单元的时钟开关的输入端,依次顺序连接成第1~16个数据锁存单元,第16个数据锁存单元的输出端接到第1个数据锁存单元的时钟开关输入端构成第一组上述16位移位寄存器A,16位两相移位开关分别控制的传输门的控制端各自连结在一起作为脉冲的输入端,第二组上述16位移位寄存器B的构成方式和第一组完全相同,第一组16位移位寄存器A的预置开关初始化为特征序列0111111110000000,第二组16位移位寄存器B的预置开关初始化为特征序列0001110011100011,码的输出是由第二组16位移位寄存器B的第12个数据锁存单元LB12、第一组16位移位寄存器A的第12个数据锁存单元LA12、第二组16位移位寄存器B的第0个数据锁存单元LB0、第一组位移位寄存器A的第0个数据锁存单元LA0组成,由高到低地排列输出4位的制约竞争计数码d3、d2、d1、d0。

每一个计数脉冲到来时,两个16位移位寄存器同步循环右移一位为递减计数方式;每一个计数脉冲到来时,两个16位移位寄存器同步循环左移一位为递增计数方式。下面结合实施例对本发明进一步说明。下表1是制约竞争计数编码表。

                    表1 制约竞争计数编码表

由此表1可总结本编码的特点:制约竞争码从高位到低位的排列为bit3-bit0,并且由0~F构成循环计数。制约竞争码的bit0、bit1是基本序列,从0~F的bit0序列为[bit0]={0111,1111,1000,0000},bit1序列为[bit1]={0001,1100,1110,0011},bit2序列由bit0按0-F顺序循环下移4位构成[bit2]={0000,0111,1111,1000},bit3序列由bit1按0-F顺序循环下移4位构成[bit3]={0011,0001,1100,1110}。因此,Bit0和bit1序列是本制约竞争计数编码的特征序列。

下表2是制约竞争计数码的初始值表,由此表的初始值来通过电路预置开关设置电路寄存器的特征序列值:BIT0和BIT1分别对应两个16位寄存器的特征序列设定值。

                    表2 制约竞争计数码的初始值表

下表3是实施制约竞争计数编码电路原理表,由此表的寄存器SHTR-BIT0和SHTR-BIT1按计数脉冲每次同时循环右移(或左移)一位来完成制约竞争计数码的计数,由SHTR的BIT1[12]BIT0[12]BIT1[0]BIT0[0]构成制约竞争计数编码(RRCC)的输出结果。

            表3 实施制约竞争计数编码电路原理表

在计数电路中的前级采用制约竞争计数编码的构成零竞争的计数电路。

在用于计数电路时,制约竞争计数码由其特征序列对应的两组16位移位寄存器构成,分别为SHT-bit0和SHT-bit1,两组移位寄存器(SHTR)初始值分别置为[SHTR-bit0]={0111,1111,1000,0000},[SHTR-bit1]={0001,1100,1110,0011}。每一个计数脉冲,SHTR-bit0和SHTR-bit1同步循环下移(右移)一位为递减计数;每一个计数脉冲,SHTR-bit0和SHTR-bit1同步循环上移(左移)一位为递增计数。

在图1中,表2和表3中的SHTR-BIT0和SHTR-1BIT1对应图1中的移位寄存器A和移位寄存器B,其初始值就是特征序列,通过预置开关D、E完成。

在图2中,表2和表3中的SHTR-BIT0和SHTR-1BIT1对应图2中的寄存器1、2和寄存器3、4,其初始值就是特征序列,通过预置开关6、7完成。

在图3中,表2和表3中的SHTR-BIT0和SHTR-1BIT1对应图3中的寄存器A和寄存器B,其初始值就是特征序列,通过预置开关K的控制来完成。

需要输出制约竞争计数码时,分别取SHTR-bit0[0]、SHTR-bit1[0]、SHTR-bit0[12]、SHTR-bit1[12]构成的制约竞争计数码bit0、bit1、bit2、bit3即可。

在图1中,表3中的SHTR-bit1[12]、SHTR-bit0[12]、SHTR-bit1[0]、SHTR-bit0[0]对应图1中的码输出寄存器C的码输出d3、d2、d1、d0。

在图2中,表3中的SHTR-bit1[12]、SHTR-bit0[12]、SHTR-bit1[0]、SHTR-bit0[0]对应图2中的码输出锁存器5的码输出d3、d2、d1、d0。

在图3中,表3中的SHTR-bit1[12]、SHTR-bit0[12]、SHTR-bit1[0]、SHTR-bit0[0]对应图3中,分别由锁存器LB12、LA12、LB0、LA0输出的码输出d3、d2、d1、d0。

(实施例1)

如图2所示,复位后,移位寄存器1的串行输入端Ax通过特征序列初始化预置开关6的一端将特征序列的反序列0000000111111110逐个串行输入移位寄存器1和移位寄存器2构成的16位寄存器组A,将其数据预置为特征序列0111111110000000,移位寄存器3的串行输入端Ax通过特征序列初始化预置开关7的一端将特征序列的反序列1100011100111000逐个串行输入移位寄存器3和移位寄存器4构成的16位寄存器组B,将其数据预置为特征序列0001110011100011,特征序列的顺序从低位0到高位16排列,此时锁存器5的码输出为0000,即为制约竞争计数码的0。

若需要递增计数,将移位寄存器循环左移。移位寄存器1、2、3、4被开关预置后,当CLK端出现第一个脉冲时,移位寄存器1和移位寄存器2的16位数据循环左移一次,变为1111111100000000,移位寄存器3和4的16位数据循环左移一次,变为0011100111000110,此时锁存器5的码输出为0001,即为制约竞争计数码的1;当CLK端出现第二个脉冲时,移位寄存器1和移位寄存器2的16位数据循环左移一次,变为1111111000000001,移位寄存器3和4的16位数据循环左移一次,变为0111001110001100,此时锁存器5的码输出为1001,即为制约竞争计数码的2;当CLK端出现第三个脉冲时,移位寄存器1和移位寄存器2的16位数据循环左移一次,变为1111110000000011,移位寄存器3和4的16位数据循环左移一次,变为1110011100011000,此时锁存器5的码输出为1011,即为制约竞争计数码的3,……依此进行下去,直到CLK端出现第15个脉冲时,移位寄存器1和移位寄存器2的16位数据循环左移一次,变为0011111111000000,移位寄存器3和4的16位数据循环左移一次,变为1000111001110001,此时锁存器5的码输出为0010,即为制约竞争计数码的F,当CLK端出现第16个脉冲时,移位寄存器1和移位寄存器2的16位数据循环左移一次,变为0111111110000000,移位寄存器3和4的16位数据循环左移一次,变为0001110011100011,这和初始被预置开关预置的特征序列完全相同,所以此时锁存器5的码输出为0000,即为制约竞争计数码的0,开始新一轮的计数。

若需要递减计数,则原理与上述的相同,只是移位寄存器循环右移。当CLK端出现第一个脉冲时,移位寄存器1和移位寄存器2的16位数据循环右移一次,变为0011111111000000,移位寄存器3和4的16位数据循环右移一次,变为1000111001110001,此时锁存器5的码输出为0010,即为制约竞争计数码的F;当CLK端出现第二个脉冲时,移位寄存器1和移位寄存器2的16位数据循环右移一次,变为0001111111100000,移位寄存器3和4的16位数据循环右移一次,变为1100011100111000,此时锁存器5的码输出为1010,即为制约竞争计数码的E;当CLK端出现第三个脉冲时,移位寄存器1和移位寄存器2的16位数据循环右移一次,变为0000111111110000,移位寄存器3和4的16位数据循环右移一次,变为0110001110011100,此时锁存器5的码输出为1000,即为制约竞争计数码的D,……依此进行下去,直到CLK端出现第15个脉冲时,移位寄存器1和移位寄存器2的16位数据循环右移一次,变为1111111100000000,移位寄存器3和4的16位数据循环右移一次,变为0011100111000110,此时锁存器5的码输出为0001,即为制约竞争计数码的1,当CLK端出现第16个脉冲时,移位寄存器1和移位寄存器2的16位数据循环右移一次,变为0111111110000000,移位寄存器3和4的16位数据循环右移一次,变为0001110011100011,这和初始被预置开关预置的特征序列完全相同,所以此时锁存器5的码输出为0000,即为制约竞争计数码的0,开始新一轮的计数。

(实施例2)

如图3所示,初始化是通过开启预置开关K使每个锁存单元的预置管开启,移位寄存器组A从LA0~LA15分别预充固定特征序列电位0111111110000000,移位寄存器组B从LB0~LB15分别预充固定特征序列电位0001110011100011,特征序列的顺序为从低位0到高位16的排列,此时锁存器LB12、LA12、LB0、LA0构成的输出码输出d3d2d1d0为0000,即为制约竞争计数码的0。

移位寄存器组A、B的预置管被预置开关K关闭后,若需要递增计数,当CLK端出现第一个脉冲时,移位寄存器组A的16位数据循环左移一次,变为1111111100000000,移位寄存器组B的16位数据循环左移一次,变为0011100111000110,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0001,即为制约竞争计数码的1;当CLK端出现第二个脉冲时,移位寄存器组A的16位数据循环左移一次,变为1111111000000001,移位寄存器组B的16位数据循环左移一次,变为0111001110001100,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为1001,即为制约竞争计数码的2;当CLK端出现第三个脉冲时,移位寄存器组A的16位数据循环左移一次,变为1111110000000011,移位寄存器组B的16位数据循环左移一次,变为1110011100011000,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为1011,即为制约竞争计数码的3,……依此进行下去,直到CLK端出现第15个脉冲时,移位寄存器组A的16位数据循环左移一次,变为0011111111000000,移位寄存器组B的16位数据循环左移一次,变为1000111001110001,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0010,即为制约竞争计数码的F,当CLK端出现第16个脉冲时,移位寄存器组A的16位数据循环左移一次,变为0111111110000000,移位寄存器组B的16位数据循环左移一次,变为0001110011100011,这和初始被预置开关预置的特征序列完全相同,所以此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0000,即为制约竞争计数码的0,开始新一轮的计数。

若需要递减计数,则原理与上述的相同,只是移位寄存器循环右移。当CLK端出现第一个脉冲时,移位寄存器组A的16位数据循环右移一次,变为0011111111000000,移位寄存器组B的16位数据循环右移一次,变为1000111001110001,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0010,即为制约竞争计数码的F;当CLK端出现第二个脉冲时,移位寄存器组A的16位数据循环右移一次,变为0001111111100000,移位寄存器组B的16位数据循环右移一次,变为1100011100111000,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为1010,即为制约竞争计数码的E;当CLK端出现第三个脉冲时,移位寄存器组A的16位数据循环右移一次,变为0000111111110000,移位寄存器组B的16位数据循环右移一次,变为0110001110011100,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为1000,即为制约竞争计数码的D,……依此进行下去,直到CLK端出现第15个脉冲时,移位寄存器组A的16位数据循环右移一次,变为1111111100000000,移位寄存器组B的16位数据循环右移一次,变为0011100111000110,此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0001,即为制约竞争计数码的1,当CLK端出现第16个脉冲时,移位寄存器组A的16位数据循环右移一次,变为0111111110000000,移位寄存器组B的16位数据循环右移一次,变为0001110011100011,这和初始被预置开关预置的特征序列完全相同,所以此时锁存器LB12、LA12、LB0、LA0构成的输出码d3d2d1d0为0000,即为制约竞争计数码的0,开始新一轮的计数。

以上是一个同相移位的实现制约竞争计数编码技术方案。

本方案的核心思想是根据本制约竞争计数编码的特征序列,构建两组移位寄存器,采用循环移位的方式,实现脉冲的计数功能。

本发明的有益效果是,可以采用较简单的移位电路实现计数编码电路,并且此计数电路具有制约竞争的特点,保证了计数数据的可靠性,在具有广泛应用的计数电路中有较高的技术使用价值。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号