汽车CAN总线防盗系毕业设计.docx

上传人:b****4 文档编号:3387142 上传时间:2022-11-22 格式:DOCX 页数:57 大小:711.07KB
下载 相关 举报
汽车CAN总线防盗系毕业设计.docx_第1页
第1页 / 共57页
汽车CAN总线防盗系毕业设计.docx_第2页
第2页 / 共57页
汽车CAN总线防盗系毕业设计.docx_第3页
第3页 / 共57页
汽车CAN总线防盗系毕业设计.docx_第4页
第4页 / 共57页
汽车CAN总线防盗系毕业设计.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

汽车CAN总线防盗系毕业设计.docx

《汽车CAN总线防盗系毕业设计.docx》由会员分享,可在线阅读,更多相关《汽车CAN总线防盗系毕业设计.docx(57页珍藏版)》请在冰豆网上搜索。

汽车CAN总线防盗系毕业设计.docx

汽车CAN总线防盗系毕业设计

 

汽车CAN总线防盗系毕业设计

 

第1章绪论

汽车防盗系统的发展

国外:

美国的钥匙防盗技术

美国得克萨斯仪器公司下属的一家子公司利用无线电射频技术,研制成功一种“车辆固定系统”将射频发射应答器嵌入汽车钥匙中,应答器内存有与特定车辆相吻合的特别识别码。

当钥匙插入电源开关并转动时,就会在转发器和识别器之间引发一种无线电信号,如果钥匙中的识别码与汽车内的编码一致,汽车就可以发动起来。

否则,识别码就不会接通电源,从而锁定点火系统和供油系统,汽车无法起动。

该技术已为福特汽车公司所采用。

德国的变密码防盗技术

德国梅塞德斯.奔驰公司于1994年12月1日开始生产首批绝对防盗豪华轿车。

这种汽车装配有“电子开门钥匙”红外线遥控器,发射出肉眼看不见的多次变换密码的光信号及接受这种信号的特种传感器来防盗。

它由微型计算机与发动机的电子控制单元(ECU)相联。

当车门所闭时,能切断全部功能。

这种防盗装置之所以能绝对防盗,就在于密码的随时变换,只有与之相应的遥控器才能使用和识别密码。

澳大利亚的电子追踪防盗技术

澳大利亚一家公司发明的电子追踪防盗技术是示棕标识和追踪雷达系统的结合,能在14m之内对行驶的汽车进行监视和识别.每个标识都有一个硅集成电路和发射装置。

标识可跟踪车主要求的密码电波,出厂时装在车内。

追踪雷达系统则装在道路口的交通标志灯上,接收和识别每一辆驶过车辆的密码电波,警察据此扣留被盗车辆。

法国的代码防盗技术

法国雪铁龙和标志汽车公司研制成功一种用代码防汽车起动的装置。

该装置很有效又有约束性。

因为每次起动汽车前,必须输入代码才行。

这一技术已为新型雷诺轿车采用。

中国汽车防盗器市场的发展大体经历了三个阶段:

卖方市场

中国的防盗器源自台湾,台湾生产的防盗器当时在台湾盛极一时。

后因市场变化,就不再生产防盗器。

这个时期、中国的防盗器处于卖方市场。

有多少产品都可以卖出去。

当时PLC的技术主要来自台湾,只要关键配件一到、在PLC门口,就有许许多多的代理商排队等待购买。

买方市场

这一时期中国国内的汽车防盗企业少之又少,国外汽车防盗产品价格便宜,大量涌入中国市场,这一时期中国成为买方。

分立市场

现在我国自主汽车防盗技术已经很完善,产品也相对较多,可以和国外的产品相媲美。

未来汽车防盗技术发展方向:

买了车之后,最关心的就是汽车的防盗性能了,尽管现在一般的轿车上都有原配的汽车防盗装置,但细心的车主还会给自己的爱车装上第二个守护神。

汽车防盗器就是一种安装在车上,使汽车不会丢失的装置,目前防盗器按其结构与功能可分四大类:

