基于物联网的智能家居系统设计_第1页
基于物联网的智能家居系统设计_第2页
基于物联网的智能家居系统设计_第3页
基于物联网的智能家居系统设计_第4页
基于物联网的智能家居系统设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录前言2摘要3一 需求分析4二 系统设计5三 实现原理63.1zigbee协议介绍63.2zigbee技术的应用领域73.3zigbee协议栈结构7四 硬件设计114.1传感器节点模块化设计114.2cc2530芯片概述114.2.1cc2530芯片基本介绍114.2.2cc2530芯片引脚介绍124.3温度传感器调理电路设计134.4网络协调器外围电路设计14五 软件设计165.1iar开发环境165.2协调器节点程序165.2.1网络组建175.2.2节点之间的数据传输205.3嵌入式网关程序215.4 传感器节点程序23总结24参考文献25致谢26前言 智能家居通过物联网技术将家中的各

2、种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。 在很多应用场合,温度是一个很重要的一个参数。温度的自动监测已经成为各行业进行安全生产和减少损失的重要措施之一。传统的温度测量方式测量周期长,施工复杂,不便于管理,并且在有些特定场合如封闭,高压等环境下根本无法测量。但是往往这些场合容易引起很大的事故。因而温度的无线传输显的越来越重要。摘要随着社会经济的发展,人民生活水平的提高,人们对生活的品质提出了更

3、高的要求。在设计中,为了实现智能家居系统的远程管理和无线传输的功能,利用zigbee无线网络技术,以cc2530芯片和相关的一些外围器件组建成整个系统的家庭网关控制平台,而家居内部控制网络则利用zigbee无线网络技术来实现。本设计主要从无线传感方向进行改进,主要设计一种基于cc2530和数字温湿度传感器的温湿度采集系统。该系统采用无线通信技术结合传感器,通过运用协议架构组建无线传感网络,实现主从节点的数据采集和传输,以及一点对多点,两点之间的通信。并详细阐述了基于zigbee协议栈的中心节点和终端节点的协议传输,主要是从协议栈网络层里aodv路由协议着手,阐述在网络层如何通过aodv路由协议

4、进行节点间的连接以及数据的收发。关键字: 智能家居; 温湿度数据采集; cc2530; zigbee协议栈; 一 需求分析随着社会经济结构、家庭人口结构以及信息技术的发展变化,人们对家居环境的安全性、舒适性、效率性、透明性提出了更高的要求。同时越来越多的家庭要求家居产品不仅要具备简单的智能,更要求整个系统在功能扩展、外延以及服务方面能够做到简单、方便、轻松、安全。很显然我们的家居生活需要改变,智能家居系统提供广泛的信息交互功能,优化居住环境,帮助人们有效地利用网络的便捷性各种实现了对家居环境的控制。智能家居产品为家居环境、家电设备提供一个共享的接入中心,实现对家庭环境及其设备的智能管理、远程管

5、理、集中管理和资源共享。随着网络科技的高速发展,在可以预见的未来,在智能化住宅中,以宽带网络将家里的电脑、电视机、家电、安防系统等连成一体的自主控制、扩展、享用的工作、学习、娱乐家庭综合信息服务平二 系统设计三 实现原理3.1zigbee协议介绍zigbee协议标准采用分层结构,每一层为上层提供一系列特殊的服务:数据实体提供数据传输服务;管理实体则提供所有其他的服务。所有的服务实体都通过服务接人点sap为上层提供接口,每个sap都支持一定数量的服务原语来实现所需的功能。zigbee标准的分层架构是在osi七层模型的基础上根据市场和应用的实际需要定义的。其中ieee 8021542003标准定义

6、了底层协议:物理层(physical layer,phy)和媒体访问控制层(medium access control sublayer,mac)。zigbee 联盟在此基础上定义了网络层(network layer,nwk),应用层(application layer,apl)架构。在应用层内提供了应用支持子层(application support sublayer,aps)和 zigbee设备对象(zigbee device object,zdo)。应用框架中则加入了用户自定义的应用对象。 zigbee的网络层采用基于ad hoc的路由协议,除了具有通用的网络层功能外,还应该与底层的ie

7、ee 802154标准一样功耗小,同时要实现网络的自组织和自维护,以最大限度方便消费者使用,降低网络的维护成本。应用支持子层把不同的应用映射到zigbee网络上,主要包括安全属性设置、业务发现、设备发现和多个业务数据流的汇聚等功能。 zigbee无线测温系统的组成及原理基于zigbee技术的无线测温系统主要由基于zigbee技术的底层无线传感器网络、远程数据传输网络以及功能完善的上位监控系统3部分组成,该系统是由大量的传感器点、汇节点以及远程传输模块组成的分布式系统。基于簇的分层结构具有天然的分布式处理能力,簇头就是分布式处理中心,即无线传感器网络的一个汇节点。每个簇成员(传感器节点)都把数据

