企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题TMS320F2407A DSP芯片的USB接口实现
技术领域
行业
简介 介绍了TMS320F2407A DSP芯片上USB接口的实现,DSP与PC之间的高速通信一直是DSP应用的关键问题,本文分析了PC与DSP通过USB接口通信的原理,使用AN2131Q芯片实现了USB接口,说明了软件和硬件设计的框架。
内容
        DSP即数字信号处理器,由于其采用特殊的软硬件结构特别适合于数字信号处理运算,己成为通信、计算机、消费电子、自动控制等领域的基础器件。DSP将是未来集成电路中发展最快的电子产品。
        USB(Universal Serial Bus)即通用串行总线,是一种高速的接口技术,它的主要特点是传输速度高、支持热拔插并且最多同时支持127个外设等,USB1.1的理论速度可以达到12Mb/s,USB2.0的速度可以达到480Mb/s,可以很好的解决嵌入式系统与PC机之间大数据量的传输,成为应用极为广泛的PC机与外围设备之间的接口标准。完整的USB系统通常包括三部分:具有USB接口的PC,能够支持USB的系统软件和使用USB接口的设备。本次设计就是要在一个采用TMS320F2407A实现电机控制的多路数据采集与处理系统上加上一个USB1.1的接口,以实现2407与上位机PC之间高效、快速、方便的传输数据。
 
1 TMS320F2407A  DSP芯片和AN2131Q USB接口芯片介绍
        TMS320F2407A是美国德州仪器(TI)公司生产的一款应用于数字控制和信号处理领域的高性能定点DSP芯片,是TI 2000系列DSP中应用较成熟的一款, 内核为16位的定点DSP CPU,具有低成本、低功耗、高速运算能力,采用高性能静态CMOS技术,供电电压为3.3V,指令周期可达25 ns,片内集成了多种外设模块及存储器,如串行通信接口 (SCI)、16位的同步串行外围接口(SPI)、CAN通信模块以及32K字的FLASH存储器,构成了真正的单芯片控制器,具有很高的性价比,得到了广泛的应用,如由电机控制的数据采集系统、测控仪表、运动控制等领域,采用这款芯片开发的嵌入式系统,一般都以串口与上位机通信,速度太慢,所以在本次设计中为了提高通信速度,采用Cypress公司的AN2131Q USB接口芯片,它的结构如图1。
        AN2131Q是Cypress公司推出的一款自带微处理器的USB接口芯片,性能特点如下:
(1)支持全速和低速USB传输,有3个8位的IO端口,独立的8位数据总线和独立的16位地址总线,片内嵌有一款增强型的8051微处理器,每4个时钟周期就可以执行一条指令,比标准的8051快了3倍。
(2)IO端口、数据总线、地址总线都是互相独立的,方便扩展存储器,通过数据总线和外部交换数据速率非常快,最快可以达到12Mbit/s。AN2131Q支持控制传输,中断传输,批量传输和同步传输。



图1 AN2131Q的结构框图
 
(3)AN2131Q片内没有ROM,固件存储在主机上,芯片上电后枚举过程完全是由硬件自动完成的,枚举完成后作为一个USB设备与主机通信下载固件(firmware),下载完成后,8051脱离复位状态执行固件程序,可以通过固件对USB接口进行再枚举,这种软配置可以方便的对产品进行升级。
(4)USB1.1协议比较复杂,直接从底层开发难度很大,AN2131Q的片上串行接口引擎(SIE)可以自动完成包排序,信号产生及检测,CRC产生及校验,位填充以及包标示产生及解码等大部分的协议操作,使开发人员摆脱了复杂的协议细节,加快了开发进程。

2 系统设计及USB模块设计
         系统工作原理如下:上位机通过USB接口发送命令,DSP接收命令后,通过电机转动控制信息源,CPLD译码,DSP读取各个AD转换的数据进行初步处理、压缩后通过USB接口传给上位机应用软件。系统框架如图2。


图2 系统整体功能框图

        本次设计主要是在已有系统的基础上加上USB接口,用到了USB的控制传输和批量(BULK)传输模式,控制传输利用端点0接收主机的控制信息或发送设备状态信息。数据传输用批量传输,包括IN和OUT两种操作。
(1)BULK IN  数据从设备发向主机
主机向AN2131Q内核发送IN标志,请求IN传输,AN2131Q准备好数据后响应IN请求,8051内核装载端点字节计数器表明数据已准备好,如未准备好,则AN2131Q内核以NAK响应主机,当主机发送一个表示数据接收正确的确认信号ACK,AN2131清端点标志位BUSY,通知8051缓冲器为空,为下一次传输做准备。
(2)BULK OUT  数据从主机发往USB设备
主机发出OUT信号和要发送的数据包。如AN2131Q正确接收,返回ACK,如没有正确接收返回NAK,同时主机继续发送OUT数据,直到AN2131Q返回ACK,每个OUT端点都有一个字节计数器可以让8051知道字节数和是否已经完成读取操作,为下一次OUT做准备。
3 AN2131Q的硬件连接
        为了提高DSP和AN2131Q之间的传输速度,采用了两片FIFO芯片,解决了传输的瓶颈问题。DSP用IO口访问FIFO。AN2131Q用数据线和FIFO连接。FIFO有三种状态空(EF)、半满(HF)、满(FF)都是低有效信号,当读取FIFO时首先检查EF状态,只有为高电平才可以读取,写入时检查HF状态,若为无效状态就说明数据还不到半满可以写入大小为FIFO容量一半的数据包。合理利用这三个状态信号可以提高传输效率,FIFO芯片采用IDT72V02,容量为1K×9Bit。AN2131Q的工作电压为3.3V,它的接地引脚5、6、13、14、72要通过1k电阻接地。SCL、SDA管脚要通过2.2k电阻上拉,不能悬空WAKEUP引脚,USB+、USB-要通过2个24欧的电阻接D+、D-以降低干扰。


4 软件设计
        本接口的软件设计主要包括USB固件及USB设备的驱动,固件是USB设备运行的核心主要完成以下功能:
(1)完成AN2131Q内核及外围设备的配置,让上层USB设备驱动程序知道USB设备的能力。
(2)完成DSP与AN2131Q的通信,主机与AN2131Q的通信。DSP通过读写FIFO芯片与AN2131Q通信,AN2131Q通过读写FIFO与主机PC通信。
根据AN2131的存储空间和运行速度,选择51系列C语言编写固件代码。根据CYPRESS公司提供的固件程序框架,通过这个框架可以总结出自己的固件程序框架,主要包括设备描述符信息,设备功能代码,和通信控制功能代码框架如下:
(1)配置AN2131Q的外围设备信息和通信管道。下面代码完成AN2131Q的初始化后进入主循环,检测是否有主机命令,如果收到命令,置CmdFlag为TURE,处理主机命令,然后CmdFlag被置为FALSE。
    …
Initial() //AN2131Q初始化配置
While(TURE)//进入无限循环
{
    If(CmdFlag)//是否收到主机命令
    {
        SetupCmd();//执行Setup包里的命令,设备描述符信息
        CmdFlag=FALSE;
    }
    …//CPU其他动作
}
(2)通信管道的初始化
通道即端点与PC之间建立的链路,使能通信端点。
(3)数据收发
USB设备向主机发送信息和接收主机信息都是以数据包为单位,下面以输入端点2和输出端点2为例说明数据的收发过程。
向主机发送数据:
InputEndpointInt( )
{
If((IN2CS&0x02)!=0x02)//输出缓冲区是否为空
{
    DataNum=PacketNum;//读取数据包个数
    for(i=0;i<DataNum;i++)
    {…}// 写入缓冲区
    IN2BC=DataNum;//设置数据包大小寄存器
}
    …
}
主机发送数据:
OutputEndpointInt( )
{
If((OUT3CS&0x02)!=0x02)//输入缓冲区是否为空
{
DataNum=OUT3BC;//取得输入数据包大小
    for(i=0;i<DataNum;i++)
    {…}//从缓冲区读出
    OUT3BC=0;//数据包大小寄存器清0
}
}
        在设备连接时,固件由专门的装载驱动程序自动装载到设备。固件捆绑在装载驱动程序之中。USB设备驱动程序给上层应用软件提供接口,一方面又直接和底层固件进行通信。USB设备的驱动程序的设计中采用了CYPRESS公司的通用驱动程序ezusbsys.sys,此通用设备驱动程序只能执行一些标准的USB设备请求和数据传输,根据本次设计的需要在这个模块的基础上进行了一些扩充,重新用WDM DDK生成驱动程序满足了设计的需要。
5 结束语
        本系统最终实现了DSP的USB接口,经过实验,与上位机通信的速率可达4Mbit/s,系统采用串口和上位机通信的时候速度最高才为几十kbps。速度提高了上百倍,满足了本信息采集与处理系统的要求。通过该系统的实现,证明了用USB接口实现上、下位机通信的优越性。
 
 
参考文献
[1]  Universal Serial Bus Specification [S]. Compaq、Intel、Microsoft、NEC、Revision,
September 23,1998
[2]  Cypress Semiconductor. AN2131Q Technical Reference Manual [Z].
San Jose,CA,US:Cypress Semiconductor,2000
[3]  Axelson Jan. 陈 逸译.USB大全.北京:中国电力出版社,2001
[4]  TMS320F2407A  DSP  Datasheet. TI,1999
[5]  许永和.USB外围设备设计与应用.北京:中国电力出版社,2002
 
 
作者简介:赵迎辉(1981-),男,西南交通大学信息科学与技术学院2003级研究生,研究方向