机械类、电子式、芯片式和网络式,四者各有优劣,但汽车防盗的发展方向是向智能程度更高的芯片式和网络式发展。

(1)机械锁

 机械锁是最常见应用也最早的汽车防盗锁,现在已经很少单独使用,主要和电子式、芯片式联合使用,主要分为方向盘锁和排挡锁两大类。

方向盘锁大部分车主都会使用,也无须安装。

排挡锁一般是安装在中控台上,锁身与车身连接,再通过锁环限制换挡手柄的移动,但需要钻孔安装,所以使用的人并不多。

此外还有一种新型变速器锁,直接做成一个内置卡锁的换挡手柄,看起来很漂亮,但售价近千元,而且要将原来的换挡手柄换掉,使用者就更少。

 机械式锁主要起到限制车辆操作的作用,对防盗方面能够提供的帮助有限,很难抵挡住铁撬、钢锯、大剪刀等重型工具的盗窃。

但它们能拖延偷车贼作案的时间却是事实,一般偷车贼要用几十秒甚至几分钟才能撬开方向盘锁,变速杆锁的破坏时间还要长一点。

(2)电子式防盗系统

电子式防盗锁是目前应用最广的防盗锁之一,分为单向和双向的两种。

单向的电子防盗系统的主要功能是:

车的开关门、震动或非法开启车门报警等,也有一些品牌的产品根据客户的需求增加了一些功能:

用电子遥控器来完成发动机启动、熄火等。

双向可视的电子防盗系统相比单向的更为直观,能彻底让车主知道汽车现实的情况,当车有异动报警时,同时遥控器上的液晶显示器会显示汽车遭遇的状况,缺点是有效范围只有100-200米。

电子防盗系统的致命伤在于其电子密码和遥控操作方式,当车主用遥控器开关车门时,匿藏在附近的偷车贼可以用接收器或扫描器盗取遥控器发出的无线电波或红外线,再经过解码,就可以开启汽车的防盗系统。

(3)芯片式数码防盗器

芯片式数码防盗器是现在汽车防盗器发展的重点,大多数轿车均采用这种防盗方式作为原配防盗器。

芯片式数码防盗器基本原理是锁住汽车的马达、电路和油路,在没有芯片钥匙的情况下无法启动车辆。

数字化的密码重码率极低,而且要用密码钥匙接触车上的密码锁才能开锁,杜绝了被扫描的弊病。

目前进口的很多高档车,国产的大众、广州本田、派力奥等车型已装有原厂的芯片防盗系统。

目前芯片式防盗已经发展到第四代,最新面世的第四代电子防盗芯片,具有特殊诊断功能,即已获授权者在读取钥匙保密信息时,能够得到该防盗系统的历史信息。

系统中经授权的备用钥匙数目、时间印记以及其他背景信息,成为收发器安全特性的组成部分。

第四代电子防盗系统除了比以往的电子防盗系统更有效地起到防盗作用外,还具有其他先进之处:

它独特的射频识别技术(RFID)可以保证系统在任何情况下都能正确识别驾驶者,在驾驶者接近或远离车辆时可自动识别其身份自动打开或关闭车锁;无论在车内还是车外,独创的TMS37211器件能够轻松探测到电子钥匙的位置。

(4)网络防盗:

 网络防盗是指通过网络来实现汽车的开关门、启动马达、截停汽车、汽车的定位以及车辆会根据车主的要求提供远程的车况报告等功能。

网络防盗主要是突破了距离的限制。

目前主要使用的网络有:

无线网络(BB机网络)、GPS(卫星定位系统),其中应用最广的就是GPS。

 GPS系统全称为“全球卫星定位系统”。

实际上,此技术是美国耗资100多亿美元,历时20多年发展的一大航天工程。

1991年在海湾战争中被首次使用。

海湾战争之后。

GPS技术在非军事领域得到了更加深入的应用,在汽车反劫防盗领域取得实际效果。

GPS卫星定位系统属网络式防盗器,它主要靠锁定点火或起动达到防盗的目的。

GPS应用于汽车反劫防盗服务就得益于卫星监控中心对车辆的24小时不间断、高精度的监控服务。