8、传给簇头,数据融合后直接传给远程传输网络,中央控制中心通过远程传输网络与多个汇节点连接,汇节点和传感器节点之间通过zigbee技术实现无线的信息交换。带有射频收发器的无线传感器节点负责对数据的感知和处理并传送给汇节点;通过远程传输网络获取采集到的相关信息,实现对现场的有效控制和管理。3.2zigbee技术的应用领域zigbee技术的目标就是针对工业、家庭自动化、遥测遥控、汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制、传感器的无线数据采集和监控、油田、电力、矿山和物流管理等应用领域。另外它还可以对局部区域内移动目标例如城市中的车辆进行定位。通常,符合如下条件之一的应用,就可以考虑采用z

9、igbee技术做无线传输:数据采集或监控的网点多;传输的数据量不大,但要设备成本低;要求数据传输可性高,安全性高;设备体积很小,不便放置较大的充电电池或者电源模块;电池供电;地形复杂,监测点多,需要较大的网络覆盖;现有移动网络的覆盖盲区;使用现存移动网络进行低数据量传输的遥测遥控系统;使用gps效果差,或成本太高的局部区域移动目标的定位应用。3.3zigbee协议栈结构zigbee协议栈定义了四层,分别是物理层、媒体访问控制层、网络层、应用层。物理层和媒体访问控制层由ieee802.15.4-2003定义,上层的网络层和应用层由zigbee联盟定义。应用层分别包括zdo(zigbee设备对象)

10、,aps(应用支持子层)和af(应用框架)组成。zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务。 zigbee协议栈结构如 图2 zigbee协议栈结构图所示。 图2 zigbee协议栈结构图1. 物理层物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。2. 媒体访问控制层媒体访问控制(mac)层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。在协调器的mac层,可以产生网络信标,同步网络

11、信标;支持zigbee设备的关联和取消关联;支持设备加密;在信道访问方面,采用csma/ca信道退避算法,减少了碰撞概率;确保时隙分配(gts);支持信标使能和非信标使能两种数据传输模式,为两个对等的mac实体提供可靠连接。3. 网络层网络层负责拓扑结构的建立和维护网络连接,主要功能包括设备连接和断开网络时所采用的机制,以及在帧信息传输过程中所采用的安全性机制。此外,还包括设备的路由发现和路由维护和转交。并且,网络层完成对一跳(onehop)邻居设备的发现和相关结点信息的存储。一个zigbee协调器创建一个新网络,为新加入的设备分配短地址等。并且,网络层还提供一些必要的函数,确保zigbee的

12、mac层正常工作,并且为应用层提供合适的服务接口。网络层要求能够很好地完成在ieee 802154标准中mac子层所定义的功能,同时,又要为应用层提供适当的服务接口。为了与应用层进行更好的通信,网络层中定义了两种服务实体来实现必要的功能。这两个服务实体是数据服务实体(nlde)和管理服务实体(nlme)。网络层的nlde通过数据服务实体服务访问点(nldesap)来提供数据传输服务,nlme通过管理服务实体服务访问点(nlmesap)来提供管理服务。nlme可以利用nlde来激活它的管理工作,它还具有对网络层信息数据库(nib)进行维护的功能。 在这个图中直观地给出了网络层所提供的实体和服务接

13、口等。 nlde提供的数据服务允许在处于同一应用网络中的两个或多个设备之间传输应用协议数据单元(apdu)。nlde提供的服务有:产生网络协议数据单元(npdu)和选择通信路由。选择通信路由,在通信中,nlde要发送一个npdu到一个合适的设备,这个设备可能是通信的终点也可能只是通信链路中的一个点。nlme需提供一个管理服务以允许一个应用来与协议栈操作进行交互。 nlme需要提供以下服务:配置一个新的设备(configuring a new device)。具有充分配置所需操作栈的能力。配置选项包括:zigbee协调器的开始操作,加入一个现有的网络等。 4. 应用层应用层包括三部分:应用支持子

14、层(aps)、zigbee设备对象(zdo)和应用框架(af)。应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。应用支持子层维护了一个绑定表,可以定义、增加或移除组信息;完成64位长地址(ieee地址)与16位短地址(网络地址)一对一映射;实现传输数据的分割与重组;应用支持子层连接网络层和应用层,是它们之间的接口。这个接口由两个服务实体提供:aps数据实体(apsde)和aps管理实体(apsme)。aps数据实体为网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。aps管理实体提供安全服务,节点绑定,建立和移除组地址,负责64位ieee地址与1

