1 整机原理
自动采血装置的操作过程为,首先输入采血人员的指纹,对采血人员的身份进行验证,装置经过串行口与后台主机联系,由主机核实该操作者是否具备资格,并将核实结果通知采血装置。验证合格后,装置记录下操作者的身份,准许操作。采血前通过条码扫描仪输入血员的资料,包括编号、血型等,然后开始自动采血,此过程中要进行血浆的自动混合,计量采血量、血液流速及采集时间,并通过屏幕显示出来。当采集血量达到设定值时,自动停止采集,发出停止采集信号。如果在采集过程中出现异常情况,立即停止采集,同时发出报警信号。
1.1 原理框图
整机原理框图如图1所示。C8051F021单片机作为数据和信息采集及控制系统的核心。称重系统由称重传感器和精密运算放大器7650组成,完成对采集血液的重量的计量。指纹信息的采集由单片机经数据总线读入指纹传感器FPS100提供指纹的数字信号。条码信息由条码扫描仪经过RS232接口进入系统。血浆自动混合与停止采集的控制均通过输出开关信号并经驱动后完成对电动机或电磁阀的驱动。液晶显示器使用的是清华蓬远公司的液晶显示模块T-240128T。外部存储器用来存储血员资料、采血数量、装置的设定值等信息。

1.2 单片机系统
1.2.1 CIP251内核
C8051F021使用Cygnal的专利CIP251内核,与MCS251指令系统完全兼容。指令以时钟周期为运行单位,因此大大提高了指令运行速度(最大速度可达25MIPS)。
1.2.2 存储器
C8051F021有64K字节的可在系统编程的FLASH程序存储器,其地址为0x0000~0xFFFF。它有内部数据RAM 256字节,其中高128字节分为两部分地址空间,一部分是RAM区(采用间接寻址),另一部分特殊功能寄存器区(采用直接寻址)。低128字节数据RAM既可用直接寻址又可以用间接寻址方式寻址。C8051F021还有位于外部数据存储器地址空间的4K字节的RAM块。它还提供了64K字节的外部数据存储器接口,用于访问片外存储器和存储器映像的I/O器件。
1.2.3 模拟通道
C8051F021内部集成了一个功能强大的ADC子系统,它包括一个9通道的模拟多路开关、一个可编程增益放大器和一个100ksps的12位分辨率的逐次逼近型A/D转换器,内置一个1.2V、15×10-6/℃的电压基准。前8个通道用于对外部模拟信号的测量,第9通道接到内部温度传感器,用来测量芯片温度。通过软件编程,可以设置外部输入为单端输入方式或差分输入方式。C8051F021有2个12位的电压输出方式的DAC,每个DAC的输出均为0V~VREF21LSB。
1.2.4 数字通道
C8051F021具有4个8位的I/O端口,每个端口的引脚都可以由程序配置为推挽或漏级开路输出。此外,还引入了数字交叉开关,即数字开关网络,用户通过软件编程控制该开关网络,可以将片内的计数器/定时器、串行总线、硬件中断、A/D输入端等配置后使其出现在所需的端口。
1.2.5 串行通讯设备
C8051F021内部有2个全双工的异步串行口UART0和UART1,还有一个完全符合系统管理总线标准的串行接口SMBus和一个串行外设接口SPI。这些串行总线都完全由硬件实现,且都可以产生中断。尤其是它们不共享定时器、中断、或I/O端口,因此可以同时使用所有的串行口。
1.2.6 JTAG接口
C8051F021具有片内JTAG接口和逻辑,支持闪存的读/写操作以及飞侵入式的在系统调试。它的JTAG逻辑还为在系统测试提供边界扫描功能。
1.3 指纹传感器
FPS100是一种半导体指纹传感器,主要特性如下:
标准CMOS工艺,低功耗、长寿命、免维护;传感器阵列为300×300;分辨率为500dip;传感器间距50μm;图像区面积1.5cm×1.5cm;内置8位A/D转换器,可直接输出数字图像;具有8位微处理器接口,方便集成;内部具有温度传感器和阻抗传感器;振荡器频率10MHz~40MHz;工作电压3.0V~5.5V。
FPS100中300×300传感器阵列中的任意一位传感器单元都可由9位二进制数行地址和9位二进制数列地址来唯一确定。RAH和RAL是阵列的行地址寄存器,CAH和CAL是它的列地址寄存器。RAL提供行地址的低8位,RAH中的R0提供行地址的最高位。CAL提供列地址的低8位, CAH中的R0提供列地址的最高位。CAH中最高两位R7和R6用于选择A/D转换器的输入信号:①R7=0、R6=0,输入为传感器阵列的信号;②R7=0、R6=1,输入为温度传感器的信号;③R7=1、R6=0,输入为阻抗传感器的信号。

