分布式RFID门禁系统设计说明书资料.docx

上传人:b****6 文档编号:12143128 上传时间:2023-06-04 格式:DOCX 页数:19 大小:158.42KB
下载 相关 举报
分布式RFID门禁系统设计说明书资料.docx_第1页
第1页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第2页
第2页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第3页
第3页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第4页
第4页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第5页
第5页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第6页
第6页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第7页
第7页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第8页
第8页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第9页
第9页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第10页
第10页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第11页
第11页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第12页
第12页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第13页
第13页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第14页
第14页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第15页
第15页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第16页
第16页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第17页
第17页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第18页
第18页 / 共19页
分布式RFID门禁系统设计说明书资料.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

分布式RFID门禁系统设计说明书资料.docx

《分布式RFID门禁系统设计说明书资料.docx》由会员分享,可在线阅读,更多相关《分布式RFID门禁系统设计说明书资料.docx(19页珍藏版)》请在冰点文库上搜索。

分布式RFID门禁系统设计说明书资料.docx

分布式RFID门禁系统设计说明书资料

一前言

射频识别(RadioFrequencyIdentification,RFID)技术是从20世纪80年代开始走向成熟的一项自动识别技术,是当前最受人们关注的热点之一,该项技术既传统也充满新意和活力。

射频识别是无线电识别的简称,即通过无线电波进行识别。

它源于无线电通信技术,综合了现代计算机智能控制、智能识别、计算机网络等高新技术,顺应了计算机集成制造系统,电子商务等热点应用的发展需要。

射频识别应用电磁场,以非接触、无视觉、高可靠的方式传递特定识别信息,由于大规模集成电路技术的日益成熟,使得射频识别系统的体积大大减少,从而进入了实用化阶段。

射频识别技术具有工作距离大、信息收集处理快捷及较好的环境适应性等优点,极大地加速了有关信息的采集和处理,在近年来获得了极为迅速的发展。

基于RFID的考勤系统设计是将射频识别技术应用到家庭安防系统中的一次成功尝试。

这一系统克服了家庭生活中居住的安全性不能得到保证的弱点,能够有效地提高家庭安防系统的能力,为居家生活提供更好的,更安全的保障。

 

二案例描述

门禁系统,又称人口控制系统.在何时允许某些人进出,拒绝某些人进出,什么情况下要发生报警,记录人员的出入状况,是门禁系统最基本的功能.智能的RFID门禁系统是对楼房中的重要通道进行管理。

在门口,电梯,等人员来往频繁或重要的地方安装控制装置,例如:

读卡器,键盘等,人员想要进入必须有卡才能通过,大大增强的安全性。

基于RFID技术的门禁系统作为智能门禁系统的“骨干”,已经成为了一项先进的高科技技术防范和管理手段,在一些经济发达的国家已经广泛的应用于科研,工业,博物馆,酒店,商场,医疗监护,银行,监狱等,已成为安防技术重点研究和开发的对象。

1994年RFID技术进入中国,引发了中国RFID技术的应用革命。

在我国基于RFID的智能门禁系统的使用仍然处于发展状态,因此对射频识别技术在门禁系统方面的应用理论及实际可行性及实用性研究的重中之重。

近几年,关于识别系统的通讯模式,指纹等生物识别设备的集成管理及DVR系统的集成成为现代门禁系统发展的亮点。

另外,作为蓬勃发展的生物识别技术,随着其辨别技术的的不断成熟,以及人们对这类产品的进一步了解,若价格因素能保持人们可以接受的范围内,那么,该技术的应用前景将是十分广泛的。

射频识别(RFID,即RadioFrequencyIdentification)技术是自动识别技术在无线电技术方面的具体应用与发展,其基本原理是利用射频方式进行非接触双向通信,以达到识别与数据交换的目的[1]。

具有高精度、适应环境能力强、抗干扰强、操作快捷等优点,能够实现无线自动识别,主动监控的功能。

RFID技术作为一项先进的自动识别和数据采集技术,在实际应用中取得了显著的成效,已经成功应用到生产制造、物流管理、公共安全等各个领域。

