基于DSP的高速数据采集系统设计方案
2.2 USB接口
USB 通用接口芯片可分为3 种。一种是专门为USB 应用设计的USB 芯片,一种是建立在现有芯片系列基础上的USB 芯片,还有一种是只处理USB 通信,必须被一个外部微控制器所控制的USB 芯片。该设计采用CH372属于最后一种。
CH372 内置了USB 通讯中的底层协议,具有省事的内置固件模式和灵活的外置固件模式。在内置固件模式下,CH372 自动处理默认端点0 的所有事务,本地端DSP 只要负责数据交换,所以DSP 程序非常简洁。在外置固件模式下,由外部DSP 根据需要自行处理各种USB 请求,从而可以实现符合各种USB 类规范的设备。
CH372 与 TMS320F2812 之间以非总线方式连接,连接框图如图2 所示。CH372 的8 位数据口D0 ~D7 分别挂在TMS320F2812 的GPIOA0 ~ GPIOA7 准双向I/O 口上,命令数据地址选择端A0,读信号选择端RD,写信息选择端WR 和中断输出端INT 分别与TMS320F2812的GPIOA9、GPIOA10、GPIOA11 和GPIO8(CAP1)相连,片选引脚CS 接地。
2.3 AD 转换器
该系统采用MAXIM 公司的MAX1308 型号的AD 转换器,MAX1308 独立的采样保持(T/H)电路为每个通道提供同时采样,MAX1308 提供±5V 输入范围,输入故障容限为±16.5V。其ADC 在0.9micro;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 退出中断服务程序。
评论