TMS320VC33与主机通信的USB接口设计

2015-12-15 07:58侯代文孙涛邓磊明
电子设计工程 2015年7期
关键词:应用层低电平高电平

侯代文,孙涛,邓磊明

(91439部队 辽宁 大连 116041)

TMS320VC33与主机通信的USB接口设计

侯代文,孙涛,邓磊明

(91439部队 辽宁 大连 116041)

通用串行总线(USB)是目前最常用的一种计算机总线。介绍了DSP芯片TMS320VC33与主机之间基于USB总线接口芯片CH372V通信的设计方案,详细描述了TMS320VC33与CH372V的接口电路设计,并对CH372V的通信模式做了介绍,针对数据上传和下传通信程序以及API函数做了系统地说明,采用MFC实现了USB通信的应用程序。设计结果表明,该设计方案硬件成本低,软件开发简单,具有很强的实用性.

通用串行总线;CH372V;TMS320VC33;应用程序

DSP主要应用于实时和大数据量的信号处理系统[1]。当它与主机进行通信时,数据交换速度和接口复杂度是系统设计的关键性指标,因此需要设计一种高速、简洁的通信方式。通用串行总线USB以其高速和内置电源等特性,在提高设备性能、降低成本以及系统小型化等方面得到广泛应用。

USB的突出优点包括以下几点:连接灵活,热插拔;一种接口匹配多种设备,可连接最多达127外设;自动配置,无须定位及安装驱动程序,更无需重启系统;为外设提供最高达500 mA的电源;低功耗、低成本、高可靠性等[2]。

目前,USB接口芯片有很多种,主要包括以下3类。一类是带有微控制器的USB芯片。这类芯片的微控制器有自己的结果和指令、可以从底层控制USB接口,主要有Cypress的EZ-USB/FX/FX2系列等;有些USB接口芯片微控制器选用通用芯片 (MCS51内核),如Atmel公司的AT89C513x、Intel公司的8x931等;也有一些公司的SoC芯片带有USB接口,比如Atmel的ATC76113芯片就集成了两种USB接口。另一类芯片需要外部微控制器控制,包括 Cypress公司的SL811HS芯片、National半导体公司的USBN9602等。还有一类单纯的物理层总线接口转换器,包括 Philips公司的PDIUSBPA等,这类芯片需要用户自行设计USB协议,设计复杂,一般应用于控制器开发和测试。

文中所设计的TMS320VC33与计算机通信的系统,对USB通信的速度和数据量等指标要求不高,只需选择一款开发难度小,开发周期短的USB接口芯片,这里选择了南京沁恒公司的USB总线接口芯片CH372V[3]。

TMS320VC33是TI公司2001年推出的性价比较高的浮点DSP芯片,它体积小、成本低、功耗低、接口方便,适用于信号处理、工业控制等应用领域[4]。在全部TMS320VC3X系列DSP芯片中,TMS320VC33不仅能够取代该系列中现有的其他产品,而且在出现了TMS320VC33后,其他几种型号的DSP的功能就显得相形见绌。

本文主要设计了TMS320VC33与CH372V的接口电路,并给出了软件设计流程以及具体的实现方法。

1 硬件接口电路设计

1.1 USB接口芯片CH 372V介绍

CH372V是用于USB总线的通用接口芯片,具有8位数据总线和读控制、写控制、片选控制以及中断输出功能,可以连接到单片机/DSP/MCU/MPU等控制器的系统总线上。在计算机系统中,CH372V的配套软件提供简洁易用的操作,与单片机通讯与文件读写同样易于操作。

CH372V内置USB通讯中的底层协议,有简便的内置固件模式和灵活的外置固件模式。在内置模式下,CH372V能自动处理端点0的全部事务,单片机只需负责数据交换,所以单片机程序非常简洁。在外置模式下,由外部单片机根据需要处理各种USB请求,实现了符合各种USB规范的设备连接。CH372V芯片的工作原理如图1所示。

