具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
由于目前的车载电子控制单元(Electronic Control Unit,ECU)基于控制器局域网络(Controller Area Network,CAN)通信,而CAN的传输带宽小,难以满足车载ECU的通信对于传输带宽的要求。
为提高车载ECU通信的传输带宽,本发明实施例提供了一种车载设备的通信系统,如图1所示,该系统包括系统级芯片(System on Chip,SOC)101、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)102和以太网收发器(Ethernet PHY)103。FPGA 102具有第一安全数字输入输出(Secure Digital Input and Output,SDIO)接口以及以太网接口,FPGA 102通过第一SDIO接口连接于SOC 101,FPGA 102通过以太网接口连接于以太网收发器103。
本发明实施例提供了一种车载设备的通信方法,应用于车载设备FPGA,FPGA具有第一SDIO接口以及以太网接口,如图2所示,该方法包括如下步骤:
S201,通过第一SDIO接口接收SOC发送的第一SDIO总线数据,将第一SDIO总线数据中的第一业务数据封装为第一以太网数据包,并通过以太网接口向以太网收发器发送第一以太网数据包,以使得以太网收发器向以太网发送第一以太网数据包。
S202,通过以太网接口接收以太网收发器发送的第二以太网数据包,将第二以太网数据包中的第二业务数据转换为第二SDIO总线数据,并通过第一SDIO接口向SOC发送第二SDIO总线数据。
其中,S201为SOC向以太网发送数据包的过程,S202为SOC接收以太网发送的数据包的过程,通过步骤S201、S202实现SOC与以太网的双向通信。
在本发明实施例中的以太网接口可以为:简化媒体独立接口(Reduced MediaIndependent Interface,RMII)、媒体独立接口(Media Independent Interface,MII)或者千兆媒体独立接口(Gigabit Medium Independent Interface,GMII)等,本发明实施例对此不作具体限定。
在本发明实施例中,上述以太网收发器可以通过以太网向服务器或者诊断仪等设备发送以太网数据包。相应的,以太网收发器可以通过以太网接收服务器或者诊断仪等设备发送的以太网数据包。
本发明实施例提供的车载设备的通信方法,由于FPGA通过第一SDIO接口连接于SOC,FPGA通过以太网接口连接于以太网收发器,而且FPGA能够转换SOC和以太网收发器传输的数据格式,使得SOC能够基于FPGA与以太网通信,由于以太网的传输带宽大,因此提高了车载ECU通信的传输带宽。其中,车载设备可以是车载ECU。
SOC通过FPGA与以太网通信前,车载设备需要通电并初始化,配置SOC为SDIO HOST模式,并配置FPGA为SDIO SLAVE模式。其中,SOC在SDIO HOST模式下,可以向FPGA发送状态控制指令,FPGA为SDIO SLAVE模式下,可以接收SOC的状态控制指令,从而将FPGA配置为与该状态控制指令对应的状态,并响应SOC发送的在该状态下可进行的各类操作控制指令。例如状态控制指令为读写状态控制指令,将FPGA的状态配置为可读写状态,可读写状态下通过读操作控制指令和写操作控制指令可以分别对FPGA进行读操作或写操作。
在本发明实施例中,SOC具有第二SDIO接口,与FPGA的第一SDIO接口连接,SOC通过第二SDIO接口向FPGA发送读写状态控制指令,FPGA通过第一SDIO接口接收该读写状态控制指令,并响应于读写状态控制指令,将FPGA自身配置为可读写状态,然后向SOC发送响应读写状态控制指令的应答信号,以表示FPGA可进行读写操作。SOC在接收到应答信号后,可以通过第二SDIO接口向FPGA发送写操作控制指令,控制SOC将数据写入FPGA,或者SOC通过第二SDIO接口向FPGA发送读操作控制指令,控制SOC从FPGA读取数据。
可选的,本发明实施例的FPGA中设置有第一寄存器和第二寄存器,其中,FPGA通过第一SDIO接口接收SOC发送的读写状态控制指令,该读写状态控制指令中具有读操作需要的寄存器地址以及写操作需要的寄存器地址,因此FPGA根据该读写状态控制指令配置用于写操作的第一寄存器,以及用于读操作的第二寄存器。
在一实施例中,SOC向以太网发送第一业务数据,首先需要向FPGA写入第一业务数据。基于此,上述S201可以实现为:FPGA通过第一SDIO接口接收SOC发送的写操作控制信号,即第一SDIO总线数据为写操作控制信号。写操作控制信号包括写操作指令以及第一业务数据,用于SOC向FPGA写入第一业务数据,其中,写操作指令用于将FPGA配置为可以向第一寄存器写入SOC发送的数据的写入状态,然后FPGA响应于写操作信号,将第一业务数据写入第一寄存器。之后根据以太网协议,从第一寄存器中读取第一业务数据,将读取的第一业务数据按照以太网数据包协议规则封装为第一以太网数据包,并通过以太网接口向以太网收发器发送第一以太网数据包。
FPGA的第一SDIO接口具有指令控制通道SDIO1 CMD和数据通道SDIO1 D0~D3,SOC的第二SDIO接口具有指令控制通道SDIO2 CMD和数据通道SDIO2 D0~D3。图3可以表示SOC发送的数据,此时图3中的SDIO CMD表示SDIO2 CMD,图3中的SDIO D0~D3表示SDIO2 D0~D3;或者图3可以表示FPGA接收的数据,此时图3中的SDIO CMD表示SDIO1 CMD,图3中的SDIOD0~D3表示SDIO1 D0~D3。SOC通过第二SDIO接口的指令控制通道SDIO2 CMD向FPGA的第一SDIO接口的指令控制通道SDIO1 CMD发送写操作指令,写操作指令可以是CMD53命令,即图3中SDIO CMD通道可以传输SDIO CMD53 Write命令。或者该写操作指令也可以是CMD52命令。相应的,FPGA通过自身的指令控制通道SDIO1 CMD端口接收写操作指令。SOC通过第二SDIO接口的数据通道SDIO2 D0~D3向FPGA的第一SDIO接口的数据通道SDIO1 D0~D3端口发送第一业务数据,即图3中的SDIO D0~D3可以传输第一业务数据。第一业务数据为需要执行的具体内容,可以包括帧长度数据(TX Frame length)和帧信息数据(TX Frame Data)。图3中通过3个Block传输第一业务数据包括的TX Frame length和TX Frame Data,其中,TXFrame length大小为2B,TX Frame Data大小为510+512+512=1534B。相应的,FPGA通过数据通道SDIO1 D0~D3端口接收第一业务数据。SOC通过第二SDIO接口的数据通道SDIO2 D0~D3向FPGA的第一SDIO接口的数据通道SDIO1 D0~D3还可以发送循环冗余校验(CyclicRedundancy Check,CRC)数据,即图3中的SDIO D0~D3还可以在3个Block后传输SDIO CRC数据。
在一实施例中,FPGA可以根据写操作控制信号,向第一寄存器的存储位置写入第一业务数据。
在本发明实施例中,如图3所示,SOC向FPGA发送第一业务数据时,可采用块(Block)传输模式,且每个Block的大小为512字节(Byte,B)。SOC在向FPGA传输第一业务数据时,可以通过1个、2个或者3个Block传输第一业务数据。
SOC向FPGA发送第一业务数据时,包括以下三种情况:
在第一业务数据的大小小于等于512B时,将第一业务数据放入block1中传输;同时由于每个Block必须包含512B,因此若第一业务数据的大小小于512B,则在第一业务数据后补“0”,使得补“0”后的第一业务数据等于512B。
在第一业务数据的大小大于512B且小于等于1024B时,将第一业务数据放入block1和block2中传输;同时由于每个Block必须包含512B,因此若第一业务数据的大小小于1024B,则在第一业务数据后补“0”,使得补“0”后的第一业务数据等于1024B。
在第一业务数据的大小大于1024B且小于等于1536B时,将第一业务数据放入block1、block2和block3中传输。同时由于每个Block必须包含512B,因此若第一业务数据的大小小于1536B,则在第一业务数据后补“0”,使得补“0”后的第一业务数据等于1536B。
本发明实施例中,FPGA可以将SOC写入的第一业务数据,存储在专门用于存放SOC写入的数据的第一寄存器,使得FPGA向以太网收发器发送数据时可以从第一寄存器中读取,避免将SOC和以太网收发器发送的数据存在同一寄存器中而导致的数据读取错误的问题。
本发明实施例中,FPGA向以太网收发器发送的第一以太网数据包可采用标准的以太网传输格式。例如,图4为IEEE802.3数据链路层帧格式,图4所示的格式为以太网数据包的标准传输格式。FPGA在将第一业务数据封装为以太网数据包时,FPGA可以在第一业务数据之前添加前导码、帧起始、目的物理地址和源物理地址,并在第一业务数据之后添加帧序列检测。其中,源物理地址为FPGA的以太网接口的物理地址,目的物理地址为以太网收发器的物理地址。第一业务数据中帧长度数据位于图4中的长度位置,帧信息数据即第一业务数据位于图4中的数据位置。图4中的前导码、帧起始、目的物理地址、源物理地址、长度、数据和帧序列的可用大小分别为7byte、1byte、6byte、6byte、2byte、46-1500byte、4byte。其中数据可用大小为46-1500byte区间内的任一值。
在一实施例中,以太网向SOC发送第二业务数据,首先以太网需要向FPGA写入第二业务数据。基于此,上述S202可以实现为:FPGA通过以太网接口接收以太网收发器发送的第二以太网数据包,第二以太网数据包中的数据包括前导码、帧起始、目的物理地址、源物理地址和第二业务数据等。接着FPGA解析第二以太网数据包获取第二业务数据,将第二业务数据写入第二寄存器。然后FPGA通过第一SDIO接口接收SOC发送的读操作控制信号,并响应读操作控制信号,从第二寄存器中读取第二业务数据,之后根据SDIO协议规则,将第二业务数据按照SDIO协议规则转换为第二SDIO总线数据,并通过第一SDIO接口向SOC发送第二SDIO总线数据。其中,读操作控制信号可以为CMD17命令或者CMD18命令等。
在一实施例中,第二以太网数据包的格式如图4所示,第二以太网数据包中目的物理地址、源物理地址、长度和数据为第二以太网数据包携带的第二业务数据。FPGA将读取的第二业务数据封装为SDIO数据的方式可以实现为:在读取的第二业务数据的长度小于指定长度时,对读取的第二业务数据进行补零,其中补零后的第二业务数据的长度等于指定长度,并将补零后的第二业务数据转换为第二SDIO总线数据。
第二业务数据的长度可以为60-1514Bytes范围内的任一长度,3个Block共需添加1536B数据。构建第二SDIO总线数据时,需要在第二业务数据后添加第二以太网数据包的帧统计数据(大小为2B)以及第二以太网数据包的长度数据(大小为2B),由于第二业务数据最长为1514B,为了达到1536B还需要在第二业务数据后添加零数据(18B的“0”)。
例如,指定长度为1514B,在第二业务数据小于1514B时,FPGA在第二业务数据后补“0”,以使得将补零后的第二业务数据、零数据、帧统计数据和长度数据转换为第二SDIO总线数据长度为3个block,即1536B。第二SDIO总线数据还可以包括CRC数据。
在本发明实施例中,第二SDIO总线数据包括读状态信号以及第二业务数据,FPGA响应读操作控制信号,根据读状态信号将第一SDIO接口的指令控制通道SDIO1 CMD端口配置为读状态,读状态下FPGA向SOC发送数据,通过数据通道SDIO1 D0~D3向SOC发送第二SDIO总线数据,SOC通过SOC的第二SDIO接口的数据通道接收FPGA发送的第二SDIO总线数据。
由于第一SDIO接口包括指令控制通道SDIO1 CMD和数据通道SDIO1 D0~D3,因此FPGA可以通过指令控制通道SDIO1 CMD接收读操作控制信号,相应的通过数据通道SDIO1D0~D3向SOC发送第二SDIO总线数据。
同时,本发明实施例中,FPGA的第一SDIO接口包括多个数据通道,FPGA需要在满足条件时通知SOC从FPGA中读取数据。
基于此,FPGA在通过第一SDIO接口接收SOC发送的读操作控制信号之前,还可以在第二寄存器中至少写入一帧完整的第二业务数据时,通过多个数据通道中的一个指定的数据通道向SOC发送中断信号,以使得SOC在接收到中断信号后向FPGA发送读操作控制信号。例如,指定的数据通道为SDIO1 D1。
本发明实施例中的SDIO接口为SDIO标准接口,RMII接口为RMII标准接口,SDIO标准接口和RMII标准接口包括的各端口如图5所示,图5中,singnal表示端口,PIN Type表示引脚类型,IO standard表示输入输出标准,PIN description表示引脚描述。
以下对本发明实施例中的FPGA的性能指标进行说明。
FPGA为第一代超高速接口(Ultra Hight Speed-I,UHS-I)模式,支持1.8V电压。其中,UHS-I模式是一种高速通讯模式。
FPGA支持SD传输模式,该模式下支持1位和4位数据传输。
FPGA的时钟速率为100兆赫(Mega Hertz,MHz)。
FPGA接收以太网数据包的速率为100兆字节每秒(Mega Byte/second,Mb/s)。
以下对本发明实施例中FPGA的功能进行说明。
FPGA工作于UHS-I Card模式、组(Bank)电压和SDIO接口上拉电阻电压为1.8伏特(Volt,V)。
FPGA支持SDR12、SDR25和SDR50速率模式。
FPGA支持SD传输模式,支持的SDIO命令(Command)类型包括:CMD0、CMD3、CMD5、CMD7、CMD11、CMD15、CMD19、CMD52和CMD53。
FPGA不支持SPI模式,因此在初始化接收到CMD0时,无论SDIO_DAT3是否为高电平,FPGA都会保持在SD mode模式。
FPGA支持CRC7和CRC16的自动生成和校验。
FPGA被配置为UHS-I Card模式,当FPGA接收到CMD19命令后,自动回应R1,并提供协调块模式(Tuning Block Pattern),SOC可以通过Tuning Block Pattern找到一个合适的SDIO信号采样窗口位置。
FPGA标准定义公共信息区(Common Information Area,CIA)寄存器,允许SOC读取FPGA状态和配置功能。SOC可以通过CMD52或CMD53命令,读写FPGA中的CIA寄存器中的数据。CIA寄存器包括卡公共控制寄存器(Card Common Control Registers,CCCR)、函数基本寄存器(Function Basic Registers,FBR)、卡片的公共卡片信息结构(card's common CardInformation Structure,CIS)寄存器和代码存储区(Code Storage Area,CSA)寄存器。FPGA中的寄存器包括:CCCR寄存器、FBR寄存器和/或CIS寄存器。
在初始化阶段,当FPGA收到的指令CMD5 S18R为0时,FPGA回应R4中S18A为0;当FPGA收到的CMD5 S18R为1时,FPGA回应R4中S18A为1。当FPGA收到CMD11回应R1,并支持电压开关顺序(Voltage Switch Sequence),不改变IO电压。当Voltage Switch Sequence结束后,FPGA进入UHS-I模式。
FPGA可以在上电并被SOC控制初始化后正常工作,该初始化指的是SOC与FPGA的通信初始化,该初始化流程遵循SDIO标准,具体初始化过程如图6所示,初始化时钟频率范围为100千赫兹(Kilo Hertz,KHz)~400KHz。
S601,FPGA上电后,对SDIO接口进行初始化并对内存进行初始化。
S602,FPGA进入空闲状态,并确认SOC的SDIO接口状态。其中,默认确认SDIO接口状态为低。
S603,FPGA检查SOC的SDIO接口是否有响应。若无响应,则执行S604。其中,默认SOC的SDIO接口无响应。
S604,FPGA将SDIO接口状态标示设置为低,并执行S607。其中。SDIO接口状态,指的是SOC的SDIO接口的电源状态。
S605,FPGA在接收到重新初始化SDIO接口指令时,初始化SDIO接口。
S606,FPGA进入空闲状态,并执行S607。
S607,FPGA检测SDIO接口状态标示是否为低。若SDIO接口状态标示为低,则执行S608。
本发明实施例中,对FPGA初始化存在两种情况,第一种是在上电时,对FPGA初始化,此时执行S601-S604以及S607-S624。这种情况下,S604已将SDIO接口状态标示设置为低。
第二种是上电后,重新对FPGA进行初始化,此时执行S605-S624。这种情况下,默认SDIO接口状态标示为低。
S608,FPGA获取SOC支持的操作电压域。
其中,FPGA可以请求获取SOC的运行条件寄存器的配置以及SOC配置,以获取SOC支持的操作电压域。
S609,FPGA检查SOC的I/O功能数量是否大于零,或者SOC的运行条件寄存器是否有效。若是,则执行S610;若否,则执行S613。
S610,FPGA获取SOC的电压参数。其中,电压参数表示SOC是否支持切换到1.8V信号电压。
S611,FPGA检查SOC的SDIO接口的电源状态是否为低。若SDIO接口的电源状态为低,则返回S610;若SDIO接口的电源状态为高,则执行S612。
S612,FPGA设置SDIO接口的初始化标识为高。
S613,FPGA检测内存初始化标志是否为低。若内存初始化标志为低,则跳过内存初始化,执行S615;若内存初始化标志为高,则执行S614。
S614,FPGA初始化内存,并设置内存初始化标志为低。
S615,FPGA检查SDIO接口的初始化标识是否为高。若SDIO接口的初始化标识为高,则执行S616。由于S612设置了SDIO接口的初始化标识为高,因此一般情况下,S615判断的SDIO接口的初始化标识为高。
S616,FPGA检查SOC是否支持1.8V工作电压。若支持,则执行S617。一般不会存在不支持的情况,如果不支持也可以执行S617。
S617,FPGA确认开始切换电压为1.8V。其中,S617确认开始切换电压,实际切换电压为S619执行。
S618,FPGA检测SOC是否无错误。若无错误,则执行S619。可以默认SOC无错误。
S619,FPGA切换电压到1.8V。
S620,FPGA对检测自身是否无错误。若无错误,则执行S621。可以默认FPGA无错误。
S621,FPGA检查自身的内存初始化标识是否为低且SOC的寄存器存储区公共端口标识是否为高。若自身的内存初始化标识为低且SOC的寄存器存储区公共端口标识为高,则执行S622。可以默认FPGA自身的内存初始化标识为低且SOC的寄存器存储区公共端口标识为高。
S622,FPGA获取自身相对于SOC的相对地址。其中,SOC可以通过该相对地址访问FPGA。
S623,FPGA检查SDIO接口初始化标识是否为高,且内存初始化标识是否为低。若SDIO接口初始化标识为高,且内存初始化标识为低,则执行S623。
其中,S612设置了SDIO接口初始化标识为高,且S613-S614已判断或设置内存初始化标志为低。因此一般不会出现SDIO接口初始化标识为低,或者内存初始化标识为高的情况。
S624,FPGA确认与SOC的通信初始化完成。
本发明实施例还可以预先对FPGA中的寄存器进行初始化,初始化流程如下:
步骤1、FPGA上电。
步骤2、FPGA内部逻辑复位。
逻辑复位包括:FPGA的SDIO接口的rstn电平拉低一定时间后再拉高,开始IP全局复位。SOC的SDIO接口的rstn电平拉低一定时间后再拉高,开始IP全局复位。其中,rstn表示三条相线进线和一条零线进线。
步骤3、步骤2后FPGA的内部逻辑配置参数如下:FPGA支持高速(High Speed)配置,配置CCCRCIS指针(Pointer),配置Function1 CIS Pointer,配置CCCR最大块尺寸(MaxBlock Size),配置Function1 Max Block Size,配置IO Ready=1。其中,Function1是SDIO接口的一种功能,用于传输数据,IO Ready=1表示读写正常。
步骤4、完成上述配置后,当FPGA接收到SOC发送的CMD5指令时,在R4C字段回应1,以通知SOC,FPGA读写正常。
步骤5、在FPGA初始化完成后,FPGA进入指令状态(Command State),SOC可以通过CMD52指令,配置FPGA的function0 Block Size及function1 Block Size。
步骤6、SOC可以通过CMD52指令,配置寄存器1022的CCCR IOE=1,使得FPGA具有Function1功能,此时FPGA将fun1_ioe端口电平拉高,形成复位信号,FPGA可以根据该复位信号,复位或者初始化实现Function1功能的寄存器,实现Function1的初始化。
步骤7、Function1初始化完成后,FPGA内部逻辑通过CPU Slave Interface配置Reg0x30 bit8=1,即设置CCCR IOR1=1,表示Function1正常读写。
SOC 101通过CMD52指令读取到CCCR IOR1为1后,表示寄存器初始化完成,SOC可以开始访问Function1对应的寄存器。其中,Function1对应的寄存器为部分寄存器。
寄存器初始化完成后,SOC可以通过CMD52或者AMD53命令访问寄存器,获取或者修改寄存器的软件版本号以及媒体存取控制位址(MAC Address)。
以下对本发明实施例中的以太网收发器的功能进行说明。
本发明实施例中FPGA和以太网收发器可以通过RMII接口连接,RMII接口符合IEEE802.3标准,固定工作在100M/全双工模式。
FPAG支持PAD功能,即若SOC发送到FPGA的SDIO数据小于60字节(不包括帧序列检测(Frame Check Sequence,FCS)),FPGA对SDIO数据自动补0,使得补0后的SDIO数据达到60字节,再在补0后的SDIO数据后添加FCS字段,形成以太网数据包后,通过以太网接口发送,以保证发送以太网帧符合最小64字节的要求。
以太网数据包的最小帧间距(Interframe Gap,IFG)为12字节,即96比特(bit)。
正确的以太网帧数据的长度为64字节~1518字节(非VLAN帧)或64字节~1522字节(VLAN帧),FPGA在检测到以太网帧长度不属于该范围时,过滤该以太网帧数据,不向SOC发送该以太网帧数据。
SOC无需计算并向FPGA发送FCS字段,由FPGA计算FCS字段,并添加到以太网数据包。
FPGA向SOC发送的以太网帧数据中不包括FCS字段,由FPGA校验FCS字段,若校验错误,FPGA过滤该以太网数据包,不向SOC发送该以太网帧数据。
FPGA具有以太网帧过滤功能,过滤功能包括:若从以太网收发器接收到的以太网数据包是单播帧,且目的物理地址与本地物理地址匹配,则FPGA接收该以太网数据包,并向SOC发送以太网数据包的帧数据;若从以太网接口接收到的以太网数据包是单播帧,且目的物理地址与本地物理地址不匹配,则FPGA过滤该数据包,不向SOC发送该以太网数据包的帧数据。FPGA可以通过以太网收发器接收广播帧或者组播帧。
FPGA支持全双工模式下的流控(Flow Control)功能,通过配置内部参数,自动发送或者接收Pause帧,实现以太网流控功能。其中,Pause帧是一种控制帧,用于控制数据包停止发送。
SOC可以接收到以太网数据包中的目的物理地址、源物理地址、长度和数据。
基于相同的发明构思,对应上述方法实施例,本发明实施例提供了一种车载设备的通信系统,如图1所示,该系统包括:SOC 101、FPGA 102和以太网收发器103。FPGA 102具有第一SDIO接口以及以太网接口,FPGA 102通过第一SDIO接口连接于SOC 101,FPGA 102通过以太网接口连接于以太网收发器103;
FPGA 102用于执行上述方法实施例中的方法步骤。
SOC 101,用于向FPGA 102发送第一SDIO总线数据,或者接收FPGA 102发送的第二SDIO总线数据。
以太网收发器103,用于接收FPGA 102发送的第一以太网数据包,并向以太网发送第一以太网数据包,或者接收以太网发送的第二以太网数据包,并向FPGA 102发送第二以太网数据包。
本发明实施例还提供了一种车辆,包括上述车载设备的通信系统。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。