收藏 分销(赏)

基于LoRa的组网设计方案.doc

上传人:丰**** 文档编号:3992549 上传时间:2024-07-24 格式:DOC 页数:18 大小:148.04KB 下载积分:8 金币
下载 相关 举报
基于LoRa的组网设计方案.doc_第1页
第1页 / 共18页
基于LoRa的组网设计方案.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
基于LoRa的组网设计方案 目 录 1 概述 1 2 功能性能指标 1 2。1 功能指标 1 2.2 性能指标 2 3 技术路线选择 3 4 系统设计 4 4。1 系统组成 4 4。2 系统工作模式 5 4.2。1 主机轮询的组网方式 6 4。2。2 分时间片的组网方式 6 5 通信设计 7 5。1 MODBUS通信协议 7 5。2 MODBUS通信示意图 8 6 软件设计 8 6。1 软件流程图 8 6。2 软件时序图 9 7 结构设计 10 7.1 接口设计 10 7.2 外形设计 11 8 实验方案 12 9 项目进度和质量保证 13 9.1 项目研制进度计划 13 9.2 质量控制与文件交付进度计划 14 10 主机与监测系统通信协议 14 10.1 概述 14 10。2 协议标准设置 14 10。3 字节格式 15 10。4 帧格式 15 10.5 浮点数存贮和传输格式 16 10。6 功能码 16 10.7 读写保持寄存器 16 10。8 举例 17 10。9 异常响应 19 10.10 CRC16校验方式 19 1 概述 基于LoRa的组网通信系统采用LoRa通信协议进行组网通信,系统由计算机终端、通信基站、集成通信模块的用户设备、具备通信功能的用户设备等组成,实现整套系统的互相通信. 2 功能性能指标 2。1 功能指标 n LoRa组网通信功能:通过通信基站向全部设备广播信息;通过通信基站向某一特定设备发送参数或控制命令;通信基站同时接收16个设备的上传数据。 n LoRa通信加密功能:无线通信具备加密功能,提供加密算法。 n 设备命名功能:为每一个接入网络的设备定义设备编号,名字可长期不变,也可经授权改变,可唯一识别不同的设备,满足后续数据处理。 n 485通信功能:按照485标准以及MODBUS数据格式,通信模块可完成与用户模块电路之间的数据通信。 n 调试界面软件功能:实时显示各设备数据,包括设备工作状态、设备传感器数据;设置设备参数与状态,包括设备命名与修改、下达复位命令、设置报警值、设置数据上传时间间隔、启停数据采集等;存储数据,按照不同任务、不同设备进行关联存储;数据可查询;数据可打印. n API接口通信功能:按照MODBUS数据格式和LoRa通信协议,建立界面软件(包括调试界面软件)和通信基站之间通信通道,界面软件可实现相应功能. n 故障显示与定位功能:当通信基站和通信模块发生故障时,界面可显示故障,并显示具体哪一个通信模块或通信基站发生故障. 2.2 性能指标 n 无线通信体制:LoRa通信,一个基站对多个通信设备的组网通信。 n 无线通信距离:无遮挡传输距离≥5000m,有金属遮挡传输距离≥2000m. n 无线通信速率:通信基站向用户设备下传数据≥1kbps;用户设备向通信基站上传数据≥5kbps;通信基站数据吞吐速率≥10kbps,可同时接收≥16路的设备上传数据;有遮挡时,上传和下传数据率的衰减量≤50%。 n 通信模块供电:采用+12V电源供电。 n 通信基站功耗:通过DC12V电源适配器进行设备供电。 n 数据加密:无线通信上传和下传数据进行加密,16路同时上传时,数据吞吐速率不超过通信基站额定能力的70%。提供数据加解密算法. n 485通信速率:通信模块向用户模块电路的下传数据速率≥1kbps;用户模块电路向通信模块的上传数据速率≥5kbps;数据格式采用MODBUS通讯协议. n 一次工作时间:一次开机,可可靠连续工作12h. n 工作温度:—35℃~55℃。 n 存储温度:—40℃~70℃。 n 湿度:40℃工作温度下,90%湿度,通信基站、通信模块能正常工作,且不凝露。 n 元器件和原材料的性能参数满足环境温度(工作温度、存储温度)要求。 3 技术路线选择 LoRa是LPWAN(低功耗广域物联网)通信技术中的一种,LoRa作为目前最有发展前景的低功耗广域通信技术,已经被运用在个各行各业中。是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案. LoRa无线通信采用直序扩频技术,具有通信距离远、功率密度集中,抗干扰能力强的优势。同时具有软件 FEC 前向纠错算法,其编码效率较高,纠错能力强,在突发干扰的情况下,能主动纠正被干扰的数据包,大大提高可靠性和传输距离。目前,LoRa主要在全球免费频段运行,包括433、868、915 MHz等。LoRa是物联网应用中的无线技术有多种,可组成局域网或广域网。 ZigBee是一种无线连接,可工作在2。4GHz(全球流行)、868MHz(欧洲流行)和915 MHz(美国流行)3个频段上,是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术. 基于此,我们选择传输距离远、功耗低(长电池寿命)的LoRa模块。 4 系统设计 基于LoRa的组网通信系统由计算机终端、通信基站、集成通信模块的用户设备、具备通信功能的用户设备等组成,系统采用LoRa通信协议进行组网通信,实现命令或参数的下达,以及数据的采集与上传等功能。 图4.1 基于LoRa的组网通信系统组成示意图 4.1 系统组成 系统由计算机终端、通信基站、集成通信模块的用户设备(设备1~设备10)、具备通信功能的用户设备(设备11~设备16)等组成。 表1设备清单 序号 名称 数量 说明 1 通信基站 1台 提供技术手册. 2 通信模块 10块 提供技术手册。 3 基站天线 1套 SMA接口; 提供技术手册. 4 设备天线 10套 防水、防尘; SMA接口; 提供技术手册。 5 通信模块电缆 10套 每套含:一根300mm的SMA电缆;一根300mm的485通信电缆(含接插件,提供定义,3个信号线);一根300mm的供电电缆(SMA接口);一根485转USB电缆。 6 API接口软件 1套 提供使用说明书。 7 LoRa通信协议与MODBUS数据格式 1套 采用该通信协议和数据格式,可满足其他设备实现LoRa通信功能设计。 8 调试界面软件 1套 供系统集成调试用,提供说明书. 4.2 系统工作模式 因射频的特性决定了无线串口收发模块可以一发多收,不能同时多发一收,造成了射频组网的最大的障碍,因此,为了解决这个问题就只能够利用时间来实现组网,下面是无线LoRa收发模块实现多发一收的解决方案。 4。2。1 主机轮询的组网方式 主机轮询方式组网是主机逐个查询的方式,该组网方式能够准确上传,并且相互设备之间不容易出现冲突,组网也比较稳定,但是缺点是主机轮询耗时间长。 这种组网方式适合那些对时间要求不高的组网应用。 主机轮询的组网方式原理很简单,通过点名的方式实现应答。如主机发送给1号从机,由于从机都有地址设别,因此只有从机1能够响应主机.从机1收到主机的命令后,将数据上传给主机。主机再以相同点的轮询方式轮询其它从机数据。 图4。2 主机轮询组网图 4。2。2 分时间片的组网方式 分时间片的组网方式对于组网数据收集来说是比简单的轮询方式快了很多,但是对从机的时间同步以及发送延迟要求高。 图4。3 分时间片组网图 如图,这种组网方式是先由主机发起广播时间,从机收到后,同步自己的本地时间,同步完成后,根据自己的编号进行延时上传,从而实现多发一收的功能。这种组网方式收发数据时间节省很多,并且能够防止冲突,但是对软件延时等调整要求较高. 为保证数据传输的实时性,选择第二种方式分时间片的组网方式,实现整个系统的无线通信。 5 通信设计 5。1 MODBUS通信协议 MODBUS网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控.它已经成为一种通用工业标准。 MODBUS网络只有一个主机,所有通信都由它发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。 MODBUS协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 MODBUS网络以RTU模式进行通信,在消息中的每个8Bit字节按照原值传送,不做处理。这种方式的主要优点是:数据帧传送之间没有间隔,相同波特率下传输数据的密度要比ASCII高,传输速度更快。 5。2 MODBUS通信示意图 本系统由无线LoRa和有线485进行组网通信。均采用MODBUS通信协议RTU通信方式。可进行点对点通信和点(基站)对多(模块)通信。 图5。1 基于LoRa的通信示意图 6 软件设计 6.1 软件流程图 监测主机界面软件主要对整个系统的运行状况进行监控。出现异常情况时,给出报警提示;同时可进入设置界面进行参数设置,对历史数据存储和打印. 图6.1 监测主机软件流程图 6。2 软件时序图 监测主机界面软件可通过无线LoRa或者有线485进行通信。监测主机作为主机,可对任一设备进行点对点通信,也可通过广播命令控制所有从机,当主机获取所有从机数据时,从机根据设备编号延时间隔固定时间依次回应数据。 图6.2 监测主机软件时序图 7 结构设计 通信基站和通信模块采用如图所示外形结构和安装尺寸,包括各接口定义。 7。1 接口设计 图7。1 电气接口示意图 图7。2 状态指示图 表2 电气接口定义表 脚号 名称 功能 说明 1 DB-9母型插座 RS-232接口 标准RS—232接口 2 3。81接线端子 RS-485、电源接口 标准RS—232接口与压线式电源接口 3 PWR—LED 电源指示灯 红色,电源接通时点亮 4 TXD—LED 发送指示灯 黄色,发送数据时闪烁 5 RXD—LED 接收指示灯 黄色,接收数据时闪烁 6 DC电源接口 电源接口 直插式圆孔5.5*2。5mm 7 拨码开关 拨码开关 工作模式控制 8 天线接口 SMA-K接口 外螺纹内孔,长10mm, 特征阻抗50Ω *注:DC电源接口和3。81接线端子供电均为12V,根据现场接线情况二选一即可。 7。2 外形设计 图7。3 结构外形尺寸图 8 实验方案 序号 试验项目名称 试验样品数量 试验结果 试验单位 1 外观、重量、尺寸 全检 检验报告 陕西卫峰 2 无线通信距离 抽检 测试报告 陕西卫峰 3 无线通信速率 抽检 测试报告 陕西卫峰 4 通信模块供电与功耗 抽检 测试报告 陕西卫峰 5 通信基站功耗 抽检 测试报告 陕西卫峰 6 一次工作时间 抽检 检验报告 陕西卫峰 7 72h稳定性试验 全检 检验报告 陕西卫峰 8 工作高温试验 抽检 检验报告 陕西卫峰 9 工作低温试验 抽检 检验报告 陕西卫峰 10 工作湿度试验 抽检 检验报告 陕西卫峰 11 贮存高温试验 型式试验 检验报告 陕西卫峰 12 贮存低温试验 型式试验 检验报告 陕西卫峰 9 项目进度和质量保证 9.1 项目研制进度计划 序号 名称 时间 备注 1 签订合同 合同签订之日起算 T0 2 质量计划 1周 T0+1 3 研制方案 1周 T0+1 4 研制方案评审 1周 T0+2 5 工程样机 4周 T0+6 6 工程样机试验 2周 T0+8 7 设备制造 6周 T0+14 8 试验大纲 3周 T0+14 9 型式试验 2周 T0+16 10 出厂验收 2周 T0+18 9.2 质量控制与文件交付进度计划 文件清单如下: 序号 文件名称 文件类型 提交进度 1 技术文件、图纸 1。1 研制方案 I 合同签订后2周内 1。2 设备外形图、安装图、外部接线图 I 合同签订后2周内 1。3 通讯协议说明(LoRa) I 合同签订后2周内 1.4 安装说明书 I 合同签订后10周内 2 质保文件 2.1 产品出厂合格证明书 I 设备交运前 10 主机与监测系统通信协议 10。1 概述 本协议规定了主机与监测系统的通信协议,所有相关硬件设备都应遵从协议规范。 10.2协议标准设置 采用RS—485标准接口. --标准协议:Modbus RTU协议。 ——波特率: 9600 bps. --设备地址:1-247(出厂默认值为00H ). ——通讯方式:监测主机主机主动发送命令,便携主机被动应答。 10。3 字节格式 编码系统: 8 位二进制,十六进制 0‐9,A‐F.数据位: 1 起始位, 8位数据(低位先送),无奇偶校验,停止位1 位。错误校验区:循环冗余校验(CRC16) RTU 错误校验码为 2 字节 16 位 CRC 码。 10.4 帧格式 Modbus信息以帧的方式传输,每帧有确定的起始点和结束点,使接收设备在信息的起点开始读地址,并确定要寻址的设备(广播时对全部设备),以及信息传输的结束时间。 RTU 模式中,信息开始至少需要 3。5 个字节的静止时间,发送完最后一个字节后,也有一个 3.5 个字符的静止时间。整个信息必须连续发送。如果在发送帧信息期间,出现大于 1。5个字符的静止时间时,则接收设备刷新不完整的信息,并假设下一个地址数据. 开始 地址 功能 数据 校验 终止 T1—T2—T3-T4 8bits 8bits N*8bits 16bits T1—T2—T3—T4 10。5 浮点数存贮和传输格式 浮点数采用IEEE标准的单精度浮点数格式,如图所示,每个数由4字节组成,数据传输时,从第一字节到第四字节的顺序传送。 10。6 功能码 功能代码 功能名称 03(0x03) 读寄存器 06(0x06) 写单个寄存器 16(0x10) 写多个寄存器 10。7 读写保持寄存器 地址 高字节 低字节 数据类型 备注 00H 实时数据 float 只读 01H 02H 报警状态 TF卡状态 uchar 只读 03H 电池电量 uchar 只读 04H 年 月 uchar 读写 05H 日 时 uchar 06H 分 秒 uchar 07H 报警阈值 float 读写 08H 09H 报警时间 uchar 读写 0AH 密钥 设备编号 uchar 只限485接口 0BH 系统复位 uchar 只写 02H、报警状态:0 = 正常, 1 = 报警。 TF卡状态:0 = 正常, 1 = 异常。 03H、电量:0—100. 09H、报警时间:0 = 0。5s, 1 = 1s,2 = 2s。 0AH、设备编号:1 - 247. 0BH、系统复位:写入0x00AA可复位。 10。8 举例 1、读取设备数据与状态:01 03 00 00 00 07 xx xx(地址01) 地址 功能码 寄存器起始地址 寄存器数量 CRC 01 03 00 00 00 07 xxxx 从应答:01 03 07 00 00 00 50 12 07 01 09 0C 22 xx xx 地址 功能码 字节数 实时数据(4字节) 报警、TF卡 01 03 0E 3D 4C CC CD 00 00 电池电量 时间 CRC 00 50 12 07 01 09 0C 22 xx xx 实时数据0。05 Bq/cm2,未报警,TF卡正常,80%,18年7月1日9时12分34秒。 2、读取报警时间:01 03 00 09 00 01 xx xx(地址01) 地址 功能码 寄存器起始地址 寄存器数量 CRC 01 03 00 09 00 01 xx xx 从应答:01 03 02 00 01 xx xx 地址 功能码 字节数 数据 CRC 01 03 02 00 01 xx xx 报警时间为1s. 3、 写系统时间:01 10 00 04 00 03 12 07 01 09 0C 22 xx xx 地址 功能码 起始地址 寄存器数量 数据 CRC 01 10 00 04 00 03 12 07 01 09 0C 22 xx xx 从应答:01 03 02 00 01 xx xx 地址 功能码 起始地址 寄存器数量 CRC 01 10 00 04 00 03 xx xx 4、 系统复位:01 06 00 0B 00 AA xx xx 地址 功能码 寄存器起始地址 数据 CRC 01 06 00 0B 00 AA xx xx 从应答:01 06 00 0B 00 AA xx xx(成功原样返回) 地址 功能码 寄存器起始地址 数据 CRC 01 06 00 0B 00 AA xx xx 10。9 异常响应 出现异常指令时,设置功能码的MSB为1。这使得异常响应中的功能码值比正常响应中的功能码值高0x80,返回异常指令. 地址 功能码 异常码 CRC 01 80|xx xx xx xx 异常码 内容 01 非法功能码 02 非法数据地址 03 非法数据 10。10 CRC16校验方式 staticconst uint8 auchCRCHi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 } ; staticconst uint8 auchCRCLo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 }; /*************************************************************** * Function : calculate_crc * Description : 计算校验和 * Input Para : * Output Para : * Return Value: ***************************************************************/ uint16 calculate_crc(uint8 *puchMsg, uint8 usDataLen ) { uint8uchCRCHi = 0xFF ; uint8uchCRCLo = 0xFF ; uint8uIndex ; uint16 CrC16; while (usDataLen—-) { uIndex = uchCRCHi ^ (*(puchMsg++)); uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ; uchCRCLo = auchCRCLo[uIndex] ; } CrC16 = uchCRCLo; CrC16 〈〈= 8; CrC16 += uchCRCHi; return CrC16 ; } 16
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服