随着RFID技术的日益成熟和普及,各国政府都意识到RFID技术的研究价值和蕴涵的巨大商机,制定相关政策加大财力、物力投资,积极推动本国RFID技术发展。

RFID技术的运用是非接触式IC卡目前的潮流,更快的响应速度和更高的频率是未来的趋势。

 

三需求分析

3.1实验箱模块的选择

本次实验选择的是实验箱中的高频模块,即HF高频下识别卡不需要绕制线圈,可以通过印刷的方式制作天线。

识别卡一般是负载调制的方式工作,也就是通过识别卡的负载电阻的接通和断开促使读写器天线上的电压发生变化,实现远距离识别卡对天线电压进行振幅调制。

就频率而言,高频RFID具有以下特性:

①工作频率为13.56MHz,该频率的波长大概为22米。

②除了金属材料外,该频率的波长可以穿过大多数的材料,但是往往会降低读取距离。

识别卡(感应器)需要离开金属一段距离。

③该频段在全球都得到认可并没有特殊的限制。

④该系统具有防冲撞特性,可以同时读取多个识别卡。

⑤可以把某些数据信息写入识别卡中。

⑥数据传输速率比低频要快且价格不是很贵。

高频RFID主要应用有:

◎航空包裹的管理和应用

◎瓦斯钢瓶的管理应用

◎预收费系统

◎酒店门锁的管理和应用

◎大型会议人员通道系统

◎固定资产的管理系统

◎医药物流系统的管理和应用

◎智能货架的管理

系统运行简要说明:

①:

上电后,430先通过并口访问7970芯片,在没有读到卡时,程序运行在串口读写模式,并每隔0.5s向串口发送一个“D”,直到有写操作为止。

②:

当有卡读写时,针对相应的卡,程序进入不同的协议中,并且点亮相应的LED灯。

(2)API调用说明

①:

上电后,配置完内部寄存器,程序进入串口读写程序,可以进行人机交互。

②:

当读到不同协议的卡时,程序退出串口读写程序,进入相应的协议子程序中(目前支持14443A协议和15693协议)。

读完卡后,退出相应的协议子程序,进入串口读写程序。

(3)ISO15693第三部分

通过读卡器获取指令流,读卡器采用TItrf7970读卡器芯片,开发资料参考协议ISO15693,trf7970datasheet,参考trf7960EVM.pdf实现ISO15693第三部分指令部分,防碰撞实验。

高频读写模块中,利用高频卡可以进行识别操作,因此高频读写有以下特性:

1.支持近场通讯(NFC)标准NFCIP-1(ISO/IEC18092)和NFCIP-2(ISO/IEC21481)2.用于ISO15693、ISO18000-3、ISO14443A/B、和FeliCa的完全集成的协议处理3.集成编码器、解码器和用于NFC启动程序的数据成帧,对所有3个比特率(106kbps,212kbps,424kbps)的有源和无源目标操作及卡仿真。

4.用于NFC无源发射机应答器仿真操作的具有可编程唤醒电平的RF场侦测器。

5.用于NFC物理冲突避免的RF场检测器。

6.用于ISO14443A防冲突(不完整字节)操作(发射机应答器仿真或者NFC无源目标)的集成状态机。

7.输入电压范围:

2.7VDC至5.5VDC。

8.可编程输出功率:

+20dBm(100mW),+23dBm(200mW)。

9.可编程I/O电压电平从1.8VDC至5.5VDC。

3.2开发语言的选择

软件结构框图:

系统软件主要包括信号处理和系统管理两个部分,信号处理模块采用C语言编程,系统管理部分软件采用MicrosoftVisualC#编程。

其中建立了一个中间数据库,编程简单,开发时间短,能够实现双卡识别功能,控制道阀自动开启和关闭,同时具有报警功能。

其软件流程图如下图1所示。

 

图一软件结构框图

3.3数据交换的方式

本次设计采用数据库存储用户信息及数据,执行程序之前,首先要设置串口波特率等相关串口参数,然后上位机通过串口向下位机发送命令,并进入串口中断。

