微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的高速数据采集系统设计方案

基于DSP的高速数据采集系统设计方案

时间:06-25 来源:维库开发网 点击:

该系统采用MAXIM 公司的MAX1308 型号的AD 转换器,MAX1308 独立的采样保持(T/H)电路为每个通道提供同时采样,MAX1308 提供±5V 输入范围,输入故障容限为±16.5V。其ADC 在0.9µs 内完成2 个通道的转换,在1.98µs 内完成多达8 个通道的转换,8 个通道转换时每通道吞吐率为456kSPS。其他特性包括20MHz 的T/H 输入带宽、内部时钟、内部(+2.5V)或外部(+2.0V 至+3.0V)基准以及低功耗省电模式。20MHz、12 位双向并行数据总线用来提供转换结果,并可接受数字输入分别激活每一路通道。工作在+4.75V 至+5.25V 模拟电源与+2.7V 至+5.25V 数字电源下,全速运行时,总电源电流为57mA,工作温度为-40℃至+85℃扩展温度范围。

3、软件设计

该数据系统的软件由USB 驱动程序、DSP 程序和PC 机应用程序3 大模块构成。

3.1 USB 驱动

USB 设备驱动是应用程序和硬件之间的接口,起着承上启下的作用。CH372 套件包括CH372 芯片和计算机端的CH372 驱动程序。在本地端,CH372 芯片以内置的固件程序自动处理了USB 通讯中的基本事务;在计算机端,驱动程序以及动态链接库等软件向计算机应用层提供应用层接口。

它内部提供API 函数供应用程序使用,以实现对USB 设备的打开、关闭、读写等操作。此设计中USB 设备驱动采用USB 芯片厂商提供的驱动程序CH372DRV.EXE,安装驱动程序CH372DRV.EXE 后,在应用程序中调用动态链接库CH375DLL.DLL 提供的API 函数来打开、关闭、和读写USB 设备。

DSP 和USB 芯片通信时,CH372 芯片占用两个地址位,当A0 引脚为高电平时选择命令端口,可以写入命令;当A0 引脚为低电平时选择数据端口,可以读写数据。DSP 通过8 位并行口对CH372 芯片进行读写,所有操作都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据。命令操作步骤如下:

①、在A0=1 时向命令端口写入命令代码;

②、如果该命令具有输入数据,则在A0=0 时依次写入输入数据,每次一个字节;

③、如果该命令具有输出数据,则在A0=0 时依次读取输出数据,每次一个字节;

④、命令完成,可以暂停或者转到①继续执行下一个命令。

CH372 芯片专门用于处理USB 通讯,在接收到数据后或者发送完数据后,CH372 以中断方式通知DSP 进行处理。DSP 通过CH372 芯片接收数据的处理步骤如下:

①、当CH372 接收到USB 主机发来的数据后,首先锁定当前USB 缓冲区,防止被后续数据覆盖,然后将INT 引脚设置为低电平,向DSP 请求中断;

②、DSP 进入中断服务程序,首先执行GET_STATUS 命令获取中断状态;

③、CH372 在GET_STATUS 命令完成后将INT 引脚恢复为高电平,取消中断请求;

④、由于通过上述GET_STATUS 命令获取的中断状态是"下传成功",所以DSP 执行RD_USB_DATA命令从CH372 读取接收到的数据;

⑤、CH372 在RD_USB_DATA 命令完成后释放当前缓冲区,从而可以继续USB 通讯;

⑥、DSP 退出中断服务程序。

DSP 通过CH372 芯片发送数据的处理步骤如下:

①、DSP 执行WR_USB_DATA 命令向CH372 写入要发送的数据;

②、CH372 被动地等待USB 主机在需要时取走数据;

③、当USB 主机取走数据后,CH372 首先锁定当前USB 缓冲区,防止重复发送数据,然后将INT引脚设置为低电平,向DSP 请求中断;

④、DSP 进入中断服务程序,首先执行GET_STATUS 命令获取中断状态;

⑤、CH372 在GET_STATUS 命令完成后将INT 引脚恢复为高电平,取消中断请求;

⑥、由于通过上述GET_STATUS 命令获取的中断状态是"上传成功",所以DSP 执行WR_USB_DATA命令向CH372 写入另一组要发送的数据,如果没有后续数据需要发送,那么DSP 不必执行WR_USB_DATA 命令;

⑦、DSP 执行UNLOCK_USB 命令;

⑧、CH372 在UNLOCK_USB 命令完成后释放当前缓冲区,从而可以继续USB 通讯;

⑨、DSP 退出中断服务程序;

⑩、如果DSP 已经写入了另一组要发送的数据,那么转到②,否则结束。

3.2 DSP 程序

DSP 程序是设计中很重要的组成部分,主要分为DSP 和USB 转换芯片之间的通讯以及DSP 和数据采集芯片MAX1308 之间的通信。当计算机每次下传数据块或DSP 上传数据块成功时,DSP 的外部捕获中断CAP1就会收到CH372 的中断请求信号。当DSP接收到计算机传输过来的采样命令后就启动MAX1308进行数据采集,根据计算机要求设置采样频率和采样通道数目,采样完成后,将数据一并打包传给计算机。

DSP和采集芯片的连接采用的是总线连接方式,进行数据采集时,DSP通过总线的D0–D7 写配置寄存器可以激活相应通道。配置寄存器中的位直接映射

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top