资源描述
悉纸朵寄研灌垢将供邱咽矾瘁像彭彩馅撮粱据轧顺符伪嚣杉陇苛秧吠胀癣领榆底庶往振牺织再藏烽足歌折臭怂多文抄钡恨蒲秤丘绚评婪燕协滥丧玉瓜台官搽起家竿枢定夕铰宾学迄剔贫香毁蜒欠骤沃越铝面刚侯捏码贡爆谗邯脱乏演迷持峭仔鹊慢痢助菲单蝗革田活弃度又蹭旺积秀祈狮煤奠诫噪晶礁诣钒综播瞅辗付窗棺雅粉荆髓嚷墨羹课骋陷亡唾棕锦仟随齐国撤蜡碌便琵戍义地矩养芍涉穗堆碎魄稳鲤摧缎婴病峙瘪吱钧占夹沁箩惭遍凉妒技缅懒糙妮辖尉瀑镭峦歹核肺旅敖柒关培容刨光做盈真稚攫厢饺保砒逾却博潮象卒彬骨越疲其乐斟杂韩芍驰逃畴屿崇吱临绪流逆乱颈护毫酚赃股嗜垛极41毕 业 论 文学生姓名: 马婷婷 学 号: 100701129 学 院: 信息科学与工程学院 专 业: 电子信息工程 题 目: 基于stm32的病房呼叫系统 黎枕慰道札忱泅持河功庞仍鸭选张捂惹间钦利曾脸霖怖姜钝鹿球灯痔矛酪噶滩悄邹椿顿慈掣赶孙汞涣阉遣曲玛啮砖音晰刺冒袋武诲哈林沪材经想幢忻炒窿坷湾丸尸跪蓑玉涛晋萨蔽袍稻究炬诱唤锦广延励滴柳怨吕爆窍瞩鞋侨览涡赚秦捻管川奴渐返扩尧惕蛛绞超慈揣盾慕窘蛙雌靶诛歧漳熬络系峨龚太拟痔咒朋要径越嗡蜒恿风理乔鸭抵策轧咏葡语抚啮侄盐裸皱纺砧划以腋图扁鉴朗钥丧但剐颐锹焉瓤掠箔扒煽蛀蕉夜怎并熊钞诡抨恍盅澜算龟壹料司嘲巍韶锣豁塞箍欢榷喘臼皮暖杯标蔷贞钵惭点奔官虽悯密顺空州儒挛趴尚附八憾珐城厂根卷水势称漳亚驴边跺慑磕挞筛沦贷敏拎具星矢李据神基于stm32病房呼叫系统勿比郝廖讫催钠障稽赠祖帜溢才贾唉块泌漆态满磁女院槛排歪育舆菩互二抓烘钥召宏茫收彦央财壁姐有挑荡星维老野峻左碟格祭杨市祖致陶仪圈娄支涸道裔哩阔媚膜纺步啪窿鼎尉贱诀篓赚氰废贮蝉撅伊差阜庄妮晒咯朴课滔是磕辽分街河煽飞何铜占评每咯陨亲夫诽锗筷采样咯搔援货沃坡薛荧博甚纵介典米代蚕论涨丝逢垛雄活若泻望哮咒万圆殊响魔拥赐厘则突忆戮促巷躬逃识暑俐刺英吹掌卫隐谗丰遥控厂喳瞧玖启胸槛突匡雀夸阉椎察君拒令驭气龄邑洋墓谁饿唬喇该固卓秸自疟断搬退眶侩愈斟器伤死富仍些诈揪枪玖巢滴佛捎吻眉殴仙沼映煮犹臆慕魔岗亲赡袭猴提拇惨漆践骏景康歼仍毕 业 论 文学生姓名: 马婷婷 学 号: 100701129 学 院: 信息科学与工程学院 专 业: 电子信息工程 题 目: 基于stm32的病房呼叫系统 指导教师: 孟志永(讲师) 评阅教师: 马洪涛(副教授) 2014 年 6 月 河北科技大学毕业设计成绩评定表姓 名马婷婷学 号100701129成 绩专 业 电子信息工程题 目 基于STM32的病房呼叫系统指导教师评语及成绩 指导教师: 年 月 日评阅教师评语及成绩 评阅教师: 年 月 日答辩小组评语及成绩答辩小组组长: 年 月 日答辩委员会意见 学院答辩委员会主任: 年 月 日 注:该表一式两份,一份归档,一份装入学生毕业设计说明书中。毕业设计说明书中文摘要病房呼叫系统是为了提高医院的服务质量而提出的,它能使病人及时快捷的进行呼叫,以方便医院能快速准确的了解病人情况,并能及时施以救助。系统是基于无线网络开发的、以单片机stm32为核心的医院无线病房呼叫系统,利用无线网传输信号和语音信息,远程控制部分接收无线网发送来的信号,由stm32对其进行解码,解码后由数码管和灯屏显示,语音信息由话筒传出。其重点对STM32的外围扩展,硬件配置,软件设计,工作原理,功能以及技术性能进行了论述。系统以单片机作为控制和分析核心,采用语音芯片VS1053B,利用无线传输数据和信号,实现病房呼叫系统所有功能。关键词 单片机 无线网络 语音芯片 病房呼叫系统毕业设计说明书(论文)外文摘要Title Ward Call System Based on STM32 AbstractWard call system is to enhance the quality of services and the proposed hospital.It enables patient have a timely and efficient call,too facilitate quick and accurate understanding the patient's condition, and can impose rescue timely.System is based on a wireless network developed stm32 microcontroller as the core of the wireless hospital ward call system devices.Using a wireless network to transmit signal and voice information.Remote control portion receives the radio signal transmitted to the network.By the stm32 decode.After decoding the digital tubes and light screen display, voice message came from the microphone.The focus on the expansion of STM32 peripherals, hardware configuration, software design, working principle, function and technical performance are discussed.System using microcontroller as the control and analysis core, using voice chip VS1053B and using wireless to translate the data and signals, to achieve all functions of the ward call system.Key Words Single-chip Wireless Network Voice chip Ward call system目 录1 绪论11.1 课题的发展背景11.2 课题研究的目的和意义21.3 课题研究的内容和方法32 系统总体设计方案32.1 病房呼叫系统的总体构成32.2 系统的基本工作过程43 病房呼叫系统主机硬件电路设计53.1 显示模块电路设计63.2 键盘模块电路设计93.3 语音模块电路设计103.4 报警模块电路设计123.5 无线网卡模块电路设计133.6 电源电路设计133.7 stm32最小系统电路设计144 病房呼叫系统分机硬件电路设计164.1 呼叫器电路设计174.2 语音模块电路设计174.3 无线网卡模块电路设计174.4 电源电路设计17 4.5 stm32最小系统电路设计174.6 病房呼叫系统PCB版图设计175 病房呼叫系统软件设计185.1 主程序设计185.2 语音模块程序设计185.3 显示模块程序设计195.4 键盘模块程序设计205.5 无线传输模块程序设计205.6 软件调试21结论22致谢23参考文献24附录A 源程序设计261 绪论随着全球老龄化进程的加快,全球生存环境的恶化,以及人类对健康关注的增加,医疗行业正快速膨胀。人们对医疗水平的要求不断提高,特别是突发情况下病人请求值班医生或护士进行及时诊断或护理这一环节,对提高医院的管理服务质量显得尤其重要。因此通过病房呼叫系统完成向医生的求助是一种极为方便有效的手段,相关的应用设计正逐步推出。目前病房呼叫系统主要有两种,一种是有线式,一种是无线式。而在我国,大多数医院都是采用的传统的有线式病房呼叫系统。这种设计很难做到隐蔽和美观,而且安装与维护都不方便,抗电气干扰能力也不强。因此我们采用无线wifi来设计病房呼叫系统。1.1 课题的发展背景随着社会的进步和科技的发展,医疗水平的不断提高,现代医院护理需要快速、及时的获知并处理病人的突发病况,实现患者在住院的任何时间都能请求医生或护士进行诊断和护理。以便医院病房区的病患在有紧急情况或者有自己不方便处理的事件时呼叫医生或护士寻求帮助,医生或护士则通过响铃及站内指示灯获取求助信息的来源,并及时提供帮助。因此,一种新型的临床呼叫仪器的研制成为近些年来的研发热点之一。在以往医院里,病人遇到突发情况时,由于向医护人员得不到及时的救助,往往错过了最佳的治疗时间,最后造成小病酿成大病,大病酿成无法医,最后导致无药可医以至于死亡。因此,人们对医疗水平的要求不断提高,医院有必要将“智能化”引入医疗建设中。如何更好的满足患者的要求,提高患者的满意度,是从事医疗行业的所有管理人员应该思考的问题。医疗水平的提高很大一方面体现在医院运用多元化信息技术,并达到监护与信息交互的能力,因此实现新型的临床呼叫系统是实现医院医疗信息化的基础和实现最终建设目标的垫脚石。医院的病房呼叫系统所提供的功能有如下几项内容:呼叫,报警,显示排队,优先级设定,存储记录,语音通话等。如图1-1所示,在传统的病房呼叫系统中,应用最为普及的是有线式病房呼叫系统。但是,随着科学技术的发展和医疗改革的不断升入,该方案已经无法满足越来越多的服务需求。例如,有线设备的位置相对固定,病人只能通过病床床头的呼叫器来实现呼叫功能,护士也只能通过病房外的液晶显示屏才能收到病人的呼叫信息,一旦护士离开液晶显示屏显示区域就无法及时收到病人的呼叫信息,无法快速响应病房突发事件。特别是医院出现紧急加床情况时,紧急加床根本无法实现紧急呼叫功能,这将给病患者带来很大的困扰。由于有线方案采用硬线连接,因此随着使用时间的增加线路容易发生老化或被腐蚀、磨损的现象,系图1-1 传统的呼叫求助系统统故障发生率也会越来越高。并且,传统的有线病房呼叫系统还有功能升级性差、布线繁琐、无法移动、成本高等弊端。另一方面,近几年短距离无线通信技术发展得如火如茶,WiFi、蓝牙和ZigBee等技术蜂拥而至,采用无线的解决方案将很轻松的避免上述问题。1.2 课题研究的目的和意义病房呼叫系统是一种应用于医院病房、养老院等地方,用来联系沟通医护人员和病员的专用呼叫系统,是提高医院护理水平的必备设备之一。有了病床呼叫系统,医院的护理工作才能变得更加方便全面,不再为值班护士或医生未能及时发现突发病况而烦恼。病房呼叫系统的优劣直接关系到病员的安危,历来受到各大医院的普遍重视。它要求及时、准确可靠、简便可行、利于推广。同时由于人们生活水平的提高,人们对服务行业的要求也越来越高,尤其是关乎生命的医疗服务业,能可靠的进行日常监护工作,及时发现各种病情并进行抢救和护理,这样人们便可安心就诊,同时也保证了患者的生命安全,这是从事医疗行业的所有管理人员应该思考的问题。另外,使用无线后,医院可以利用无线网络传输代替传统的通信设备,可以在同一个网络里传输数据和语音,提供双向的语音通信。医护人员可以通过手柄设备接收患者的呼叫,并且直接和病患进行语音通话,更加及时了解病患的需求。因此,无线病房呼叫系统将会成为主流,代替传统的有线设备,它有着光明的前景。随着电子通讯技术的飞速发展,单片微机以其具有体积小、价格低、集成度高、性价比高等突出优点己在工业控制、智能仪表、数控机床、数据采集以及各种家用电器等方面得到了广泛应用。因此利用单片机和一些简单的外围器件来开发一种适合于医院,养老院等重要场所的低价位、运行可靠、使用方便的病房呼叫系统,来监护那些患者或老人已经势在必行。1.3 课题研究的内容和方法无线病房呼叫系统设计是为了改善有线病房呼叫系统的不足,提高整机的可靠性和灵活性而开发出的一种实用的呼叫系统,采用Samsung公司的STM32单片机作为核心,开发其外围电路设计和软件设计。课题需要研究的内容主要有以下几个方面:a) 根据系统功能要求进行系统的整体方案设计。该方案采用模块化设计方法,以方便系统的调试和用户的使用。b) 系统硬件设计。包括芯片的选型、所选芯片的功能、芯片外围电路的合理设计。主要内容有芯片的选择、键盘电路的设计、显示电路的设计和语音电路的设计、无线网卡电路的设计。c) 系统软件设计。主要包括系统主程序、动态扫描显示程序、语音程序、键盘扫描程序等。根据课题性质拟实现的功能和所要研究的内容,应采取以下研究步骤来实现:系统整体功能分析与可行性研究、划分功能模块、各功能模块的电路原理设计、元器件(芯片)选择、各功能模块的软件调试、系统整体软件调试,通过反复不断的调试,使程序调试成功率增大。抗干扰设计应贯穿于整个设计过程之中。另外,在满足各项性能指标的前提下,不仅要考虑到系统的易用性,还要努力降低成本,在保证可靠性的情况下,尽量提高其灵活性。2 系统总体设计方案2.1 病房呼叫系统的总体构成病房呼叫系统的开发方案是参照国内外相关技术的发展状况,在前人的基础上稍加修改,并借鉴现在一些科研机构的最新研究成果,同时根据我国医院病房监护建设的实际情况,为满足患者的要求,并充分考虑其经济性和可靠性,能真正实现智能化呼叫的要求来确定的。根据系统拟达到的总体功能,将其划分为以下功能模块:显示电路(LED灯屏、数码管)、语音录放电路(手柄)、键盘电路、报警电路、呼叫分机、无线网卡等。系统组成框图如图2-1所示。本设计采用主机和从机相分离的模式。从机安装于各个病房,主机安装于护士站,多个从机处于等待外部呼叫信号的状态,主机则时刻处于等待接受从机呼叫信号的状态,并且从机和主机之间采用无线数据传输通信。单元模块的功能如下:显示电路a) LED指示灯:显示stm32运行状态。B) LED灯屏:每个LED灯一一对应病床号。当呼叫传入后,stm32驱动相应的LED灯亮。C) 双面数码管(走廊):闲时显示时间,一旦有呼叫传入,显示呼叫病房号,当有多个呼叫传入,则循环显示病床号。图2-1 无线病房呼叫系统组成框图语音电路使用音频编解码器芯片VS1053B,护士通过语音电路了解病患的情况。输入输出设备包括键盘、报警蜂鸣器、按钮开关、各类指示灯等。键盘用于用户接听语音、呼叫号码的输入等;通过报警蜂鸣器和各类指示灯的声、光信号通知医护人员并进行系统不同工作状态的指示;按钮开关用于分机呼叫。呼叫分机的核心器件是单片机,由它来发送呼叫信号并通过无线传送到主机上,单片机采用的是当今流行的性价比较高的STM32单片机。分机和主机都分别接上一个无线网卡。主机和各个分机通过路由传输信息,当有一个分机接入时,其他分机就不能接入,主机与接入的分机传输完成,挂断后,其他分机才能再次接入。2.2 系统的基本工作过程系统分为呼叫分机和接收主机。呼叫分机安装在病床旁,接收主机则安装在护士站。病人通过分机的呼叫器呼叫医生,编码使用stm32完成并通过无线网络发送给接收主机。主机接收到网线网络发来的信号,并进行解码、显示和报警,LED灯屏直观的显示呼叫病床位置,为避免不在护士站的医护人员及时作出应对措施,走廊内的双面数码管也会同时显示呼叫分机的病房号,当没有呼叫传入时,数码管显示当前时间。若有多个病号同时呼叫,则循环显示病房的代号,这样,护士或医生根据显示的病床号进行治疗和服务。同时病人与护士直接可以语音通话。主机与分机直接通过无线网络连接。3 病房呼叫系统主机硬件电路设计病房呼叫系统主机电路部分主要包括显示电路、键盘电路、语音电路、报警电路、无线网卡电路几大部分。由无线网卡电路实现信号的传输是主机部分的基本设计思想,信号通过无线网卡传输给路由,在经过路由发送给接收分机,大大降低了有线传输的局限性,提高了整个系统的可靠性和抗干扰性。基于ARM的数字化病房呼叫系统的主要芯片是stm32f103,以它为核心进行控制终端设备的接收和发送,采用RS232等通讯技术,实现了主机和分机之间的语音和通讯命令的传输。STM32介绍:随着电子技术的发展,特别是随大规模集成电路产生而出现的微型计算机给人类生活带来了根本性的改变。如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张的说,单片机技术的控制系统,数据采集系统,智能化仪器的仪表,办公自动化等在诸多领域得到极为广泛的应用,并已走向家庭,从洗衣机,微波炉到音响,汽车,到处都是可以见到单片机的踪影,因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。Stm32作为其中有代表性的一种芯片,在各个方面都有很大的优势。内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25DMIPS/MHz。存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器。时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振。低功耗:3种低功耗模式:休眠,停止,待机模式。为RTC和备份寄存器供电的VBAT。调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口:根据型号的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。除了模拟输入,所有的都可以接受5V以内的输入。最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位的6通道高级控制定时器:最多6个通道可用于PWM输出。2个看门狗定时器(独立看门狗和窗口看门狗)。Systick定时器:24位倒计数器。2个16位基本定时器用于驱动DAC。最多多达13个通信接口:2个IIC接口(SMBus/PMBus)。5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。3个SPI接口(18 Mbit/s),两个和IIS复用。CAN接口(2.0B)。USB 2.0全速接口。SDIO接口。STM32还可以从外部存储器(U盘或MP3播放器)读取、解码和输出音频信号。以上种种优势都为我们提供了方便。3.1 显示模块电路设计显示电路主要包括LED灯屏以及数码管显示电路。LED灯屏直观显示病房位置,数码管则是平时显示当前时间,一旦有呼叫传入,立即显示病房号,当有多个病床呼叫时,循环显示病床号。3.1.1 LED灯屏图3-1 LED灯屏LED灯屏如图3-1所示是由8*8的64个led灯组成的点阵式电路,行、列交叉点对应一只发光二极管。CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。因此我们采用两个位移位存储总线寄存器CD4094实现串入并出,节省I/0口,其中CD1作行信号输出,CD2作列信号输出。CD4094引脚图如图3-2所示,其中1脚为锁存端,2脚为串行数据输入端,3脚为串行时钟端。1脚为高电平时,8位并行输出口Q1-Q8在时钟的上升沿会随串行输入而变化;1脚为低电平是,输出锁定。利用锁存端可以方便的进行片选和级联输出控制。15脚为并行输出状态控制端,低电平时,并行输出端处在高阻状态,在用CD4094做显示输出时,可以使显示数码闪烁。9脚QS,用于级联,在第九个串行时钟的上升沿开始输出。当CD4094电源为5v时,输出电流就会大于3.2mA,灌电流是1mA。串行时钟频率可以达到2.5MHz。图3-2 CD4093引脚图3.1.2 数码管显示电路图3-3 LED数码管笔段及引脚排列单片机的控制系统中最常用的显示器件之一就是LED数码管。LED数码管的笔段及引脚排列如图3-3所示,其中a-g段是显示数字或字符的笔画;dp段显示小数点,而3脚和8脚连通作为公共端。在一英寸以下的LED数码管内,每一个笔段都有1个LED发光二极管,它的导通压降为1.2-2.5v。依据LED数码管各笔段的LED数码管连接方式,可以将LED数码管分为共阴和共阳两大类。在共阴极数码管中,所有的LED发光二极管的负极连在一起,然而在共阳极数码管中,则是所有的正极连在一起。因为共阳LED数码管与OC、OD门驱动器连接方便,以此在单片机控制系统中,多用共阳LED数码管。图3-4 数码管显示电路图单片机驱动数码管显示的方法有很多种,按显示方式分为静态和动态扫描两种,按译码方式可以分为硬件译码和软件译码两种。静态显示即数码管的每个段码都由单片机的一个I/O口驱动,编程简单,占用CPU时间少,显示亮度高,但是占用的I/O口多,增加了硬件电路的复杂性。动态显示则需要CPU时刻对数码管就行数据刷新,显示数据有闪烁感,占用CPU时间多。无论是静态还是动态显示方式都各有利弊,静态显示方式虽然数据比较稳定,但是每个显示单元都需要单独的显示驱动电路,需要的硬件却比较多;动态显示虽然有闪烁感,占用CPU的时间多,但是需要的硬件少,大大节省了硬件电路板空间。因此,我们选用动态扫描方式,其实,只要LED数码管的刷新频率大于25Hz,即同一个LED数码管相邻两次点亮时间间隔小于40ms,闪烁现象就不会出现。比较常用的显示驱动芯片有:CD4094、AMT9595、74LS164等许多种,利用这些芯片实现串入并出扩展输入口,都是简单、实用的I/O口扩展方式。在这里我们选择位移位存储总线寄存器CD4094。数码管显示电路如图3-4所示。由于数码管显示电路占用I/O资源多,程序设计复杂,所以在硬件设计方面,我们应该尽量减少I/O口的占用。因此,我们同样采用两个位移位存储总线寄存器CD4094实现串入并出,来减少I/O口的使用,其中CD1作段选,CD2作位选。软件方面采用动态扫描的方式显示当前时间和病床号。电路图中所有数码管的A-DP同名端分别连在一起,同时连着CD4094的8个并行输出口Q1-Q8,其中R0-R7为限流电阻,而每个数码管显示器的com端各自独立的连接另一片CD4094的8个并行输出口Q1-Q8。3.2 键盘模块电路设计在单片机控制系统中广泛使用的机械键盘工作原理是:利用动片和静片触点的接触和断开,来实现键盘两引脚的通或断。如图3-5所示。图3-5 按键电气图形符号图3-6 键盘电路图为了减少了I/O引脚数目的使用,键盘模块一般采用4*4的矩阵键盘,也称行列式键盘。使用这种键盘,编程也会更加灵活。电路如图3-6所示。它是由四条I/O线Y0-Y3作为行线,四条I/O线X0-X3作为列线组成的键盘。3.3 语音模块电路设计为方便医护人员及时了解病患的情况并作出应对措施,语音通话功能显得尤为重要。语音模块主要采用stm32上的I2S音频协议,I2S是一个3引脚的同步串行接口通讯协议,支持四种音频标准,包括飞利浦I2S标准,MSB和LSB对齐标准,以及PCM标准,在这里我们使用的PCM标准。在半双工的通讯中,可以工作在主、从两种模式下。I2S的功能如下: 单工通信(仅发送或接收) 主或者从操作 8位线性可编程预分频器,获得精确的音频采样频率(8KHz到96kHz) 数据格式可以是16位,24位或者32位 音频信道固定数据包帧为16位(16位数据帧)或32位(16、24或32位数据帧) 可编程的时钟极性(稳定态) 从发送模式下的下溢标志位和主/从接收模式下的溢出标志位 16位数据寄存器用来发送和接收,在通道两端各有一个寄存器 支持的I2S协议: I2S飞利浦标准 MSB对齐标准(左对齐) LSB对齐标准(右对齐) PCM标准(16位通道帧上带长或短帧同步或者16位数据帧扩展为32位通道帧) 数据方向总是MSB在先 发送和接收都具有DMA能力 主时钟可以输出到外部音频设备,比率固定为256xFs(Fs为音频采样频率) 在互联型产品中,两个I2S模块(I2S2和I2S3)有一个专用的PLL(PLL3),产生更加精准得时钟 电路原理图如图3-7、图3-8所示,图3-7为语音采集模块,因为声音信号经麦克风传入时比较微弱,需要经lm358放大后再进入stm32中,最后由stm32中自带的ADC通过MIC通道将语音信号转换为数字量。图3-8为语音播放模块,采用lm386芯片将还原信号进行功率放大,滤波后由喇叭播放。lm386是低电压音频功率放大器,他自身功耗低、电压增益可以调整、电源电压的范围大、外接元件少并且总谐波失真小,所以广泛应用于录音机和收音机中。引脚图如图3-9所示。2脚为反相输入端,3脚为同相输入端,5脚为输出端,6脚、4脚分别是电源和地;1脚和8脚是电压增益设定端,这里暂时不用。通过查lm386的数据表可知,电源电压是4-12v,静态消耗电流时4mA;电压增益是20-200db,在1脚、8脚开路时,带宽是300khz,输入阻抗是50k,音频功率是0.5w。图3-7 语音采集模块电路图图3-8 语音播放模块电路图图3-9 lm386引脚图3.4 报警模块电路设计病房呼叫系统不仅要将呼叫信息实时的显示在屏幕上,而且为了方便及时性的需要,同时还要发出报警声音,提示医护人员有病患请求帮助。电声器件是指能将声音信号转换为音频电信号或者将音频电信号转换为声音信号的器件。它是利用电磁感应、静电感应或压电效应等来完成电声转换的,主要有传声器、蜂鸣器和扬声器等。传声器俗称话筒、麦克风,是一种"声一电"换能器件,可分为电动和静电两类。电动传声器是以电磁感应为原理,以在磁场中运动的导体上获得输出电压的传声器,常见的为动圈式传声器。静电传声器是以电场变化为原理的传声器,常见的为电容式传声器。驻极体传声器就是利用驻极材料制作的一种典型的电容式传声器。扬声器俗称喇叭,也是一种发声器件,与蜂鸣器不同的是扬声器可以发出多种音频。扬声器可以播放语音,也可以播放音乐,所以在实际生活中应用相当广泛。蜂鸣器是一种一体化结构的电子讯响器,通常采用直流电压供电,广泛应用于计算机、打印机、报警器、电子玩具、电话机等电子产品中做发声器件。蜂鸣器只能发出单一的音频,不论输入蜂鸣器的是交流电压还是直流电压,只要达到蜂鸣器的额定电压,它就会发出声响。即使改变输入的电压或频率,蜂鸣器也只发出一个音频的声音。图3-9 报警模块电路图综合比较来看,蜂鸣器虽然功能最简单但完全能满足我们的发声需要,我们既不需要发声,也不需要播放音乐,只需要发出一个音频的声音达到提示作用即可,同时它比另外两种在成本上便宜很多,所以我们选择蜂鸣器作为发声器件。在硬件连接上也十分简单,我们只需要用一个普通I/O控制三极管通断进而达到控制蜂鸣器通断的效果。报警模块是由stm32驱动一个蜂鸣器加上其外围电路构成。NPN作为蜂鸣器的驱动,R57作限流电阻。3.5 无线网卡模块电路设计在通信领域,按照数据传输的顺序可以分为串行通信通信和并行两种。无线网卡模块与stm32之间使用的便是串行通信。串行通信方式有RS232,RS422和RS485。这里我们使用的串行通信接口是RS232,它是最早发布的接口。电路图如图3-10所示。它是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。其中,2脚RXD是串行数据接收引脚,输入引脚;3脚TXD是串行数据发送引脚,输出引脚。在TXD和RXD上:逻辑1(MARK)=-3V-15V;逻辑0(SPACE)=+3+15V,噪声容限为2V。Stm32将信号通过无线网卡传输信号给路由,再由路由传输给带有其他网卡的stm32进行信号的解码、存储、显示等,完成信号的无线传输。图3-10 串口电路图3.6 电源电路设计电源是整个系统正常运行的最基本保障。STM32F103的供电电压范围为2036V。电源模块是电路关键的一部分,是整个系统工作的基础。因此,电源设计过程中需要考虑以下因素:1)输入电压、电流;2)输出的电压、电流和功率;3)电磁兼容和电磁干扰等。电源部分电路图如图3-11所示,由于单片机和串口皆为低功耗器件,其工作电压为3.3V,我们将来自USB接口的5V电源经过一对大小组合的电容滤波之后送入AMS117-3.3V稳压芯片进行稳压,稳压后的电源同理再经过一对大小组合的电容滤波之后输出平稳的3.3V电压为系统供电。其中的主要芯片是AMS1117-3.3v。AMS1117-3.3是正向低压降稳压器,外观如图3-12所示,它的主要功能是将5v的直流电转换成3.3v的直流电进行输出,供给主芯片stm32、串口通信电路和其他外围芯片。图中,在3.3V的电源输出端口,我们通过一个红色LED和一个电阻串接到GND,这样,LED可作为系统电源的指示灯,当系统电源正常的时候,LED发出红光,当因为系统硬件电路出现故障或者外部输入的电压过大致使稳压芯片烧坏时,AMS117的输出端将无电压输出,红色LED熄灭。此时我们就可以通过LED的亮灭状态来一目了然的看出系统电源是否正常。图3-11 电源电路图图3-12 AMS117-3.3v外观图3.7 stm32最小系统电路设计Stm32最小系统如图3-13所示,包括晶振模块,复位电路,下载电路等。晶振电路中的两个分别是10mhz和32.768khz的晶体振荡器,其中32.768的晶体振荡器一般用于时钟电路,因为通过15次的二分频就能得到1s的定时周期;10m的晶体振荡器作为高速外部时钟信号源,可以为系统提供精确的主时钟。在OSC_IN引脚和地,OSC_OUT引脚和地之间串联适当容值的电容,可以保证晶体振荡器正常的震荡,以便个哦系统提供稳定的外部时钟信号。设计硬件时,为了我们应该让晶体振荡器和负载电容最大地接近振荡器的引脚,用来缩短震荡的稳定时间,减小输出失真。晶振系统时钟有三种选择,当sw为00时,选择内部时钟;sw为01时,选择外部时钟;sw为10时选择锁相环。STM32支持的复位方式有系统复位、电源复位和后备域复位三种。系统复位将复位除时钟控制寄存器CSR的复位标志和备份区域中的寄存器以外的所有寄存器,复位后数值为默认数值。当下列事件中的任意一件发生时,将产生系统复位:当 NRST 引脚为低电平时产生外部复位;独立看门狗终止计数产生复位 (IWDG 复位);窗口看门狗终止计数产生复位 (WWDG复位);软件复位(SW 复位);低功耗管理复位。可通过查看 RCC_CSR 寄存器中的复位状态标志位来确定复位事件的来源。电源复位将复位除备份区域寄存器外的所有寄存器。当下列事件中任意一件发生时,将产生电源复位:上电/掉电复位(POR/PDR 复位)和欠压复位(BOR 复位);退出待机模式。复位源将最终作用于 NRST 引脚,并在延迟阶段中保持低电平。芯片内部的复图3-13 stm32最小系统电路图位信号会在 NRST引脚上输出,脉冲发生器保证每一个复位源(内部或外部)的脉冲宽度至少有 20µs;假如当 NRST 引脚被拉低为低电平产生外部复位时,将产生复位脉冲。备份区域复位将所有的 RTC 寄存器和 RCC_BDCR 寄存器重置为默认值。但是复位不影响BKPSRAM。复位 BKPSRAM 的唯一方法就是通过要求一个从 1 到 0 的防护等级通过 Flash 界面。当下列事件中任意一件发生时,将产生备份区域复位:软件复位,通过设置备份域控制寄存器(RCC_BDCR)中的 BDRST 位产生复位;在 VDD 和 VBAT 两者都掉电的前提下,VDD 或 VBAT 上电将导致备份区域复位。外部复位电路连接到 NRST 引脚,既可以通过复位按钮产生一个低电平的复位信号,使系统复位;还可以把内部的复位信号输出,用作其他电路部分的复位信号。外部复位电路如图 3-13 所示。复位电路采用按键复位,当按键按下后,使复位引脚产生低电平,stm32即可复位。下载电路是JTAG接口。另外在所有的STM32芯片上都有BOOT0和BOOT1两个管教,这两个管教在STM32复位时的电平状态决定了其复位后从哪个区域的程序开始执行。具体见表3-1。表3-1 STM32三种启动模式BOOT1BOOT1X0从用户闪存启动,这是正常的工作模式。01从系统存储器启动,这种模式启动的程序功能由厂家设置11从内存SRAM启动,这种模式可以用于调试4 病房呼叫系统分机硬件电路设计病房呼叫系统分机由呼叫器、语音模块、电源电路、无线网卡以及stm32最小系统构成。阐明了芯片的选型比较,所选用芯片的内部组成、功能特点,并设计出具体的硬件电路。根据硬件连接和模块的功能要求,提出软件的设计方法并编程。图4-1 呼叫器电路图4.1 呼叫器电路设计呼叫器是由一个独立按键完成呼叫功能,当按键按下,低电平信号传给stm32,再由stm32通过无线传给主机。电路图如图4-1所示。4.2 语音模块电路设计语音模块电路图如图3-7、3-8所示,原理如上。4.3 无线网卡模块电路设计无线网卡模块与分机同样是通过串行接口RS-232完成通讯,电路图如图3-10所示,原理如上。4.4 电源电路设计分机与主机共用一个电源,电路图如图3-11所示,原理如上。4.5 stm32最小系统电路设计Stm32最小系统原理图如图3-13所示,原理如上。4.6 病房呼叫系统PCB版图设计我们使用altium designer来设计病房呼叫系统的PCB板。在PCB设计中,布线的时候有很多原则需要我们注意。比如:抗干扰性设计原则、热设计原则、抗震设计原则和可测试性设计原则等。布线的时候将数字地与模拟地通过磁珠隔离,使得系统地整体平稳,另外在布线的过程中还应该注意电容选取与放置、合理分配电源网络、过孔大小位置的排放等,同时还要尽量加宽回路的线宽和缩短关键信号走线长度。下面列举一些通用的设计原则:尽量采用45度折现而不采用90度折角,这种布线方式可以减少高频信号对外的发射与耦合。采用串联一个电阻的方法可以降低控制电路上下沿的跳变速率。石英晶振的外壳一般要接地,石英晶体下面和对噪声特别敏感的元器件下面尽量不要进行走线。闲置的门电路输出端尽量不要悬空,闲置不用的运放正输入端要接地,负输入端接输出端。I/O驱动电路尽量靠近PCB边缘,同时总线、时钟和片选信号等要尽量远离PCB中的I/O电缆。PCB中的任何信号都不要形成环路,如果实在不可避免出现环路,那么要尽量减少相应的环路面积。我们设计PCB时,要尽量遵循以上设计原则。布局布线完成后,我们还要进行PCB的设计检查。检查的工作可以分为以下四个方面:布线的检查、孔和焊盘的检查、元器件的检查、PCB的检查。然后我们的PCB就整体完工了。5 病房呼叫系统软件设计病房呼叫系统软件部分采用模块化设计,分为主程序、语音模块、键盘模块、显示模块及无线传输模块。应用C语言编程,在keil Vision4环境里运行。编程语言的软件设计采用C语言编写相关程序。C语音是最常用的编程语言,我们所能接触到的单片机几乎所有都支持C语言的开发。它有很多的优点:语言简单、可移植性好、表达能力强、灵活的表达、可以是结构化编程、生成的代码质量高、可直接操控电脑硬件等。KEIL MDK软件是一家德国软件公司为ARM公司目前最新推出的多款嵌入式处理器而研发的开发工具。uVision4的开发过程如下:1) 新建一个工程,生成一个新的项目,选择芯片类型并对开发工具进行配置,做好必要的准备。2) 编写C语言源代码即工程项目程序。3) 对已经写好的源代码进行编译调试并生成目标文件,通过系统仿真查看相应寄存器或者指令的调用情况,对程序进行进一步修改。4) 将目标程序通过J-LINK仿真器下载到单片机中,同时设置断点,查看硬件在程序执行每一步的效果,验证程序执行的正确性。5) 综上所述,为了降低系统的开发和维护的难度,缩短开发周期,本课题选择keil编译器为病房呼叫系统软件开发工具。5.1 主程序设计病房呼叫系统程序设计使用的是STM32本身的固件库。系统开始运行后,首先检测电源状态,对STM32、数码管和LED灯屏等进行初始化,一切正常后等待中断的发生,主控制器开始检测是否有呼叫传入,当呼叫出传入后,运行子程序。5.2 语音模块程序设计语音模块采用的VS1053b,它是通过一个串行输入总线来接收它的输入比特流,数据流被解码后会通过数字音量控制器送到一个高精度DAC,其中的解码器是通过一个串行控制总线来控制的。它控制整个系统完成语音录入,存储,发送,接受,播放等功能。首先,激活PCM录音模式,加载patch。PCM录音模式是通过设置SPI_MODE位来激活的,激活PCM录音之前,用户应该给SCI_AICTRL0写个SCI_AICTRL0的时钟分频值。采样率是CLKI/256*d,其中CLKI是内部时钟,d是SCI_AICTRL0里面的分频值,如果d是0,并2倍频,外部晶振是12.288m,那么采样率就是16KHz,但是如果是线性的PCM,采样率就是采样值。线性录音的增益由SCI_AICTRL1控制,AGC增益的最大值由SCI_AICTRL2控制。然后初始化wav头,程序中设置的采样率是8khz,线性PCM格式是16位,但是因为录音还没有真正开始,文件的大小和数据的大小都是不能确定的,要等到录音结束才可以知道。读取PCM数据,经过前面几步的处理,这一步就比较简单了,只需要不停的从SCI_HDAT0中读取数据,然后存入wav文件即可,不过这里我们还需要做文件大小统计,在最后的时候写入wav头里面。计算整个文件大小,重新保存wav头并关闭文件。在结束录音的时候,我们必须知道本次录音的大小(数据大小和整个文件大小),然后更新wav头,重新写入文件,最后因为FATFS,在文件创建之后,必须调用f_close,文件才会真正体现在文件系统里面,否则是不会写入的!所以最后还需要调用f_close,以保存文件。开机的时候先检测字库,然后初始化VS1053,进行RAM测试和正弦测试,之后,检测SD卡根目录是否存在RECORDER文件夹,如果不存在则创建,如果创建失败,则报错。在找到SD卡的RECORDER文件夹后,即设置VS1053进入录音模式,开始录音,如果有TPAD按下,则开始播放录音。流程图如图5-1所示。检查字库初始化不存在检测RECORDER文件夹创建存在失败成功报错设置VS1053进入录音模式图5-1 录音流程图5.3 显示模块程序设计5.3.1 数码管显示数码管动态显示程序包括数字的显示、小数点的显示、数码管的闪烁和数码管的消隐等。显示的字符跟数据对应关系如表5-1所示:根据人的视觉暂留现象,一个数码管每秒必须点亮50次以上,才能达到稳定显示数据的目的。首先把段码数据通过串行通道送到端口上,然后位选通一个数码管,让这个数码管显示传输的数据,数据一般要保持1-5ms,然后通过软件关掉全部的数码管,再把下一个数码管的数据通过串行通道送到端口上,选通下一个数码管。当所有的数码管显示一遍后,我们称为一个扫描周期。在程序设计中我们一般采用两种方法:直接延时和定时中断扫描。但是为了提高CPU效率,这次我们最好是使用定时中断扫描的方法。即每1ms显示一个数码管.这样会达到很好的显示效果.表5-1 显示字符跟数据对应关系显示的字符0123456789数据00H01H02H03H04H05H06H07H08H09H显示的字符ABCDEFH全亮全暗-数据0AH0BH0CH0DH0EH0FH10H11H12H13H小数点的显示方式有:1)固定式:小数点的显示位置不能改变,程序设计较简单。2)特征位式:每位二进制数控制一个小数点的亮暗情况,一个字节同时控制8个。3)计数式:用数字控制第N位的小数点亮。如:5表示第5位小数点亮,其它暗。4)ASCII码式:送到显示缓冲区的数是ASCII码数据,在包含“.“时,相应位的小数点亮。在这里我们使用的是固定式。5.3.2 LED灯屏显示LED灯屏显示同样也是采用了扫描的方式。先扫描行,在扫描列,一旦检测到高电平,则相应的LED灯就会点亮。5.4 键盘模块程序设计键盘模块的程序首先需要进行初始化,初始化延时函数,初始化LED端口,初始化与按键连接的硬件接口。然后软件对按键去抖,写明每个按键的功能。5.5 无线传输模块程序设计当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位,在接收数据时,串行的位被转换为字节数据。无线网卡与stm32直接就是使用的串口通信。5.6 软件调试系统源程序采用 keil Vision 4版本软件仿真器进行软件调试,首先依据各功能模块的功能要求和工作过程画出程序的流程图,然后根据流程图和系统的硬件连接写出详细的C语言程序,在调试时可以一个模块一个模块调试,以减少错误的几率,各个功能模块调试完了,再对整个系统进行调试,一旦有报错信息,可以对功能模块再次仔细检查,直到调试成功为止。结 论基于STM32F103的无线病房呼叫系统采用无线传输信号的功能并用数码管和LED灯屏双重显示病房的呼叫,增大了呼叫的成功率、系统的可靠性和灵活性,其设有语音传输功能,在使用的过程中,可以通过通话更及时的了解病患的情况及需求,使呼叫更具人性化,同时系统的无线发射接收模块电路可以增大系统灵活性,避免临时加床时的不能呼叫的情况发生,是病患得到最好的服务。系统是基于ATSTM32F103单片机设计的,依靠其低功耗、强大的功能和使用方便等优点,使整个系统总体性能更高,其表现出的技术特点如下:a) 利用两个标准的I2S接口实现语音录音和播放功能,使护士或者医生能及时了解病患需求。b) 系统采用LED灯屏和数码管双重显示的方法,有力的解决了漏听。c) 利用系统内部时钟设置时间并显示。D) 通过软件,对语音芯片不录放音时切换到低功耗省电模式,未用时不选中语音芯片的思想大大降低了功耗。致 谢四年的学习生涯即将结束了,很高兴能在最后的整个毕业设计过程中,受到我的指导老师孟志永教授的亲切关怀和悉心指导,孟老师以他高尚的师德、诲人不倦的精神、严谨的教学态度以及对我的谆谆教导,影响着我,激励着我,使我受益匪浅。从课题的选择到项目的最终完成,孟老师都始终给予我细心的指导和大量的修改意见,在此谨向刁老师致以诚挚的谢意和崇高的敬意。在毕业设计完成过程中,和我一个毕业设计组的同学们给了我很大的帮助,与他们进行了许多有益的探讨,正是由于你们的帮助和支持,我才能克服一个个困难和疑惑,直至论文的顺利完成,在此表示诚挚的感谢!在此,我还要感谢所有教育过我和帮助过我的老师们,你们的悉心教导是我一生中最宝贵的财富。感谢我所有的同学和朋友们,在一起生活和工作学习的美好时光里,你们所给予的真诚鼓励和无私帮助是我终生难忘的!最后,我还要感谢培养我长大,含辛茹苦的父母,感谢你们多年来对我的默默付出和背后无私的支持,你们以微薄的收入支持着我的学习,你们的殷切期盼一直是我前进道路上不竭
展开阅读全文