4.2 各个模块的设计
在本设计中采用Altera公司EPM7064系列CPLD,程序使用VHDL语言编写,并在Quartus II环境下编译通过,程序主要有“采集模块”和“读数模块”。采集模块:在采集模块中,共有5个并行进程,其中在进程1中,首先在主控计数器COUNT=10时开始结合内部时钟COL信号来产生多路开关选通信号CNT,当COL='0'时: CNT<="0000".COL='1'时:CNT<="0001".以次类推一直到COL='15'时选通15路后,进程1停止。在进程2中,当主控计数器COUNT在130和150区间内时,且内部计数器信号COL在0~15范围内,则开始打开AD,开始采集。在进程3中如果主控计数器COUNT=185~255时打开RAM的"写入状态"。在进程4中当主控制计数器count=200和220时,结合内部时钟信号COL,分别选择存入高4位、低8位或者帧计数。进程5:count=235递推帧标志位和ADG506(模拟开关)选通标志位,具体见图6所示。[4]
读数模块:读数模块共分为3个并行进程:在进程1中,当时钟上升延时,且如果使能EN_R为高时,且电脑控制读数口CPUCLK='1'时开始读数。在进程2中,读完一次数据后,将RAM地址递推一次。进程3中,如果系统为读数模块有效时,数据将通过CPLD发送到MAX232通过异步串行的方法将数据上传,具体见图7所示。[5]
5 结束语
本文对多路数据采集系统的组成原理、单元电路设计、接口电路设计和系统控制程序设计进行了详细的阐述,完成了多路信号数据采集系统软硬件设计。使系统工作安全可靠,数据采集精度较高,抗干扰能力较强。具有良好的应用前景和很高的使用价值。
文章创新点:本文应用CPLD复杂可编程逻辑器件实现了:模拟/数字信号采集系统设计、异步串行数据传输等技术。并且通过使用多路切换开关循环采集的方法,实现对高速信号采集。有效控制了成本,提高了系统的完整性,可靠性,实用性。