STC单片机PCR测控系统

时间:2022-10-19 07:12:42

STC单片机PCR测控系统

简介

所谓PCR(聚合酶链式反应polymerasechainreaction),即体外基因扩增技术,是将试管中标本的单个复制的目的基因在短时间内由人工复制到数千万倍,从而对疾病发展过程中相关基因的变化特征进行检测的新技术。其原理是:先将含有所需扩增分析序列的靶DNA双链经热变性处理(温度t1),解开为两个单链,然后加入引物与互补DNA结合后,经反链杂交复性(退火温度t2),在聚合酶的作用下将引物延伸(温度t3),使DNA重新复制成双链。然后开始下一次循环扩增,每次循环延伸的模板增加1倍,理论上PCR可以按2的n次方倍数扩增,从而将极微量的靶DNA成百万倍地扩增到足够检测分析量的DNA。

PCR的循环程序为:93℃变性30s,55℃退火20s,然后在72℃延伸30s,共循环30~35次。最后一次循环结束后,再将反应管置72℃温育5分钟,以确保充分延伸。

综上所述,PCR循环过程实际上就是一个温度循环控制的过程。在我们的系统中,PCR热循环采用单片机控制先进的平面薄膜加热技术和成熟的冰机致冷系统来实现快速升、降温控制。考虑互换性和便于调试,温度传感器用铂电阻Pt100,测温精度达±0.2℃;温度控制采用PID调节算法,控制精度达±0.3℃,有效地保证了PCR过程的实现。

硬件设计

1单片机系统

在这个系统中,我们选用了STC系列的STC12C5408AD单片机。这是高速、低功耗、超强抗干扰的新一代8051单片机,全部中国本土自主知识产权,指令和8051完全兼容,其中90%的指令仅用3个时钟周期即可完成;内有8KBFLASH程序存储器,512BSRAM和12KBEEPROM,地址0000H~2FFFH;有ISP(在系统可编程)功能,无须专用编程器,通过串口可直接下载用户程序。STC12C5408AD的管脚如图1所示。

2温度变送器

我们采用AD693信号变送器。AD693是一种具有信号放大、补偿基准电压源、V/I变换等功能的单片集成电路,能够和多种传感器相配合,处理0~60mV之间的模拟量信号,并以(4~20mA\0~20mA\12±8mA)标准电流形式输出到测量或控制系统。AD693的12-13短接时,测温范围为0~104℃,输出电流为4~20mA。AD693的内部基准电阻为l00Ω,其温度特性很好,可作为铂电阻的接口用电阻。

铂电阻Pt100的温度特性曲线如图2所示。

由图2可见,铂电阻Pt100与温度的线性关系还比较好,但对于精密测量而言,应依下列公式进行处理。

0≤t

AD693和铂电阻(Ptl00)组成的测温电路如图1所示。由图可见,由于AD693的1-5,2-4脚短接,V5=75mV,因此流过铂电阻(Ptl00)的电流为75mV/l00Ω=0.75mA,在+SIG端V(17)=75mV+RTD×0.75mA;V(17)与V(18)的电压差经AD693电压放大和V/I转换,得到4~20mA的电流输出,再经250Ω精密电阻,得到1~5V的输出电压V0。

3A/D转换TLC2543

STC12C5408AD单片机本身虽有10位A/D转换功能,但我们需要更加精密的器件,因此选用TLC2543芯片。TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程,在工作温度范围内转换时间10μs。由于是串行输入输出结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

如图4所示,TLC2543与电路的连线简单,三个控制输入端为CS(片选)、输入/输出时钟(I/OCLOCK)以及串行数据输入端(DATAINPUT),一个串行数据输出端(DATAOUT)和一个转换结束输出信号EOC。有11个输入通道AIN0~AIN10,我们选择AIN0,接AD693输出电压VO。采样-保持是自动的;转换结束,EOC输出变高,转换结果由输出端(DATAOUT)串行输出,第一个数据输出发生在EOC的上升沿(不用CLK驱动),其他位发生在I/O时钟的下降沿后。基准电压端REF+接VCC,REF-接50℃时对应的输入电压VO(50),低于VO(50)的输入电压的转换结果为全0,最大输入电压范围取决于两端电压差,这样,就将输入温度范围缩小到50℃~104℃,从而提高了A/D分辨率。

4温度控制接口电路

系统的温度控制如图5所示,由两路固态继电器(SolidStateRelay,缩写SSR)来实现。SSR输入控制电路具有与TTL/CMOS兼容,正负逻辑控制和反相等功能,可以方便地与TTL、MOS逻辑电路直接连接。固态继电器的输入与输出电路的隔离和耦合方式有光电耦合和变压器耦合两种:光电耦合通常使用光电二极管-光电三极管、光电二极管-双向光控可控硅、光伏电池,实现控制侧与负载侧隔离控制。SSR的功率开关直接接入电源与负载端,实现对负载电源的通断切换。一路SSR通过平面薄膜加热进行升温控制:由于SSR内部有过零触发电路,因此很容易就可实现完整的周波控制,避免了非周波控制的高次谐波干扰,从而提高了系统的可靠性;另一路SSR直接控制冰机致冷系统来实现快速降温控制。

软件设计

1Pt100温度与A/D转换值

由温度、Pt100电阻值、输出电压VO、A/D转换值的一一对应关系,我们事先制作了A/D转换值与温度的对应关系表,存储在STC12C5408AD的12KBEEPROM中;单片机在运行时,由A/D转换值可直接查出对应的温度值,从而节省了大量的计算时间。调试时,我们又发现,升温至69℃和90℃之前,以及降温至58℃之前,P15和P16分别都处于低电平状态,即全导通状态;只有当升/降温到了距目标值还差3℃之后,系统才进入PD调控区。因此,我们只要将54~58℃、69~73℃和90~94℃三个区间按0.1℃的精度制作A/D转换值与温度的精确对应关系表,每个区间40个分度,三个区间共120个分度,每个分度3字节,共360字节,这样我们就完成了一个非常精致的A/D转换值与温度的精确对应关系表,既节省了存储空间,又减少了查表的宝贵时间。

2控制算法

温度控制一搬采用PID调节算法,即比例、微分、积分算法。在我们的系统中,由于要控制温度的介质质量少,恒温时间短,调节速度快,因此采用PD调节算法,即比例、微分算法。当升/降温距目标值还差3℃之前,P1.5和P1.6分别都处于低电平状态,即全导通状态;当升/降温到了距目标值还差3℃之后,系统才进入PD调控区。

为减少设计工作量,提高程序运行速度,我们直接用温度的A/D转换值作程序参数,如用AD55、AD72、AD93分别作目标温度的A/D转换值,用AD58D、AD69D、AD90D分别作与目标温度前3℃的偏差绝对值的A/D转换值,用AD553D、AD723D、AD933D分别作与目标温度±0.3℃偏差绝对值的A/D转换值等,汇编时分别用伪指令赋值。

控制周期设为40ms,用定时器0设40ms中断来控制。

中断服务程序

1)首先执行七次连续温度采集,并对其进行排队、取中值,作为本轮温度采集值,存入RAM60H61H,并作为FIFO队列的数据N0,高字节在高位;

2)计算与目标温度的偏差。

当偏差≥目标温度前3℃的偏差的A/D转换值ADXXD时,P1.5或P1.6处于低电平状态,即全导通状态;

当偏差

当偏差≥目标温度±0.3℃偏差绝对值的A/D转换值ADXX3D时,计算FIFO队列的数据N0与N-4的队列偏差;

当偏差大而队列偏差小,说明系统偏离目标较大,且进展较慢,必须加大调控量,P1.5或P1.6处于低电平状态40ms,即全导通状态;

当偏差大而队列偏差亦大时,说明系统偏离目标较大,但进展较快,必需减少调控量,P1.5或P1.6处于低电平状态20ms,即半导通状态,否则容易超调;

当偏差较小而队列偏差大,说明系统偏离目标较小,且进展较快,必须停止调控,P1.5或P1.6处于高电平,即全截止状态;

当偏差较小而队列偏差亦小,说明系统偏离目标较小,但进展较慢,可作小调控,即P1.5或P1.6处于低电平10ms,即半波导通状态;

当偏差

PD控制流程如图6所示。

3)FIFO队列的数据按先进先出原则处理:该队列共保留五组数据,按N0,N-1,…,N-4分别存在60H61H,…,68H69H中,此时,从高位起,将每字节高移两字节,即69H移入6BH,68H移入6AH,…,61H移入63H,60H移入62H,将60H61H预留给下一周期。

4)中断返回

执行RETI指令,复位中断优先级触发器IFF0/IFF1;返回断点。在执行中断服务程序过程中,若需立即转到主程序时,应先调用一段子程序(该子程序仅一条RETI指令),而下一条指令才可转向主程序;若未调用该子程序而即转向主程序时,因未复位中断优先级触发器IFF0/IFF1,此后就不能响应该优先级的中断请求了,这将造成失控。

上一篇:数读 8期 下一篇:航班延误谁之过