CH372V是全速USB接口设备,可以兼容USB V2.0,即插即用,外围元器件只需要提供晶体和电容。它提供的主端点和辅助端点,支持控制传输、批量传输、中断传输等功能。CH372V具有易用的内置固件模式和灵活的外部固件模式。在内置固件模式下,它屏蔽了相关的USB协议,能自动完成标准的USB枚举配置过程,不需本地端控制器处理,简化了单片机的固件编程。CH372V是通用的Windows驱动程序设备级接口,可通过DLL提供API应用层接口。CH372V采用本地8位数据总线,支持读选通、写选通、片选输入、中断输出等4线控制。CH372V主端点上传下传缓冲区均为64字节,辅助端点上传下传缓冲区均为8字节。CH372V支持3.3 V电源电压和低功耗模式,去掉了USB主机方式和串口通讯方式等功能,硬件成本更低。

图1 CH372V工作原理图Fig.1 The principle of CH372V

1.2 CH372V芯片介绍

CH372V芯片在本地端提供被动并行接口,包括8位的双向数据总线D7~D0、读选通输入RD#、写选通输入WR#、片选输入CS#、中断输出INT#以及地址输入A0等。CH372芯片通过并行接口可以挂接到各种8位单片机、DSP、MCU的系统总线上,与多个外围器件同时工作。

CH372V芯片的RD#引脚和WR#引脚可以与单片机的读选通输出以及写选通输出引脚连接,CS#引脚由地址译码电路驱动,当单片机具有多个外围器件时用于设备选择。INT#输出的中断请求在低电平时有效,可连接单片机的中断输入或普通I/O引脚,此时单片机使用中断方式或查询方式接收中断请求。当WR为#高电平且CS#、RD#以及A0均为低电平时,CH372V中的数据由D7~D0输出;当RD#为高电平且CS#、WR#以及A0均为低电平时,D7~D0上的数据可写入CH372V芯片;当RD#和A1为高电平且CS#以及WR#为低电平时,作为命令码,D7~D0上的数据能够写入CH372V芯片。

CH372V芯片正常工作时需要外部提供12 MHz的时钟信号。一般地,时钟信号由CH372V芯片内置的反相器通过晶体的稳频振荡产生。外围电路只需要XI和XO引脚之间连接标称频率为12 MHz的晶体,而且需要在XI和XO引脚接地端分别连接一个高频振荡电容。如果从外部直接输入12 MHz时钟信号,那么需要从XI引脚输入,而XO引脚需要悬空。

CH372V芯片支持3.3 V电源供电。当使用3.3 V的工作电压时,CH372V芯片的V3引脚应与VCC引脚连接,同时输入3.3 V的外部电源,此时与CH372V芯片相连接的其他电路,其工作电压不能超过3.3 V。

CH372V芯片内置5个物理端点:

1)端点0为默认端点,支持上传和下传功能,上传和下传缓冲区均为8字节长度;

2)端点1包括上传和下传两个端点,上传和下传缓冲区均为8字节长度,上传端点号是81H,下传端点号是01H;

3)端点2也包括上传和下传两个端点,上传和下传缓冲区均为64字节长度,上传端点号是82H,下传端点号是02H。

在内置固件模式下工作时,端点2的上传端点为批量数据发送端点,而端点2的下传端点为批量数据接收端点,同时端点1的上传端点为中断端点,而端点1的下传端点作为辅助端点。

在外部固件模式下工作时,端点0为默认端点,可根据USB产品的需要选择使用端点1或端点2,也可以由外部固件定义其用途。一般情况下,端点2作为数据传输的主端点适用;根据需要,也可以将端点1作为辅助端点适用。

为了产品开发方便,在设计中本系统采用了内置固定模式。

1.3 CH372V与TMS320VC33的接口电路设计

CH372V外围电路设计如图2所示。图中,芯片74AC11032是四路或门芯片,它实现逻辑关系CS#=+ A21+,即当=1,A21=0且=1时,CH372V的CS#引脚有效,TMS320VC33才能对 CH372V进行操作。USB_PORT是USB芯片的端口,图中,USB总线包括了一对+ 3.3 V电源线和一对数据线。USB总线提供的电源的最大输出电流可达500 mA,电压约为5 V。为保护电路,用两个二极管组成钳位电路,并使用两个电感来减少相互间的干扰。在印刷线路板PCB设计中,需注意以下事项:退耦电容C2和C3尽可能地靠近CH372V的连接引脚,缩短X1和X0引脚相关信号线的长度,D+和D-信号线需平行布线,最好在两侧提供地线或覆铜,以减少来自外界的干扰信号。为减少高频时钟信号对外界的干扰,也可在元器件周边环绕地线或覆铜。

