基于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 写配置寄存器可以激活相应通道。配置寄存器中的位直接映射到相应通道,D0 控制通道0,D7 控制通道7 。把任意一位设为高电平,将激活相应的输入通道;同样,把任意一位设为低电平,将禁用相应通道。对少于8通道的器件,其中几位没有任何功能。写配置寄存器时,将CS和WR 设为低电平,然后将D0–D7 位装载到并行总线,再将WR 置为高电平。数据在WR 的上升沿锁存。在转换时序的任意时刻都能够对配置寄存器进行写操作。上电时,在启动转换之前写入配置寄存器,以选择有效通道。
内部时钟模式下启动一次转换,需在采样时间内将CONVST 置为低电平。当CONVST 为低电平时,T/H 捕获信号,在CONVST 的上升沿转换开始。一旦能够读取转换结果,转换结束信号(EOC)将给出一个低电平脉冲。当最后一个通道的转换结果可以被读取时,最后转换结束信号(EOLC)跳变到低电平。
在EOLC 的下降沿,DSP 将CS 和RD 置为低电平,把第一个转换结果置于并行总线。RD 连续的低电平脉冲将转换结果顺次放到总线上。时序中最后一个转换结果读取后,额外的读脉冲可以使指针重新指向第一个转换结果。
3.3 计算机应用程序
计算机应用程序主要完成数据的人机交互功能,用户通过应用程序配置监测系统、控制数据采集的过程和显示采集的数据。
4、结论
本系统采用DSP 和MAX125 进行数据采集,通过USB 进行数据传输。对单路的数据采集,可以实现800kSPS 的实时数据传输,8 路同步采集可以实现400kSPS 的实时数据传输。该系统的使用方法简便、快捷、实时监测性好,可扩展性良好,抗干扰能力强。适当地改进硬件电路和程序就可以对更多采集点进行采集和监测。基于USB 和单总线的便携式监测,必将被众多领域广泛应用。
评论