下位机根据接收SBUF的值做相应的处理。

程序流程图如图2所示

图2数据采集子程序流程图

3.4应用程序的结构

3.4.1显示子程序

显示子程序的主要功能是对当前的门控状态进行显示,显示函数首先判断是写命令操作还是写数据操作,若是写命令操作,则根据命令进行相应的操作,如清屏、设置显示模式等;若是写数据操作,则在显示器上显示相应数据。

程序流程图如图3所示。

 

图3显示子程序流程图

3.4.2密码子程序

密码子程序流程图如图4所示,当程序运行时,会一直判断是否有按键被按下,当有按键被按下时,系统会确定键值,关将键值存入到密码数组里,然后将输入的密码与本身的密码做比较,若相同,则执行开门和显示正确信息的操作;若不相同,则执行报警和显示错误信息的操作。

密码子程序是整个门禁系统的关键部分,因为在通过密码程序的实施之后,才可以进行数据的访问与访问者的信息匹配,因此,密码系统就好比整个门禁系统的大门,它是连接访问者与数据的关键一环。

其中,密码程序的代码如下:

P1=0x0f;

if(P1!

=0x0f)compare(P1);

for(n=0;n<10;n++)

if(input[n]!

=password[n])break;

if(n==10)

{if(m<10)continue;

WriteLcdCom(0x01);  //清屏

WriteLcdCom(0x80);//第一行数据指针地址

for(s=0;s<16;s++)

WriteLcdDat(str2[s]);

LEDG=0;

BUZ=0;

delay_10ms(20);

LEDG=1;

BUZ=1;

WriteLcdCom(0x01);

input[0]="";}

elseif((n<10)&&(P1==0xbd))

{WriteLcdCom(0x01);  //清屏

WriteLcdCom(0x80);//第一行数据指针地址

for(s=0;s<16;s++)

WriteLcdDat(str4[s]);

LEDR=0;

for(s=0;s<5;s++)

{BUZ=0;

delay_10ms(20);

BUZ=1;

delay_10ms(20);}

LEDR=1;}

密码子系统的流程图如下:

图4密码子程序流程图

3.5存储系统的设计及分析

本设计中数据的存储芯片选用的是AT24C04,该芯片是串行的E2PROM,支持I2C总线数据传送协议。

程序流程图如图5所示。

图5存储系统程序流程图

当我们完成对存储过程的分析之后,我们需要对存储过程加以实施,此时,就需要编写存储程序的代码,存储程序核心的代码如下:

voideeprom()

{write_byte(0,0x1e);

write_byte(1,0xda);write_byte(2,0x62);write_byte(3,0xb6);

write_byte(4,0x25);write_byte(5,0xee);write_byte(6,0xde);

write_byte(7,0xb6);write_byte(8,0x05);write_byte(9,0xc8);

write_byte(10,0x43);write_byte(11,0xb8);write_byte(12,0x3a);

write_byte(13,0x04);write_byte(14,0x5d);write_byte(15,0xb6);}

bitshout(ucharwrite_data)//从MCU移出数据到AT89C51

{uchari;bitack_bit;

for(i=0;i<8;i++)//循环移入8个位

{SDA1=(bit)(write_data&0x80);

_nop_();

SCL1=1;

delayNOP();

SCL1=0;

write_data<<=1;}

SDA1=1;  //读取应答

delayNOP();

SCL1=1;

delayNOP();

ack_bit=SDA1;

SCL1=0;

returnack_bit; //返回AT24C04应答位

}

voidwrite_byte(ucharaddr,ucharwrite_data)

{start();

shout(OP_WRITE);

shout(addr);

shout(write_data);

stop();

delay_10ms

(1);}

3.6系统模块的总体设计

依据上述功能的分析,系统中模块分别为:

数据采集模块、数据处理模块、数据存储模块、显示模块、串口发送/接收模块、密码输入模块、报警机制模块。

系统功能结构图如图6所示,各功能模块具体功能如下:

