来源:微计算机信息 ,作者:隋超,刘亚军,赵玉宾,孙建国
引言
近年来,高速数字信号处理器 (DSP)已越来越广泛地用于各个领域,例如:通信、语音处理、图像处理、模式识别及工业控制等方面,并且日益显示出巨大的优越性。数字信号处理器是利用专门或通用的数字信号处理芯片、以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确抗干扰能力强、体积小、可靠性高等优点,满足了对信号快速精确实时处理及控制的要求。
通用串行总线 USB(Universal Serial Bus)具有连接灵活、可热插拔、一种接口适合多种设备、速度高、自动配置、无需定位及运行安装程序、可为外设提供电源、低功耗、低成本、高可靠性等优点使数据的高速传输变得非常便利。
设计一种通用数据采集与信号处理系统,采用高性能的 TMS320F2812芯片和 USB总线传输技术,使信号能实时送到上位机进行分析与处理,从而实现高速的数据采集和处理功能。
1 系统概述
该系统的工作过程主要是将外部的八路同步模拟输入信号经过 A/D转换器进行采样和转换,并把采集得到的大量数据送入 DSP内部对采样结果进行软件滤波以及前端处理。在 DSP完成采集数据的处理工作后,将处理结果经过 USB总线送至主机,进行实时的后端分析处理和显示。
系统结构框图如图 1所示, MAX1308为 MAXIM公司生产的模 /数转换器,其采样最高速率为单通道 1075kSPS,8通道为 456kSPS,精度为 12位,为 8通道同步采样。采用 TI公司的 TMS320F2812作为处理器,其时钟频率最高为 150MHz,是目前控制领域性能最高的处理器,具有精度高、速度快、集成度高等特点,为不同控制领域提供了高性能的处理器。 USB接口芯片采用的是 CH372,具有 8位数据总线和读、写、片选控制线以及中断输出功能,可以方便地挂接到 DSP控制器的系统总线上。利用 VC++实现了 USB和计算机的高速数据通信,充分利用了计算机的存储容量大等特点,可将采集到的数据存储起来供事后分析,也可以实现数据的实时处理。
2 系统硬件
2.1 TMS320F2812 C281x系列 DSP是 TI公司最新的 32位定点数字信号处理器,是基于 TMS320C2000数字信号处理器平台开发的,其代码与 24x/240x数字信号处理器完全兼容。因此,240x的用户能够轻松的移植到 C281x系列 DSP平台上, C281x系列 DSP同时具有数字信号处理器和微控制器的特点,尤其是 C281x继承了数字信号处理器的诸多优点,其中包括可调整的哈佛总线结构和循环寻址方式。微控制器的特点主要包括字节的组合与拆分、位操作等。哈佛总线结构能够完成指令的并行处理,在单周期内通过流水线完成指令和数据的同时提取,从而提高了处理器的处理能力。 C281x处理器采用 C/C++编写的软件,其效率高,因此用户不仅可以应用高级语言编写系统程序,也能够采用 C/C++高效率的数学算法。 C281x系列数字信号处理器在完成数学算法和系统控制等任务时都具有较高的性能,这样就避免了用户在一个系统中需要多个处理器的麻烦。C281x处理器内核包含了
一个 32×32位的乘法累计单元,能够完成 64位的数据处理能力,从而使该处理器能够实现更高精度的处理任务。
2.2 USB接口
USB通用接口芯片可分为 3种。一种是专门为 USB应用设计的 USB芯片,一种是建立在现有芯片系列基础上的 USB芯片,还有一种是只处理 USB通信,必须被一个外部微控制器所控制的 USB芯片。该设计采用的 CH372属于最后一种。
CH372内置了 USB通讯中的底层协议,具有省事的内置固件模式和灵活的外置固件模式。在内置固件模式下,CH372自动处理默认端点 0的所有事务,本地端 DSP只要负责数据交换,所以 DSP程序非常简洁。在外置固件模式下,由外部 DSP根据需要自行处理各种 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.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写配置寄存器可以激活相应通道。配置寄存器中的位直接映射到相应通道, 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和单总线的便携式监测,必将被众多领域广泛应用。
责任编辑:gt