CH372V与TMS320VC33二者之间的通信接口设计是整个系统中较重要的一部分,只有当这两部分之间能够可靠、快速地数据通信时,所设计的通信系统才能够实现其整体功能。TMS320VC33的I/O的逻辑电平是3.3 V[5-6],因此在进行DSP系统设计时,除了DSP芯片外,还涉及DSP芯片与其他外围芯片的接口。考虑到3.3VDSP芯片与其他芯片的安全接口问题,以及CH372V芯片的设计,TMS320VC33采用3.3 V的TLL电平转换标准,CH372V芯片也采用3.3 V电压供电,表1对TMS320VC33与CH372V的电气特性进行了对比。

图2 CH372V与TMS320VC33接口设计电路图Fig.2 CH372V-TMS320VC33 interface circuit

表1 TSM 320VC33与CH372V的电气特性Tab.1 The electrical characteristics of TSM 320VC33 and CH 372V

当数据传输方向为 TMS320VC33到 CH372V时,CH372V端口的输入低电平的范围为-0.5~0.7 V,端口输入高电平的范围为2.0~3.8 V,TMS320VC33端口的输出低电平的最大值为0.4 V,端口输出高电平的最小值为2.4 V。可以看出CH372V和TMS320VC33在高电平和低电平均有相互交迭的部分,可以满足信号的传输要求。因此TMS320VC33到CH372V方向的数据传输能够正常进行。当数据传输方向为CH372V到TMS320VC33时,CH372V的端口输出高电平的最小值为2.8 V,低电平的最大值为0.5 V;TMS320VC33的端口能够识别的输入高电平的最小值是2.1 V,端口输入低电平的最大值是0.9 V,可以看出CH372V到TMS320VC33方向的数据也能够正常进行。

由上面的分析可以知:TMS320VC33与CH372V的端口可以直接连接。

2 USB通信的软件设计

CH372V芯片为计算机应用层与本地端DSP提供了端对端的连接,在此基础上,设计人员可以选用两种USB通讯方式:单向数据流方式和请求加应答方式。前者使用了两个方向相反的单向数据流通讯,数据传输速率相对较高,但数据不易同步;后者使用查询方式进行通讯,数据自动同步,交互性和可控性较好,但数据传输速率较低。

1)单向数据流工作方式

单向数据流方式使用上传数据流和下传数据流完成双向数据通讯,两个数据流之间完全独立。

下传数据流由计算机应用层通过数据下传API发起,CH372V芯片64个字节一组,将较大的数据块分为多组提交单片机。如果应用层发送150个字节,则单片机会中断3次,前两次各获取64字节,最后一次获取22字节。

上传数据流有两种发起方式:一种为查询方式,由计算机应用层定期以查询方式发起;另一种为伪中断方式,由单片机以中断数据通知计算机应用层,再通过计算机应用层发起。由于USB总线是主从式结构,计算机必须主动联系USB设备,USB设备才向计算机上传数据。

在上传数据流以查询方式工作的系统中,计算机应用层通过数据上传API读取数据。当没有数据需要单片机上传时,计算机应用层会一直等待,此时该应用层程序的线程会被挂起。当单片机上传数据时,需要将数据写入CH372V的上传缓冲区,计算机应用层自动取走数据,然后CH372V以中断方式通知单片机上传结束,以便上传后续数据。在使用这种方式时,建议用CH375的SetBufUpload控制内部缓冲上传。

对以伪中断方式发起上传的系统,计算机应用层在初始化时设置了一个伪中断服务程序,以后应用层就不需要再控制上传数据流。单片机上传数据时,先将数据写入上传缓冲区中,再将中断特征数据写入中断端点上传缓冲区中。1毫秒之内与中断特征数据对应的伪中断服务程序就会被激活,伪中断服务程序会通知主程序调用数据上传API接收上传数据块。在此过程中,单片机会收到CH372V芯片发出的两次中断,先是中断端点上传成功中断,接着是批量端点上传成功中断。

2)请求加应答工作方式

