(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf_第1页
(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf_第2页
(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf_第3页
(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf_第4页
(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(生物医学工程专业论文)基于ARM的远程家庭监护智能终端系统的研制.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 无线方式采集病人的心电和体温参数,通过u s b 主机下行口连接其他生理参 数模块采集血压等参数。所采集的参数经终端分析处理后,可在液晶上显示 生理参数值及结果,并可通过局域网传送到监护中心服务器,供社区医院监 护医生分析诊断。在病人出现生理异常时,家庭监护智能终端能够给出初步 诊断结果并发出报警监护服务器收到报警后提醒监护医生给出诊断结果, 并将诊断结果反馈到家庭监护终端显示,使病人能够得到及时救治。 本课题所研制的远程家庭监护终端系统,具有操作简单,界面友好,可 扩展性和灵活性高等特点,能够实现低成本实时远程家庭监护另外,系统 采用嵌入式系统设计,具有较高的可靠性和实时性。经测试,远程家庭监护 终端系统达到预期设计要求,有较高的实用价值。 关键词:a r m ;远程家庭监护;e c g ;p c o s u n 山东大学硕士学位论文 a b s t r a c t w i t ht h ec o n t i n u o u si m p r o v e m e n to fl i v i n gs t a n d a r d s ,t h e r ei s ag r o w i n g e m p h a s i s o np e o p l e sh e a l t hc a r ea n dw e l l n e s sc h e c k s w h i l s tw i t ht h e i n c r e a s i n g l ya g i n go ft h ep o p u l a t i o n ,h e a l t ho ft h ee l d e r l yh a s b e c o m et h e s u b j e c to ft h es o c i a lc o n c e r n s b u ti nt h ec u r r e n tm e d i c a ls y s t e m ,m o s th o s p i t a l s c a n tm e e tt h en e e d so ft h ec o m m u n i t yb e c a u s et h e ya r ei n t e r e s t e di nt h e t r e a t m e n to ft h ed i s e a s e s a l s os o m ed i s e a s e sh a v en oo b v i o u ss y m p t o m s ,b u t s u d d e n l ya r et a k e nb a da th o m e d u et o l a c ko ft i m e l ym e d i c a lt r e a t m e n t , p e o p l e si l l n e s s e sb e c a m ew o r s eo re v e nd i e s od e v e l o p m e n to f an e wm e d i c a l m o d e li sa b s o l u t e l yn e c e s s a r y an e wh o m eh e a l t ht e l e m o n i t o r i n gs y s t e mb a s e d o nc o m m u n i t yi st h er i g h tw a yt os o l v et h e s ep r o b l e m s i nt h es y s t e m ,t h ef a m i l y i st h ec o r ea n dp a t i e n t sa th o m ec a ne n j o yt h ep r o f e s s i o n a lc a r el i k ei nh o s p i t a l t h i sp a p e rd e v e l o p e dan e wh o m eh e a l t ht e l e m o n i t o r i n gs y s t e mb a s e do n c o m m u n i t ya n df a m i l y t h es t r u c t u r eo ft h es y s t e mi s ”h o m e c o m m u n i t y h o s p i t a l m a i nh o s p i t a l ”t h es y s t e mi n c l u d e s a ni n t e l l i g e n tt e r m i n a la t h o m e s i d ea n dav i e w e rs y s t e mf o rt h et h e r a p i s ta tc o m m u n i t yh o s p i t a l i nt h i s p a p e r ,t h ed e s i g no ft h eh o m e s i d ei n t e l l i g e n tt e r m i n a ls y s t e m sh a r d w a r ea n d s o f t w a r ei st h ek e y t h i sp a p e rp r e s e n t st h es c h e m eo ft h ei n t e l l i g e n tt e r m i n a lh a r d w a r ea n d s o f t w a r es y s t e mi nt h en e wh o m eh e a l t ht e l e m o n i t o r i n g t h ep h i l i p sl p c 2 2 14i s t h ec o r eo ft h ei n t e l l i g e n tt e r m i n a l sh a r d w a r ep l a t f o r m ,w h i c hi s3 2 - b i ta r m k e r n e le m b e d d e d m i c r o p r o c e s s o r ,p e r i p h e r ye x p a n d s b l u e t o o t hm o d u l e , i s p116 0u s bh o s tm o d u l e 。l0 me t h e r n e tc o m m u n i c a t i o nm o d u l e ,c fc a r d m e m o r ym o d u l ea n dl c dm o d u l e s t h i sp a p e rm i n u t e l yd e p i c t st h ed e s i g no f t h eh a r d w a r em o d u l e b a s e do nt h eh a r d w a r ep l a t f o r m ,w et r a n s p l a n tt h e e m b e d d e do p e r a t i n gs y s t e mt t c o s - i i a c c o r d i n gt os o f t w a r ea r c h i t e c t u r e , w h i c hh a so p e r a t i n gs y s t e m ,m i d d l e w a r ea n da p p l i c a t i o np r o c e d u r e st h r e el a y e r s , w ed e s i g na n di m p l e m e n tt h eh o m e s i d ei n t e l l i g e n tt e r m i n a l ss o f t w a r e s ot h a t t h es o f t w a r eo ft h ei n t e l l i g e n tt e r m i n a le a s i e rt om a i n t a i na n du p g r a d e i nt h i sp a p e rw es t a t et h er e a l i z a t i o no ft h ei n t e l l i g e n tt e r m i n a ls o f t w a r ei n d e t a i l w ed e s i g nt h ed r i v e ro ft h eh a r d w a r em o d u l e s ,c o m m u n i c a t i o np r o t o c o l s a n da p p l i c a t i o n s t h ee n t i r ea p p l i c a t i o np r o c e s si sd i v i d e di n t on i n ef u n c t i o n a l ! i i 山东大学硕士学位论文 t a s k ss c h e d u l i n gb yt h eo p e r a t i n gs y s t e mk e r n e l s ot h er e l i a b i l i t ya n dr e a l - t i m e o ft h e s y s t e m h a s i m p r o v e d au s e r - f r i e n d l y i n t e r f a c ea n da u t o m a t i c p h y s i o l o g i c a ls i g n a la n a l y s i sp r o g r a ma r ei m p o r t a n tp a r t so ft h ea p p l i c a t i o n p r o g r a m s t h ea u t o m a t i ca n a l y s i sa n dd i a g n o s t i co fe c gs i g n a l sa r es t u d i e d a p p l y i n gt h ea d a p t i v et e m p l a t ea u t o m a t i cd i a g n o s t i ca l g o r i t h m ,t h eh o m e - s i d e i n t e l l i g e n tt e r m i n a li sa b l et oa u t o m a t i c a l l ya n a l y z ea n dd i a g n o s e10k i n d so f c o m m o na b n o r m a lr h y t h m t h ei n t e l l i g e n tt e r m i n a ls y s t e mc a nt i m e l yc o l l e c ta n dt r a n s m i tm u l t i p l y p h y s i o l o g i c a lp a r a m e t e r s ,s u c ha se c g ,n i b p ,b l o o dg l u c o s e ,b o d yt e m p e r a t u r e , r e s p i r a t o r yr a t e a n do x y g e ns a t u r a t i o n a n dm o n i t o r i n g p a r a m e t e r sc a nb e c u s t o m i z e da c c o r d i n gt ot h ep a t i e n t sc o n d i t i o n ,w h i c hm a k et h eh o m eh e a l t h t e l e m o n i t o r i n gs y s t e m t ob e g o o ds c a l a b i l i t ya n df l e x i b i l i t y t h ei n t e l l i g e n t t e r m i n a ls y s t e mc a nc o l l e c te c ga n dt h eb o d yt e m p e r a t u r et h r o u g hb l u e t o o t h w i r e l e s sm o d u l ea n d a c q u i r eo t h e rp h y s i o l o g i c a lp a r a m e t e r s s u c ha sb l o o d p r e s s u r ep a r a m e t e r su s i n gt h eo t h e rm o d u l e s ,w h i c hc o n n e c t t ou s bh o s t d o w n - l i n k t h ea c q u i s i t i o np a r a m e t e r sa r ea n a l y z e db yt h et e r m i n a l 。t h e nt h e p h y s i o l o g i c a lp a r a m e t e r sa n dr e s u l t sc a nd i s p l a yo nt h el c d ( 1 i q u i dc r y s t a l d i s p l a y ) ,a n da l s ob es e n tt ot e l e m o n i t o r i n gc e n t e r 8s e r v e rt h r o u g hl a n i nt h e c o m m u n i t yh o s p i t a l st h et h e r a p i s tc o u l du s et h ep h y s i o l o g i c a lp a r a m e t e r st o a n a l y z ea n dd i a g n o s e w h e np h y s i o l o g i c a la b n o r m a l i t i e se m e r g e ,t h ei n t e l l i g e n t t e r m i n a lc a ng i v eap r e l i m i n a r yd i a g n o s i sa n da l a r mt op a t i e n ta n dt h e r a p i s t s e e i n gt h ea l e r t ,t h et h e r a p i s ts h o u l dg i v ead i a g n o s t i cr e s u l t sb a s e do nt h e p a t i e n t sp h y s i o l o g i c a lp a r a m e t e r si m m e d i a t e l y t h ed i a g n o s t i cr e s u l t sw i l lb e t r a n s m i t t e db a c kt ot h eh o m e s i d ei n t e l l i g e n tt e r m i n a la n db ed i s p l a y e do nl c d s op a t i e n t sc a nr e c e i v et i m e l yt r e a t m e n t t h e s u b je c t h a s d e v e l o p e d a n i n t e l l i g e n t t e r m i n a lh o m eh e a l t h t e l e m o n i t o r i n gs y s t e m ,w h i c hh a s as i m p l ea n d f r i e n d l yi n t e r f a c e ,h i g h s c a l a b i l i t ya n df l e x i b i l i t y ,c a na c h i e v el o w - c o s ta n dr e a l - t i m et e l e m o n i t o r i n g i n a d d i t i o n ,u s i n ge m b e d d e ds y s t e md e s i g n ,t h es y s t e mh a sh i g hr e a l t i m ea n d r e l i a b i l i t y t h r o u g ht e s t i n g ,t h ei n t e l l i g e n tt e r m i n a ls y s t e ma c h i e v e st h ed e s i r e d d e s i g nr e q u i r e m e n t so ft h eh o m et e l e h e a l t ha n dh a sh i g hp r a c t i c a lv a l u e k e y w o r d s :a r m ;h o m eh e a l t ht e l e m o n i t o r i n g ;e c g ;p c o s i i 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:翌丛垫 日 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:犀蝴师签名: o ) ,| _ t c o s - i i 将被返 回到被中断了的任务。 ( 4 ) 使用p c o s - i i 的注意事项 t t c o s - 通过调用o s i n i t 0 来进行系统初始化,o s i n i t o 初始化系统所有 的变量和数据结构,并建立起空闲任务和统计任务,这两个任务的优先级固 定为o s l o w e s t p r i o 和o s l o w e s t p r i o 一1 。多任务的启动通过调用 2 9 山东大学硕士学位论文 o s s t a r t 0 来实现。当然在调用之前必须要至少建立一个应用任务。 i _ l c o s - i i 需要用户提供周期性信号源,用于实现时间延时和确认延时, 节拍率在1 0 到1 0 0 h z 。节拍率越高,系统的额外负担越大。需要注意的是必 须在多任务启动以后再启动时钟节拍源计时。时钟节拍服务通过调用 o s t i m e t i c k o 来实现。 4 1 3f c o s 一任务管理与任务之间的通信 ( 1 ) 任务管理 任务管理的内容包括在应用程序中建立任务、删除任务、改交任务的优 先级、挂起和恢复任务,以及获得有关任务的信息f 3 3 2 1 t t c o s i i 操作系统可以通过传递任务的地址和其它参数到函数 0 s t a s k c r e a t e ( ) 和o s t a s k c r e a t e e x t o 来建立任务。后者是前者的扩展形式, 比前者建立任务更加灵活,但是会增加一些额外的负担。两个函数的形式如 下: o s t a s k c r e a t e ( v o i d( t a s k ) ( v o i d + p d ) 。 v o i d 。p d a t a , o s s t k。p t o s , i n t 8 u p r i o ) 各参数的意义为:t a s k 是任务代码的指针,p d a t a 是当任务执行时传递 给任务的参数的指针,p t o s 是分配给任务的堆栈的栈顶指针,p r i o 是分配给 任务的优先级 o s t a s k c r e a t e e x t ( v o i d ( * t a s k ) ( v o i d p d ) 。 v o i d p d a t a , o s s t k。p t o s 。 i n t 8 u p r i o , i n t l 6 u i d 。 o s s t k 。p b o s , i n t 3 2 u s t k s i z e , v o i d p e x t , i n t l 6 u o p t ) 其中前四个参数与o s t a s k c r e a t e o 函数的参数相同,后面五个参数的含 义为:i d 参数为要建立的任务创建一个特殊的标识符,在以后的版本可能 用到,在i t c o s 中没有使用;p b o s 是指向任务的堆栈栈底的指针,用于 堆栈的检验:s t k s i z e 用于指定堆栈成员的数目;p e x t 是指向用户附加的数 山东大学硕士学位论文 据域的指针,用来扩展任务的o st c b ;o p t 用于设定o s t a s k c r e a t e e x t 的选 项,指定是否允许堆栈检验是否将堆栈清零,任务是否要进行浮点操作等等 删除任务是说任务返回并处于休眠状态,并不是说任务的代码被删除 了。_ i t c o s i i 通常调用函数o s t a s k d e l 0 来完成任务的删除但是有一类情 况,任务a 拥有内存缓冲区或信号量之类的资源,而任务b 想删除该任务, a 所拥有的资源可能没被释放而丢失。如果想让拥有这些资源的任务在使用 完资源后,先释放自己,再删除自己,可以调用o s t a s k d e l r e q o 来完成。 挂起任务可通过调用o s t a s k s u s p e n d ( ) 函数来完成,任务可以挂起自己 或其它任务,挂起的任务只能通过调用o s t a s k r e s u m e o 函数来恢复。如果任 务挂起的同时也在等待延时期满,那么挂起操作被取消,延时期满转入就绪 态 p c o s i i 允许用户动态的改变任务的优先级,改变任务的优先级可以调 用函数0 s t a s k c h a n g e p r i o ( ) 来实现。用户可以调用o s t a s k q u e r y o 来获得自身 或其它任务的信息 ” ( 2 ) 任务之间的通信与同步 任务之间共享数据和提供任务之间的通信,除了利用宏 o s e n t e r _ c r i t i c a l ( ) 和o s e x i t c e i t i c a l o 来关、开中断以及利用函 数o s s c h e d l o c k ( ) 和o s s c h e d u n l o c k 0 对任务调度函数上锁和开锁等方法外, 还可以通过信号量、邮箱和信息队列来完成通信。 一个任务或者中断服务子程序可以通过事件控制块e c b ( e v e n tc o n t r o l b l o c k s ) 来向另外的任务发信号。这里,所有的信号都被看成是事件( e v e n t ) 一个任务还可以等待另一个任务或中断服务子程序给它发送信号。只有任务 可以等待事件发生,中断服务子程序是不能这样做的。对于处于等待状态的 任务,可以给它指定一个最长等待时间,以此来防止因为等待的事件没有发 生而无限期的等下去。 多个任务可以同时等待同一个事件的发生。在这种情况下,当该事件发 生后,所有等待该事件的任务中,优先级最高的任务得到了该事件并进入就 绪状态,准备执行。这里的事件,可以是信号量、邮箱或者消息队列等。 ( 3 ) 信号量 t t c o s i i 中的信号量由两部分组成:一个是信号量的计数值,它是一个 1 6 位的无符号整数( 0 到6 5 。5 3 5 之间) ;另一个是由等待该信号量的任务组 山东大学硕士学位论文 成的等待任务表。用户要在o s c f g , h 中将o s s e m e n 开关量常数置成l , 这样i t c o s i i 才能支持信号量 t t c o s i i 提供了5 个对信号量进行操作的函数:o s s e m c r e a t e 0 , o s s e m p e n d 0 ,o s s e m p o s t 0 ,o s s e m a c c e p t ( ) 和o s s e m q u e r y 0 函数 ( 4 ) 消息邮箱 邮箱是t t c o s i i 中另一种通讯机制,它可以使一个任务或者中断服务子 程序向另一个任务发送一个指针型的变量。该指针指向一个包含了特定“消 息”的数据结构。为了在t t c l o s i i 中使用邮箱,必须将o s c f g h 中的 0 s m b o xe n 常数置为l 。 t t c o s i i 提供了5 种对邮箱的操作函数:o s m b o x c r e a t e 0 , o s m b o x p e n d 0 ,o s m b o x p o s t 0 ,o s m b o x a c c e p t o 和o s m b o x q u e r y 0 ( 5 ) 消息队列 消息队列是t t c o s i i 中另一种通讯机制,它可以使一个任务或者中断服 务子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不 向,每个指针指向的数据结构变量也有所不同。为了使用t t c o s i i 的消息队 列功能,需要在o s c f g h 文件中,将o s q e n 常数设置为1 ,并且通过 常数o s _ m a x _ q s 来决定t t c o s - 1 1 支持的最多消息队列数。 t t c o s i i 提供了7 个对消息队列进行操作的函数:o s q c r e a t e o , o s q p e n d 0 ,o s q p o s t o ,o s q p o s t f r o n t ( 1 ,o s q a e c e p t 0 ,o s q f l u s h o 和 o s q q u e r y ( ) 除此之外,p c o s i i 操作系统还包括时间管理、内存管理模块。 4 2 软件开发环境a d s l 2 介绍 目前,针对a r m 处理器核的c 语言编译器很多,如s d t 、a d s 、i a r 和g c c 等。综合考虑版本升级及编译效率等因素,最终选择a d s l 2 进行程 序编译和调试。 a r ma d s 全称为a r md e v e l o p e rs u i t e 。a d s l 2 为最新版本它可以安装 在w i n d o w s 9 x 、w i n d o w s2 0 0 0 、w i n d o w sx p 等环境中。 a d s 由命令开发工具、a r m 时实库、g u i 开发环境( c o d ew a r r i o r 和 a x d ) 、实用程序和支持软件组成命令开发行工具完成将源代码编译、链 山东大学硕士学位论文 接成可执行代码,提供最主要的开发工具是a r m c c 、a r m l i n k a r m 运行时库 中提供a n s ic 库函数和c + + 库函数来支持被编译的c 和c + + 代码 图4 2c o d e w a r r i o r 集成开发环境主界面 图4 3 a x d 环境主界面 g u i 开发环境包括c o d ew a r r i o r 和a x d 两部分,c o d e w a r r i o r 集成开发 环境( i d e ) 为管理和开发项目提供了图形用户界面,用户可以使用这一环 境为a r m 或t h u m bc p u 开发c 、c + + 或汇编语言代码,图4 2 为此环境的 主界面。a x d 环境为a r m 扩展调试器,它可以完成4 项功能:装载映像文 件到目标内存;启动和停止程序的执行;显示内存、寄存器或变量的值;允 许用户改变存储的变量值图4 3 为a x d 环境的主界面。实用程序是来配合 命令开发工具使用的,它包括e l f 文件转换工具f r o m e l f 、下载程序工具 f l a s hd o w n l o a d 等。a d s 为用户提供支持软件a r m u l a t o r ,这一软件可以使 山东大学硕士学位论文 用户在软件仿真或蒸于a r m 的硬件环境下调试用户应用程序f 1 7 , 2 0 , 3 1 4 3 嵌入式操作系统的移植 将t t c o s i i 操作系统移植到l p c 2 2 1 4 上需要三个文件o s c p u h , o sc p uc c o sc p ua a s m 1 7 , 3 0 - 32 1 。 o sc pu _ h 主要内容是定义不依赖于编译的数据类型,指定堆栈的生长 方式以及定义底层接口。t t c o s i i 为了具有良好的可移植性并不使用c 语言 中的s h o r t 、i n t 、l o n g 等数据类型代之以整数数据类型l p c 2 2 1 4 可以有四 种堆栈形式包括满递减、满递增、空递减、空递增,但是采用a d s l 2 编译 嚣只支持满递减堆栈,即选择由上向下的增长方式。 定义底层接口是为了在c 语言环境中调用一些汇编代码高效的完成一些 系统服务功能,本文采用软中断指令实现底层接口。底层接口代码( 包括在 o s c p u h 文件中) 如程序清单4 2 程序清单4 2 实现软件中断的底层接口代码 # d e f i n e o s c r i t i c a l _ m e t h o d 2选择开、关中断的方式 $ w i ( o x 0 0 ) v o i do s t a s k s w ( v o i d ) s 任务级任务切换函数 s w i ( 0 x 0 1 ) v o i d 一0 s s t a r t h i g h r d y ( v o i d ) ; 运行优先级最高的任务 s w i ( o x 0 2 ) v o i do s e n t e r _ c r i t i c a l ( v o i d ) ; 关中断+ s w i ( o x 0 3 ) v o i do s e x i tc r i t i c a l ( v o j d ) ; 开中断 , s w i ( 0 x 4 0 ) v o i d o e t 0 s f u n c t i o n a d d r ( ;n ti n d e x ) ; 。获取系统服务函散入口 s w i ( 0 x 4 1 ) v o i d o c t u 8 r f u n c t i o n a d d r ( i n ti n d e x ) t 获取自定义服务函数入1 3 s w i ( o x 4 2 ) v o i do s i s r b e g i n ( v o i d ) ; 中断开始处理 s w i ( o x 4 3 ) i n to s i s r n e e d s w a p ( v o i d ) t 判断中断是否需要切换。 s w i ( 0 x s 0 ) v o i dc h n n g e t o s y s m o d e ( v o i d ) ; + 任务切换到系统模式 s w i ( o x 8 i ) v o i dc h n n g e t o u s r m o d e ( v o i d ) t 任务切换到用户模式 s w i ( 0 x 8 2 ) v o i dt a s k l s a r m ( i n t s up r i o ) t 任务代码是a r m 代码 s w i ( 0 x 8 3 ) v o i dt a s k l s t h u m b ( i n t s up r i o ) ; 任务代码是t h u m b 0 sc p uc c 代码文件需要根据l p c 2 2 1 4 的体系结构和a d s i 2 编译器 来定义任务的堆栈结构。并且在定义堆栈结构的函数o s s t ko s t a s k s t k i n i t ( v o i d ( * t a s k ) v o i d ( 。p d ) ,v o i d + p d a t a - o s s t k ”p t o s ,i n t l 6 uo p t ) 中定义一个 3 4 山东大学硕士学位论文 全局变量o s e n t e r s u m ,对关中断次数进行计数,这样就可以实现开中断和关 中断的嵌套了。实现软中断的详细服务代码也包括在o s c p u c c 文件中, 如程序清单4 - 3 。 程序清单4 3 软件中断服务程序代码 v o i ds w i e x c e p t i o n ( i n ts w i n u m ,i n t 。r e g s ) o s t c bp t c b ; s w i t c h ( s w l n u m ) c a s eo x 0 2 。关中断函散o s e n t e rc r i t i c a l o a s m m r s r 0 s p s r o r r r 0 ,r 0 ,# n o i n t m s rs p s rc 。r 0 o s e n t e r s u m + + : b r e a k l c a 。e0 x 0 3 , 开中断函数o s e x i t c r i t i c a l ( ) i f ( 一o s e n t e r s u m - 一0 ) a s m m r s r o ,s p s r b i c r 0 ,r 0 ,# n o i n t m s r s p s r _ c ,r 0 b r e a k : 此外,o s c p u c c 文件中还包括运行多任务时系统启动前调用最高优 先级任务函数的c 语言部分v o i d o s s t a r t h i g h r d y ( v o i d ) 函数以及几个供用 户编写的h o o k 函数 o s c p u _ a a s m 包括四个简单的汇编语言函数:调用启动前最高优先级 任务函数的汇编部分o s s t a r t h i g h r d y ( ) ;从低优先级任务切换到高优先级任 务的函数o s c t x s w 0 、o s i n t c t x s w 0 时钟节拍中断处理函数o s t i c k i s r o 。 对于任务切换函数在任务切换之前要利用堆栈保存被切换任务的有用状态。 l p c 2 2 1 4 具有1 7 个寄存器,但是并不是所有的寄存器都需要进入堆栈。为 了节省堆栈空间和减少切换时的时间开销,只将需要保护的寄存器放入堆栈 山东大学硕士学位论文 中,为此建立一个任务切换时的堆栈结构如图4 - 4 所示。 任务堆栈的其它 l r rl2 r3 r 2 rl r 0 空闲空间 图4 4 任务切换时堆栈结构 4 4 远程家庭监护智能终端软件整体设计 为保证程序的可移植性和重用性,以及方便家庭监护智能终端的升级, 按照系统软件体系结构设计思想,远程家庭监护智能终端的软件采用模块化 分层式设计,将整个家庭监护智能终端的软件根据功能划分为多个程序模 块,每个程序模块划分到不同的程序层。在嵌入式系统软件中,程序层一般 包括操作系统内核层、中间件层和应用程序层。操作系统内核层是p c o s i i 的内核,承担任务管理、内存管理和时间管理功能;中间件层介于底层硬件 与应用程序之间,包括硬件相关的驱动程序和通信协议,驱动程序主要完成 硬件初始化等操作,并为上层应用程序提供接口;应用程序层主要完成数据 的处理和请求内核服务的功能整个远程家庭监护智能终端的软件体系设计 如图4 5 所示。 l _ l 一锄| 任务 应 用 程 l 任务调度 r r 亿脚l 亿k n e 4 t a s k u a r tt 础c ft u k b lt a s k u s b t a s k d s pl t a s k d i s p 序 j 亡 gl 数据队列 1 辑霹闻浦信| i l 翻l 孝i 消息队列i u s b 主机 z l g 口c f f s 协议 协议文件系统协议 中 鏖i 消息邮箱 l e 霹 i 信号量 u a r t lb l u e t o o t hi i s p l l 6 0 fr t l s 0 1 9 a s ic f 卡lt 6 9 6 3 ci1 2 c 驱动i 驱动 i 驱动l 驱动 l 驱动ll c d 驱动l 驱动i 驱动程片 图4 - 5 智能终端软件体系结构图 山东大学硕士学位论文 i 目j | 目| 自目_ 目目| | 目e ! 目e g ! ! _ 目_ 日_ | | 日e ! ! e 目_ _ _ j ! g _ 自| e 目_ _ 自e s 鼻 4 5 中间件层软件设计 中问件层软件是建立在操作系统之上,为操作系统的应用程序和相关协 议提供对底层硬件支持的驱动程序这样应用程序不直接操作硬件,提高了 应用程序的硬件适应性,降低了软件对硬件变化的敏感性,使软件稍作修改 或者简单配置就可适应不同的硬件需要本课题中采用此思路对中间件层的 软件进行设计,对硬件进行操作以驱动硬件工作,对上层应用提供相应的a p i 函数中间件层软件主要包括:b l u e t o o t h 模块的驱动、u s b 主机接口驱动、 以太网接口驱动、液晶显示驱动及1 2 c 模块驱动。 4 5 1b i u e t o o t h 模块驱动程序设计 b l u e t o o t h 模块可为应用提供串口操作模式,因此在其驱动程序的编写实 际上就是串口驱动程序的编写,不需要考虑b l u e t o o t h 芯片驱动及上层蓝牙 应用协议的实现,降低了开发难度。串口的驱动程序主要由初始化函数 u a r t i n i t o 、接收字节函数u a r t g e t c h o 、发送字节函数u a r t _ p u t c h 0 及 发送多字节函数u a r t _ w r i t e 0 和串口中断处理函数u a r t e x c e p t i o n ( ) 实现。 u a r t i n i t o 函数主要完成串口的波特率和工作模式设置,要根据b l u e t o o t h 模块的相关参数进行设置。以下是其伪代码: u a r z i n i t o 配置相应的管脚为串口; 设置串口波特率: 设置串口字长,停止位,奇偶校验; 4 5 2u s b 主机接口驱动程序设计 ( 1 ) u s b 主机软件体系结构 u s b 主机的软件体系结构如图4 6 所示,其结构包括主机控制器驱动程 序、u s b 总线驱动程序和客户端软件2 3 以5 1 。i s p l l 6 0 主机控制器驱动 山东大学硕士学位论文 h c d ( h c d ,h o s tc o n t r o l l e r d r i v e r ) 处于软件系统最底层,它通过读写i s p l l 6 0 的可编程寄存器,实现对i s p l l 6 0 主机控制器硬件驱动,是上层软件的基础 u s b 总线驱动程序u s b d 为上层软件提供一个容易被支配的及配置的抽象设 备,简化了上层软件与u s b 设备之间的数据传输过程,上层软件可以调用协 议层所提供的软件接口,完成任意一种u s b 数据传输。u s b 总线驱动程序 u s b d 处理客户软件命令和客户软件与u s b 之间外设的数据传输。客户端软 件包括应用代码和u s b 类设备驱动。本课题中使所有u s b 的生理参数模块 遵循u s b 的h i d 设备类,因此,客户端软件的类设备驱动主要是h i d 类设 备驱动。 图4 6u s b 主机端软件体系结构 ( 2 ) i s p l l 6 0 主机控制器驱动程序 此部分程序的实现跟硬件密切相关,根据上一章的硬件连接确定 i s p l l 6 0 在系统中的端口地址,然后通过对i s p l l 6 0 的h c 控制和状态寄存器、 a t l 缓冲区和i t l 缓冲区等部件的操作,实现u s b 主机控制器的驱动。 i s p l l 6 0 的端口地址定义如下: # d e f i n e h c _ c o m m a n d a d d r e s s 0 x 8 2 0 0 0 0 0 2 i s p i l 6 0 与l p c 2 2 1 4 连接的

温馨提示

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

评论

0/150

提交评论