基于ATmegal28控制器和CH375接口的高速数据采集系统

分享到:

作者:吕宗芳,赵书俊

  1 引言

  在核探测领域中,需要对各种高速信号进行采集处理,目前常用的方式是在PC机中安装数据采集卡,如ISA卡、PCI卡。这些卡由于采用可编程逻辑器件(PLD)控制高速模数转换器进行转换,利用ISA总线(16 Mbit/s)、PCI总线(132 Mbit/s)进行数据传送,故具有采集速率高,数据传输速度快,支持“即插即用”等优点。但是其安装不方便,价格高,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。笔者设计的采集系统采用AVR单片机ATmegal28作为主控制器,取代了常用的5l系列单片机,控制高速模数转换器AD9220进行转换,采集速率高达5 Ms/s。采用通用串行总线(USB)进行数据传送,不仅继承了ISA卡、PCI卡采集速度快的优点,而且克服了它们的缺点,具有易用、可扩展、快速、传输可靠等优点。该系统现已应用到4 MeV正离子静电加速器的辐射防护中。

  2 系统硬件设计

  该数据采集系统硬件模块总体结构如图l所示,输入信号幅度的范围为0 V~5 V。

  输入信号首先进入触发电路,该电路主要由比较器AD790和数字电位器X9241组成。AD790是一款高速、精密的电压比较器,反应时间为45ns。通过ATmegal28可控制多种采集模式,触发电压可调节,可实现软件触发(对输入信号进行无触发连续采集)、后触发(当输入信号上升沿电压大于触发电压时开始采集)和前触发(当输入信号上升沿电压小于触发电压时停止采集)三种采集模式。图2为后触发采集模式的电路原理简图,LM136-5.O为5 V基准源,ATmegal28通过I2C总线控制X924l设定触发电压,比较器AD790的输出连接到ATmegal28的中断输入端。当输入端电压大于触发电压时,AD790输出低电平,以中断的形式通知ATmega-128,使其开始数据采集。

  当触发条件满足后,ATmegal28启动模数转换器AD9220进行转换,将转换后的数据存入数据存储器中,待上位机查询读取。ATmegal28控制模数转换与数据存储器扩展电路如图3所示。

  ATmegal28是AVR系列中功能最强的单片机。该系列单片机运用Harvard结构(具有预取指令功能),即对程序存储器和数据存储器带有不同的存储器和总线,当执行某一指令时,下一指令预先从程序存储器中取出,使程序可以高效率地执行,其机器周期为1个时钟周期,绝大多数指令均为单周期指令,1 MHz的频率有接近1 MI/s的性能。

  高速模数转换电路中,AD9220是ADI公司一款性能优良的12位高速模数转换器,速率高达10MS/s。选择内部参考源,用单端输入方式来进行采样,采样一次需要一个时钟周期,其速率取决于输入时钟的频率,电压输入范围为0 V~5 V。

  ATmegal28采用16 MHz晶振,机器周期为62.5 ns。通过软件编程设置在PD5端口产生周期为125 ns的方波,作为AD9220采样的时钟信号(CLK)。由于每次采样后ATmegal28还要进行数据存储,数据存储时间需62.5 ns,故每获得一个数据总共需要187.5 ns。经测试表明,转换速率可达到5MS/s。

  当ATmegal28接到上位机请求上传数据的命令后,立即将采集到的数据通过USB接口电路传输给上位机.CH375与ATmegal28接口电路如图4所示。CH375是USB总线的通用设备接口器件,内置USB通讯中的底层协议,支持主机方式和从机方式,具有8位数据总线(DO-D7)、地址输入(A0)、读(RD)、写(WR)、片选控制线(CS)以及中断输出(INT),它作为从机挂接到ATmegal28的数据总线上与上位机进行通信。当AO为高电平时,选择命令端口,可以写入命令;当A0为低电平时,选择数据端口,可以读写数据,单片机通过8位并口对CH375进行读写。CH375在接收到上位机端发送的数据后或者发送完数据后,以中断方式(INT4)通知单片机,单片机分析中断状态并进行相应处理。

  3 USB接口软件设计

  在本地端,采用从机方式的CH375在系统中采用内置固件模式,端点O作为默认端口,CH375自动处理默认端口0的所有事件,端点2的上传端点作为批量数据发送端点,端点2的下传端点作为批量数据接收端点。单片机对CH375的操作是采用命令加数据的I/O操作方式,任何操作都是先发命令给CH375,然后执行数据输入输出。

  在计算机端,使用VC作为计算机端应用软件的开发平台,利用CH375动态链接库DLL提供的API函数对其进行操作。该动态链接库提供的可供利用的APl包括:设备管理API、数据传输API、中断处理API。首先,将CH375器件的驱动程序和动态链接库拷贝到计算机中,再将动态链接库的访问入口及函数定义入口添加至VC项目中,此时对USB设备的通信编程与访问本地硬盘中的文件几乎相同。

  CH375在计算机应用层与本地端单片机之间提供了端对端的连接,该系统采用数据加应答方式进行通讯,该方式具有数据自动同步、程序设计简单、较好的交互性和可控性等优点。请求加应答方式使用一个下传的主动请求和一个上传的被动应答进行交互式的双向数据通讯,下传与上传一一对应,相互关联。主动请求是指由计算机应用层下传给单片机的数据请求,被动应答是指在单片机收到数据请求后,上传给计算机应用层的应答数据。所有的通讯都由计算机应用层发起,然后以接收到单片机的应答结束,完整的过程包括:

  (1)计算机应用层按事先约定的格式将数据请求发送给CH375;

  (2)CH375以中断方式通知单片机,单片机进入中断服务程序,获取CH375的中断状态并分析;

  (3)如果是上传,则释放当前USB缓冲区,单片机将应答数据写入批量端点的上传缓冲区中,然后退出中断程序;

  (4)如果是下传,则从数据下传缓冲区中读取数据块,分析接收到的数据块,将应答数据返回给计算机,然后退出中断程序;

  (5)计算机应用层接收到应答数据。

  以下分别是为计算机端和单片机端采用此传输方式实现USB数据传输所编写程序的基本结构。

  4 结束语

  该采集系统有两个显著特点,一是采用AVR单片机ATmegal28作为主控制器,取代了常用的51系列单片机,控制高速模数转换器AD9220进行转换,使采集速率最高可达到5 MS/s,二是同时采用USB总线进行数据传输。因此该系统不仅采集速率高,还具有传输速度快、易用、可扩展、快速、传输可靠等优点。由于USB2.O使数据传输速率提高到480 Mbit/s,因此具有USB接口的数据采集必将得到更广泛的应用。

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss