基于STM32的智能家居系统设计毕业设计.docx

上传人:b****8 文档编号:9614938 上传时间:2023-02-05 格式:DOCX 页数:73 大小:1.21MB
下载 相关 举报
基于STM32的智能家居系统设计毕业设计.docx_第1页
第1页 / 共73页
基于STM32的智能家居系统设计毕业设计.docx_第2页
第2页 / 共73页
基于STM32的智能家居系统设计毕业设计.docx_第3页
第3页 / 共73页
基于STM32的智能家居系统设计毕业设计.docx_第4页
第4页 / 共73页
基于STM32的智能家居系统设计毕业设计.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

基于STM32的智能家居系统设计毕业设计.docx

《基于STM32的智能家居系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于STM32的智能家居系统设计毕业设计.docx(73页珍藏版)》请在冰豆网上搜索。

基于STM32的智能家居系统设计毕业设计.docx

基于STM32的智能家居系统设计毕业设计

基于STM32的智能家居系统设计毕业设计

第1章绪论

1.1选题背景

进入21世纪,人们的生活节奏越来越快,生活压力也越来越大,家成为人们最温馨的地方,人们对待自己最温暖舒适的家庭环境要求也随之在不断提高,如今的人们早八晚五的工作,上级的压力,父母长辈的压力,同事之间盲目的攀比等等,早已经将当代人压的喘难以呼吸,人们似乎已经注意到了家是自己的避风港,家居生活得到了人们的广泛关注,如今电子行业的发展速度飞涨,智能产品横飞,先进的科技与人们想要的智能家居生活擦出了美丽的火花--智能家居,时光荏苒,转眼间,智能家居从出现到现如今经历了几十年的漫长发展逐步走向成熟,安全,智能,方便的家居生活得到了广大普通百姓的认可,从企业到个人都无时无刻与它发生着亲密关系,人们已经清楚的看到,智能家居的发展已成必然,他的腾飞亦不可阻挡。

1.2课题意义

众所周知智能家居应经崭露头角,近几年一直以良好高速的发展态势在前进,智能家居市场上也开始出现了很多新颖的设备来满足人们的生活需要,但从总体的状况来分析总结,仍有不尽善尽美的地方,最主要两点是标准不统一和权威产品的缺乏。

伴随着科技的进步,经济的发展,人们的财富变多的同时,对自己的生活环境的要求水平也的随着变高,智能家居也越发变的受人青睐。

家居智能化控制的开发和研究是未来国家经济发展的必然趋势。

智能家居控制器可以为系统提供更智能更人性化生活模式,使住户的生活更加便捷,更高效,更能为家庭的日常活动,为快节奏的都是生活减小人们的压力,同时提供巨大方便。

而且在现在这个重视健康环保的世界里,智能的为住户提供检测好空气的温度,湿度等检查空气成分让住户安心,放心可以满足人们的个性化需求。

同时,智能家居控制器可以根据住户的要求调整方案,紧急事故处理,危机救护等急救控制,充分满足用户的需要。

1.3国内外发展概况

智能家居在国内早已经不是一个新兴产业,处于一个导入期与成长期的临界点,大众市场的消费观念还未完全形成,但随着智能家居市场经营者推广的进一步实施,引导消费者的消费方向和新产品的使用等措施的应用,智能家居市场的的活跃只是时间的问题。

如今智能家居至今在中国已经历了近13年的发展,从人们刚开始的梦想,到今天真真正正的走进我们的生活,经历了一个反复曲折路。

在1994年---1999,渡过智能家居的第一阶段萌芽期/智能小区期,在2000年---2005年期间,迎来了自己的第二阶段——开创期,在2006年,经过了5年的发展,智能家居正式进入第三阶段--徘徊期,现如今,我们正在经历他的第四个阶段--融合演变期,自进入2011年以后,产品需求市场明显增长,现阶段房产行业不好,智能家居的进入能否再添新动力受到大家的关注。

智能家居的产品需求量增长说明智能家居行业进入了一个新的时间段,接下来的几年的时间里,智能家居一方面进入一个相对快速的发展阶段,另一方面协议与技术标准也开始慢慢走向统一,为标准化生产提供软条件的准备。

