一种单总线传感器网络协议的制作方法

文档序号:7647856阅读:183来源:国知局

专利名称::一种单总线传感器网络协议的制作方法
技术领域
:本发明涉及一种在纺织、化工、食品、水处理等行业中普遍使用了大量的传感器、执行器和控制器来完成工业现场流程的监控和自动化的网络控制系统,具体涉及一种数字化通讯网络协议。
背景技术
:工业过程的现场监控设备类型和数量很多,如一个5万吨容量的粮情检测系统包括多个传感器、变送器、执行器、控制器等不同设备,其中仅粮温传感器就需要4000只以上,而且分布在方圆2平方千米的监控区域内。基于工业过程现场监控的特点,如果采用传统的模拟传感器+主机+多路采集卡或下位机的方式,需要使用大量的电缆、端子、槽盒、桥架,现场布线将非常复杂,而且监控系统的调整、运行、维护和检修工作量很大,故障的定位和隔离也极为复杂,系统可靠性较差。现场总线协议(如LonWorks、DeviceNet、Profibus)和网络传感器协议(如IEEE1451SmartSensor、Dallas1-wire)将网络技术引入控制现场,使传感器等设备通过串行总线或菊花链的方式与主机/上位机互联,改模拟信号及控制指令为数字化传输,这大大简化了现场布线,也使主机可以处理更复杂的控制任务。但是现有协议不完全适合过程监控系统的最前端部件(如传感器、执行器和控制器等),主要由于(1)出于成本考虑,节点计算和存储资源较少,而现有通讯协议栈(如TCP/IP,DeviceNet等)都较复杂;(2)部分总线的链路层协议适合于网络数据通讯(如以太网),而传感器网络中单个节点传输数据较少,传输内容也较为简单;(3)传感器网络实时性要求高,对于某些异步事件,须实时反馈并处理。此外,现有大部分应用层协议分为两类,一类是根据传感器本身应用量身定制的,如Dallas温度传感器DS18B20(liire协议),功能上不能扩展,但使用方便,无须修改传感器内部软(固)硬件设计;另一类为通用的,如基于LonWorks网络的节点,协议只提供了节点间的通信机制,开发者还需要根据节点特性及应用背景进行二次开发。由于前种方式仅面向固定应用,可扩展性差,而后种方式则要求传感器/执行器的开发者掌握用户的应用背景,适应性受限。因此,提供一种独立于开发者和使用者,同时又具备扩展性的应用层协议很有必要。基于扩展性应用层协议研究,在传感器的开发者和使用者之间建立一个透明的访问接口,以加速网络传感器节点的开发,简化传感器与应用的集成和使用。
发明内容为了解决上述缺陷,本发明提出一个简单有效的实时的单总线低成本通讯协议,采用差分驱动,支持可选的多速率传输和传输距离要求,通讯节点的地址可动态配置和热插拔,支持多种通讯模式即主从、事件/动作。协议应尽可能的精简,以适应传感器/执行器部件的要求,执行器部件通常只具备有限的存储单元、控制逻辑和处理能力,同时要有一定的容错性,能做到故障器件的自动隔离。为了实现上述目的,本发明采用以下技术来解决上述问题-(1)在链路层引入帧类型,显示区分事件、主从通讯、节点识别等消息,提高节点对异步事件的响应速度,使应用层中无须通过消息优先级来区分实时和非实时事件。同时保留了主从通信方式,简化从节点的实现。(2)在应用层中引入事件/动作模型,将节点抽象为多个通道组成的对象,每个通道上定义了一些事件源和动作。这些抽象使每个网络节点成为类似于软件模型中的组件,具备属性、事件和方法,使用者无须了解其实现细节,而开发者也无须关心节点如何被调用。一种单总线传感器网络协议,遵循IS0/0SI标准模型,并实现了物理层、数据链路层和应用层。物理层定义底层通讯介质和驱动方式,以及连接端子形式。本协议主要使用双绞线为通讯介质,采用差分驱动的半双工通讯。各节点总线控制器通过监听线路状态来实现有效的通讯。此外对于节点供电的方式进行定义。物理层的定义并不排除采用其他的通讯介质,如采用RF、电力线调制等方式。数据链路层定义节点的地址空间大小及编址方法,最大的传输数据字节数,数据帧的组成方式,校验方式,仲裁方式等。数据链路层主要有以下特点*支持主从、事件/动作两种通讯模式。在主从模式下,主节点可以与单个、多个或者所有从节点之间进行通讯。在事件/动作模式下,主节点向从节点预定一些事件,当这些事件发生时,从节点会主动发送事件帧,这样就会触发与该事件相关的所有节点作出相应的处理或动作。*支持基于位的非破坏性逐位仲裁方式。规定总线上传输的数据只有两种状态T(隐性)和'0'(显性),采用线与方式,即多个节点同时向总线上发送数据时,总线上最终逻辑信号为所有信号的与。该方式确保了在碰撞中仍有一个数据位可以发送成功,所以不会损失数据或浪费带宽,可以获得一个最大的信息传送率。采用CRC校验和辅助信息校验相结合的多层校验。CRC校验中发送节点与接收节点采用相同的校验多项式,接收节点计算CRC的方法与发送节点相同。接收节点接收到发送节点发送来的CRC序列后,对其进行运算,如果运算结果一致,即代表CRC校验通过。辅助信息校验包括填充错误,即在使用位填充法迸行编码的信息中,出现了第6个连续相同的位电平;形式错误,即一个固定形式的位场含有l个或多个非法位。如果接收节点未发现CRC错误、填充错误、形式错误,就代表该帧已被正确接收,于是接收节点就会在确认间隙期间用一"显性"的位写入发送节点的"隐性"位来作出确认;否则不会做出确认。*引入确认与应答机制。确认机制的作用是当发送节点发送的数据经接收节点的CRC校验以及辅助信息校验后发现没有错误时,接收节点就会在确认间隙用以一"显性"的位写入发送节点的"隐性"位来作出确认,代表该帧数据发送成功。应答机制主要与控制域的应答位A位对应,当A位是"显性"时,代表该帧需要应答。如果接收节点同意对该帧做出回应,就会在应答间隙用一"显性"的位写入发送节点的"隐性"位来作出应答。针对现场传感器的特点,应用层实现了对传感器节点的四类操作,便于实时地获取现场采集地数据并作出快速处理,并可以根据不同传感器的工作特点,实现对传感器工作方式的定制和数据收集方式的定制,极大地提高了协议的应用通用性。同时,应用层的数据结构简单,又能满足各种传感器的使用要求,厂家能对照协议方便地开发出应用节点,增强了协议的应用适用性。根据应用层协议,可以在一个传感器节点上实现多个传感器的集成,最多可达63个数字量传感器或504个开关量传感器,节约传感器厂家的开发成本,提高协议的经济适用性。应用层主要有以下特点*支持主一从和中断的数据访问方式,增加组网的灵活性。*节点事件和动作可以配置,从而减轻了主机的负担,提高网络的响应速度。*精简的数据结构,支持数据的实时性采集和快速处理。支持节点的通道操作,利于集成、降低产品的生产成本。*支持自定义参数的设置,满足不同开发商的需求。发明效果和优点1、支持主从、事件/动作两种通讯模式,增加组网的灵活性。2、支持基于位的非破坏性逐位仲裁方式。当两个或多个节点同时想要访问网络时,不会要求优先权高的节点重发数据,从而不会损失数据或浪费带宽。3、总线控制器具备容错功能,即能将总线从错误状态中复位,并能发现和隔离故障节点;节点提供一定的节点状态查询,在此基础上主机实现简单的故障诊断和错误处理机制;4、实时性要求。对于一些重要的报警信号,能在一定的时限内传递到主节点。采取事件/动作的通讯模式,避免了有些传感器网络只支持主从通讯,异常事件必须由主节点检测才能发现的问题,在节点数目较多、通讯负荷较大情况下,也可以满足实时性的要求。5、支持节点事件和动作的配置以及节点的通道操作,减轻了主机的负担,同时利于节点的集成、降低产品的生产成本。图1传感器网络结构。具体实施例方式本发明相对物理媒介独立,接口设计能够接收网络通讯线路上的变化,但并未定义物理媒介。协议规定了通过识别帧实现从节点即插即用特性的过程。当从节点首次接入总线或者在接收到主节点复位帧后,从节点置为复位状态。处于复位状态的从节点在总线空闲时发送识别帧,待主节点确认后,从节点进入运行状态。只有处于运行状态的从节点,才能正常接收和发送数据。主节点可维护一个从节点表,该表记录各节点的属性和配置信息。当主节点发现一个新的从节点,则将该节点加入表中,随后查询并记录新加入节点的有关属性,如节点类型、名称、通道,并将有关配置信息写入该节点,这些配置信息来自上层的组态软件。配置后的从节点需要(1)接收事件帧并触发相应动作;(2)根据内部状态发送事件帧,如温度到达上限;(3)接收主机的请求并应答。主节点可定期检查从节点的存在,确认从节点是否失效。当从节点失效后,主节点应更新内部节点及其状态表。如图1所示,传感器网络总线,采取单总线的方式,1是网络中数据传输的通道;2、3:主节点,只有一个处于活跃状态,另一个处于备用状态。4:从节点监控现场状况,按照主节点的要求,发送相应的数据。IS0/0SI标准定义的开放系统互连网络模型有七层,本发明遵循该标准,并实现了物理层、数据链路层和应用层。数据链路层的主要作用是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路。因此它需要提供的功能包括链路连接的建立、拆除和分离;帧定界和帧同步;顺序控制;差错检测和恢复等。本协议使用固定的数据帧格式,帧结构如表l所示<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>每一帧包括帧起始(S0F)、仲裁域(ABT)、控制域(CTL)、长度域(LEN)、数据域(DATA)、校验域(CRC)、确认域(CFM)、应答域(ACK)、帧结束(EOF)九个部分,仲裁域包括帧类型(TYP)、地址域(ADD)。当总线空闲时,任何节点都可以发送数据。如果有多个节点同时发送数据时就通过仲裁域进行仲裁。帧起始(S0F)帧起始占一位,当主机需要传输或接收数据时,首先必须等待总线空闲。当总线空闲时就可以开始发送一个'0'表示随后开始发送或接收帧。仲裁域(ABT)仲裁域包括帧类型和地址两部分,它的功能就是当有多个节点同时竞争总线时,通过一定仲裁机制来确定哪个节点获得总线使用权。仲裁期间,每一个发送节点都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这节点可以继续发送。如果发送的是一"隐性"电平而监控视到一"显性"电平,那么该节点就失去了仲裁,必须退出发送状态。帧类型(TYP)包括复位帧、识别帧、连续帧、事件帧、普通帧以及三个扩展帧。复位帧的功能是主机通过发送复位帧,使所有主从节点恢复到初始状态。当主机和从节点在上电时自动进入初始状态。识别帧的功能是当节点处于初始状态时,即刚接入网络或主机复位,必须要与主机通信,完成识别,转入工作状态后才能进行正常的数据传送。连续帧的功能是表明该帧是前面帧的继续,其内容取决于前导帧。一个帧后面可以有0个至8个连续帧。事件帧的功能是当从节点有预先定义的事件发生时,可以利用事件帧来获得总线传输数据。普通帧的功能是主机通过轮询方式与单个从节点传输数据。扩展帧为保留帧。在不同类型帧中,地址域(ADD)有不同的含义。地址类型有三种,主机地址、节点地址、事件。这三种地址空间都是独立的。主机地址是主机在复位时所提供的,主要用于在同一网络上有多个主机时进行仲裁,选择一个活跃的主机。对于节点,可以忽略主机地址。节点地址是在主从通信中主机用于选择要通信的节点。节点地址包括广播地址和组播地址。节点地址是无结构的,应用需要保证在同一网络上节点地址不重复。事件号是一类特殊的地址空间,节点用事件来向主机或其他节点报告一些特殊事件,如温度到达设定值,或某个光电开关打开。*控制域(CTL)控制域占四位,其中M位用于标识该帧是否有连续帧,如果是则该位为"显性",否则该位为"隐性";A位用于标识该帧是否需要应答,如果是则该位为"显性",否则该位为"隐性";R位用于标识该帧是否为重发帧,如果是则该位为"显性",否则该位为"隐性";控制域的U位为保留位。*长度域(LEN)长度域指示了数据域里的字节数目。数据帧长度允许的数据字节数{0,1,7,……,15}。其他数值不允许使用。数据长度代码,如表2所示。<table>tableseeoriginaldocumentpage13</column></row><table>*数据域(DATA)数据场由数据帧中的发送数据组成。它可以为015个字节,每字节包含了8个位,首先发送MSB。*校验域(CRC)校验域有循环冗余序列(CRCSequence)和CRC界定符(CRCdelimiter)组成。为进行CRC计算,被除的多项式系数由无填充位流给定,组成这些位流的成分是帧起始、仲裁域、控制域、长度域、数据域(假如有),而15个最低位的系数是0。将此多项式被下面的多项式发生器除(其系数以2为模)X15+X14+X10+X8+X7+X4+X3+l这个多项式除法的余数就是发送到总线上的CRC序列(CRCSequence)。CRC序列之后是CRC界定符,它包含一个单独的"隐性"位。*确认域(CFM)确认域长度为2个位,包含确认间隙(ConfirmSlot)和确认界定符(ConfirmDelimiter)。在确认间隙,发送器发送一个"隐性"位,当接收器正确地接收到有效的报文,接收器就会在确认间隙(ConfirmSLOT)期间用一"显性"的位写入发送器的"隐性"位来作出确认。确认界定符是确认答域的第二个位,并且是一个必须为"隐性"的位。*应答域(ACK)应答域长度为2个位,包含应答间隙(ACKSlot)和应答界定符(ACKDelimite:r)。在应答间隙,发送器发送一个"隐性"位。当控制域的A域为"显性"时,表示该帧需要应答,如果该帧经接收器确认可以应答,则接收器就会在应答间隙(ACKSLOT)期间用一"显性"的位写入发送器的"隐性"位来作出应答。应答界定符是应答域的第二个位,并且是一个必须为"隐性"的位。*帧结束(E0F)用1个"隐性"位来表示一帧的结束。本发明允许遵循规范的各个应用层之间能够进行互相操作。为了实现互相操作,各个应用层相应的应用程序必须以用一协议栈运行,每一个协议栈都符合本发明规范。但并不是所有应用程序都必须全部符合本发明规范,而是应用程序只利用协议栈中的某些部分,并且协议栈中的某些附加垂直协议子集恰恰是用于支持主要应用的服务。网络中的通信根据主体不同可分为两类,一类是由主机发起的,如复位帧、普通帧等;一类是由从机发起的,发事件帧,连续帧等。由主机发起的对从机的操作都以普通帧的方式发送数据,从节点对主机的响应则以连续帧的方式返回数据。从节点还可以中断方式向总线发出事件帧,主机及其它结节侦听到总线的事件帧后作出相应的处理或动作。通信过程中应用层的数据打包在链路层的数据域里进行传送。数据发送时,高位先发送。应用层数据中用到的一些符号含义如表3<table>tableseeoriginaldocumentpage16</column></row><table>根据操作目标的不同,可分为对节点的操作和对通道的操作。通道0为每个节点默认的全局通道,即对通道0的操作即为对节点的操作。因通道o为逻辑通道,其余通道为物理通道,所以对通道o的操作与对其它通道的操作略有不同。现以指令的方式对不同的命令进行区分。活动主机与从节点之间主要以主一从方式进行通信。主机通过4种操作对从节点进行配置和数据的输入输出。操作类型代码见表4。<table>tableseeoriginaldocumentpage17</column></row><table>*READ:主机通过READ操作获取从节点采集的现场数据。*WRITE:主机通过WRITE操作向从节点输出数据,实现对从节点的驱动。*GET:主机通过GET操作获取从节点的属性配置与状态信息。*SET:主机可用SET操作对从节点进行属性、事件与动作等的设置,使从节点能够按照预定的方式运行。活动主机对从节点操作的通用命令数据结构如表5。<table>tableseeoriginaldocumentpage17</column></row><table>说明-1.访问通道O等同于对节点进行操作。2.为与链路层数据长度匹配,参数长度不能超过13个字节。3.以高位在前的方式进行传送。如从节点接收到需返回数据的命令,则通过普通帧将数据返回,其数据结构如表6<table>tableseeoriginaldocumentpage18</column></row><table>说明返回数据中的OP与CMD同取数据命令帧中的OP与CMD一样,便于主机辨别是对哪个命令的响应。从节点处于不同的状态时,其响应亦不一样,其响应方式如表7<table>tableseeoriginaldocumentpage18</column></row><table>主机对返回帧的响应方式如表8<table>tableseeoriginaldocumentpage18</column></row><table>节点有以下几种类型的寄存器*节点状态寄存器有两个字节,其每一位表示一种状态类型,从最高位开始每位的含义如下(1)0:正常;1:故障;(2)0:在线;1:离线;(3)0:在线工作;1:在线挂起;(4)(16)自定义。其中(1)、(2)、(3)三个状态每个节点都必须实现。用户还可以根据自己的需要定制其它的状态类型。參节点属性寄存器有4个字节共32位。节点的属性及属性寄存器的分配如下(1)通道数用第一个字节表示,其中0通道不参与计数。逻辑通道数不能超过63个。(2)通用寄存器数属于通道0的通用寄存器数,用第二个字节表示。(3)通道异同此节点所含通道是否为同一类型。所谓同一类型,即除物理端口不同外,其状态,属性,数据结构,参数等都采有相同的格式。用第三个字节的最高位表示,"0"表示相同,"l"表示不同。(4)寄存器访问单位通道O中单个寄存器的访问单位,"0"为8位,"1"为16位。用第三字节的第二位表示。(5)自定义属性前面所描述的属性为固定格式,其含义与顺序不得更改,且每个节点必须实现。用户可根据自己的需要往后增加自定义的属性。*节点通用寄存器为可选项,用户可根据自己的需求进行设定其个数及含义。通用寄存器地址从00H开始编排。此指令为批量读取格式,参数中第一字节指明起始通用寄存器的地址,第二字节指明从此地址开始读取的通用寄存器个数。读取的总长度不能超过11个字节。*节点控制寄存器为一个字节,从最高位开始,其每位含义如下(1)置1,唤醒节点;(2)置l,挂起节点;(3)置,卸载节点。从节点收到后指令并执行相应操作后,自动将控制寄存器清零。通道有以下几种类型的寄存器*通道状态寄存器每个通道只有一个2字节的状态寄存器可有18个状态值,除每一通道须实现的固定状态外,可根据需要自定义通道的状态。固定状态如下,按最高位开始,其序号对应状态寄存器的位次序。(1)0:正常;1:故障(2)0:运行;1:待机;(3)0:数据转换中;1:数据准备好;(4)(8)自定义。*通道属性寄存器包含三个字节,第一个字节说明此通道包含的通用寄存器个数;每二字节其各位含义如下所示(1)输入或输出类型。"1"为输入,"0"为输出。(2)开关量或数字量。"1"为开关量,固定每个通道只能有最多16个开关量,不足8个的取低位,高位无意义。"0"为数字量(3)(5)数据类型。000:无符号整型、8位开关量;001:无符号双整型、16位开关量;010:有符号双整型;011:十六位浮点型;100:压縮BCD码;101:字符串。(6)寄存器访问单位"0"为8位,"1"为16位。(7)(8)自定义属性,如未定义,则"0"填充。第三个字节意义自定义。*通道通用寄存器为可选项,用户可根据自己的需求进行设定其个数及含义。寄存器地址从00H开始编排。此指令为批量读取格式,参数中第一字节指明起始寄存器的地址,第二字节指明从此地址开始读取的寄存器个数。推荐实现如下通用寄存器功能(1)寄存器0:通道标定值参数;(2)寄存器l:通道上限参数;(3)寄存器2:通道下限参数;(4)寄存器3:通道自定义参数。*通道控制寄存器通过指令可启动通道开始运行或命令其停止。通道寄存器为一个字节,从最高位开始,其每位含义如下(1)置1,使通道停止;(2)置l,启动通道;(3)置1,通道工作状态取反;(4)置1,按通道通用寄存器0中的值进行通道标定;(5)置1,按通道通用寄存器1中的值进行通道上限设定;(6)置1,按通道通用寄存器2中的值进行通道下限设定。(7)置l,按通道通用寄存器3中的值进行通道自定义设定。(1)(3)为必须实现的控制指令,(4)~(6)推荐实现。从节点收到后指令并执行相应操作后,自动将控制寄存器清零。事件类型有基本类型和自定义类型,如下所示*事件类型1.故障;2.越上限;3.越下限;4.增量绝对值上限;5.增量绝对值下限;6.状态改变(或数据改变);7.定时到;8255.自定义。*事件号由两个字节组成。事件号由主机生成。事件参数用一个字节表示(1)OOH,设定事件;(2)OIH,按事件号取消事件;(3):02H,取消此通道所有事件。权利要求1.一种单总线传感器网络协议,遵循ISO/OSI标准模型,并实现了物理层、数据链路层和应用层,物理层定义底层通讯介质和驱动方式,以及连接端子形式,其特征在于数据链路层定义节点的地址空间大小及编址方法,最大的传输数据字节数,数据帧的组成方式,校验方式,仲裁方式;通信过程中应用层的数据打包在链路层的数据域里进行传送,应用层的数据包括操作码、通道号、指令码、与指令有关的参数、发送的数据、填充数据以及本帧参数数据的长度、参数、数据的总长。2、根据权利要求1所述的单总线传感器网络协议,其特征在于数据链路层的每一帧包括帧起始(SOF)、仲裁域(ABT)、控制域(CTL)、长度域(LEN)、数据域(DATA)、校验域(CRC)、确认域(CFM)、应答域(ACK)、帧结束(EOF)九个部分,仲裁域包括帧类型(TYP)、地址域(ADD)。3、根据权利要求2所述的单总线传感器网络协议,其特征在于帧类型包括复位帧、识别帧、连续帧、事件帧、普通帧以及三个扩展帧,复位帧的功能是主机通过发送复位帧,使所有主从节点恢复到初始状态;识别帧的功能是当节点处于初始状态时,必须要与主机通信,完成识别;连续帧的功能是表明该帧是前面帧的继续,其内容取决于前导帧,一个帧后面可以有0个至8个连续帧;事件帧的功能是当从节点有预先定义的事件发生时,可以利用事件帧来获得总线传输数据;普通帧的功能是主机通过轮询方式与单个从节点传输数据;扩展帧为保留帧。4、根据权利要求2所述的单总线传感器网络协议,其特征在于地址类型有主机地址、节点地址、事件,主机地址是主机在复位时所提供的,主要用于在同一网络上有多个主机时进行仲裁,选择一个活跃的主机;节点地址是在主从通信中主机用于选择要通信的节点;事件号是一类特殊的地址空间,节点用事件来向主机或其他节点报告一些特殊事件。5、根据权利要求1所述的单总线传感器网络协议,其特征在于应用层主机通过4种操作对从节点进行配置和数据的输入输出,主机通过READ操作获取从节点采集的现场数据;主机通过WRITE操作向从节点输出数据,实现对从节点的驱动;主机通过GET操作获取从节点的属性配置与状态信息;主机可用SET操作对从节点进行属性、事件与动作等的设置,使从节点能够按照预定的方式运行。6、根据权利要求1或5所述的单总线传感器网络协议,其特征在于节点有四种寄存器,包括节点状态寄存器、节点属性寄存器、节点通用寄存器、节点控制寄存器,节点的每个通道都有四种寄存器,包括通道状态寄存器、通道属性寄存器、通道通用寄存器、通道控制寄存器。全文摘要本发明涉及一种单总线传感器网络协议,遵循ISO/OSI标准模型,并实现了物理层、数据链路层和应用层,物理层定义底层通讯介质和驱动方式,以及连接端子形式,其特征在于数据链路层定义节点的地址空间大小及编址方法,最大的传输数据字节数,数据帧的组成方式,校验方式,仲裁方式;通信过程中应用层的数据打包在链路层的数据域里进行传送,应用层的数据包括操作码、通道号、指令码、与指令有关的参数、发送的数据、填充数据以及本帧参数数据的长度、参数、数据的总长。发明效果和优点是支持主从、事件/动作两种通讯模式,增加组网的灵活性;支持基于位的非破坏性逐位仲裁方式;实时性要求;支持节点事件和动作的配置以及节点的通道操作,减轻了主机的负担,同时利于节点的集成、降低产品的生产成本。文档编号H04L12/26GK101374082SQ200710070998公开日2009年2月25日申请日期2007年8月24日优先权日2007年8月24日发明者朱微微,琚春花,鑫袁,赵文敏,邢建国,菁黄申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1