打印
[电磁兼容]

DSP核信号采集系统通讯接口设计

[复制链接]
586|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Violin11|  楼主 | 2019-1-4 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP核信号采集系统通讯接口设计



摘 要:论述了基于 USB的 DSP核信号数据采集系统通讯接口的设计方法,其中数据采集系统中的 USB通讯芯片采用 CY7C68001,上位机通讯界面采用 Microsoft Visual C++编写,同时采用 CPLD很好地解决了各芯片的逻辑问题。实际测试表明利用 USB接口提高了数据传输的速率,节省了资源,而且即插即用的方式方便了连接。
关键词:USB接口;TMS320VC5502;CY7C68001;通用设备驱动程序

0.引言
        随着数字信号处理技术理论的不断发展,数字信号处理器的发展也是日新月异。不仅执行指令速度越来越快,而且其功耗也越来越低。许多仪器或检测设备都不约而同地将 DSP应用到那些数据量庞大而且需实时传送数据的系统中。核信号数据采集系统也不例外,利用 DSP可以实时有效地处理采集的信号,并将处理数据发送至上位机进行进一步处理。通常数据采集系统下位机与上位机的通讯采用串口方式,这种方式不仅协议简单,而且连接方便。但是这种方式的数据传送速率不高,而 USB 总线接口具有方便快捷、支持即插即用、可实现高速数据通讯等优点,在很多领域得到广泛应用。USB 总线接口在 USB1.1协议下传输速率可达 12Mbps ,USB2.0协议下可达 480Mbps ,完全可以满足目前的数据采集控制系统对于数据实时传输速率越来越高的要求。
因此在本系统设计中其通讯方式采用 USB(Universal Serial Bus)总线接口方式。 USB控制芯片采用 Cypress公司 EZ-USB SX2 系列的 CY7C68001控制芯片, DSP选用 TI公司的定点 DSP芯片 TMS320VC5502。

1.CY7C68001USB控制芯片介绍
    CY7C68001是由美国 Cypress公司开发的高速 USB芯片,支持 USB2.0协议。其内部集成有 USB收发器(物理层)、USB串行接口引擎 SIE(链路层,实现底层通信协议)、4KB 的 FIFO以及电压调节器、锁相环;可工作于全速( 12Mb/s)和高速 (480Mb/s)两种传输模式,支持 8位和 16位数据总线方式,具有同步和异步的 FIFO接口。CY7C68001被用来与 DSP、 ASIC、FPGA等控制器连接实现 USB的功能,其内部不含微控制器。同时 CY7C68001提供 4种传输方式(控制传输、中断传输、批量传输和同步传输),可满足用户对各种传输方式的要求。由于该控制芯片内不含微控制器, USB的应用层协议应该由 DSP编程实现, USB固件的加载必须靠 DSP控制 CY7C68001完成。

2.通讯接口系统硬件设计
整个采集系统包括的部分有传感器信号调理电路、A/D转换电路、FIFO数据缓冲单元、 DSP控制器、 FLASH程序存储单元、 CPLD逻辑控制单元、与上位机连接的 USB通讯单元。其中与 PC机通讯的 USB单元硬件接口框图如下图所示。


由图 1可以看出,通讯部分主要由 CY7C68001 USB控制器、CPLD逻辑单元、E2PROM、 TMS320VC5502组成。由于整个系统所需的器件数目较多,由此带来的逻辑控制较为复杂,而 DSP的 I/O接口有限,故在系统中加入了 CPLD逻辑控制单元,用于产生电路中需要的逻辑状态。同时用 CPLD中还实现了寄存器功能,这部分寄存器用于表征 USB通讯时各种状态信息,便于 DSP查询。
CY7C68001 USB控制器与 TMS320VC5502采用 EMIF连接方式,并将 USB控制器中的存储器配置到 CE1空间。同时采用异步读写方式完成 TMS320VC5502与 CY7C68001之间的数据和命令交换。系统中 E2PROM的作用是完成USB控制器的描述表自举。CY7C68001控制器的自举方式有两种:EEPROM和微控制器,本系统采用 EEPROM方式。

