生物组织脱水机设计.docx
- 文档编号:3710883
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:24
- 大小:459.25KB
生物组织脱水机设计.docx
《生物组织脱水机设计.docx》由会员分享,可在线阅读,更多相关《生物组织脱水机设计.docx(24页珍藏版)》请在冰豆网上搜索。
生物组织脱水机设计
0引言
随着医学科学的发展,对疾病的诊断手段日益增多。
但迄今为止,即使是世界上科学技术最发达的国家,疾病的诊断主要还是通过病理诊断。
病理技术是病理学诊断不可分割的一部分,制片质量的好坏很大程度上影响病理医生做出正确的病理诊断。
脱水是病理制片技术的第一个环节,从人体取下的待检病理组织必须先经过脱水,然后经过其他处理,最后病理医生在显微镜下才能清楚地判别组织的性质。
传统的靠人工脱水的方法早就已经不能满足需要,用自动化的机器控制脱水显得十分必要。
由于组织在脱水处理过程中需要在多种溶液中浸泡、烘干等处理,每一个环节又必须配合相应的时间、温度,因而配备先进,高质量的仪器设备是保证和提高制片质量的重要条件。
生物组织脱水机是对人体或动植物组织自动按程序浸入各种溶剂进行脱水最大特点是利用非上班时间处理组织,并保证组织脱水、透明和浸蜡效果。
但是,目前广泛使用的组织脱水除智能化程度不高外,还由于工业现场大功率感性负载的干扰,在运行过程中,很容易出现死机程序突然跑飞等非正常工作情况。
智能生物组织脱水机(IntelligentDehydratingMachineforOrganicTissue)采用单片机与计算机控制的组织脱水机组成机电一体化系统,具有产品结构简化、智能化程度高的优点[1]。
通过容错技术设计,保证了生物组织脱水机不出现死机,系统运转可靠,定时准确,脱水效果好。
1系统基本原理与设计分析
1.1生物组织脱水机设计要求
根据生物组织脱水机的发展现状和系统设计中的具体要求,需要完成以下功能的设计:
(1)应用软件界面:
通过应用软件的设计,实现微机与下位机(单片机)的通信:
用户通过软件界面实现对单片机的控制,并完成对应生物组织脱水任务。
(2)现场操作:
现场可以控制脱水机定位在任意一个位置,包括脱水机的细调与校准。
保证生物组织不会处人在禁止区域,而使组织遭受损害。
为进一步提高系统可靠性,生物组织必须沿着给定的直线平稳、迅速的移入脱水缸中。
(3)定时操作:
用户设置好操作流程和操作启动时间,脱水机会按给定程序执行,完成一次或几次脱水任务。
(4)控制器的双操作并行处理:
脱水机能够同时处理两路程序,提高系统的效率。
(5)掉电处理:
每次掉电后系统自动保存数据,下次启动时系统恢复上一次数据,保证组织脱水的安全。
1.2系统方案论证
根据上面提出的设计要求和实际情况,提出了下面三种设计方案:
方案一:
利用网络上已有的Labview工具(一种用于开发测量和自动控制系
统的图形化编程软件。
这一强大的开发工具可用于测试测量、数据采集、分析和显示,仪器控制)进行上位机的应用程序开发,单片机实现电机控制。
此方案设计简单,容易实现,避免软件的开发,从而大大缩短系统开发周期,并且使系统成本降到最低,具有很强的市场竞争力。
但是由于系统属于二次开发,应用程序的扩展性受到一定的限制,并且功能过于简单,难以满足科技高速发展的未来市场。
方案二:
使用嵌入式控制器ARM,电子硬盘,能保存十种以上的表格处理方案,并能在TFT液晶屏上动态显示处理流程,使用触摸屏接受用户操作;带有终端远程控制和现实的设备;全封闭式自动贯注试剂,多达12个的自定义程序。
此方案功能完善,用户界面友好,操作性强,具有很好的系统扩展性和独立性,能够满足随时随地移动处理的要求,适合现在医疗器件的高性能设备。
方案三:
采用目前比较流行的应用软件开发工具Delphi,强调功能的易实现性和强大的控件支持,底层机械控制采用AT89S52作主控器,结合I2C存储器CAT24WC02保存与记录操作数据,使系统达到智能化程度和强大的异常处理能力。
此方案最大特点是软件功能强大,能够完成大量的计算处理,大大减轻了下位机的处理压力,使硬件设计更加简单和具有很强的软硬件扩展性能。
并且利用计算机软件的易操作性和完善的功能,在缩短开发周期和节省设计成本的同时,系统性能也得到了很大的提高。
根据上面三种方案和目前开发的需要,选择方案三比较合适,主要是考虑到随着计算机的普及,利用了计算机强大的处理性能和扩展性,不仅节省设计成本和开发周期,也是未来的一种发展趋势。
1.3系统总体方案设计
整个设计过程包括底层控制硬件和生物组织脱水机模型的制作;单片机程序设计和系统调试;串口通信实现和Delphi应用程序开发四个部分。
其中生物组织脱水机的整体硬件部分包括上位机和下位机两个部分,其硬件部分的设计主要集中在RS232接口电路、单片机系统电路、CAT24WC02存储器电路和L298电机驱动电路,如图1所示。
图1生物组织脱水系统硬件结构图
开机上电后系统复位,单片机读I²C总线的E²PROM数据进行系统恢复和电机的复位,等待用户发送命令。
当系统检测到来自用户的命令后,计算机会根据当前的工作状态给与相应的处理,如显示器的界面,串口数据的发送和电机的操作方法,MAX232接口电路检测到信号后迅速传递给下位机,下位机根据接收到的数据和当前系统状态,实现电机的驱动和数据流操作。
每次出现异常是单片机会自动保存当前数据到24WC02存储器中。
整个过程如图2所示。
图2系统程序设计原理图
2 硬件电路设计
2.1 单片机最小系统设计
本系统采用Atmel公司AT单片机AT89S52作为电机驱动主控制器。
作为系统的微机控制器,主要从以下特点考虑:
AT89S52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,256*8bitRAM存储空间,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[2]。
单片机的引脚和系统设计电路如图3所示。
图3单片机小系统
AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,如图4所示。
AT89S52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本[3]。
其功能特性如表1所示。
根据本系统的设计要求,AT89S52内部资源已经够用,无需扩展。
因此,系统硬件设计非常简单。
表1 AT89S52的功能特性
主要功能特性
兼容MCS51指令系统
8k可反复擦写(>1000次)FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-33MHz
2个串行中断
可编程UART全双工串行通道
2个外部中断源
共5个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
2.2步进电机与驱动设计
步进电动机是一种用电脉冲信号进行控制并将电脉冲信号转换成相应的角位移的执行器。
由于受脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。
改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。
电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0て、1/3て、2/3て,(相邻两转子图4定转子的展开图
齿轴线间的距离为齿距以て表示)下面是定转子的展开图,如图4所示。
如A相通电,B、C相不通电时,由于磁场作用,齿1与A对齐(转子不受任何力以下均同)。
同理如果以次给B、C相通电,每通一次电转子都会转动1/3て。
如再给A相通电,B、C相不通电,齿4与A对齐,转子又向右移过1/3て这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A、B、C、A通电,电机就每步(每脉冲)1/3て,向右旋转。
如按A、C、B、A通电,电机就反转。
由此可见:
电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
本系统采用四相,八拍运行A-AB-B-BC-C-CD-D-DA-A,步距角为0.9度[4]。
步进电机驱动时序如图5所示。
图5L298N步进电机驱动时序图
作为步进电机常用驱动器L298N是SGS公司的产品,15脚Multiwatt封装,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器。
其引脚图如图6所示。
图6L298N引脚图
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。
通过比较,使用L298N芯片充分发挥了它的功能,能稳定地驱动步进电机,且价格不高,故选用L298N驱动电机[5]。
而使用L298N时,可以用L297来提供时序信号,可以节省单片机IO口的使用;也可以直接用单片机模拟出时序信号,由于控制并不复杂,故选用后者。
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
调整单片机发出的脉冲频率,就可以对步进电机进行调速。
电机驱动电路如图7所示。
图7步进电机控制电路图
2.3数学模型建立
生物组织脱水机的设计模型如图8所示,他由两个步进电机的协调运转来控制组织的运动与定位,由实物模型对应来建立数学模型,这里以电机1的起始点,对应坐标(0,0)(采用直角坐标系);电机2对应为(L,0)(L为两电机的距离,实际测量中为5个电机转轮周长20.4cm),在运动过程中,电机的最大移动高度H为8.5C(C为电机转轮周长,约34.7cm),组织脱水机总共有11个脱水缸,其中5号缸为保护缸,所以每个缸间距为5/11C(约1.9cm)。
电机通过控制悬挂组织的两悬臂来实现组织脱水的所有运动操作。
这里设两悬臂长度分别为L1,L2,利用三角几何关系可得:
图8电机驱动定位建模
其中,x,y为直角坐标系对应的点。
这样就完成了电机的数学模型,工作台上的每一点,都能对应直角坐标系中的(x,y)点。
2.4 RS232串口通信接口电路设计
随着计算机应用技术和微机网络技术的发展,计算机与其外部设备之间的数据传输越发显得重要。
而串行通讯技术是实现这一功能的有效途径,它具有经济方便、数据传输可靠、适用于远距离通讯的特点,在工业监控、数据采集、检测等系统中有着广泛的应用。
在异步通讯中,数据是一帧一帧传送的,在帧格式中,一个字符由4部分组成:
起始位、数据位、奇偶校验位和停止位,如图9所示。
首先是一个起始位“0”,然后是5~8位数据规定低位在前,高位在后,接下来是奇偶校验位可省略,最后是停止位“1”。
起始位“0”信号只占用1位,用来通知接收设备一个待接收的字符开始到来。
线路在不传送字符时应保持为“1”。
接收端不断检测线路的状态,若连续为“1”以后又检测到一个“0”,就知道发来一个新字符,应马上准备接收[6]。
图9异步通讯原理示意图
串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如你可以把写入单片机的数据码显示在电脑上,如可以使用一个按键,当按下它时使某一个字母如:
AA,通过单片机的串口将它发送到电脑上显示,起到仿真器的某些功效,站长在开发数据采集设备时就是通过串口来检查数据正确与否的。
AT89S52单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。
进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。
我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:
第5脚的GND、第2脚的RXD、第3脚的TXD。
这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。
如图10所示。
图10串口通讯的硬件电路图
2.5CAT24WC02存储器
美国CATALYST公司出品的CAT24WCXX是一个1~256Kb的支持I2C总线数据传送协议的串行CMOSE2PROM,可用电擦除,可编程自定义时写周期(包括自动擦除时间不超过10ms,典型时间为5ms)。
串行E2PROM一般具有2种写入方式:
一种是字节写入方式;另一种是页写入方式。
串行E2PROM允许在一个周期内同时对1B到1页的若干字的编程写入,1页的大小取决于芯片内页寄存器的大小,其中CAT24WC02具有16B数据的页面写能力。
CAT24WCXX系列E2PROM在汽车电子及电度表﹑水表和煤气表中得到了广泛的应用[7]。
CAT24WCXX器件原理如图12所示,每一个CAT24WCXX器件都支持双向、两线数据传输协议。
如果器件被定义为发送器,则该器件发送数据到总线;如果器件被定义为接收器,则该器件接收来自总线的数据。
总线由主器件控制,当它作为从器件。
主器件提供串行时钟(SCL),控制总线访问和产生起始和停止条件。
主器件和从器件皆可作为发送器或接收器,但必须由主器件决定采取何种工作模式。
图11CAT24WCXX器件原理框图
在起始条件之后,从主器件接收的第一个字节是控制字节。
控制字节以4位控制码开始。
CAT24WCXX器件这4位设置为‘1010’以便进行读写操作。
随后的3位为片选位(A2、A1、A0)。
片选位的不同组合允许在同一条总线上使用的24XX器件达八个,并用于选择访问哪一个器件。
控制寄存器中的片选位必须与相应器件引脚A2、A1和A0上的逻辑电平保持一致。
实际上这些位是字地址中3个最高有效位。
字节写操作以来自于主器件的起始位开始,4位控制码紧随其后。
接下来的3位是存储块寻址位(不带地址输入引脚的器件)或片选位(带地址输入引脚的器件)。
然后主发送器将R/W位(该位为逻辑低电平)发送到总线。
从器件在第九个时钟周期产生一个确认位。
如果在WP引脚保持高电平时进行存储器写操作,器件会确认命令,但不会启动写周期,也不会写入数据,而会立即接受新的命令。
写命令为一个字节,在发送写命令后,内部地址计数器增加,指向下一个要寻址的位置。
写周期期间,CAT24WCXX不会对命令进行确认。
CAT24WC02储存器电路如图12所示。
图1224WC02储存器电路图
3单片机程序设计
3.1 分时处理系统的设计
在常规单片机处理中,最简单有效的方法是循环执行和中断控制,不用考虑任何事件的并发性与处理器的利用率,这样带来的好处是系统设计简单可靠,程序透明性好,随着处理的数据量增加,处理对象的增多和运算的要求提高,往往会考虑到移植嵌入式操作系统,例如广泛流行Linux、WindowsCE、UCOS-Ⅱ、VxWorks等实时操作系统,最为典型的Linux操作系统,他广泛的应用在多个领域[8]。
但是这并不意味着每个系统应用嵌入式操作系统是合理的,对于AT89S52这样的小型单片机系统,操作系统的嵌入显得过于臃肿,要进行大量的裁剪,为了提高系统的利用率、最低设计成本和时间,有一种方法是可行的,基于中断的分时处理手段。
生物组织脱水机在系统设计中所运用的分时处理如图13所示。
图13分时处理框图
处理器被分为实时处理进程和非实时处理两种处理类别,对于一些实时性要求比较高,系统时间占用短的情况下,系统分配给一个实时处理进程。
例如电机在转动过程中步进要有一定的实时性,来保证电机的平稳运行。
图14系统时间分配规则
又如串口数据的收发处理,由于系统有一个串口中断将接受、发送数据保存在串口数据缓冲区,他的任务是进行数据检索和事件控制,对时间要求不是很严格,所以采用非实时进程比较合适。
那么怎样才能保证实时性呢,如图14所示,系统定时中断T0以200us的时间片轮驱动相应的处理程序。
而非实时处理进程是靠传递状态来完成的,每次给定的时间结束,系统会给出一个就绪状态,当系统检索到此状态时触发相应处理程序。
以下为相应设计程序:
voidtime()interrupt1using1
{if((sys_t&0x07)==0x00)dj_task();//电机实时操作
elseif((sys_t&0x3f)==0x01)com_task();//串口接收与发送
elseif((sys_t&0x1f)==0x12)dj_ea=1;//电机运动任务
elseif((sys_t&0xff)==0x25)com_ea=1;//串口通信处理
elseif((sys_t&0x7f)==0x1b)dj_move_load_ea=1;
sys_t++;
}
voidmain()
{sys_ini();
com_ini();
dj_ini();
EA=1;
while
(1)//非实时操作任务
{if(com_ea){com_op();com_ea=0;}
if(dj_ea){dj_op();dj_ea=0;}
if(dj_move_load_ea){dj_move_load();dj_move_load_ea=0;}
_nop_();
}
}
为了提高系统利用率和系统优化,必须为每个进程分配驱动时间,系统的时间分配是根据基2对分法则来实现的
由于对分的可嵌套性和对分细化,使得时间片轮可以设定为任意值,如有1/8+1/8=1/4,可产生两个等时对分进程,1/8*5,可产生一个(5/8)进程时间片轮。
3.2数据缓冲“乒乓操作”
“乒乓操作”是一个常常应用于数据流控制的处理技巧,典型的乒乓操作方法如图4所示。
乒乓操作的处理流程为:
输入数据流通过“输入数据选择单元”将数据流等时分配到两个数据缓冲区,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(DPRAM)、单口RAM(SPRAM)、FIFO等。
在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”;在第2个缓冲周期,通过“输入数据选择单元”的切换,将输入的数据流缓存到“数据缓冲模块2”,同时将“数据缓冲模块1”缓存的第1个周期数据通过“输入数据选择单元”的选择,送到“数据流运算处理模块”进行运算处理;在第3个缓冲周期通过“输入数据选择单元”的再次切换,将输入的数据流缓存到“数据缓冲模块1”,同时将“数据缓冲模块2”缓存的第2个周期的数据通过“输入数据选择单元”切换,送到“数据流运算处理模块”进行运算处理,如此循环[9]。
图15乒乓操作原理图
如图15所示,乒乓操作的最大特点是通过“输入数据选择单元”和“输出数据选择单元”按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到“数据流运算处理模块”进行运算与处理。
把乒乓操作模块当做一个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。
所以乒乓操作常常应用于流水线式算法,完成数据的无缝缓冲与处理[10]。
在电机的操作过程中用到了三次乒乓操作,第一次是串口接收与电机任务装载过程的数据缓冲,在系统进程中,电机运动操作相对串口数据通信来说是比较缓慢的,电机不可能在结束时才处理串口数据,第二次是处理取组织器的线性移动操作,由于程序中电机操纵取组织器运动是两电机与它的距离对应成直角坐标系来运算的,所以采用了内插法实现线性运动,插值算法与电极坐标运算必须通过乒乓数据缓冲才能实现取组织器连续运动,保证组织在移动中的安全性。
最后一次是电机的定位与电机过程运转,进一步保证了取组织器移动的连续性和实时性。
以下程序设计中可看到乒乓操作的整个过程:
voiddj_op()
{if(dj_load_in&&dj_load_out)//pingpang_2控制过程
{dj_cxy_p=~dj_cxy_p;
dj_load_in=0;dj_load_out=0;
}
if(!
dj_load_in)//pingpang_2in数据流人
{if(dj.step {if(dj_fx) dj.cx[! dj_cxy_p]=dj.lx-(long)(dj.lx-dj.nx)*(long)(dj.step+1)/(long)dj.num; else dj.cx[! dj_cxy_p]=dj.lx+(long)(dj.nx-dj.lx)*(long)(dj.step+1)/(long)dj.num; if(dj_fy) dj.cy[! dj_cxy_p]=dj.ly-(long)(dj.ly-dj.ny)*(long)(dj.step+1)/(long)dj.num; else dj.cy[! dj_cxy_p]=dj.ly+(long)(dj.ny-dj.ly)*(long)(dj.step+1)/(long)dj.num; ……(相应其他处理程序略) if(! dj_load_out&&! dj_dw_in)//pingpang_2数据流出 {dj_position(dj.cx[dj_cxy_p],dj.cy[dj_cxy_p]); dj_load_out=1; } /*if(dj.st==255&&dj.mov_st! =0)//用于系统调试 {dj_move(dj.mov_rx,dj.mov_ry);//启动移动操作 dj.v=dj.r_v;dj.a=dj.r_a; dj.mov_st=0;//关闭电机移动允许位 }*/ } 3.4电机控制过程 电机控制过程作为整个下位机程序的控制核心,处理方法显得尤为重要,它需要处理来自串口的数据和向上位机反馈组织脱水机的工作状态和过程;处理启动任务配置,包括组织移动的目标位置,移动的速度以及加速度,并写入控制寄存器;处理移动过程的线性引导和插值运算;处理电机的实际动作、起停控制和状态反馈。 电机的控制过程如图16所示。 图16电机控制过程框图 当上位机向下位机发送移动任务后,数据首先被写入串口接受数据缓冲器中,当串口通信过程完成,电机主控模块判断乒乓操作缓冲是否允许写入和能否接收下一个移动任务,并反馈到串口发送对列中,否则等待电极任务完成和乒乓操作缓冲中的数据被取出,进行数据的又一次缓冲和串口数据反馈信号发送。 周而复始的进行“握手通信”,当电机任务启动后,电机在向目标移动过程的同时,系统通过“乒乓操作”实现下一目标的运算和装载,使移动目标到达后能迅速向下一目标移动,保证移动过程连续、稳定。 通过内插的梳密程度来控制移动的速度,内插的快慢来控制移动的加速度。 每次重置目标位置,系统也同时在进行直角坐标系到电机实际位置运算处理。 从而实现电机的一体化控制。 3.5串口通信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生物 组织 脱水机 设计