该系统由安装在指挥中心的中央控制系统、安装在车辆上的移动GPS终端以及GSM通信网络组成,接受全球定位卫星发出的定位信息,计算出移动目标的经度、纬度、速度、方向,并利用GSM网络的短信息平台作为通信媒介来实现定位信息的传输,具有传统的GPS通信方案所无法比拟的优势。

缺点是:

价格昂贵,每月要交纳一定费用的服务费。

防盗报警系统的组成和工作原理

(1)机械式防盗器

机械式防盗装置是市面上最简单、最廉价的一种防盗装置,其原理十分简单,即锁住转向盘、控制踏板或挡柄。

优点:

价格便宜,安装简便,几百元甚至几十元就能搞定。

缺点:

防盗不彻底,每次拆装比较麻烦,不用时还得找地方放置。

(2)电子防盗器

电子防盗装置电子防盗就是给车锁加上电子识别码,开锁或配钥匙都需要输入十几位密码。

电子防盗的最大卖点在于密码解锁和声讯报警。

电子防盗装置的主要功能有以下四种:

声讯报警功能、安全提示功能、遥控寻车功能、中央门锁遥控功能。

(3)网络防盗器

网络防盗装置即利用现代电子信息技术、航天技术和网络技术,实现汽车与车主的实时信息反馈,以全球卫星定位系统(GPS)为代表。

其利用接收卫星发射信号与地面监控设备和GPS信号接收机组成全球定位系统,卫星星座连续不断发送动态目标——汽车的三维位置、速度和时间信息,从接收到的反馈信息来获知汽车当时所处的位置。

目前的GPS系统具有车辆定位、反劫报警、网络防盗、遥控熄火、车内监听、抛锚救援、路况信息、人工导航、车辆查询等多种功能。

本设计为汽车CAN控制防盗系统

本系统是把传感器装在车身的隐蔽位置,当有人走进监控距离、车身移动或振动、车门被打开时,传感器发出电信号,通过A/D转换装置,发送到主控制器。

控制器根据信号的来源,把报警分为“有人靠近”、“车体振动”和“车门被开”3个等级,并用GPRS/GSM终端将报警信息用短信的方式发送到用户手机上。

把“车门被开”作为高级别的报警,通知用户的同时,启动视频驱动程序,通过车内的摄像头把车内实况记录下来,发送到车主手机。

前两种情况下系统不传输图像,除非客户端主动查看图像,此时,系统几乎不占用信道。

当有入侵者进入防范区域时,MCU通过手机短信向用户发出告警信息。

由于此时发送的只是文字信息,信息量少,信息传递速度快。

同时,系统将告警时的画面存放在系统内的存储器件中供用户查看。

驾驶员不需用钥匙便可启动汽车,而只有汽车驾驶员才能发动汽车。

通过检测到的驾驶员发出的信息,汽车车门打开,通过输入发动密码本系统控制中央处理器输出信号将汽车起动机工作所需的电流传给起动机带动发动机工作。

第2章

系统总体设计

系统的总体框架

本系统硬件设计由以下几个模块组成:

主控制器模块、信息采集模块(传感器)、USB、摄像头模块、无线通信模块(GPRSMODEM)和图像压缩模块等。

主控制模块设计

本设计选用三星的S3C2410,它基于ARM内核,最大工作频率能达到203MHz,能支持NAND闪存启动,具有更高的性价比。

另外,S3C2410在市场上己有很多成熟的应用,因此选用了S3C2410作为系统的CPU。

所以本设计采用三星S3C2410。

S3C2410集成了一个LCD控制器(支持STN和TFT液晶显示屏)、NAND闪存控制器、SDRAM控制器、3个通道的UART、4个通道的DMA、4个具有PWM功能的计时器和1个内部时钟,以及8通道的10位ADC。

S3C2410还有很多丰富的外部接口,如触摸屏、I2C总线、12S总线接口,以及2个US主机接口、1个USB设备接口、2个SPI接口、SD接口。

在时钟方面,S3C2410集成了一个具有日历功能的RTC(实时控制)和具有PLL的芯片时钟发生器。