而良好的势头也吸引了一批商人的加入,开发人员工资不断攀高,新的产品层出不穷,市场竞争越来越激烈。

根据美国该行业权威公司PARKS的统计资料显示:

1995年,美国一个家庭智能家居方面的花费大概在7000至9000美元之间。

1995年美国家庭已使用先进家庭自动化设备的比率为0.33%,看来市场真正启动尚需时日。

预计这五年内,家庭自动化的市场年平均增长率为8%.PARKS公司的资料亦显示:

到2004年,家庭网络市场总额可达57亿美元,由此可知,智能家居无论在国内还是国外都有良好的发展前景,形势一片大好。

1.4指导思想

本系统开发基于C语言。

使用Keil4集成开发环境,使用现已经技术成熟的器材,以保障系统正常安全使用、质量性能好、稳定。

界面操作简单,功能全面,实用性强,人机交互友好,无需复杂操作就可以使用产品,易学易用。

第2章开发工具与MCU简介

2.1STM32F10XX

STM32系列单片机是为高性能、低成本、低功耗的嵌入式应用专门设计的,十分适合现在的智能家居研发,款型多、功能完备,资料丰富,技术也相对成熟,下面我们就来系统的了解一下这款单片机。

按内核架构分为不同产品。

其中STM32F1系列有:

STM32F103"增强型"系列

STM32F101"基本型"系列

STM32F105、STM32F107"互联型"系列

增强型系列时钟频率为72MHz,再同品型的单片机中是性能最好的一款;普通型的时钟频率为36MHz,而如今普通产品的价格得到性能大幅提升产品,相信是很多用户的最佳选择。

两个系列产品都内置闪存大小是相同的,还是32K到128K,不同的是SRAM的最大容量和外设接口的这两部分。

当时钟频率72MHz时候,可以从闪存中直接运行程序,速度更快,STM32功耗为36mA,是32位单片机同类市场上功耗最低的产品。

图2-1STM32F10XX功能框图

内核:

32位mcu处理器,频率为72MHz,采用单周期乘法,不容易受外部设备电流影响,稳定性更好。

存储器:

片上集成32-512KB的闪存。

6-64KB的只读存储器。

时钟、复位和电源管理:

电源为3V供电。

上电复位、掉电复位电路完善,自带可编程的电压探测器(现不常应用)。

晶振为16MHz(频率可设置,可满足不同外部设备的驱动)。

8MHzRC电路。

40kHz的RC振荡电路(可外接振荡电路,也可利用自身具有的振荡电路)。

CPU时钟具有校准功能,由的32kHz的晶振单独完成。

低功耗模式:

3种低功耗模式:

休眠,停止,待机模式。

调试模式:

串行调试接口和JTAG接口。

DMA:

12通道DMA控制器。

支持的外设:

定时器,ADC,DAC,SPI,IIC和UART。

3个12位的us级的A/D转换器:

A/D测量范围:

0-3.6V。

双采样和保持能力。

D/A转换器的种类多,可以适合不同型号外设信息采集,非常全面。

快速I/O端口:

所有的端口都可以链接到个外部中断。

排除模拟量的输入,所有的端口都可以接受5V以内的信号输入。

定时器:

4个16位定时器,每个定时器都配有4个IC/OC/PWM或者脉冲计数器。

2个16位控制定时器:

最多6个通道可用于PWM输出除此还有2个看门狗定时器,可供多个外设同时工作时应用。

Systick定时器:

24位倒计数器。

2个16位基本定时器用于驱动DAC。

拥有3个SPI接口,两个和IIS复用端口。

一个2.0B的CAN接口,一个2.0USB接口含5个USART接收端口,13个通信接口,2个IIC接口,和一个SDIO接口。

1、相较传统的嵌入式处理器多一个嵌入式ARM内核,使其兼容性更加强悍,不仅对编程软件还是与单片机相关的工具都是一次技术上的统一,与此同时提高了代码处理效率,运行,调试更加高效。

2、嵌入式Flash存储器和RAM存储器:

内置512KB的闪存,为数据的安全性提供了更好的保障,存储数据程序也更加方便,只读存储器与CPU的时钟速度相同,可进行高速读写操作,更加贴近产品驱动需要。

3、可变静态存储器(FSMC):

STM32的静态存储器拥有4个片选,且每一种片选模式还有四种模式选择,控制的更加细致,精确,多更控制更加方便,不需要再加繁杂的外设,代码都是从外部存储器执行,不占用没存,节省空间,提高运行速度,外部访问按照36MHz进行,速度更高,出错率更低。

4、ARM的中断:

可以处理43个中断通道,包含16个中断优先级,可以同时处理多个外部中断,对外设的处理精确度得到有效提高,更适合处理复杂多样的外设。

紧密耦合的NVIC实现了低的中断处理延迟,直接向内核传递中断入口向量表地址,紧密耦合的NVIC内核接口,更加方便允许中断提前处理,对后到的更高优先级的中断进行处理,自动保存处理器状态,中断入口在中断退出时自动恢复,不需要指令控制,自动化程度更好,减小程序员的工作量。

5、外部中断/事件控制器(EXTI):

外部中断/事件控制器由19个产生中断请求检索组成。

每条线都是经过独特配置用于选择触发事件(模式:

上升沿,下降沿,或者两者都可以),可以同时屏蔽多个,也可以只屏蔽一个,更有利于对外设的控制。

有一个挂起寄存器用来检测中断请求。

当外部线上出现长度超过内部时钟周期的脉冲时,EXTI便马上能检测到是由外部的信号在申请中断。

6、时钟和启动:

系统的时钟在系统在工作前,先需要时钟的设定,一种是利用内部8MHz的晶振作为CPU时钟源。

另外可以选择一个外部的4-16MHz时钟源,STM32在时钟的检测十分严格,会实时监控当与控制器被禁止那么软件中断管理也会跟着被禁止。

还可以在PLL时钟的中断管理设定时钟。

多个预比较器可以用来配置AHB频率,包括高速APB2和低速APB1,高速APB最高的频率为72MHz,低速APB最高的频率为36MHz。

7、Boot模式:

Boot引脚有3种Boot模式选项可供选择:

从Flash进入,从系统存储器导入,从SRAM进入。

Boot导入代码存储在系统存储器,用于通过USART1对Flash存储器编程。

8、电源供电方案:

工作电压2.0V-3.6V,外部电源通过VDD引脚连接,用于I/O和内部调压器。

VSSA和VDDA的电压范围都是2.0-3.6V,外部模拟电压用于ADC,复位模块,RC和PLL,在VDD范围之内,VSSA和VDDA必须相应连接到VSS和VDD才可以。

VBAT的电压范围为1.8-3.6V,当VDD无效时为RTC,晶振和备份寄存器也可以为其提供电源,保证正常工作不受到影响。

2.2KEILMDK

KeilMDK的应用十分广泛,因其功能全面性能佳,界面简介友好,从其问世就迅速被广大程序工程师所熟知和使用,工程师的反馈---非常适合STM32的开发。

KeilMDK,也称MDK-ARM,RealviewMDK、I-MDK、uVision4 等。

MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境,一款软件多项应用,方便嵌入式工程师们在不同项目中多种程序的编写,不用多次熟悉开发工具,单凭这一点,早已在嵌入式工程师的心中占据巨大优势,MDK-ARM是一款专为微控制器应用而设计生产的,因其界面简洁清晰,不仅易学易用,而且功能强大,能够满足大多数的嵌入式应用,综合分析是嵌入式工程师的不二选择。

MDK-ARM有四个可用版本。

所有版本均提供一个完善的C/C++开发环境,实现多界面,多机型,多语言集于一身的高性价比产品,其中MDK-Professional还包含大量的中间库,方便调用且数据库全面。

使用Keil来开发嵌入式软件,大致有以下几个步骤:

1.创建一个project,选择芯片,并进行一些必要的配置信息

2.编写C源文件

3.编译工作代码

4.修改源程序中的错误

5.下载程序调试

uVision4开发环境如下我们可以做到编辑,编译,项目管理等多个程序调试步骤,窗口设计合理,出错显示更加清晰,方便程序的调试。

uVision4的特点:

支持多系列单片机(Cortex-M、Cortex-R4、ARM7和ARM9);多语言(C/C++)的工具链,操作系统自带源码,封装模块化数据;不仅提供编译,调试,还具备仿真环境;网络套件提供多种协议应用;拥有标准的USB设备连接可能,与外设交互友好;不仅可以处理程序代码,还可以处理图形;程序每运行一次会有一次覆盖;符合国际公认的软件接口标准。

ULINKUSB-JTAG界面适配器:

ULINKUSB-JTAG是一个用于连接PCUSB口和开发板JTAG口的小硬件适配

器。

通过JTAG你可以很方便的将你的程序下载到目标板上测试和验证程序运行的效果。

ULINK支持如下操作:

1.下载目标程序

2.检查存储器和寄存器

3.单步运行程序

4.插入多个中断点

5.实时运行程序

6.烧写FLASH存储器

第3章总体分析与设计

3.1方案分析

3.1.1整体系统方案分析

每个智能家居系统的设计者首先考虑到的问题就是MCU选型的问题。

嵌入式设计中比较主流的两款单片机就属ARM与AVR/51最受大家的青睐,51是一款8位MCU的处理器,相较32位处理器的ARM在运算能力上有明显的不足,但32位的运算的指令也是非常复杂的,进行大量的数据运算,视频数据,能力虽然较8位机强很多,运算速度也高好多倍,但在各个中断,寄存器配置,时钟要求等等也更为严格,而且AVR的编程需要配置gcc或icc才能正常工作,有固定的工作的环境,和51单片机相比,很复杂,可以用来参考的文献资料也没有51多,ARM与51相比虽然采用指令集简化了很多,可以在每个时钟周期内执行一条命令,51需要12个时钟周期才能完成一条指令的工作,综合来分析51与STM32单片机都拥有各自的优势,如何选择就要从需求上加以分析。

51单片机是每一嵌入式编程人员的入门课程,很基础,电路也相对简单,资料丰富,芯片很便宜,市面很常见,但一旦处理大量的数据,设计复杂运动控制,视频时,51就力不从心了,运算的速度和效率低也是51的一个致命的缺点,简单的总结下就是AVR的指令系统比较精简,总线和存储结构也与51单片机不同,速度比51快很多。

其次,从性能的角度分析,ARM是32位处理器,频率高达百兆赫兹,速度和处理能力远远优于AVR和51,根据智能家居需要控制多个家用设备,传送视频图像等等因素考虑,为了满足该设备的设计要求,以上的51和AVR类的MCU产品功能上仍显不足。

STM32FX系列的MCU从功能上来说更具吸引力,尤其是STM32F103VCT6这款MCU,片内外设相当丰富,3个12位模数转换器、2通道12位D/A转换器、12通道DMA控制器、80个快速I/O端口、8个定时器、多达13个通信界面。

除了其丰富的片内外设,它的每个I/O口都对应着32位的配置寄存器,可以进行自由的配置,还具有锁存器和16位的复位寄存器和复位寄存器。

每个I/O口都可以自由的编程,每个I/O口都可以由软件配置成多种模式。

它的嵌入式中断矢量控制器,具有16个可编程优先级,60个可屏蔽中断通道,还具有延迟的异常和中断处理。

STM32F103VCT6优秀的特性决定了本设备产品设计的最终平台。

在选定MCU后,

首先规划本设备的各个功能的实现。

通过分析该设备在工业现场需要发挥的监控作用,初步将该设备的功能设计如下:

AD数据采集,串行通信,EEPROM数据存储的读写,SD卡数据存储的读写,NANDFLASH数据存储的读写,时钟的读写设置。

STM32F103VCT6的ADC转换器是一种12位精度的逐次逼近型的数字转换器。

它有18个通道用来传递信息数据,可以测量16个外部信号和2个内部信号。

本款产品没有全部使用所有的ADC,仅使用了其中的6条AD转换通道。

在ADC通过外部传感器将模拟信号转化为数字信号后,接收返回的数据存储在SD卡中或者EEPROM中,供使用程序人员对数据进行分析和处理。

时钟在不断电的情况下即可正常运行,可以为产品的液晶屏显示提供时间不需要外接设备提供时间。

3.1.2数据采集方案设计

我们所常用的传感器信号一般都是模拟量,例如温度传感器,湿度传感器等为了数据的操作与处理方便,需要将其转换为数字量,所以需要使用到ADC器件。