请求加应答方式通过使用下传的主动请求和上传的被动应答完成交互式双向数据通讯,下传与上传相互对应,相互关联。

主动请求指由应用层下传给单片机的数据请求,而被动应答指在单片机收到数据请求后,上传给机应用层的应答数据。全部通讯均由计算机应用层发起,再以接收到单片机的应答结束,整个过程包括:

①计算机应用层将数据请求发送给CH372V芯片;

②CH372V向单片机以中断方式发出通知;

③单片机运行中断服务程序,获取CH372V中断状态并分析;

④如果为上传过程,则释放USB缓冲区,退出中断程序;

⑤如果为下传过程,则由数据下传缓冲区读取数据块;

⑥分析所接收到的数据块,组织应答数据,此过程也可在退出中断程序后进行;

⑦单片机将应答数据写入上传缓冲区,退出中断程序;

⑧CH372V将应答数据发送给计算机;

⑨计算机应用层接收应答数据。

考虑开发成本及本系统的实际需要,我们采用了请求加应答的方式实现了点对点USB的传输方式。

2.1 基于CH372V的DSP芯片软件设计

TI的 TMS320VC33集成开发环境 Code Composer对 C语言支持较好,为缩短开发周期、提高系统可移植性,下位机采用C语言进行程序编译,其程序流程图如图3所示。

图3 下位机程序流程图Fig.3 The flow of slave computer

CH372V芯片通过两个地址位进行控制,当A0为高电平时选择命令端口,写入命令;当A0为低电平时选择数据端口,读写数据。DSP芯片通过8位并口对CH372V芯片进行读写操作,所有操作均由一个命令码、若干个输入数据或若干个输出数据构成,也有些命令没有输入数据或输出数据。命令操作主要包括以下步骤:

1)A0=1时,向命令端口写命令代码;

2)如果该命令包括输入数据,当A0=0时,写入输入数据,每次写入一个字节;

3)如果该命令包括输出数据,当A0=0时,读取输出数据,每次一个字节;

4)命令完成后,可暂停或者转到步骤1)继续执行下一命令。

CH372V芯片专门用于处理USB的通讯过程,在接收到数据或发送完数据后,CH372V通过中断通知DSP芯片处理。

DSP芯片通过CH372V接收数据的处理步骤如下:

1)CH372V接收到USB主机发来的数据时,首先锁定当前USB缓冲区,然后将INT#引脚设置为低,向DSP芯片请求中断;

2)DSP芯片进入中断服务程序,执行GET_STATUS命令获取中断状态;

3)GET_STATUS命令完成后,CH372V将INT#引脚恢复为高电平,取消中断请求过程;

4)DSP芯片执行RD_USB_DATA命令,从CH372V读取接数据;

5)RD_USB_DATA命令完成后,CH372V释放当前缓冲区,继续USB通讯;

6)DSP芯片退出中断服务。

DSP芯片通过CH372V发送数据主要包括以下步骤:

1)DSP芯片执行WR_USB_DATA命令,向CH372V写入需发送的数据;

2)CH372V等待,直至USB主机在需要时取走数据;

3)USB主机取走数据后,CH372V锁定当前 USB缓冲区,将INT#引脚设置为低电平,同时向DSP芯片请求中断;

4)DSP芯片运行中断服务程序,执行GET_STATUS命令获取中断状态;

5)GET_STATUS命令完成后,CH372V将INT#引脚恢复为高电平并取消中断请求;

6)DSP芯片执行WR_USB_DATA命令,向CH372V写入要发送的数据,若没有后续数据需要发送,则DSP芯片不执行WR_USB_DATA命令;

7)DSP芯片执行命令UNLOCK_USB;

8)CH372V在完成UNLOCK_USB命令后,释放当前缓冲区,继续US通讯;

9)DSP芯片退出中断服务;

10)若DSP芯片已经写入另一组要发送的数据,转到2),否则程序结束。

2.2 上位机应用程序设计

本系统的上位机应用程序界面采用MFC编写[7-8],使用了 Visual C++6.0环境下编写的 PC机与 USB总线芯片CH372V通信的Windows应用程序。为满足系统设计要求,PC机端的应用程序流程图如图4所示。