能产生200MHz的工作频率。

这样的工作频率能够使处理器轻松运行WinCE、Linux等操作系统,以及进行较为复杂的数据处理。

LCD控制器

一块LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。

通常LCD驱动器会以COF/COG的形式与LCD玻璃基板制做在一起,而LCD控制器则有外部电路来实现。

而S3C2410内部已经集成了LCD控制器,因此可以很方便地去控制各种类型的LCD屏,例如:

STN和TFT屏。

由于TFT屏将是今后应用的主流,因此接下来,本设计使用TFT屏的控制来进行。

  S3C2410LCD控制器的特性:

  TFT屏

  -支持单色、4级灰度、256色的调色板显示模式

  -支持64K和16M色非调色板显示模式

  -支持分辩率为640*480,320*240及其它多种规格的LCD

对于控制TFT屏来说,除了要给它送视频资料(VD[23:

0])以外,还有以下一些信号是必不可少的,分别是:

  VSYNC(VFRAME):

帧同步信号

  HSYNC(VLINE):

行同步信号

  VCLK:

像数时钟信号

  VDEN(VM):

数据有效标志信号

  图2.2.1是S3C2410内部的LCD控制器的逻辑示意图:

图2.2.1S3C2410内部LCD逻辑图

REGBANK是LCD控制器的寄存器组,用来对LCD控制器的各项参数进行设置。

而LCDCDMA则是LCD控制器专用的DMA信道,负责将视频资料从系统总线(SystemBus)上取来,通过VIDPRCS从VD[23:

0]发送给LCD屏。

同时TIMEGEN和LPC3600负责产生LCD屏所需要的控制时序,例如VSYNC、HSYNC、VCLK、VDEN,然后从VIDEOMUX送给LCD屏。

TFT屏时序分析

图2.2.2是TFT屏的典型时序。

其中VSYNC是帧同步信号,VSYNC每发出1个脉冲,都意味着新的1屏视频资料开始发送。

而HSYNC为行同步信号,每个HSYNC脉冲都表明新的1行视频资料开始发送。

而VDEN则用来标明视频资料的有效,VCLK是用来锁存视频资料的像数时钟。

并且在帧同步以及行同步的头尾都必须留有回扫时间,例如对于VSYNC来说前回扫时间就是(VSPW+1)+(VBPD+1),后回扫时间就是(VFPD+1);HSYNC亦类同。

这样的时序要求是当初CRT显示器由于电子枪偏转需要时间,但后来成了实际上的工业标准,乃至于后来出现的TFT屏为了在时序上于CRT兼容,也采用了这样的控制时序。

图2.2.2TFT屏时序

本设计是YFARM9-EDU-1采用的是Samsung公司的1款3.5寸TFT真彩LCD屏,分辩率为240*320,下图为该屏的时序要求。

图2.2.3要求时序

  通过对比图2.2.2和图2.3.3,看出:

  VSPW+1=2->VSPW=1

  VBPD+1=2->VBPD=1

  LINVAL+1=320->LINVAL=319

  VFPD+1=3->VFPD=2

  HSPW+1=4->HSPW=3

  HBPD+1=7->HBPW=6

  HOZVAL+1=240->HOZVAL=239

  HFPD+1=31->HFPD=30

以上各参数,除了LINVAL和HOZVAL直接和屏的分辩率有关,其它的参数在实际操作过程中应以上面的为参考,不应偏差太多。

  LCD控制器主要寄存器功能详解

  

(1)LCDCON1

图2.2.4扫描

LINECNT:

当前行扫描计数器值,标明当前扫描到了多少行

CLKVAL:

决定VCLK的分频比。

LCD控制器输出的VCLK是直接由系统总线(AHB)的工作频率HCLK直接分频得到的。

做为240*320的TFT屏,应保证得出的VCLK在5~10MHz之间

MMODE:

VM信号的触发模式(仅对STN屏有效,对TFT屏无意义)

PNRMODE:

选择当前的显示模式,对于TFT屏而言,应选择[11],即TFTLCDpanel