紧接着就是AD方案的选择问题:

其中一种是使用独立的ADC转换器,另一种使用MCU中自带的ADC转换模块。

而ADC的选择依据有如下几个关键的参数有分辨率,转换速率,模拟量输入端数,模拟量输入电压范围,数字量输出方式等等。

我们以ADC0809为例简单说明下,0809的参数如下:

1)8路输入通道,8位A/D转换器,即分辨率为8位。

2)具有转换起停控制端。

3)转换时间为100μs。

4)5V电源供电。

5)模拟输入电压范围0-+5V,不需要校准和清零过程。

6)工作温度在-40~+85摄氏度。

7)功耗低,约15mW。

ADC0809属于中等速度的ADC转换器,价格也比较低,但分辨率较低。

如果外接高速ADC转换器,价格又过高,并不是最好的选择。

然而,对于MCU自带的ADC模块,其工作性能并不差。

该ADC属于逐次逼近型模拟数字转换器。

它有18个信息采集返回通道,可测量16个外部信号和2个内部信号。

在本次设计中我们将两种ADC的采集方法并用,下面会有详细的使用说明。

3.1.3数据存储方案分析

在智能家居系统里,需要存储的数据并不是很多,温湿度信息的存储和登录密码存储即可。

说到STM32的闪存用途,我们的第一反应是用来装程序代码的,实际上,STM32的片内FLASH不仅可以用来装程序数据代码,还用来装芯片配置、芯片ID等等。

虽然智能家居系统里的数据存储只放在FLASH就可以了,但我们为了大家能够更好的了解,还是简谈下FLASH的有关问题:

1、FLASH分类  

根据用途进行分类,STM32片内的闪存分成两部分:

主存储部分、信息块部分。

主存储块可以用于存储程序,我们写的代码,数据都会存储在这里。

信息块又分成两部分:

系统存储器部分、选项字节部分。

系统存储器存储是出厂时就被锁死的,用户不需要处理它,用来存储系统代码,选项字节存储芯片的配置内容是对主存储块内容的一种保护。

  

2、FLASH的页面  

 STM32的FLASH主存储块按页组织,有的产品每页1KB,有的产品每页2KB。

页面典型的用途就是用于按页擦除FLASH。

从这点来看,页面有点像通用FLASH的扇区。

3、STM32产品的分类  

STM32根据FLASH主存储块容量、页面的不同,系统存储器的不同,分为小容量、中容量、大容量、互联型,共四类产品。

  

小容量产品的主存储存容量在1-32KB之间,系统占2KB,中容量产品主存储容量在64-128KB之间,每页占1KB大小;大容量产品主存储容量在256KB以上,系统占2KB,每页占2KB;互联网型产品主存容量最大为 256KB以上,系统占18KB,每页占2KB。

 

根据以下简单的规则进行区分,根据其主存储块容量来划分,STM32F105xx、STM32F107xx是互联型产品。

  

几类单片机的不同之处就在于引导装载程序的不同,小中大容量产品的BootLoader占用空间很小,只能通过USART1进行在线编程,而互联型产品的BootLoader有18KB是小中型的9倍,从而编程的方式选择也就更加的多样化,例如USAT1、4、CAN等多种方式。

1、关于ISP与IAP 

ISP即在系统编程,是指直接在目标电路板上对芯片进行编程,一般需要一个自举程序(BootLoader)来执行。

ISP也有叫ICP(InCircuitProgramming)、在电路编程、在线编程。

IAP(InApplicationProgramming)在应用中编程,是指最终产品出厂后,由最终用户在使用中对用户程序部分进行编程,实现在线升级。

IAP要求将程序分成两部分:

引导程序、用户程序。

引导程序总是不变的。

IAP也有叫在程序中编程。

ISP与IAP的区别在于,ISP一般是对芯片整片重新编程,用的是芯片厂的自举程序。

而IAP只是更新程序的一部分,用的是电器厂开发的IAP引导程序。

综合来看,ISP受到的限制更多,而IAP由于是自己开发的程序,更换程序的时候更容易操作。

2、FPEC 

FPEC(FLASHProgram/Erasecontroller闪存编程/擦除控制器),

STM32通过FPEC来擦除和编程FLASH。