CH372V芯片在计算机端提供了应用层接口,它由CH372动态链接库DLL提供的面向功能应用的API实现,所有API在调用后都返回操作状态,但未必应答数据。CH372的动态链接库提供的API包括设备管理API、数据传输API以及中断处理API。

图4 上位机程序流程图Fig.4 The flow of host computer

设备管理API包括:

1)打开与关闭设备:CH375OpenDevice,CH375 Close Device;

2)获取USB设备配置的描述符:CH375GetDeviceDescr,CH375GetConfigDescr;

3)复位USB的设备:CH375ResetDevice;

数据传输API包括:

1)读取数据模块:CH375ReadData;

2)写出数据模块:CH375WriteData;

中断处理API包括:

1)读取中断数据程序:CH375ReadInter;

2)设定中断服务:CH375SetIntRoutine;

图5 PC机应用程序界面Fig.5 GUI of application

PC机端的应用程序界面如图5所示。PC机端的应用程序用于接收用户输入的指令,并通过USB传送指令至硬件系统;通过PESQ给出客观语音评价的分数再通过USB传送给上位PC机,在应用程序中以跳点的形式表现,感觉比较直观。模拟测试结果显示方式如图6所示。

图6 模拟测试结果Fig.6 The simulation of test results

设计结果表明,所设计的系统能实现对TMS320VC33与CH372V接口的连接与控制,实现人机交互。

3 结 论

本文对CH372V作了简要介绍,设计了TMS320VC33与CH372V的接口电路,实现了TMS320VC33与主机通信的应用程序。可以看出,用CH372V实现USB通信,开发简单,成本较低,能够满足大部分系统对USB通信的要求,具有广泛的应用前景。

[1]王念旭.DSP基础与应用系统设计[M].北京:北京航空航天大学出版社,2001.

[2]胡晓军,张爱成.USB接口开发技术[M].西安:西安电子科技大学出版社,2005.

[3]南京沁恒电子有限公司.USB总线接口芯片CH372V中文手册.[EB/OL].[2012-05-20].http://mag.ieechina.com/ Upload/Park/7d6f2961-f50d-46ce-a8aa-ce5c5e58d71b.pdf.

[4]Texas Instrument products.TMS320VC33 Digital Signal Processor Datasheet[EB/OL].[2012-10-07].http://www.ti. com.cn/cn/lit/ds/sym link/tms320vc33.pdf.

[5]党瑞荣,谢雁,李利品.TMS320C3x DSP原理与应用[M].西安:陕西科学技术出版社,2006.

[6]Texas Instrument products.TMS320C3x/C4x Optimizing C Compiler User's Guide[EB/OL].[2012-11-16].http://www.ti. com.cn/cn/lit/ug/spru034h/spru034h.pdf.

[7]David,J.Kruglinski著.潘爱民,王国印译.Visual C++技术内幕[M].4版.北京:清华大学出版社,1999.

[8]仁哲等.MFC Windows应用程序设计[M].北京:清华大学出版社,2004.

Design of communication interface between host and TMS320VC33 based on USB

HOU Dai-wen,SUN Tao,DENG Lei-ming
(Unit 91439,PLA,Dalian 116041,China)

USB is one of the most popular interfaces connecting peripheral devices to the host system.In this paper,the design of communication between TMS320VC33 and host is introduced based on CH372V.Not only the design of TMS320VC33-ch372V interface circuit is introduced in detail,but also the communication mode of the CH372V is mentioned.The communication program in up-data and down-data are also expounded.API function is explained in system as well.The application of communication is developed with MFC.The practice proves that this design project reduces the cost of hardware,simplifies the software development and is full of common use.

universal serial bus;CH372V;TMS320VC33;application

TN91

A

1674-6236(2015)07-0166-05

2014-06-14 稿件编号:201406103

国家自然科学基金项目资助(61303192)

侯代文(1972—),男,山东嘉祥人,博士,高级工程师。研究方向:单片机开发、阵列信号处理、跟踪与定位技术等。

猜你喜欢
应用层低电平高电平
一种基于FPGA的PWM防错输出控制电路
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
浅谈物理电路与数字电路
基于分级保护的OA系统应用层访问控制研究
PDM 1kW中波广播发射机保护电路分析
15-MeV电子直线加速器的低电平系统
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair