
<img src="https://img.xjishu.com/img/zl/2023/3/31/r4jv99chp.jpg" alt="一种可扩展的SPI总线与CAN总线数据转换方法与流程" /><br/>一种可扩展的spi总线与can总线数据转换方法<br/>技术领域<br/>1.本发明涉及通信技术领域,具体涉及一种可扩展的spi总线与can总线数据转换方法。<br/><br/><br/><b>背景技术:</b><br/><br/>2.can属于总线式异步串行通信网络,具有可靠性高、错误检测能力强的优点,传输距离可达10千米,是国际上应用最广泛的现场总线之一。spi总线是一种高速同步串行通信总线,通信速率可达50m,spi总线具有传输速度快、结构简单、扩展性强的特点在芯片间通信中得到了广泛应用,但因spi为同步串行总线,可靠性较低、传输距离短。<br/>3.部分嵌入式芯片集成了1到2路can控制器,并且需要外接can收发器。在应用中可能遇到在can资源数量不足,或外接can收发器受限的情况,可通过spi总线扩展can接口。通过spi总线扩展can接口,可以结合spi传输速度快以及can传输距离远的优点,目前应用较多的是由硬件直接实现协议的转换,但该方法存在以下局限性:(1)往往只能实现1路spi与1至2路can接口的协议转换,不具备扩展性或扩展性不足,当需要多路can接口时,需要占用多路spi资源,成本较高,甚至可能无法实现。<br/>4.(2)无法对can接口进行灵活配置,往往只能按固定配置工作,导致数据转换欠缺灵活性,应用条件较严苛,适用性较低。<br/>5.(3)硬件实现时难以进行充分封装,因此主机操作spi接口时,需要遵守硬件时序,并实现复杂的逻辑,编程实现难度较大。<br/>6.(4)难以对spi的接口报文进行必要的封装,无法解决spi的通信可靠性较低的问题。<br/>7.(5)存在高速spi总线与can总线速率不匹配的问题。<br/>8.(6)硬件设计固化后,修改难度较大,维护成本高。<br/>9.(7)需要增加可编程芯片或者专用芯片,成本较高,线路复杂。<br/><br/><br/><b>技术实现要素:</b><br/><br/>10.本发明提供一种可扩展的spi总线与can总线数据转换方法,本发明的方法,通过建立数据缓冲区,解决了can总线缓冲区较小以及spi总线与can总线速度不匹配的问题,提高了数据传输可靠性;通过设计数据包封装协议,实现了can数据包的透明传输,增加了协议转换的通用性;根据spi通信特点设计spi双向通信机制,实现通过spi总线的多路can数据包传输。<br/>11.为达到上述目的,本发明的技术方案是:一种可扩展的spi总线与can总线数据转换方法,利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:s1,扩展通信架构设计:通信主机与一个以上的转换模块间通过spi总线通信,转换模块通过can总线与外部设备连接,利用spi总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块<br/>软件设置为从机模式,通过spi主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现spi扩展多路can接口功能,对各个通道进行编号。<br/>12.s2,spi报文格式设计:根据spi总线的通信方式,设计统一的spi报文格式;s3,通信机制设计:通信主机通过转换模块实现与多路can设备的通信,在转换模块内增加spi报文缓冲区。<br/>13.s31,数据发送时,通信主机将spi报文发送至各转换模块,各转换模块将spi报文转换为can数据帧,通过can接口对外发送。<br/>14.s32,数据接收时,各转换模块通过can接口接收外部数据,转换为spi报文并存入缓冲区,在通信主机读取数据时,向通信主机发送spi报文。<br/>15.s4,转换模块按统一格式完成spi报文与can数据帧的转换。<br/>16.进一步的,步骤s1具体包括扩展通信架构通信主机和转换模块的功能分配如下:(1)通信主机配置各个通道的转换模块,并监控转换模块状态。<br/>17.(2)通信主机封装需发送至各个通道的spi报文,并处理由各个通道接收到的spi报文。<br/>18.(3)转换模块完成can数据帧的接收和发送,以及can数据帧与spi报文的相互转换。<br/>19.进一步的,通信主机与转换模块间通过spi总线通信具体包括如下内容:(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、can工作模式、can波特率、can屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧。<br/>20.(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机。<br/>21.(3)数据报文,将can协议中的帧类型、帧id、数据长度和数据封装成数据报文,实现can数据帧与spi报文相互转换。<br/>22.进一步的,所述spi报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式。<br/>23.(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别。<br/>24.(2)报文段为spi报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同。<br/>25.(3)结尾序列为固定序列,标识报文的结尾。<br/>26.进一步的,所述转换模块的配置步骤为:通信主机启动后,根据扩展的can接口数量。<br/>27.(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测。<br/>28.(2)清空各通道转换模块的spi报文缓冲区。<br/>29.(3)设置各通道的can接口工作模式和波特率。<br/>30.(4)设置各通道的接收屏蔽方式和屏蔽码。<br/>31.进一步的,所述前导序列的元素格式为:<br/>(1)起始符为2个字节的固定序列,用于接收方识别报文开端;(2)通道号为通信主机分配的通道编号,根据可扩展通信架构中,通信主机连接多个转换模块的通信方式,前导序列中加入通道号,用以标识发送该spi报文的通道,或者接收到该spi报文的通道。<br/>32.(3)报文标识用于区分报文的类别。<br/>33.(4)序列校验根据前导序列计算,用于对前导序列的正确性进行校验。<br/>34.进一步的,所述报文段格式为:(1)控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置。<br/>35.(2)状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据。<br/>36.(3)数据报文格式根据can数据帧设计,can总线采用can2.0b标准协议格式,将can协议中的帧类型、帧id、数据长度和数据字段重新进行封装,用于实现can数据帧与spi报文的转换。<br/>37.进一步的,步骤s31数据发送具体包括:(1)按照spi报文格式封装成数据报文;并控制spi总线,将数据报文发送至对应的转换模块。<br/>38.(2)转换模块接收到数据报文后,将spi报文中的帧类型、帧id、数据长度和数据填入can数据帧的对应字段,转换为can数据帧。<br/>39.(3)将转换完成的can数据帧通过can接口发送出去,实现通信主机向特定can接口发送数据。<br/>40.进一步的,步骤s32数据接收具体包括:(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入。<br/>41.(2)转换模块接收到接收到的can数据帧后,将can数据帧封装成数据报文,存入缓冲区。<br/>42.(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作。<br/>43.(4)转换模块接收到通信主机的数据读取指令。<br/>44.(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机。<br/>45.(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空。<br/>46.(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。<br/>47.本发明所产生的有益效果是:(1)根据spi通信特点设计了可扩展通信架构,利用spi的一主多从工作模式,实现通过1路spi接口扩展多路can接口的功能,大大增加了系统的扩展能力,而且由于spi速度远高于can通信,该扩展方式不会影响can接口的通信速率。<br/>48.(2)根据可扩展通信架构的通信内容,设计了统一的spi报文格式,实现了对can总线灵活配置,对转换模块状态实时监控。<br/>49.(3)根据can数据帧的结构,设计数据报文格式,实现了can数据包的透明传输,增加了协议转换的通用性,通过对转换算法进行必要的软件封装,通信主机软件完全按照标准can数据格式进行接收和发送,编程简单灵活。<br/>50.(4)建立数据缓冲区,解决了can总线缓冲区较小以及spi总线与can总线速度不匹配的问题,降低了对数据处理同步要求,提高了数据传输可靠性。<br/>附图说明<br/>51.图1为本发明的通讯主机与转换模式以及can总线之间的简单示意图。<br/>52.图2为本发明的spi总线与can总线数据转换方法的流程图。<br/>具体实施方式<br/>53.下面结合附图和具体实施方式对本发明做进一步详细说明。<br/>54.如图1所示,一种可扩展的spi总线与can总线数据转换方法,利用通信主机和一个以上的转换模块作为运行平台,通信主机和转换模块采用arm嵌入式处理器,如图2所示,具体步骤如下:s1,扩展通信架构设计:通信主机与一个以上的转换模块间通过spi总线通信,转换模块通过can总线与外部设备连接,利用spi总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块软件设置为从机模式,通过spi主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现spi扩展多路can接口功能,对各个通道进行编号。<br/>55.扩展通信架构的工作方式为:(1)根据spi总线一主多从工作方式,将通信主机设置为主机模式,转换模块设置为从机模式,各转换模块共用spi的数据线和时钟线,但具有独立的信号线与通信主机连接,通信主机通过操作信号线,选择与其通信的转换模块。<br/>56.(2)通信主机可直接发送数据,但接收数据时,因转换模块不具备主动发送能力,需要通信主机通过查询方式读取转换模块数据。<br/>57.(3)转换模块通过自带的一路或多路can接口与外部can网通信。<br/>58.扩展通信架构通信主机和转换模块的功能分配如下:(1)通信主机配置各个通道的转换模块,通信主机为各个转换模块设置通道编号,并完成各个通道转换模块的can接口配置,设置can接口的工作模式、波特率和屏蔽方式及屏蔽码;通信主机通过控转换模块工作状态,完成装换模块状态自检和实时监控。<br/>59.(2)通信主机封装需发送的spi报文,并控制spi总线,将spi报文发送至对应的转换模块。并读取转换模块缓存的spi报文,对接收到的数据进行解析和处理。<br/>60.(3)转换模块根据通信主机的控制指令,完成can接口的配置,并向通信主机反馈状态报文。<br/>61.(4)转换模块将接收的数据报文转换为can数据帧,通过can接口发送出去。<br/>62.(5)转换模块将接收到的can数据帧转换为spi数据文,并存入缓冲区;待通信主机读取数据数据时,通过spi总线发送至通信主机。<br/>63.通信主机与转换模块间通过spi总线通信具体包括如下内容:<br/>(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、can工作模式、can波特率、can屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧。<br/>64.(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机。<br/>65.(3)数据报文,将can协议中的帧类型、帧id、数据长度和数据封装成数据报文,实现can数据帧与spi报文相互转换。<br/>66.s2,spi报文格式设计:根据spi总线的通信方式,设计统一的spi报文格式,实现can接口的灵活配置、转换模块的状态反馈和数据报文与can数据帧的透明转换。<br/>67.spi报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式。<br/>68.(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别。<br/>69.起始符:为大于等于2个字节的固定序列,用于接收方在spi总线的串行报文中,识别spi报文的开端。<br/>70.通道号:定义通信主机和相连的1路转换模块为1个通道,对已扩展的通道进的编号,编号值即为通道号,当通信主机需要向转换模块发送spi报文时,在起始序列中加入目的通道号,标识报文将要发向的通道;当转换模块向通信主机反馈spi报文时,在起始序列中加入自身通道号,标识产生该报文的通道。<br/>71.报文标识:报文标识包括报文类别和报文标识,报文类别用于区分控制报文、状态报文和数据报文;报文标识是报文的具体标识,例如控制报文中的波特率设置报文。<br/>72.序列校验:序列字段运算的结果,对前导序列的正确性进行检验。<br/>73.(2)报文段为spi报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同。<br/>74.控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置。<br/>75.指令字:具体指令的标识,接收方根据指令字识别具体指令。<br/>76.指令参数,对应指令所需的参数,根据具体指令设置。<br/>77.报文校验,报文字段运算的结果,对报文的正确性进行检验。<br/>78.状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据。<br/>79.标识符:工作状态的标识,接收方根据指令字解析工作状态。<br/>80.数据区:转换模块的状态。<br/>81.报文校验,报文字段运算的结果,对报文的正确性进行检验。<br/>82.数据报文格式根据can数据帧设计,can总线采用can2.0b标准协议格式,将can协议中的帧类型、帧id、数据长度和数据字段重新进行封装,用于实现can数据帧与spi报文的转换。<br/>83.帧类型:标识can数据帧的类型为标准帧或者扩展帧。<br/>84.帧id:can数据帧的id,标准帧占2个字节,扩展帧占4个字节。<br/>85.数据长度:can数据帧数据有效长度。<br/>86.数据字段:can数据帧的数据区内容,根据数据长度设置字节数。<br/>87.(3)结尾序列为固定序列,用于接收方在spi总线的串行报文中,识别spi报文的结尾。<br/>88.s3,通信机制设计:通信主机通过转换模块实现与多路can设备的通信,在转换模块内增加spi报文缓冲区。<br/>89.s31,数据发送时,通信主机将spi报文发送至各转换模块,各转换模块将spi报文转换为can数据帧,通过can接口对外发送。具体步骤包括:(1)通讯主机根据can协议,按照spi报文格式将can协议中的帧类型、帧id、数据长度和数据字段封装成数据报文;并控制spi总线,将数据报文发送至对应的转换模块。<br/>90.(2)转换模块接收到数据报文后,将spi报文中的帧类型、帧id、数据长度和数据填入can数据帧的对应字段,转换为can数据帧。<br/>91.(3)将转换完成的can数据帧通过can接口发送出去,实现通信主机向特定can接口发送数据。<br/>92.s32,数据接收时,各转换模块通过can接口接收外部数据,转换为数据报文并存入缓冲区,在通信主机读取数据时,向通信主机发送数据报文。具体步骤包括:(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入;(2)转换模块接收到接收到的can数据帧后,将帧类型、帧id、数据长度和数据字段封装成数据报文,存入缓冲区;(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作;(4)转换模块接收到通信主机的数据读取指令;(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机;(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空;(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。<br/>93.s4,转换模块按统一格式完成spi报文与can数据帧的转换。<br/>94.其中,所述转换模块的配置步骤为:通信主机启动后,根据扩展的can接口数量,(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测;(2)清空各通道转换模块的spi报文缓冲区;(3)设置各通道的can接口工作模式和波特率;(4)设置各通道的接收屏蔽方式和屏蔽码。<br/>95.本发明所产生的有益效果是:(1)根据spi通信特点设计了可扩展通信架构,利用spi的一主多从工作模式,实现通过1路spi接口扩展多路can接口的功能,大大增加了系统的扩展能力,而且由于spi速度远高于can通信,该扩展方式不会影响can接口的通信速率。<br/>96.(2)根据可扩展通信架构的通信内容,设计了统一的spi报文格式,实现了对can总线灵活配置,对转换模块状态实时监控。<br/>97.(3)根据can数据帧的结构,设计数据报文格式,实现了can数据包的透明传输,增加了协议转换的通用性,通过对转换算法进行必要的软件封装,通信主机软件完全按照标准can数据格式进行接收和发送,编程简单灵活。<br/>98.(4)建立数据缓冲区,解决了can总线缓冲区较小以及spi总线与can总线速度不匹配的问题,降低了对数据处理同步要求,提高了数据传输可靠性。<br/>99.(5)该设计利用现有的成熟芯片,通过开发软件实现,维护和使用成本较低。<br/> <br><b>技术特征:</b><br/>1.一种可扩展的spi总线与can总线数据转换方法,其特征在于:利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:s1,扩展通信架构设计:通信主机与一个以上的转换模块间通过spi总线通信,转换模块通过can总线与外部设备连接,利用spi总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块软件设置为从机模式,通过spi主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现spi扩展多路can接口功能,对各个通道进行编号;s2,spi报文格式设计:根据spi总线的通信方式,设计统一的spi报文格式;s3,通信机制设计:通信主机通过转换模块实现与多路can设备的通信,在转换模块内增加spi报文缓冲区,s31,数据发送时,通信主机将spi报文发送至各转换模块,各转换模块将spi报文转换为can数据帧,通过can接口对外发送;s32,数据接收时,各转换模块通过can接口接收外部数据,转换为spi报文并存入缓冲区,在通信主机读取数据时,向通信主机发送spi报文;s4,转换模块按统一格式完成spi报文与can数据帧的转换。2.根据权利要求1所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:步骤s1具体包括扩展通信架构通信主机和转换模块的功能分配如下:(1)通信主机配置各个通道的转换模块,并监控转换模块状态;(2)通信主机封装需发送至各个通道的spi报文,并处理由各个通道接收到的spi报文;(3)转换模块完成can数据帧的接收和发送,以及can数据帧与spi报文的相互转换。3.根据权利要求1所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:通信主机与转换模块间通过spi总线通信具体包括如下内容:(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、can工作模式、can波特率、can屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧;(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机;(3)数据报文,将can协议中的帧类型、帧id、数据长度和数据封装成数据报文,实现can数据帧与spi报文相互转换。4.根据权利要求1或3所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:所述spi报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式;(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别;(2)报文段为spi报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同;(3)结尾序列为固定序列,标识报文的结尾。5.根据权利要求1所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:<br/>所述转换模块的配置步骤为:通信主机启动后,根据扩展的can接口数量,(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测;(2)清空各通道转换模块的spi报文缓冲区;(3)设置各通道的can接口工作模式和波特率;(4)设置各通道的接收屏蔽方式和屏蔽码。6.根据权利要求4所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:所述前导序列的元素格式为:(1)起始符为2个字节的固定序列,用于接收方识别报文开端;(2)通道号为通信主机分配的通道编号,根据可扩展通信架构中,通信主机连接多个转换模块的通信方式,前导序列中加入通道号,用以标识发送该spi报文的通道,或者接收到该spi报文的通道;(3)报文标识用于区分报文的类别;(4)序列校验根据前导序列计算,用于对前导序列的正确性进行校验。7.根据权利要求4所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:所述报文段格式为:(1)控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置;(2)状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据;(3)数据报文格式根据can数据帧设计,can总线采用can2.0b标准协议格式,将can协议中的帧类型、帧id、数据长度和数据字段重新进行封装,用于实现can数据帧与spi报文的转换。8.根据权利要求1所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:步骤s31数据发送具体包括:(1)按照spi报文格式封装成数据报文;并控制spi总线,将数据报文发送至对应的转换模块;(2)转换模块接收到数据报文后,将spi报文中的帧类型、帧id、数据长度和数据填入can数据帧的对应字段,转换为can数据帧;(3)将转换完成的can数据帧通过can接口发送出去,实现通信主机向特定can接口发送数据。9.根据权利要求1所述的一种可扩展的spi总线与can总线数据转换方法,其特征在于:步骤s32数据接收具体包括:(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入;(2)转换模块接收到接收到的can数据帧后,将can数据帧封装成数据报文,存入缓冲区;(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作;(4)转换模块接收到通信主机的数据读取指令;<br/>(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机;(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空;(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。<br/><br/><b>技术总结</b><br>本发明提供一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:S1,扩展通信架构设计;S2,SPI报文格式设计;S3,通信机制设计;S4,转换模块按统一格式完成SPI报文与CAN数据帧的转换;本发明的方法,通过建立数据缓冲区,解决了CAN总线缓冲区较小以及SPI总线与CAN总线速度不匹配的问题,提高了数据传输可靠性;通过设计数据包封装协议,实现了CAN数据包的透明传输,增加了协议转换的通用性;根据SPI通信特点设计SPI双向通信机制,实现通过SPI总线的多路CAN数据包传输。实现通过SPI总线的多路CAN数据包传输。实现通过SPI总线的多路CAN数据包传输。<br/><br/><br/><b>技术研发人员:</b>郭安罗 郑志鹏 马倩云 马第馍 林云志<br/><b>受保护的技术使用者:</b>中船华南船舶机械有限公司<br/><b>技术研发日:</b>2022.11.04<br/><b>技术公布日:</b>2023/3/30
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/184563.html