FPEC使用7个寄存器来操作闪存:

 

FPEC键寄存器(FLASH_KEYR)      写入键值解锁。

 

选项字节键寄存器(FLASH_OPTKEYR)  写入键值解锁选项字节操作。

 

闪存控制寄存器(FLASH_CR)      选择并启动闪存操作。

 

闪存状态寄存器(FLASH_SR)      查询闪存操作状态。

 

闪存地址寄存器(FLASH_AR)      存储闪存操作地址。

 

选项字节寄存器(FLASH_OBR)      选项字节中主要数据的映象。

 

写保护寄存器(FLASH_WRPR)      选项字节中写保护字节的映象。

主存储块不仅可以全部擦除,重新写入,也可以对其中的一页或者几页进行删除,重新写入的操作。

建议使用以下步骤进行页擦除:

 

1.检查FLASH_SR寄存器的BSY位。

保证没有其他正在进行的闪存操作。

设置一段延时等待BSY位为0,才可继续操作。

 

2.设置FLASH_CR寄存器的PER位为1。

 

3.选择出所要擦除的页码地址,尽行擦出准备。

 

4.启动擦除操作。

5.当收到响应信号也就是寄存器BSY变为0。

 

6.做检查,如果EOP位为1,说明此次操作成功否则检查前几步操作是否得当。

 

7.分析数据位,每次擦完后数据位都会被设置成数字1,若操作正确既可以得到全部为1的数据位,整片擦除的方法(与写入方式相反的操作)大体如下:

    

1.检查BSY位,确认没有其他正在进行的操作。

 

2.设置寄存器的MER位为1。

  

3.设置寄存器的STRT位为1。

  

4.等待寄存器的BSY位变为0。

 

5.查询FLASH_SR寄存器的EOP位,EOP为1时。

  

6.做验证。

 主存储块的编程:

主存储模块的程序编写每一次只可以写16bit,当寄存器的PG位被设置为1时,在一个Flash地址写入一个16位将会进行一次编程;写入任何其他的数字或者数据,总线上都会产生错误信息,当发现读取闪存时会使CPU停止工作,有可能是FPEC设置错误产生的。

建议对主存储块使用如下过程进行编写程序:

 

1.检查寄存器的BSY位,确认所有的其他程序操作没有占用。

2.选择编程操作。

  

3.在指定的地址写入要编程的半字,切记不要输入其他的数字。

 

4.设置一段延时,等待寄存器的BSY位变为0。

 

5.再一次查询寄存器的EOP位,若EOP为1表示此次操作是成功的。

 

3.1.4显示方案分析

在数据显示方面上,常用的实验器材有两种可供选择,12864液晶和1602液晶,12864顾名思义像素是128乘以64,能显示32个汉字,如果型号不同,待的汉子库不同,能显示的数字和效果都会有所不同,功能相比1602强大很多,1602只能显示符号、数字和字母能显示32个字符,但寄存器不止32个,可以将内容滚动显示出来,显示字符的顺序也可以设置,从左往右或者相反都可以,因为其功能和显示效果简单,价格比12864少很多,在嵌入式使用方面,两者难度差不多,原理也相近,只要配置好指令、地址、数据即可。

智能家居的在显示方面需要同时显示几行数据,而1602每一次显示的数据过少,相互比较而言12864是不错的选择。

3.2功能设计

智能家居设备可以同时检测三个不同区域的气体浓度,三个地方温湿度情况,三个地域光照强度并且控制灯光,超过标准值时的报警功能,采用整屏显示模式。

产品功能设计如图3-1所示。

 

图3-1智能家居整体功能设计

第4章详细设计与实现

4.1界面设计

1.温湿度显示界面

图4-1温湿度显示界面

 

2.烟雾显示界面

图4-2烟雾显示界面

4.2原理图设计

图4-3硬件系统原理

本智能家居系统的设计分为温湿度数据采集模块、烟雾数据存采集模块、光照数据采集模块、灯光控制模块、报警模块和显示模块等6部分组成。

每个模块的设计上均有其难点和特殊性,需要严格按照原理图设计规范来设计[13],原理图设计要点如下所示:

1.各功能块布局要合理,整份原理图需要布局均衡,避免有些地方很挤,而有些地方

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1