采用QCM传感器的生物芯片检测电路的原理设计
软件设计
本系统中ALTERA公司可编程逻辑器件EPM7128的内核程序采用Verilog HDL硬件描述语言编写,使用MAX+plusII10.1编译系统或Quartus II 4.2编译系统编译,设计实现了分频、频率计数、数据选择等功能。51单片机AT89S52用C语言和汇编语言混合编程,使用Keil C51编译系统编译。
1、可编程逻辑器件EPM7128的顶层电路
顶层电路如图4所示,由分频模块、计数模块、数据选择模块组成,分频模块和计数模块采用Verilog HDL硬件描述语言编写,数据选择模块用图形输入方式。12M的振荡信号送到EPM7128的CLK端,经过分频模块后变成10Hz的频率信号给计数模块提供基准时基。AT89S52给EPM7128的RST端提供复位RST信号,使EPM7128复位,开始记录差频器送到EPM7128的CLKX1端的频率信号。记时时间到,EPM7128的输出端INT发出中断信号,通知单片机接收数据。由于计数模块的计时器是32位的,因此通过3个8位的二选一数据选择器,在单片机给出的SEL0~SEL2片选信号控制下,分时选择从EPM7128的输出端OUTPUT7~OUTPUT0输出的8位数据信号到AT89S52的P0数据口。
图4 可编程逻辑器件EPM7128的顶层电路
2、可编程逻辑器件EPM7128的分频模块
分频模块的目的是将可编程逻辑器件EPM7128的83脚输入的12M频率信号,分频成10Hz频率信号给计数模块做基准时钟,即计时时间是100ms。
3、可编程逻辑器件EPM7128的计数模块 由分频模块分频后的10Hz信号送到计数模块,它通过门控电路,加到可以控制开、闭时间的闸门上。被测脉冲加到计数模块中闸门的输入端,开始测频时,先将计数器置0,待门控信号到来后,打开闸门,允许被测脉冲通过,计数器开始计数,直到门控信号结束,闸门关闭,停止计数。因此,当门控信号的周期为1s时,在闸门开通时间1s通过闸门的被测脉冲个数即为该被测信号的频率,为了使上位机获得更多的数据和精度,使门控信号的周期为0.1s。
以下是可编程逻辑器件EPM7128的计数模块的程序部分代码:
always @ (posedge CLK_1hz or negedge RST)
begin
if (!RST)
begin
CNT_EN=0;
LOAD=1;
end
else
begin
CNT_EN=~CNT_EN;
LOAD=~CNT_EN;
end
end
assign CNT_CLR=~(~CLK_1hzLOAD);
ssign INT=LOAD; //使用LOAD的上升沿使单片机中断。
DIY机械键盘相关社区:机械键盘DIY
评论