




已阅读5页,还剩65页未读, 继续免费阅读
(计算机应用技术专业论文)基于嵌入式linux的货币识别接收器设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 作为金融设备中的关键设备之一,货币识别接收器已广泛应用于 各种交易场合。但随着自助服务行业的发展,货币识别接收器在应用 中已面临着新的问题:一方面,由于货币版本的不断更新和各种假币 的出现,货币识别接收器自身需要进行远程智能升级以便及时更新识 别算法和识别特征库,这对传统的货币识别接收器提出了网络化、智 能化的要求;另一方面,原有的基于单片机裸机的系统结构难以实现 新功能的扩展。 本文首先分析了货币识别接收器及其目前典型应用系统的不足, 提出改进的系统模型。在此基础上,根据货币识别设备的特点采用嵌 入式处理器$ 3 c 4 5 1 0 b 和操作系统u c l i n u x 重新设计货币识别接收器 的硬件和软件结构,使其具备准确、迅速、稳定地识别各种货币的软 硬件基础,并支持m d b 、r s 2 3 2 以及以太网等三种通信方式。 通过研究分析u c l i n u x 操作系统的结构特点以及货币识别设备 的专用通信协议m d b 和b i l l 2 3 2 ,充分利用u c l i n u x 的相关内核机制, 在u c l i n u x 操作系统中以驱动程序的方式重新设计实现了这两个协 议;设计和编写了其它相关驱动程序;移植了纸币识别器的主控制程 序、其它应用程序模块以及识别特征库;专门针对远程智能升级的需 要,利用u c l i n u x 操作系统自身优秀的网络功能,设计了货币识别接 收器通过以太网接口直接联网实现智能升级的方法,并兼容以往通过 m d b 总线或r s 2 3 2 总线间接联网升级的方式。 这种货币识别接收器既能适应远程智能升级和联网交易系统的 管理监控需要,也能兼容传统的单机应用系统,并具有很好的可扩展 性,非常适于在金融、通信和自助服务等行业里进行更广泛的应用。 关键词:货币识别接收器,嵌入式系统,通信协议,智能升级 厶 a b s t r a c t a so n eo ft h ek e ye q u i p m e n t si nt h e f i n a n c i a le q u i p m e n t s ,t h e c u r r e n c yv a l i d a t o r h a sa l r e a d yb e e na p p l i e dt ov a r i o u s k i n d so ft r a d e o c c a s i o n s b u tw i t ht h e d e v e l o p m e n to fs e l f - s e r v i c ei n d u s t r i e s ,t h e c u r r e n c yv a l i d a t o rh a sb e e na l r e a d yf a c i n gn e wp r o b l e m s :o no n eh a n d , b e c a u s eo ft h ec o n t i n u a lr e n o v a t i o no ft h e c u r r e n c y e d i t i o na n d a p p e a r a n c e so fv a r i o u sk i n d so ff a k ec u r r e n c 5t h ec u r r e n c yv a l i d a t o r i t s e l fn e e d sr e m o t ei n t e l l i g e n tu p g r a d ei no r d e rt ou p g r a d et h er e c o g n i t i o n a l g o r i t h ma n dc h a r a c t e r i s t i cl i b r a r yo fc u r r e n c y , w h i c hh a sp u tf o r w a r d t h ed e m a n do fn e t w o r k i n ga n d i n t e l l i g e n c e t ot r a d i t i o n a l c u r r e n c y v a l i d a t o r ;o nt h eo t h e rh a n d ,t h eo l ds y s t e m a t i cs t r u c t u r eb a s e do ns i n g l e c h i pm i c r o c o m p u t e rw i t h o u to p e r a t i o ns y s t e mi s d i f f i c u l tt or e a l i z et h e e x p a n s i o no f n e wf u n c t i o n s t h i st h e s i sh a sa n a l y s e dt h ed e f i c i e n c yo fc u r r e n c yv a l i d a t o ra n di t s p r e s e n tt y p i c a la p p l i c a t i o ns y s t e m s ,a n dp r o p o s e da ni m p r o v e ds y s t e m m o d e l o nt h i sb a s i s ,a c c o r d i n gt ot h es p r c i a l i t yo fc u r r e n c yr e c o g n i t i o n , e m b e d d e dp r o c e s s o r $ 3 c 4 510 ba n de m b e d d e do su c l i n u xa r ea d o p t e d t or e d e s i g nt h eh a r d w a r ea n ds o f t w a r es t r u c t u r ef o rt h ec u r r e n c yv a l i d a t o r , w h i c hm a k e si tc a nd i s c e r nv a r i o u sk i n d so fc u r r e n c ya c c u r a t e l y , r a p i d l y a n ds t e a d i l y , a n ds u p p o r ts u c ht h r e ek i n d so fc o m m u n i c a t i o nw a y sa s m d b ,r s 2 3 2a n de t h e r n e t s p e c i a l - p u r p o s ec o m m u n i c a t i o np r o t o c o l so ft h ec u r r e n c yv a l i d a t o r ( m o ba n db i l l 2 3 2 ) a r er e d e s i g n e da sd r i v e r si nt h eu c l i n u xo p e r a t i o n f u l l yu t i l i z i n gi t sr e l e v a n tk e r n e lm e c h a n i s m s ,b a s e do nr e s e a r c h i n ga n d a n a l y s i n go ft h es t r u c t u r ec h a r a c t e r i s t i co fu c l i n u xa n dt h e s ep r o t o c o l s o t h e rd r i v e r sa r ea l s od e s i g n e da n dp r o g r a m m e d t h em a i nc o n t r o l p r o g r a m ,o t h e ra p p l i c a t i o nm o d u l e sa n dc h a r a c t e r i s t i cl i b r a r yo fc u r r e n c y r e c o g n i t i o na r et r a n s p l a n t e df r o mo l ds y s t e m a c c o r d i n gt ot h en e e do f o n l i n eu p g r a d e ,m a k i n gu s eo ft h ee x c e l l e n tn e t w o r kf u n c t i o no fu c l i n u x i t s e l f , ad i r e c to n l i n ei n t e l l i g e n tu p g r a d em e t h o df o rc u r r e n c yv a l i d a t o ri s d e s i g n e d a tt h es a m et i m e ,t h en e ws y s t e mi sc o m p a t i b l ef o rt h eo l d o n l i n eu p g r a d em e t h o d si n d i r e c t l yb ym d bb u so rr s 2 3 2b u s t h i sn e wk i n do fc u r r e n c yv a l i d a t o rm e e t st h en e e d so fb o t hr e m o t e i i i i i 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除了论文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得中南大学或其他单位的学 位或证书而使用过的材料。与我共同工作的同志对本研究所作的贡献均已在论文 中作了明确的说明。 作者签名: 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校有权保留学位 论文,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容, 可以采用复印、缩印或其它手段保存学位论文;学校可根据国家或湖南省有关部 门规定送交学位论文。 作者签名:导师签名: i - b i k s i z e 的的倍数。 w r i t e ,进行写操作,与r e a d 类似。 r e a d d i r ,取得下一个目录入口点,只有与文件系统相关的设备驱动程序 刁使用。 s e l e c t ,进行选择操作,如果驱动程序没有提供s e l e c t 入口,s e l e c t 操作将会认为设备已经准备好进行任何的i o 操作。 i o c t l ,进行读、写以外的其它操作,参数c m d 为自定义的的命令。 m m a p ,用于把设备的内容映射到地址空间,一般只有块设备驱动程序用。 o p e n ,打开设备准备进行i o 操作。返回0 表示打开成功,返回负数表示 失败。如果驱动程序没有提供o p e n 入口,则只要d e v d r i v e r 文件存在就认为 打开成功。 硕:i :学位论文第四章软件设计实现 r e l e a s e ,即c l o s e 操作。 ( 3 ) 设备驱动程序的编写 通过了解驱动程序的f i l e o p e r a t i o n s 结构,用户就可以编写相关外部设备 的驱动程序了。主要步骤为: 注册设备 系统初启,必须将设备登记到相应的设备数组,并返回设备的主驱动号。例 如,对于字符驱动设备来说,要使用r e g i s t e r c h r d e v0 来获得设备的驱动号, 然后对这个设备的所有调用都用这个设备号来实现。 编写相应的功能函数 对于每一个设备驱动程序来说,都有一些与此设备密切相关的功能函数,通 常对于块设备或者字符设备来说,都存在着诸如o p e n 0 、r e a d 0 、w r i t e 0 、 i o c t r l0 这一类的操作。当系统进行系统调用时,将自动地使用驱动函数中特定 的函数来实现具体的操作。而对于特定的设备,上面的系统调用对应的函数是一 定的。比如:在字符设备中,当系统试图读取这个设备( 即调用r e a d 0 ) 时,就 会运行驱动程序中的c h r r e a d0 这个函数。 ( 4 ) 设备驱动程序的安装 驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是 编译成模块以供动态加载。由于u c l i n u x 不支持模块动态加载,不能够像桌面 l i n u x 那样灵活地使用i n s m o d r m m o d 加载卸载设备驱动程序,因而,这里只介 绍将设备驱动程序静态编译进u c l i n u x 内核的方法。以本文所写的串口驱动文件 b i l i c o m d r i v e r c ( 其中实现了m d b 和r s 2 3 2 协议) 为例进行说明。 b i l l d r i v e r c 的初始化函数i n i t _ b i l l c o m ( ) 中注册新设备: r e s u l t = r e g i s t e r c h r d e v ( 2 7 0 ,”b i l l c o m ”,& b i l l c o mf o p s ) : 将b i l l c o m d r i v e r c 复制到u c l i n u x l i n u x d r i v e r s c h a r 目录下,并且 在u c l i n u x l i n u x d r i v e r s c h a r 目录下m e m c 文件的i n tc h r d e v i n i t ( ) 函 数中增加如下代码: # i f d e fc o n f i g b i l l c o m i n i t i l l c o m 0 : # e n d i f u c l i n u x 1 i n u x d r i v e r s c h a r 目录下m a k e f i l e 中增加如下代码: if e q ( $ ( c o n f i g _ b i l l c o m ) ,y ) l _ o b j s + = b i l l c o m d r i v e r o e n d j f 2 7 硕士学位论文第四章软件设计实现 在u c l i n u x 1 i n u x 一2 4 x d r i v e r s c h a r 目录下的c o n f i g i n 文件中字符 设备段里增加如下代码: b o o l s u p p o r tf o rb i l l c o m c o n f i g b i l l c o my 在u c l i n u x v e n d e r s a m s u n g 4 5 1 0 b m a k e f i l e 中增加: b i l l c o m ,c ,2 7 0 ,0 说明: b i l l c o m :字符设备名 c :设备类别,字符设备 2 7 0 :主设备号 0 :从设备号 在m a k em e n u c o n f i g 中选中添加的新设备 编译好内核以后重新启动,在d e v 目录下出现了新的设备b i l l c o m ,加载 成功,此时可以在应用程序中打开,读,写,关闭设备“”3 。 4 2m d b 协议和b i l l 2 3 2 协议的移植 m d b 协议和b i l l 2 3 2 协议在原有裸机系统中是以应用程序模块的形式实现 的。在裸机系统中,应用程序可以直接访问硬件,如中断、外部t o 口等,因此 这两个协议和主控制程序是实现在同一个层次的。但在嵌入式系统中,操作系统 把硬件操作和上层应用分隔开来了,所有面向底层硬件的工作交由操作系统来处 理。因此,原有的m d b 协议和b i l l 2 3 2 协议应用程序模块不能简单地照搬到嵌入 式操作系统中,而是需要重新进行分析,按照嵌入式操作系统的运行模式重新进 行设计实现。 从可移植性来看,原有系统中的协议是用c 语言编写的,与u c l i n u x 支持的 标准c 语言基本一致。虽然直接面向硬件部分以及协议与上层应用程序之间的接 口部分基本不能移植,但协议数据的处理流程方面基本相似,部分代码是可以比 较容易地实现移植的。 总的来说,部分代码较易移植,但整个协议需要以驱动程序的方式重新设计 实现。 4 2 1 协议实现方式设计 根据前面对u c l i n u x 操作系统结构的分析,m d b 协议和b i l l 2 3 2 协议是无法 作为应用程序来实现的,因为上层应用程序不能直接对底层硬件进行操作。考虑 到这两个协议都是基于串口操作的,可以把它们作为串口设备的驱动程序来实 2 8 硕士学位论文第四章软件设计实现 现,这样就能直接操作串口,实现快速响应。当然,这两个协议最终是为上层主 控制程序提供服务的,因为它们只是系统中的通信部分,所以必须考虑把通信中 获取的命令信息反馈给上层应用程序。 因此,这两个协议的实现从程序功能上可以分为三个部分: ( i ) 硬件中断的接收和发送部分 ( 2 ) 数据处理部分 ( 3 ) 与应用程序的接口部分 4 2 2 利用lin u x 的几个内核处理机制设计驱动程序 在具体设计协议驱动的过程中,必需遵循了高效、简洁和易行的设计原则。 因此,充分利用l i n u x 提供的内核处理机制设计高效快速的驱动程序。下面从 l i n u x 的几个重要机制出发进行设计。 ( 1 ) 中断处理 l i n u x 中断服务机制 l i n u x 中的中断处理程序很有特色,它的一个中断处理程序分为两个部分: 上半部( t o ph a l f ) 和下半部( b o t t o mh a l f ) 。之所以会有上半部和下半部之分, 完全是考虑到中断处理的效率。上半部的功能是“登记中断”。当一个中断发生 时,它就把设备驱动程序中中断例程的下半部挂到该设备的下半部执行队列中 去,然后就可以重新等待新的中断的到来。这样一来,上半部执行的速度就会很 快,它就可以接受更多它负责的设备产生的中断了 3 t - 3 3 o 内核把上半部和下半部分别作为独立的函数来处理,上半部决定其相关的 下半部是否需要执行。必须立即执行的部分位于上半部,可推迟执行的部分一般 放在下半部。系统中最多可有3 2 个下半部处理过程。b h b a s e 是指向这些过程 入口的指针数组,长整型变量b h _ m a s k 和b h a c t i v e 则用来表示哪些过程已经安 装,哪些处于活动状态。b hm a s k 的第n 位表示b h b a s e 的第n 个元素包含下半 部处理例程。b h a c t i v e 的第n 位表示b h b a s e 的第n 个下半部处理例程可在调 度器认为合适的时刻调用。 当设备驱动程序需要把某些任务延迟完成时,可以使用i n i t b h0 把这些任 务加入到相应的系统队列中去。i n i t b h 0 的函数原型: v o i di n i tb h ( i n tn r ,v o i d ( * r o u t i n e ) ( v o i d ) ) ( b hb a s e n r = r o u t i n e : b h _ m a s k _ c o u n t n r = o : b hm a s k = l m d bi so p e n e d n ”) : r e t t l r n0 : ) ( 3 ) r e l e a s e 函数 s t a t i ci n tr e l e a s em d b ( s t r u c t 3 3 m 0 吐d e c u s e c o u n t 禁止中断; p r i n t k ( “o m d bi sc l o s e d n ”) : r e t u r n0 : ) ( 4 ) r e a d 函数 s t a t i ci n t r e a d m d b ( s t r u c t f i l e * f i l e s ,c h a r * b u r ,s i z e t c o u n t ,l o f f _ t * f _ p o s ) f i n t e r r u p t i b l e s l e e p o n ( & m d b _ r e a d _ w a i t ) :读进程睡眠等待读中 断信号 序以下是读中断把进程唤醒之后的处理代码 u n s i g n e dc h a ru a r t o r x b u f 1 0 :定义一个临时变量 i f ( m d b r e s e t s t a t u s = = 1 ) 查看是否接收到“复位”命令 关中断 u a r t o r x b u f o = o x 0 1 :设置接收到“复位”命令的标志 m d b r e s e t s t a t u s = o :清“复位”状态 开中断 p r i n t k ( ”r er e s e t n ”) : c o p y t o u s e r ( u s e r _ b u f ,& u a r t o r x b u f ,c o u n t ) :把命令状 态标志传给用户空间 r e t u r nr e c f l a g :返回命令状态值 继续查看其它命令状态并返回给用户空间 r e t u r nr e c f l a g : ) ( 5 ) w r i t e 函数 硕士学位论文 第四章软件设计实现 关中断: c o p y f r o m _ u s e r ( & u a r t o t x b u f ,u s e r _ b u f ,c o u n t ) :把数据从用户 空间拷贝到内核空间 根据纸币器自身状态以及上位机的命令处理数据 设置相关的标志位: 开中断 r e t u r n0 : ( 6 ) 读中断服务程序 v o i d m d b r e a d s e r v i c e ( i n ti r q ,v o i d * d e v i d ,s t r u c tp t r e g s * r e g s ) f 清中断悬置位; 从串口b u f f e r 读出第一字节: 判断是地址字节还是数据字节 如果是地址字节,判断是否本设备地址 不是本设备地址则返回 是本设备地址,则准备接收后面的数据字节 把接收到的数据放入缓冲区,交给下半部程序处理 返回: ) ( 7 ) 读中断的下半部处理程序 v o i dm d b r e a d _ b h ( i n t * d a t a i n b u f f e r ) 分析缓冲区中的字节串代表什么命令 设置相应的命令状态标志 唤醒读进程 3 5 tcrtsbdm et 盯曲p f t 木 n1 1 t c f 1 f t 0 a l t , s t ( nu0c 硕:i :学位论文 第四章软件设计实现 返回: ) ( 8 ) 写中断服务程序 v o i d m d b _ w r i t e s e r v i c e ( i n ti r q ,v o i d * d e v i d ,s t r u c tp t r e g s * r e g s ) 清中断悬置位 根据相关的标志位以及m d b 协议处理数据 ) 4 2 4b i l l 2 3 2 协议的具体实现 b i l l 2 3 2 协议的驱动程序的实现跟m d b 驱动相似,具体内容在此就不赘述了。 下面只是简单地列出b i l l 2 3 2 驱动的一些特点: ( 1 ) 由于b i l l 2 3 2 协议的命令格式比m d b 更简单、规整,处理上比较容易 ( 2 ) b i l l 2 3 2 协议不区分地址字节和数据字节,但它的命令一般以相同的字 节内容大头,容易判断出命令的始末 ( 3 ) 由于b i l l 2 3 2 命令比较容易识别,b i l l 2 3 2 驱动中不需要下半部处理函 数,命令识别只需在读中断服务程序中完成 4 3 其它相关驱动 除了m d b 和b i l l 2 3 2 两个驱动之外,系统还需要通过i 0 口控制电机、a d 和d a 转换芯片,以及指示灯等相关外围设备。对于这些设备的控制,因为并不 复杂,而且也不属于系统定义的主要设备类型,所以只需以普通函数的形式来实 现。下面是各个驱动的部分代码说明。 ( 1 )电机驱动 电机驱动的主要功能有三个:控制电机顺时针转、控制电机逆时针转和使电 机停止转动。这三个功能由三个函数来实现: v o i dm o t o r o n c l o c k w i s e ( v o i d ) f i n 时针方向转动 m o t o r a o a r a m & = o x t f : m o t o r a r a mi = o x 7 0 :配置转向参数m o t o r a o a r a m ( - - 个全局变量) 硕士学位论文 第四章软件设计实现 e x t d a t a l = m o t o r p a r a m ;输出参数信号 ) v o i dm o t o ro nb a c k ( v o i d ) 逆时针方向转动 ( m o t o r p a r a m & = o x b f ; m o t o r _ p a r a mi = o x b o : e x t d a t a l = m o t o r p a r a m : v o i dm o t o r lo f f ( v o i d ) 使电机停止转动 m o t o r a o a r a m = o x o f : 4 e x t d a t a l = m o t o rp a r a m : u s d e l a y ( 1 0 0 ) :适当延时让电机停稳 ) ( 2 ) d a 驱动程序 d a 转换是通过芯片t l c 5 6 2 0 实现的,d a 驱动程序只是按照t l c 5 6 2 0 的时序 要求对其进行一些简单的控制操作。 v o i dd a t l c 5 6 2 0 ( u n s i g n e dc h a ra d d r ,u n s i g n e dc h a rd a t a ) d a 驱动 u n s i g n e dc h a ri ,j : w r i t e c l k ( 0 ) :时钟跳变 w r i t e c s l o a d ( 1 ) :拉高l o a d 信号 w r i t e c l k ( 1 ) : i f ( ( a d d r o x 0 1 ) ! = o ) w r i t e d i n ( 1 ) :输出地址 e l s ew r i t e d i n ( 0 ) : u s d e l a y ( 1 ) : w r i t e c l k ( 0 ) : j = t d a t a : f o r ( i = o :i 8 :i + + ) 3 7 广l_ = - 一 硕士学位论文 第四章软件设计实现 w r i t e c l k ( 1 ) : i f ( ( j o x 8 0 ) ! = 0 ) w r i t e d i n ( 1 ) :把数据写进缓冲 e l s ew r i t e d i n ( 0 ) : j = ( j 1 ) : u s d e l a y ( 1 ) : w r i t e c l k ( o ) : u s d e l a y ( 1 ) : w r i t e c l k ( 1 ) : ) w r i t e c s l o a d ( 0 ) :拉低l o a d 输出数据 u s d e l a y ( 2 ) : w r i t e c s l o a d ( 1 ) : ( 3 ) a d 驱动程序 a d 转换是通过芯片t l c l 5 4 3 来实现的。a d 驱动程序与d a 类似。 u n s i g n e di n ta d - t l c l 5 4 3 ( u n s i g n e dc h a ra d - a d d r e s s ) a d 驱动 u n s i g n e di n ti : u n s i g n e dc h a rj : w r i t e c s a d l ( 1 ) :置位片选信号,禁止片1 w r it e c s a d 2 ( 1 ) :置位片选信号,禁止片2 if ( ( a d _ a d d r e s s o x 8 0 ) = - 0 ) 选择片1 ( w r i t e c l k ( 0 ) :时钟跳变 w r i t e c s a d l ( 0 ) :打开片l if ( ( a d _ a d d r e s s o x 0 8 ) ! = 0 ) 如果选择第一路 w r i t e d i n ( 1 ) :输出地址 e l s ew r i t e d i n ( 0 ) : w r i t e c l k ( 1 ) : w r i t e c l k ( 0 ) : 3 8 硕士学位论文 第四章软件设计实现 f o r ( j = 0 :j 1 1 :j + 十) 读数据 w r i t e c l k ( 0 ) : w r i t e c l k ( 1 ) : i = ( i 1 ) : r e a d _ i n 0 : w r i t e c s a d l ( 1 ) : ) ( 4 ) 指示灯驱动程序 这个驱动是用于控制纸币器状态指示灯( 一个红色指示灯和一个绿色指示灯) 亮与灭的一个开关函数。 v o i dl e dr e do n ( v o i d ) 打开红色指示灯 l e d _ p a r a m & = o x c f ; l e d _ p a r a ml = o x c o :配置指示灯命令参数l e d p a r a m e x t d a t a l = l e d p a r a m ; ) v o i dl e d r e d o f f ( v o i d ) 熄灭红色指示灯 l e d _ p a r a m & = o x o f ; t e x t d a t a i = l e d p a r a m ; ) ( 5 ) i o 口子程序 v o i dw r i t e c s d a ( u n s i g n e dc h a rx x ) i f ( x x ! = o ) i o p d a t a i = o x l e l s ei o p d a t a = ( ( o x l ) ) 3 9 硕士学位论文第四章软件设计实现 4 4 应用程序的移植 纸币器的应用程序包括主控制程序、数据采集预处理模块、系统工况自适应 模块、环境自适应处理模块、卡钞故障自解脱模块、故障自诊断模块以及防钓鱼 检测模块等。另外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗建筑工程行业当前市场规模及未来五到十年发展趋势报告
- 2025年激光医疗行业当前发展趋势与投资机遇洞察报告
- 2025年办公设备租赁行业当前发展现状及增长策略研究报告
- 支气管镜细胞学病理课件
- 支架监理基础知识培训课件
- 撰写调查报告的意义课件
- 2025新版现代企业管理试题库(含答案)
- 2024年精神病学主治医师专业实践能力考试题(附含答案)
- 2025年注册安全工程师考试化工(中级)安全生产专业实务试卷及解答参考
- 2025年餐饮服务食品安全管理人员专业知识检验试卷B卷含答案
- 2023年安徽省五蒙高速公路开发有限公司招聘笔试题库及答案解析
- (完整版)淡水生物资源调查技术规范
- 养老机构放弃抢救及心肺复苏同意书、安宁服务协议
- 皮肤、伤口、造口护理(临床护理实践指南)
- 防范化解露天矿山安全生产风险
- 新员工安全培训试题2
- 2022年中原出版传媒投资控股集团有限公司招聘笔试题库及答案解析
- TSG 81-2022 场(厂)内专用机动车辆安全技术规程
- 水利水电工程建筑物技术讲座课件
- 代课教师聘用合同(5篇)
- 光学课程设计望远镜系统结构参数设计说明
评论
0/150
提交评论