1.数据采集模块:

当RFID卡进入到读卡器读卡范围时,读卡器读取卡序列号的过程。

2.数据处理模块:

针对于采集到的数据处理,从而对得到的数据进行判断其有效性。

3.数据存储模块:

用来存储数据。

4.显示模块:

用来接收单片机发送的数据,并对数据进行操作从而得到要显示的信息。

5.串口发送/接收模块:

主要用来通过串口发送和接收数据。

6.密码输入模块:

针对于用按键输入密码,根据密码的正确与否来进行相应的操作。

7.报警机制模块:

当出现非法卡或输入的密码不正确时产生报警。

 

图6系统功能结构图

3.6.1系统硬件设计

系统硬件设计主要由AT89C51主控芯片和ISO/IEC15693读卡器模块构成。

硬件电路由八部分构成:

微控制器AT89C51、读卡器模块ISO/IEC15693、LCD1602显示、串口通信MAX232、按键电路、AT24C04存储、报警电路、门控电路。

微控制器AT89C51负责读卡器模块ISO/IEC15693的初始化,上位机通过串口向ISO/IEC15693发送命令,ISO/IEC15693根据上位机发送的命令做相应的操作,然后将得到的信息传送给微控制器AT89C51,然后微控制器控制其它模块完成显示、报警、判断和门控操作。

上位机与下位机之间的连接主要是通过串口进行通信,采用MAX232芯片并将芯片的输入和输出管脚连接到AT89C51的I/O口,在MAX232的引脚上连接10µF的电解电容用来滤波。

读卡器模块ISO/IEC15693与微控制器AT89C51之间的通信是通过I2C总线进行的,由于AT89C51单片机本身并没有I2C总线,所以将ISO/IEC15693模块的串行时钟线与数据线接到AT89C51的两个I/O口,然后通过模拟I2C时序来完成AT89C51与ISO/IEC15693之间的通信,为了防止出现三态,在ISO/IEC15693的串行时钟线和数据线上分别上拉10k电阻。

而ISO/IEC15693读卡器与RFID卡之间的数据通信主要是通过天线进行的。

AT24C04与AT89C51之间的通信也是通过模拟I2C时序进行,同时为了防止出现三态,在时钟线与数据线上分别连接5.1k的上拉电阻。

LCD1602与AT89C52之间的通信是通过将LCD1602的3条控制线和8条数据线与AT89C51的I/O口相连。

对于按键电路的设计是将3*4按键直接连接到AT89C51的7位I/O口,采用线反转法通过查询方式进行工作。

3.6.2系统软件设计

软件主要实现数据的采集,数据的分析,模块之间的通信,以及相应的数据处理。

1.数据采集:

读卡器ISO/IEC15693通过天线读取RFID卡的数据,然后将数据传送出去。

2.数据分析:

AT89C51接收到数据后,将数据传送给AT24C04或上位机,AT24C04或上位机对数据进行分析,从而判断数据的有效性。

3.模块之间的通信:

AT89C51与ISO/IEC15693/AT24C04之间的通信都是通过模拟I2C总线进行的,I2C总线的高效性、高实用性、高可靠性数据传输增强了系统的实时性和可靠性。

4.数据处理:

针对数据的采集和分析的结果做出相应的处理,例如显示、报警、门控等。

四系统的整体描述和实现

4.1射频识别的简单描述

在本设计中,采用的是射频识别技术。

下面对射频识别技术做一下简要介绍:

1.射频识别技术原理

通常情况下,RFID的应用系统主要由读写器和RFID卡两部分组成的,见下图7。

其中,读写器一般作为计算机终端,用来实现对RFID卡的数据读写和存储,它是由控制单元、高频通讯模块和天线组成。

而RFID卡则是一种无源的应答器,主要是由一块集成电路(IC)芯片及其外接天线组成,其中RFID卡芯片通常集成有射频前端、逻辑控制、存储器等电路,有的甚至将天线一起集成在同一芯片上。