BPPMODE:

选择色彩模式,对于真彩显示而言,选择16bpp(64K色)即可满足要求

ENVID:

使能LCD信号输出

图2.2.5各项含义体现

VBPD,LINEVAL,VFPD,VSPW的各项含义已经在前面的时序图中得到体现,这里不再赘述。

HBPD,HOZVAL,HFPD的各项含义已经在前面的时序图中得到体现。

手触屏设计

本设计基于三星S3C2410X微处理器,采用SPI接口与ADS7843触摸屏控制器芯片完成触摸屏模块的设计。

具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了触摸屏硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。

当驾驶人进入汽车点击密码,汽车发动。

(XPYPYMXM为0~9输入数字)

硬件设计

SPI接口是Motorola的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏控制器。

本设计采用SPI接口的触摸屏控制器ADS7843外接四线电阻式触摸屏,这种方式最显著的特点是响应速度更快、灵敏度更高,微处理器与触摸屏控制器间的通讯时间大大减少,提高了微处理器的效率。

ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。

图2.2.2触摸屏输入系统示意图

嵌入式Linux系统下的驱动程序

设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。

Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。

应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。

为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。

设备驱动在加载时首先需要调用入口函数init_module(),该函数完成设备驱动的初始化工作。

其中最重要的工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。

注册成功后,该设备获得了系统分配的主设备号、自定义的次设备号,并建立起与文件系统的关联。

字符设备驱动程序向Linux内核注册登记时,在字符设备向量表chrdevs中增加一个device_struct数据结构条目,这个设备的主设备标识符用作这个向量表的索引。

向量表中的每一个条目,即一个device_struct数据结构包括两个元素:

一个登记的设备驱动程序的名称的指针和一个指向一组文件操作的指针。

这块文件操作本身位于这个设备的字符设备驱动程序中,每一个都处理特定的文件操作,比如打开、读写和关闭。

所谓登记,就是将由模块提供的file_operations结构指针填入device_struct数据结构数组的某个表项。

登记以后,位于上层的模块(内核)可以“看见”这个模块了。

但是,应用程序却还不能“看见”它,因而还不能通过系统调用它。

要使应用程序能“看见”这个模块或者它所驱动的设备,就要在文件系统中为其创建一个代表它的节点。

通过系统调用mknod()创建代表此项设备的文件节点——设备入口点,就可使一项设备在系统中可见,成为应用程序可以访问的设备。

另外,设备驱动在卸载时需要回收相应的资源,令设备的相应寄存器值复位并从系统中注销该设备。

Linux操作系统通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。

设备驱动模块的功能就是扩展内核的功能,主要完成两部分任务:

一个是系统调用,另一个是处理中断。

图2是一个设备驱动模块动态挂接、卸载和系统调用的全过程。

系统调用部分则是对设备的操作过程,比如open,read,write,ioctl等操作,设备驱动程序所提供的这组入口点由几个结构向系统进行说明,分别是file_operations数据结构、inode数据结构和file数据结构。

内核内部通过file结构识别设备,通过file_operations数据结构提供文件系统的入口点函数,也就是访问设备驱动的函数,结构中的每一个成员都对应着一个系统调用。

在嵌入式系统的开发中,我们一般仅仅实现其中几个接口函数:

read、write、open、ioctl及release就可以完成应用系统需要的功能。

写驱动程序的任务之一就是完成file_operations中的函数指针。

(1)触摸屏驱动程序设计的关键

触摸屏驱动程序中重要数据结构

typedefstruct{

 unsignedshortpressure;

 unsignedshortx;

 unsignedshorty;

 unsignedshortpad;

}TS_RET; 

typedefstruct{

 unsignedintPenStatus; 

 TS_RETbuf[MAX_TS_BUF];

 unsignedinthead,tail;

 wait_queue_head_twq; 

 spinlock_tlock; 

}TS_DEV; 

staticstructfile_operationss3c2410_fops={

 owner:

 THIS_MODULE,

 open:

 s3c2410_ts_open,

 read:

 s3c2410_ts_read,  release:

 s3c2410_ts_release,

poll:

 s3c2410_ts_poll,   }; 

  在程序中有三个重要的数据结构:

