首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM的高速数据采集卡(3)

基于ARM的高速数据采集卡(3)

在手动采集方式下,TRIENO为低电平,TRIEN1高电平,当缓存器为空即FWr_FUL为高电平,通过LabVIEW制作的界面控制QSTART为高电平时,FWr_EN被拉高进行数据采集。当缓存器满时FWr_FUL被拉低,停止采集数据。
在输入信号触发方式下,TRIEN0和QSTART为低电平,当缓存器为空即FWr_FUL为高电平,输入信号电压高于比较器的参考电压时, TOUT被拉高,FWr_EN被拉高进行数据采集。当缓存器满时FWr_FUL被拉低,停止采集数据。拉高TRIEN1后读取缓存数据。
采集周期信号和输入信号触发方式相似,只是保持TRIEN1为高电平。在读取缓存数据时.触发信号到来后采集数据。
4 高速数据采集卡的软件设计
4.1 基于μC/OS-II的USB驱动编程
μC/OS-II提供了多任务实时操作系统的内核。在应用该操作系统时,通常需要用户自己编写基于μC/OS-II的外围器件驱动程序,以使外围器件能在操作系统的协调下更好地为用户服务。为了使软件可移植性强、易维护,笔者在编写LPC2142 USB固件时综合考虑USB协议、LPC2142 USB硬件条件,把驱动程序分为5层,如图3所示。图中的双向线表示用户软件与USB固件之间存在着数据交换,单向线表示上层软件对下层软件的调用,这样使得固件结构分明。

拥有了USB驱动程序,用户可在此平台上完成用户软件所要实现的任务,如图4所示。单向线表示主任务对读写任务的控制。主任务通过信号量控制读/写任务的运行状态,从而实现对FIFO缓存器的读和写;双向线表示各个模块之间存在着数据交换。为了加快大量数据的收发,本程序把LPC2142USB的逻辑端点1作为控制命令的传输通道,把端点2作为数据的传输通道。
继承事业,薪火相传
返回列表