3.通讯接口系统软件设计
3.1 主机端软件设计
主机端软件的功能主要是完成下位机上传数据的接收、显示、分析等。由于信号采集的数据量较大,所以在 USB传输方式上采用批量传输方式。 主机端软件的设计包含 3个方面:
(1)USB驱动程序设计
USB驱动程序的功能主要是实现 USB发现、配置、关闭以及数据的传送接口控制。 USB设备驱动程序的设计是基于 WDM (Windows driver model ,驱动程序模型)的。 WDM采用分层驱动程序模型,分为较高级的 USB设备驱动程序和较低级的 USB 函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块(US-BD)和较低级的主控制器驱动程序模块(HCD)。在上述 USB分层模块中,USB函数层由操作系统提供,负责管理 USB设备驱动程序和 USB控制器之间的通信、加载及卸载 USB驱动程序,与 USB设备通用端点建立通信来执行设备配置、数据与 USB协议框架和打包格式的双向转换任务。
      (2)安装 USB的信息文件(.inf)
这一步用于将驱动程序绑定到特定设备的 Verdor ID (VID) 和 Product ID( PID)。当 USB设备插入计算机时,计算机检测到设备插入后自动发出查询请求; USB设备回应该请求,并送出设备的 VID /PID。计算机根据这两个 ID装载相应设备驱动程序,完成枚举。
      (3)用户应用程序
用户应用程序是数据采集系统的核心,其主要功能为:开启或关闭 USB设备、检测 USB设备、设置 USB 数据传输管道、设置 A /D状态和数据采集端口、实时从 USB接口采集数据、显示并分析数据。整个应用程序采用 Microsoft Visual C++编写,通过对界面的控制实现 A/D的采样以及数据的显示。下面列举一些与应用程序有关的函数: BOOLEAN OpenDriver ( ) ; BOOLEAN CloseDriver ( ) ; PVO ID Sx2GetDeviceDesc ( ) ; PVO ID Sx2GetStringDesc ( int stringIndex) ; PVO ID Sx2GetConfigDesc ( ) ; BOOLEAN Sx2GetPipe Info ( PVO ID p Interface); BOOLEAN Sx2SendVendorReq ( PVO ID myRequest, char * buffer, int bufferSize, int * recnBytes); BOOLEAN Sx2GetPipe Info ( PVO ID p Interface);

3.2 DSP软件程序设计
       USB主机与设备间的数据传输是通过设备中的端点(Endpoint)进行的。这些端点通过端点号和输入输出方向来进行标识,并为数据传输分配固定的 FIFO存储区。本系统在初始化时将 CY7C68001的 4个端点配置为批量传输类型。其中, FIFO2、FIFO4为输出端点,用于接收上位机传来的数据;FIFO6、FIFO8为输入端点,用于存放待发送的数据。各个 FIFO 设置为异步工作模式。DSP经初始化后打开 USB 外部中断,向 CY7C68001写入描述符表 ,等待其枚举中断。枚举成功后, DSP对 CY7C68001进行其他配置并清空 FIFO,然后等待主机发送用户请求并进行相应处理。软件程序流程图如图 2所示。
DSP软件程序设计主要包括 DSP的初始化、USB描述符表的写入和其他命令寄存器的配置以及用户请求的相应处理。DSP的初始化主要是初始化时钟速率、配置 EMIF口、配置 McBSP口等。 USB描述符表主要是完成 USB芯片内部的初始配置,命令寄存器的配置是完成 USB中断的开启、端点数据传输容量以及方向的配置等。用户请求是用户应用程序,根据用户发送的请求完成相应的数据传输。


4. 结论
       本系统采用 USB接口完成了核信号采集系统与上位机间的数据传输,上位机的用户程序显示所传数据以及波形图。经验证表明该方法连接简单,传输可靠。与普通串口相比,其速度也得到了提升。本文创新点:将传统的 DSP信号采集系统用于核信号的采集上,并且将与上位机进行通讯的串行口方式改进为 USB方式,采用这种即插即用的接口不仅方便了与上位机的连接而且提高了传输的速率。

相关帖子

沙发
Violin11|  楼主 | 2019-1-4 13:45 | 只看该作者
DSP核信号采集系统通讯接口设计

文档1.pdf

162.34 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

717

主题

1010

帖子

3

粉丝