RFID应用系统的基本工作原理是RFID卡进入读写器的射频场后,由其天线获得的感应电流经升压电路作为芯片的电源,同时将带信息的感应电流通过射频前端电路检得数字信号送入逻辑控制电路进行信息处理,所需回复的信息则从存储器中获取经由逻辑控制电路送回射频前端电路,最后通过天线发回给读写器。

可见,RFID卡与读写器实现数据通讯过程中起关键的作用是天线。

一方面,无源的RFID卡芯片要启动电路工作需要通过天线在读写器天线产生的电磁场中获得足够的能量;另一方面,天线决定了RFID卡与读写器之间的通讯信道和通讯方式。

图7射频识别系统原理图

2.射频识别系统典型结构

射频识别系统的典型结构见图8,主要是由两部份组成:

读写器和射频卡。

读写器同射频卡之间通过无线方式通讯,因此它们都有无线收发模块及天线(或感应线圈)。

射频卡中有存储器,内存容量为几个比特到几十千比特。

可以存储永久性数据和非永久性数据。

永久性数据可以是射频卡序列号,它是用来作为射频卡的唯一身份标识,不能更改;非永久性数据写在E2PROM等可重写的存储器内,用以存储用户数据。

射频卡可以根据读写器发出的指令对这些数据进行相应的实时读写操作。

控制模块完成接收、译码及执行读写器的命令,控制读写数据,负责数据安全等功能。

射频卡分无源卡和有源卡两种,有源卡内置天线和电池,而无源卡只有内置天线没有电池,其能量由读写器提供,由于无源卡无需电池因此其尺寸较小且使用寿命长,应用越来越广泛。

读写器内的控制模块往往具有很强的处理功能,除了完成控制射频卡工作的任务,还要实现相互认证、数据加解密、数据纠错、出错报警及与计算机通信等功能。

计算机的功能是向读写器发送指令,并与读写器之间进行数据交换。

图8RFID系统典型结构

图8为RFID系统的工作过程,这是一个无源系统,即射频卡内不含电池,射频卡工作的能量是由射频读写模块发出的射频脉冲提供。

(1)射频读写模块在一个区域内发射能量形成电磁场,区域大小取决于发射功率、工作频率和天线尺寸。

(2)射频卡进入这个区域时,接收到射频读写模块的射频脉冲,经过桥式整流后给电容充电。

电容电压经过稳压后作为工作电压。

(3)数据解调部分从接收到的射频脉冲中解调出命令和数据并送到逻辑控制部分。

逻辑控制部分接收指令完成存储、发送数据或其它操作。

(4)如果需要发送数据,则将数据调制然后从收发模块发送出去。

(5)读写模块接收到返回的数据后,解码并进行错误校验来决定数据的有效性,然后进行处理,必要时可以通过RS232或RS422或RS485或RJ45或无线接口将数据传送到计算机。

读写器发送的射频信号除提供能量外,通常还提供时钟信号,使数据同步,从而简化了系统的设计。

有源系统的工作原理与此大致相同,不同处只是卡的工作电源由电池提供的。

4.2软件结构的实现

4.2.1系统的整体软件结构

系统软件设计是整个系统设计的重要部分,在硬件电路的基础上,加上软件编程才可以实现系统预期的功能。

在本系统中,软件的设计主要包括:

数据采集模块、存储模块、显示模块、门控模块、报警模块、键盘模块和上位机软件的设计几个方面。

本系统的软件结构框图如图9所示。

1.数据采集模块:

读卡器ISO/IEC15693通过天线读取RFID卡的数据,然后将数据传送出去。

2.存储模块:

AT89C51接收到数据后,将数据传送给AT24C04进行存储。

3.显示模块:

AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若两者完全相同,则液晶显示正确的信息;若不相同,则液晶显示错误的信息。

4.门控模块:

AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若两者完全相同,则进行开门操作;若不相同,则不开门。

5.报警模块:

AT89C51接收到数据后,将数据与AT24C04里存储的数据进行对比,若不相同则报警。

6.键盘模块:

通过键盘输入密码,并根据输入密码的有效性做相应的操作。