FPS100指纹传感器中有几个寄存器用于设定参数。①DCR寄存器。它的R7和R6用于设定外接晶振的频率范围, 4段可选择的频率为: 10MHz~15MHz,15MHz~20MHz, 20MHz~30MHz, 30MHz~40MHz。②DTR寄存器。它的R[6: 0]用于设定放电时间t, t=R[6: 0]×tosc(其中tosc是晶振的振荡周期)。③RSR寄存器。它的R[3: 0]用于控制电流源的输出电流IR,IR=(R3×100+R2×10+R1×1+R0×0.1)×1.2/RS(其中RS为SETCUR引脚对地所接的电阻阻值)。FPS100中的寄存器中,只有CAL是可读可写寄存器,其余都是只读存储器。A/D转换的结果存放在CAL寄存器中,单片机读CAL寄存器即可得到指纹的数字信号。
1.4 外部数据存储器
AT29C256是5V在线闪速可电擦除的存储器,具有掉电保护功能、在线编程能力。
智能采血装置利用AT29C256存放血员的相关资料及装置设定的工作方式,保证数据保存的可靠性。在采集数据过程中,先将数据存放于单片机内部RAM中,待数据存满64字节时,再将它们依次存放到外部数据存储器AT29C25中。在使用AT29C256过程中应注意,它每次操作时是以64字节为单位的,每次存储、更新都是64字节,并且每次在存储之前,都需要进行初始操作。
1.5 条码阅读器
Symbol公司生产的手持式条码扫描器是一种新型的、高性能的条码阅读器。它具有快速解码能力,采用先进的激光头,增强了条码的识读性能,可以直接连接RS232接口。它还具有逻辑适应能力和高级处理能力,因此增强了逻辑适应性,提高了高级处理性能,加大了条码扫描器所能读取的条码密度,并能识别残损条码。
智能采血装置采用手持条码扫描器输入血员资料。由于扫描器具有RS232标准串行通讯接口,因此与单片机接口十分方便,利用C8051F021单片机的异步串行接口UART0,与电平转换芯片MAX232接口,即可接收条码扫描器的信息。
2 软件设计
在软件设计中,使用C语言与汇编混合编程。首先实现一个简洁的主程序,然后在此基础上,把所有要完成的功能编制成相应的任务模块。根据模块各自的特点,或者由系统统一调度,或者在响应中断后执行,最后完成整个软件系统的功能。
主程序模块:主程序首先完成系统的初始化,包括系统的自检、设置及主菜单显示等工作,然后进入系统主循环程序段,利用查询与中断相结合管理各种信息的输入。
显示模块:完成对中文菜单的管理。显示菜单共分为三级,菜单的操作为选择方式,利用“上移”和“下移”按键完成对菜单项目的选择,确认后进入子菜单。按“返回”键即可返回上一级菜单,所有项目均采用选择方式,无需输入数字,操作简便。
键盘管理模块:只需5只按键实现对全部功能的操作,并提供简洁的操作模式。所有按键均连接到单片机的可编程计数器阵列(PCA)上,利用它的中断管理键盘输入。
外部数据存储器管理:完成对闪速存储器AT29C256的读写管理,按页进行数据操作,由于芯片具有软件保护功能,所以每次写入前要进行初始操作。指纹信息采集模块:采集指纹传感器的数字信号,并经异步串行口传至后台主机或存入采集装置内以供查询。
串行通讯模块:单片机两个异步通讯接口均转换成RS232电平,构成两路RS232接口,其中一路接收条码扫描仪输入的血员资料,另一路接后台主机,与主机进行信息交换。
3 结束语
自动采血装置综合利用了单片机技术、指纹识别技术、条码技术等先进的技术手段,使采血设备的自动化程度大大提高,对采血人员的严格控制和血员资料的科学管理,杜绝了采血中出现的人为失误,保证采血的科学性、可靠性,为血液的管理自动化奠定了良好的基础。
参考文献:
[1]潘琢金,施国君. C8051Fxxx高速SOC单片机原理及应用[M].北京:北京航空航天大学出版社, 2002.
[2] AtmelCorporation.AT29 C256[Z]. 2002.
[3] AtmelCorporation.AtmelAT29 Flashmemories[Z]. 1998.
[4] Veridicom. Inc. Solid2state FingerprintSensor[Z]. 1998.
作者简介:吕勇军(1958—),男,硕士,教授,主要从事智能仪器仪表及检测技术的研究。
收稿日期:2005-04




