基于STM32的医用控温毯控制系统的设计—设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计说明书
目录
摘要 (3)
1详细设计 (3)
1 .1软件简述 (3)
1 .2软件功能描述 (3)
1 .3温度检测及显示模块设计 (5)
1 .4热释电红外传感模块 (7)
1 .5GSM短信报警模块 (8)
1 .6PWM脉冲发射控制 ................................................................... 错误!未定义书签。
2编程协定 (12)
2 .1操作系统 (12)
2 .2调试工具 (12)
2 .3编译链接工具 (12)
摘要
在临床医学上,往往需要对患者的全身或局部进行物理降温或升温治疗。
物理降温治疗中较为常见的是被广泛应用在神经外科、ICU、神经内科等临床科室的亚低温治疗;国际上将人体低温划分成三个范围,分别是:轻度低温(33~35℃),中度低温(17~27℃),超深低温(2~16℃),其中将轻中度低温(28~35℃)统称为亚低温[11。
研究发现,由于外部温度对脑组织细胞中与能量代谢相关的酶促反应的影响比较明显,在亚低温状态时酶促反应变慢,其能量代谢能够较正常状态减弱60%,使得脑组织能更好的耐受血氧不足的状态,这一特点使得亚低温治疗方法在治疗中重型颅脑损伤等方面有着先天优势,大量的临床应用也表明亚低温治疗脑组织损伤患者成功率更高,且尚未发现有严重的并发症发生,具有令人满意的安全性,目前国内外将亚低温治疗应用在重型和特重型颅脑损伤患者、广泛性脑挫裂伤脑水肿、原发性和继发性脑干伤、难以控制的颅内高压、中枢性高热与各种原因导致的心跳骤停等临床病症。
物理升温治疗主要应用在医疗手术及康复治疗过程中,临床研究表明,手术中或手术后会有较大的可能出现体温过低的现象,引起如心律失常、呼吸系统损坏、肾功能衰竭等并发症,对于全身麻醉时间较长的手术,需要做好相应的保温或升温措施以保证手术过程中患者的体温正常。
以往在对病人进行物理降温时常采用温水、酒精擦浴,冰袋冷敷等方式,虽然操作简单,迅速达到显著的降温效果,但是其温度控制困难,难以维持,而且需要定时更换,加重医护人员的工作量危险。
近年来,具有升降温功能的医用控温毯由于其便捷性与安全有效等特点而受到临床医生的青睐,一方面,医用控温毯的降温功能可用于亚低温治疗,通过将控温毯包裹患者的脑部或覆盖患者的体表来降低患者的体温,温度安全可控,不会发生冻伤的危害;另一方面,医用控温毯的升温功能可用于保温或升温治疗,通过控温毯覆盖患者体表与患者进行热交换实现患者体温的保持或升高,以保证患者在手术中或手术后的体温正常。
且医用控温毯操作简便,医护人员只需简单的操作就能实现自动控制并保持设定温度,大大减轻了医护人员的工作量。
目前医用控温毯已经在神经外科、ICU、神经内科、急诊科、血液科、儿科等临床科室被广泛应用。
关键词
医用控温毯串口屏
1 详细设计
1 .1软件简述
控制系统的软件设计是整个控制系统设计的核心工作,系统硬件的设计是为系统软件设计服务的,控制系统的功能实现完全依靠于系统的软件设计,系统软件设计不仅要实现所要求的功能,也要有较好的实时性、易拓展性、易维护性等特点,这就要求在软件设计前有充分的规划,选择并搭建好合适的开发平台,并留有相应的开发文档
1 .2软件功能描述
1 .2.1 软件功能介绍
本系统软件设计包括两部分,分别是控制系统软件设计和操作界面软件设计。
控制系统的软件设计使用C语言开发,并使用Keil公司的Keil uVision4集成开发环境(IDE) 以及其内置的RealView MDK.ARM开发工具(版本为4.12),该开发工具支持ARM7、ARM9、Cortex—M3
/MI、Cortex.RI瓜4等ARM微控制器内核。
本控制系统软件在嵌入式实时操作系统(RTOS)uC /OS.II(版本为V2.92.07)的基础上进行开发设计。
操作界面软件设计采用液晶屏厂家的串12屏开发调试软件VisualTFT(版本为V3.0)进行开发设计。
系统整体框架如图1所示。
1 .2.
2 软件基本框架
信号调理部分采用了模拟比较器输入的结构,下图是本软件的基本框架图和主程序流程图。
图一基本框架图
信号通过高速运放搭建的模拟比较器,比较器的比较电压通过STM32F417的数模转换器提供,用于初始化进行噪声采集,门限自适应,这样可以滤除存在于信道中的噪声。
若开机检测到串口发送指令,则程序切换到USART串口收发模式,可以进行参数设定和数据的导出
操作。
信号经过了模拟比较器后得到了一个标准的方波信号,方波信号进入到多路轮询模块中进行通道切换。
系统以C和汇编语言为编程语言。
该系统通过传感器对室内环境条件进行检测,检测数据传送给单片机,由单片机对数据进行处理并采取相应措施。
系统程序流程如图3所示。
系统启动之后,首先进行初始化操作,为了能够及时显示温度以及对非法入侵报警,系统采用中断技术,使用单片机定时中断TO,每隔500 ms中断一次。
打开中断后,系统开始进行工作,当有人进入时,系统调用GSM短信发送程序,并进行蜂鸣器报警,为了让报警产生效果,将报警时间延迟2分钟。
GSM发送短信程序设计的流程图如图4所示。
图二主程序流程图
1 .3液晶任务模块设计
在获取指令时,液晶显示任务通过串口1的接收中断接收来自触摸液晶屏模块的相关指令,串口l接受中断将接收到的液晶屏指令推送到消息队列中。
消息队列是uC/OS.II 系统提供的一种通信机制,可实现多条消息的存储与传递。
在uC/OS.II系统启动之前,主程序通过调
用消息队列建立函数建立了一个能存储50个字节的消息队列缓冲区,以存储接收到液晶屏指令。
当液晶任务运行时,会先检测消息队列里有没有液晶屏指令,并获取接收到的液晶屏指令长度,如果指令长度不为0,则调用指令处理函数。
在介绍指令处理函数之前,先介绍一下液晶屏指令的组成与格式。
液晶屏指令属于不定长指令,有四部分组成,分别是帧头、指令、指令参数和帧尾。
以切换画面的指令为例,当单片机发送EE B1 00 00 01 FF FC FF FF给液晶屏模块,就能实现画面切换的功能,其中EE是帧头,FF FC FF FF是帧尾,它们的格式是固定的,B1 00是指令部分,表示切换画面指令,∞01是指令参数部分,表示需要显示的目标画面ID,这两部分的长度是不固定的。
由于液晶屏指令存在固定的帧头与帧尾,相应的检测函数只需识别帧头与帧尾即可识别液晶屏指令。
1 .3.1 程序流程图
1 .3.
2 设备侧实现
液晶屏指令属于不定长指令,有四部分组成,分别是帧头、指令、指令参数和帧尾。
以切换画面的指令为例,当单片机发送EE B1 00 00 01 FF FC FF FF给液晶屏模块,就能实现画面切换的功能,其中EE是帧头,FF FC FF FF是帧尾,它们的格式是固定的,B1 00是指令部分,表示切换画面指令,∞01是指令参数部分,表示需要显示的目标画面ID,这两部分的长度是不固定的[32]。
由于液晶屏指令存在固定的帧头与帧尾,相应的检测函数只需识别帧头与帧尾即可识别液晶屏指令。
1 .4传感器任务模块
本控制系统中需要读取的传感器有DSl8820、ADT7320、液位开关与ACS712四种,这四种传感器都属于被动型输入设备,即不能产生中断,必须有由单片机通过相应的通信机制向传感器发送请求,并获取相关信号【60]。
传感器任务采用轮询的方式依次与各个传感器进行通信,并获取相关数据与信号。
1 .4.
2 设备侧实现
在读取各个传感器数据的函数中,读取ADT7320与读取电流信号分别使用的是片内的SPl2外设与片内的AD转换器,只需要在初始化时设置好相应的寄存器,在使用是只需调用STM32固件库提供的相应函数即可获取,软件上实现比较方便;读取水位信号的流程在介绍液位开关时已经说明,此处不再赘述;在读取两路DSISB20温度传感器信号时,由于DSl8820采用单总线协议与单片机通信,则需要软件来实现单总线通信协议的时序。
其复位、写操作、读操作时序。
1 .5测温处理模块
DSl8820的单总线命令发送方式是固定的,依次发送初始化命令、ROM命令、功能命令,每次访问DSl8820需严格执行这个顺序,否则将产生错误。
其中初始化命令是指由程序发送的复位脉冲与DSl8820响应的应答脉冲;ROM命令是与DSl8820内部唯一的ROM代码有关,当单总线上挂载多个DSl8820时,该指令用于识别各个不同的DSl8820;功能命令是指程序发送如转换温度、读暂存器、写暂存器等指令实现相应功能。
具体流程如下图。
1 .5.
2 设备侧实现
由于没有使用单总线上挂载多个DSl8820的硬件结构,所以在程序中发送跳过ROM指令不需进行ROM匹配;由于在硬件电路设计中采用了隔离措施,在对DSl8820实旋读写操作之前,需要通过相应管脚输出信号接通所要读取的DSl8820 所连接的通道,并通过相应管脚使能对应的模拟电子开关CD405l之后才能进行命令或数据的读写操作;在读取完温度数值后,数据处理函数会对温度数值采取一定的滤波处理,并判断温度值是否在所要求的范围内,否则的话讲置位相应的报警标志。
此外,在与DSl 8820进行通信之前,程序会检测DSl 8820的存在,如果不存在将置位相应的报警标志。
1 .6控制任务设计
控制任务的主要目的有两个,一是自整定PID参数,一是根据设置温度值与实际温度值通过PID算法输出相应的PWM脉冲。
1 .6.
2 设备侧实现
首先需初始化片内外设高级定时器1及其对应管脚状态,以输出PWM 脉冲,接着判断控制模式,如果是PID模式则计算设定温度值与实际温度值的偏差,并根据偏差进入相应的控制环节,在控制任务设计中,偏差大于3。
C,则输出占空比最大(95%)的PWM脉冲;偏差小于.1℃,则输出占空比最小(15%)的PWM脉冲,并用继电器切断电路连接;偏差在.1℃~3"C之间时,则进入PID控制,最后将控制环节得到。
的PWM占空比值写入相应寄存器输出对应的PWM脉冲,并调用系统延时函数延时2s,即PID控制的采样时间为2s。
如果是继电反馈控制模式,则进行PID参数整定的功能。
1 .7控制任务设计
的左侧是无线任务流程图,该任务先初始化USARTl与SPl2相关的管脚以及寄存器,无线任务
可通过相关变量进行开启或关闭,如果开启该功能则判断SPl2 中断发来的消息邮箱是否有消息,如果有则更新到相关全局变量;如果功能刚被开启,则通过串口l向Zigbee模块发送患者信息,并发送实时的温度等信息,如果不是刚开启功能,则只向Zigbee模块发送温度等信息,使得功能被开启后只发送一次患者信息的数据,而不用在重复发送。
1 .7.1 子程序流程图
1 .7.
2 设备侧实现
本控制系统的软件设计没有针对Zigbee模块进行开发,Zigbee模块上运行的程序是德州仪器(TI)公司提供的官方例程中的串V1透传(SerialApp)的代码,该程序实现的功能是作为终端的Zigbee模块通过串口接收数据,并将数据传输给作为协调器的Zigbee模块,该模块将接收的数据通过串El发送出去。
在图6.13中的右侧是报警任务流程图,该任务根据报警标志判断是否需要报警,报警标志包括实际水温、人体温度、热端温度等超限报警标志,水位信号报警标志,电流信号超限报警标志,相关传感器连接异常报警标志等。
2 编程协定
2 .1操作系统
Win7 操作系统,keil MDK Uvision5 集成开发环境2 .2调试工具
J-link V8仿真调试器
2 .3编译链接工具
Keil Uvision 5。