图9软件结构框图

串口发送/接收部分的调试:

将电路板与计算机连接以后,用一段简单的程序进行调试。

发现在调试的过程中,串口不能正常通信,经过查证后发现是电容正负极接反了,修正以后,便能正常通信了。

注:

电容的选择要注意,应选择0.1µF/1µF/10µF的电容。

存储部分的调试:

将AT24C04与单片机连接好后,编写一段简单的存储程序,将字符存入到24C04里,并取出查看存储数据的正确性。

通过调试后,并未发现问题。

存储电路调试成功。

读卡器部分的调试:

将读卡器接口与单片机相连后,用串口调试助手检测读卡器。

在用串口助手向读卡器发送读卡命令时,当有卡(MIFIRES50、S70卡)进入读卡器读卡范围内时,会向串口助手返回卡序列号,以此证明读卡器可用。

4.3系统功能的具体实现

4.3.1系统软件调试

在进行软件调试之前要先进行人工检查代码,要仔细认真的检查,在程序中要多添加注释,以便检查方便。

在人工检查无误后,才可以进行动态检查,也就是上机调试。

通过编译可以得到语法错误的信息,根据提示信息找出程序中出错之处并改正。

有时提示的出错信息并不是真正出错的行,这就要求我们善于分析,找出真正的错误,而不要单纯从字面意义上找出错信息,要懂得变通的理解并解决问题。

软件调试时,也要模块式进行。

调试时可用单步运行和断点运行方式,通过检查系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。

同时,还可以发现系统中存在的硬件设计错误和软件算法错误。

待各个模块调好后再进行系统程序联调。

这个阶段若出现故障,可以检查算法上是否有冲突、参数传递是否正确等。

在使用WAVE软件时,调试的方法和技巧最为重要,不同的情况采用不同的调试方法,有助于程序的实现。

在设计过程中显示运行结果一般用全速调试,调试时主要使用了跟踪调试、断点调试。

1.跟踪调试:

跟踪应用程序用户能够在运行应用程序时,看到PC指针在应用源代码程序中的确切位置。

跟踪型:

单步执行一条语句程序,有利于观察变量。

但是,如果调用一个函数,则进入函数中,在函数中单步执行每一条语句。

跟踪使用热键F7。

单步型:

单步执行每条语句程序,如果调用一个函数,则不进入函数中。

单步使用热键F8。

2.断点调试

如果已知程序中某块代码实际运行正常的情况下,仍用跟踪调试,将大大浪费时间,而且很枯燥,因此调试中第二个重要工具是在源代码中某一处设置断点,大多数调试程序通过使用断点中止程序执行。

在程序调试中用到使用断点调试,即在指定行上设置断点后,全速执行程序,看是否能进行到设置断点所在行。

如果用断点调试,由比较容易观察出程序变量的改变及程序运行的结果。

设置断点热键Ctrl+F8。

3.查看变量

WAVE软件可以通Watch窗口进行查看变量。

通过添加观察项菜单可以将用户希望观察的变量添加到观察窗口及数据窗口观察。

在设计过程中常用观察窗口观察程序中的变量,修改程序中的错误。

4.3.2系统整体调试

将各个部分的硬件模块合并成一个整体,把软件各个部分程序合并到一个主程序中。

通过伟福访真器和伟福调试软件WAVE6000开始整体调试,硬件部分用万用表来测试硬件每部分的接通性。

软件部分的测试主要方法是通过设置断点、单步执行等方法来测试程序的正确性。

在确定软硬件无问题后,将程序通过烧写器把程序烧到单片机中。

将程序烧写到控制芯片AT89C52,打开电源,电源指示灯亮,整个系统启动。

运行上位机,向下位机发送读卡命令,下位机接收到读卡命令后,当有RFID卡进入到读卡器的读卡范围内时,若RFID卡为有效卡便会在执行开门操作的同时在液晶上显示正确信息;若不是有效卡则在报警的同时在液晶上显示错误信息。

当通过键盘输入密码后,系统会判断密码的有效

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2