15、6位网络地址的地址映射4。zigbee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。用户在开发zigbee产品时,需要在zigbee协议栈的af上附加应用端点,调用zdo功能以发现网络上的其他设备和服务,管理绑定、安全和其他网络设置。zdo是一个特殊的应用对象,它驻留在每一个zigbee节点上,其端点编号固定为0。af应用框架是应用层与aps层的接口。它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。四 硬件设计4.1传感器节点模块化设计传感器节点一

16、般由数据采集单元、数据处理单元,通信单元( 即射频模块) 和电源单元组成,其结构如图5.1所示。图5.1 无线传感器节点结构图由于无线传感网络在通信上消耗较大能量,故处理器选用功耗较小的cc2530 为通信器件,设计无线网络节点。数据采集模块利用传感器监测外部环境,本作品中负责采集水的温度、ph值、浊度等水质信息,通过信号的调理输出,并传送给处理器进行处理。4.2cc2530芯片概述4.2.1cc2530芯片基本介绍zigbee新一代soc芯片cc2530是真正的片上系统解决方案,支持ieee 802.15.4标准/zigbee/zigbee rf4ce和能源的应用。拥有庞大的快闪记忆体多达2

17、56个字节,cc2530是理想zigbee专业应用。支持新remoti的zigbee rf4ce ,这是业界首款符合zigbee rf4ce兼容的协议栈,和更大内存大小将允许芯片无线下载,支持系统编程。此外,cc2530结合了一个完全集成的,高性能的rf收发器与一个8051微处理器,8 kb的ram ,32/64/128/256 kb闪存,以及其他强大的支持功能和外设。cc2530芯片具有如下主要性能: (1)高性能和低功耗的8051微控制器核;(2)32-kb、64-kb、128-kb或256kb的系统内可编程闪存; (3)8-kb ram,具备在各种供电方式下的数据保持能力; (4)集成符

18、合ieee 802.15.4标准的2.4ghz的rf无线电收发机; (5)极高的接收灵敏度和抗干扰性能; (6)可编程的输出功率高达4.5dbm;(7)只需一个晶振,即可满足网状网络系统的需要; (8)硬件支持csma/ca功能; (9)较宽的电压范围(2.03.6v)。4.2.2cc2530芯片引脚介绍cc2530芯片如图5.2所示。它采用6 mm6 mm的qfn封装,共有40个引脚。全部引脚可以分为i/o端口线引脚、电源线引脚和控制线引脚三类。图5.2 cc2530芯片引脚1. i/o端口线引脚功能 cc2530有21个可编程的i/o口引脚,p0、p1口是完全的8位口,p2口只有5个可使用

19、的位。通过软件设定一组sfr寄存器的位和字节,可使这些引脚作为通常的i/o口或作为连接adc、计时器或usart部件的外围设备i/o口使用。2 电源引脚功能 avdd1(28脚):为模拟电路连接2.0v3.6v的电压。 avdd2(27脚):为模拟电路连接2.0v3.6v的电压。 avdd3(24脚):为模拟电路连接2.0v3.6v的电压。 avdd4(29脚):为模拟电路连接2.0v3.6v的电压。 avdd5(21脚):为模拟电路连接2.0v3.6v的电压。 avdd6(31脚):为模拟电路连接2.0v3.6v的电压。 dcoupl(40脚):提供1.8v的数字电源去耦电压,不使用外部电路

20、供应。 dvdd1(39脚):提供2.0v3.6v的数字电源连接电压。 dvdd2(10脚):提供2.0v3.6v的数字电源连接电压。3. 控制线引脚 rbias(30脚):为参考电流提供精确的偏置电阻。 reset_n(20脚):复位引脚,低电平有效。 rf_n(26脚):在rx期间向lna输入负向射频信号。rf_p(25脚):在rx期间向lna输入正向射频信号。 xosc_q1(22脚):32mhz的晶振引脚1,或外部时钟输入引脚。 xosc_q2(23脚):32mhz的晶振引脚2。4.3温度传感器调理电路设计温度传感器采用 dallas 公司推出的 ds18b20 数字式温度传感器,磨耐

21、碰,体积小,使用方便,封装形式多样,适用于空间狭小的应用场合。只需单线接口,电路简单不需要 ad 转换器件和其它外围电路,缩小了系统的体积,提高了系统的可靠性。ds18b20 的封装有 3 脚、6 脚和 8 脚三种方式。本次设计中选用的是 3 引脚方式(to-92 封装),如图5.6所示。其中 dq 为数字信号输入/输出端,gnd 为电源地,vcc 为外接供电电源输入端(以寄生供电方式时接地)。系统把 dq 端连接到 cc530的 p0.0 口,通过对 ds18b20 的初始化,温度转换和读取等指令来测量室内质温度。图5.6 温度传感器测量电路4.4网络协调器外围电路设计网络协调器的外围电路都

22、放在扩展板上,主要包括电源、串口等外围电路,用于支持zigbee 模块工作以及和 pc 机的通信。网络协调器是整个网络中功耗最大的模块,因此网络协调器用的电源是通过 220v 交流电源转换而来,而不是 zigbee 网络中的常用的电池。在设计时为了简化电路、降低功耗,网络协调器上所有芯片都选用工作电压为 3.3v 的,该模块只需要 3.3v 电源供电,如图5.7所示。图5.7 节点电源处理模块图5.8 传感器电源处理模块图5.8中d1、d2的作用是防止输出电压大于输入电压导致烧坏7812或者7805。得到5v电源后再通过一个低压差线性稳压器(ldo:low dropout regulator)

23、将5v电源转换为工作电压3.3v给整个模块供电,ldo选用ti公司reg1117-3.3稳压器,该芯片电路简单,质量可靠,价格低。五 软件设计5.1iar开发环境iarembedded workbench简称为ew,它具备的调试器和c/c交叉编译环境,是当今最易使用、最完整的嵌入式应用开发工具。针对不同的微处理器提供一样直观的用户界面,当前支持35种以上的32位、16位、8位arm微处理器。ew的组成部分为c-spy调试器、嵌入式c/c编译器、汇编器、库管理员、编译器、项目管理器和连接定位器。使用iar的编译器不仅能节省硬件资源,最大限度降低产品成本,提高产品竞争力还能最大程度优化和紧凑代码。

24、iar embedded workbench集成编译环境主要有以下特征:支持高效浮点运算、完全兼容c标准、高效的promable代码、目标特性扩充、内建对应芯片的程序速度和大小的优化器、版本控制和扩展工具支持良好、便捷的中断处理和模拟、内存模式选择、瓶颈性能分析、工程中相对路径支持。iar ew8051集成开发环境如图6.1所示。图6.1 iar ew8051集成开发环境5.2协调器节点程序协调器的主要功能是建立网络,还有扫描网络信标、管理网络中节点的加入/退出和存储节点信息,同时还提供关联节点之间的路由信息。组建网络分为网络初始化和节点加入网络两个过程。zigbee网络的建立是由协调器发起的

25、,要组建网络的节点必须满足两个基本要求:一是节点必须是ffd节点,具备协调器的能力;二是节点还没有加入到其他网络中,网络初始化的流程如图6.2所示。图6.2 协调器组网流程图5.2.1网络组建确定网络协调器、信道扫描过程、设置网络id至此网络初始化就完成,相关代码如下第一步:z-stack由 main()函数开始执行,main()函数共做了2件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统int main( void ) .osal_init_system();/第二步,操作系统初始化.osal_start_system();/初始化完系统任务事件后,正式开始执行操作系统.第二步,进

26、入 osal_init_system()函数,执行操作系统初始化uint8 osal_init_system( void )osal_mem_init();osal_qhead = null;osaltimerinit();osal_pwrmgr_init();osalinittasks(); /第三步,执行操作系统任务初始化函数osal_mem_kick();return ( success );第三步,进入osalinittasks()函数,执行操作系统任务初始化void osalinittasks( void ) /第三步,初始化操作系统任务uint8 taskid = 0;taskse

27、vents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * taskscnt);osal_memset( tasksevents, 0, (sizeof( uint16 ) * taskscnt);/任务优先级由高向低依次排列,高优先级对应 taskid 的值反而小mactaskinit( taskid+ ); /不需要用户考虑nwk_init( taskid+ ); /不需要用户考虑hal_init( taskid+ );/硬件抽象层初始化,需要我们考虑#if defined( mt_task ) mt_taskinit( taskid+ );#

28、endifaps_init( taskid+ );/不需要用户考虑#if defined ( zigbee_fragmentation )apsf_init( taskid+ ); #endifzdapp_init( taskid+ );/第四步,zdapp层,初始化,执行zdapp_init函数后,如果是协调器将建立网络,如果是终端设备将加入网络。#if defined (zigbee_freq_agility)|defined ( zigbee_panid_conflict )zdnwkmgr_init( taskid+ ); #endifserialapp_init( taskid );

29、/应用层serialapp层初始化,需要用户考虑在此处设置了一个按键触发事件, /当有按键按下的时候,产生一个系统消息 第四步,进入zdapp_init()函数,执行zdapp层初始化第五步,正式执行操作系统void osal_start_system( void )/第五步,正式执行操作系统#if !defined ( zbit ) & !defined ( ubit )for(;)/死循环#endif uint8 idx = 0; osaltimeupdate();hal_processpoll();do if (tasksevents) break;/ 得到待处理的最高优先级任务索引号i

30、dx while (+idx taskscnt); if (idx taskscnt) uint16 events; halintstate_t intstate; hal_enter_critical_section(intstate);/进入临界区 events = tasksevents;/提取需要处理的任务中的事件 tasksevents = 0;/ 清除本次任务的事件 hal_exit_critical_section(intstate);/退出临界区 events = (tasksarr)( idx, events ); /通过指针调用任务处理函数,紧接着跳到相应的函数去处理,此为

31、第五步 hal_enter_critical_section(intstate);/进入临界区 tasksevents |= events;/ add back unprocessed events to the current task./ 保存未处理的事件 hal_exit_critical_section(intstate);/退出临界区 #if defined( power_saving ) else osal_pwrmgr_powerconserve(); #endif5.2.2节点之间的数据传输在完成协调器组网以及终端节点加入网络后并进行数据传输,将协调器通过rs-232和pc相连

32、,可以通过串口助手或者相应的开发软件来观察节点之间的数据传输。分析和处理数据,进行相关的控制操作,达到实时监控和智能控制的目的。协调器与上位机采用rs-232串口,传输速率为115200bps,无校验位,8个数据位,1位停止位,其软件流程如图6.3所示。图6.3 串口工作点流程5.3嵌入式网关程序嵌入式网关软件主要由硬件设备底层驱动、wince 6.0操作系统与协议栈的裁剪与移植和网关应用程序三大部分构成。通过系统的软件设计可以完成系统控制及zigbee网络和以太网通信等。硬件设备底层驱动是对物理硬件设备功能的软件封装,提供软件接口给wince6.0操作系统内核调用。网关驱动主要由以太网网卡驱

33、动、串口驱动、外部存储器驱动、lcd驱动和板载初始化等构成,嵌入式网关软件平台参考模型如图6.4所示。图 6.4 软件平台参考模型图6.5嵌入式网关网络协议转换模型传感器节点将经过简单的处理之后传输给协调器节点,协调器节点通过串口将数据传输给网关,网关将zigbee网络协议转换为internet网络协议,如图6.5所示,便可以实现远程访问。由于zigbee网络与internet网络使用的网络地址不同,要想实现这两种网络之间的转换,首先应该解决的就是两种网络的地址转换问题,网关就完成了两种地址之间的转换,使得数据能够在两种网络之间进行传输。zigbee网络中的每个节点都有各自的地址信息,其中地址

34、信息内容包括端点id和节点id两部分。在网关上建立zigbee网络的地址映射,将每个zigbee网络节点地址与一个udp端口建立一一映射关系。同时在网关上建立internet的地址映射,internet地址信息包括ip地址和端口号两部分,在网关上将每个internet主机地址与一个端点建立映射。这样就在网关中保存了zigbee节点和internet主机的全部信息,当zigbee网络数据报文传到网关时,网关根据zigbee网络节点发送的报文的目的端点id,来判断与这个端点id对应的internet主机的ip地址和端口号,以这个地址为目的地,将数据报文重新封装成udp报文并发送,数据的有效部分不变

35、。同理当internet网络发来数据时,网关根据主机发送的目的端口找到对应端点id,将internet数据报文重新封装并发送出去。最终完成数据能都在zigbee网络和internet网络中进行传输。嵌入式网关流程图如图6.6所示。图6.6 嵌入式网关软件流程图5.4 传感器节点程序在数据采集部分,各个终端节点首先监测附近的协调器节点,加入网络,进行数据的采集。为了节省能量的消耗,尽可能低的降低功耗,当终端节点不采集信息的时候,就进入睡眠模式,此时的功耗降到最低。当接收的指令需要采集数据时,就会从睡眠模式转换为工作模式进行工作。这种周期性的工作方式有效降低了功耗,节点软件的流程图如图6.7所示。图6.7 终端节点软件流程图总结本次为期四周的课程设计中,主要目的是设计一个基于物联网的智能家居演示系统。该系统是一个采用cc2530无线单片机进行温湿度的数据采集,并且结合zigbee协议架构进行编程的设计,主要是基于cc2530的温湿度数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论