用于表示笔触点数据信息的结构TS_RET,表示ADS7843中有关触摸屏控制器信息的结构TS_DEV,以及驱动程序与应用程序的接口file_operations结构的s3c2410_fops。

  

TS_RET结构体中的信息就是驱动程序提供给上层应用程序使用的信息,用来存储触摸屏的返回值。

上层应用程序通过读接口,从底层驱动中读取信息,并根据得到的值进行其他方面的操作。

TS_DEV结构用于记录触摸屏运行的各种状态,PenStatus包括PEN_UP、PEN_DOWN和PEN_FLEETING。

buf[MAX_TS_BUF]是用来存放数据信息的事件队列,head、tail分别指向事件队列的头和尾。

程序中的笔事件队列是一个环形结构,当有事件加入时,队列头加一,当有事件被取走时,队列尾加一,当头尾位置指针一致时读取笔事件的信息,进程会被安排进入睡眠。

wq等待队列,包含一个锁变量和一个正在睡眠进程链表。

当有好几个进程都在等待某件事时,Linux会把这些进程记录到这个等待队列。

它的作用是当没有笔触事件发生时,阻塞上层的读操作,直到有笔触事件发生。

lock使用自旋锁,自旋锁是基于共享变量来工作的,函数可以通过给某个变量设置一个特殊值来获得锁。

而其他需要锁的函数则会循环查询锁是否可用。

MAX_TS_BUF的值为16,即在没有被读取之前,系统缓冲区中最多可以存放16个笔触数据信息。

s3c2410_fops就是内核对驱动的调用接口,完成了将驱动函数映射为标准接口。

上面的这种特殊表示方法不是标准C的语法,而是GNU编译器的一种特殊扩展,它使用名字进行结构字段的初始化,它的好处体现在结构清晰,易于理解,并且避免了结构发生变化带来的许多问题。

(2)init_module函数

这是模块的入口函数。

在函数内部通过s3c2410_ts_init()实现模块的初始化工作。

在本设计中设备与系统之间以中断方式进行数据交换。

整个触摸屏的驱动程序处理比较复杂,而且耗时较长,因而触摸屏驱动程序不可能在中断服务程序中完成。

在Linux操作系统中一般把中断处理切为两个部分或两半。

中断处理程序是上半部——接收到一个中断,它就立即开始执行,但只做有严格时限的工作,例如对接收的中断进行应答或复位硬件。

这些工作都是在所有中断被禁止的情况下完成的,能够被允许稍后完成的工作会推迟到下半部去。

在Linux中下半部的实现有多种机制。

按触摸屏时,从ADS7843输出的数值有一个抖动过程,即从ADS7846输出的数值有一个不稳定时期,这个过程大约为10ms。

所以中断处理程序的下半部处理函数采用内核定时器机制,使下半部在中断发生50ms后再作处理。

这样有效地避开了ADS7843输出值的不稳定时期,使中断服务程序和中断处理任务串行化,达到了处理时间较长的触摸屏事件的目的。

驱动程序通过request_irq函数注册并激活一个中断处理程序,以便处理中断。

intreguest_irq(unsignedintirq,void(*handler)(int,void*,structpt_regs*),unsignedlongirq_flags,constchar*dev_name,void*dev_id)

参数irq表示所要申请的中断号;handler为向系统登记的中断处理子程序,中断产生时由系统来调用;dev_name为设备名;dev_id为申请时告诉系统的设备标识符;irq_flags是申请时的选项,它决定中断处理程序的一些特性,其中最重要的是中断处理程序是快速处理程序还是慢速处理程序。

在s3c2410_ts_init()中的另一个重要任务是执行接口函数s3c2410_ts_open(),在这个函数中初始化缓冲区的头尾指针、触摸屏状态变量及触摸屏事件等待队列。

module_exit()

该函数调用s3c2410_ts_exit(),主要任务是撤销驱动程序向内核

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

当前位置:首页 > 人文社科 > 法律资料

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

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