当前位置:首页 > 电源 > 数字电源
[导读]基于Blackfin532和Netchip2272的USB接口电路设计方案。该方案具有硬件接口电路简单、固件程序可移植性强等优点。文中对USB接口电路的原理进行了说明,并给出了硬件连接的原理图,同时还对固件程序的开发进行了介绍,对实验结果进行分析,验证了方案的可行性。

USB(Universial Serial Bus)是一种通用总线系统,由于它具有支持热插拔、数据传输快速、性能可靠、价格较低等优点,已成为应用最广泛的PC机外设扩展接口之一,它是实现电子系统和PC机之间进行数据传输的理想接口。基于上述分析,提出了基于Blackfin532和Netc-hip2272的USB接口电路设计方案。

1 USB接口电路的硬件设计
1.1 Blackfin532DSP处理器简介

    文中DSP处理器选用Blaclkfin532,它是ADI(Analog Device Instruments)公司推出的一款高性能、低功耗定点处理器,内核时钟频率最高可达400 MHz,具有两个40位的算术逻辑单元(ALU),及4个8位视频ALU,两个16位硬件乘法器,两个40位累加器,是具有较高性价比的DSP处理器。Blackfin532片上集成了84 kB的RAM,可寻址空间为4 GB,可与多种存储器实现无缝连接。此外,片上集成了多个外设接口,具体包括1个UART口,1个SPI口,2个串行口(Sports),4个通用定时器,1个实时时钟,1个看门狗定时器,1个并行外设接口等。
1.2 Netchip2272简介
    文中USB接口芯片选用了Netchip2272。它在片上集成了USB收发模块,串行接口引擎(SIE),USB协议控制器,端点数据缓冲区,本地总线接口模块等。同时还集成了大量的寄存器,使得对它的操作变得简单。Netchip2272具有如下特点
    (1)支持全速/高速数据传输模式。
    (2)具有3个可配置的物理端点,及30个逻辑端点。
    (3)片上集成了3 kB的数据缓冲区,支持双缓冲模式。
    (4)可方便地与通用微处理器进行连接。


    在Blackfin533的EZ-KIT开发板中也采用了Blackfin533和Netchip2272实现USB接口电路,但EZ-KIT开发板中使用了设备管理器等,使得程序变得较大,在Blackfin533和Netchip2272之外,需要大约8 MB的存储空间来存放部分程序和支持程序运行时对存储空间的要求,这就需要在外部添加一块SDRAM。同时,在EZ-KIT开发板的例程中只提供了USB接口电路的基于设备管理器的顶层源代码,对于Blackfin533如何控制Netehip2272实现设备的枚举和数据传输则没有提供底层的源代码,这些都使得开发板中提供的USB接口电路方案,在实际应用中不方便。文中所提出的USB接口电路方案中则没有使用设备管理器,这使得程序比例程中的程序要小得多,且不需要使用SDRAM,从而使得硬件电路变得
更加简单。由于没有使用设备管理器且在程序编写过程中采用了模块化的设计方法,固件程序的可移植性增强了。
1.3 USB接口电路的原理
    USB接口电路的硬件连接原理图如图2所示,其中D0~D15是Blackfin532和Netchip2272的数据线,A1~A5是地址线,PF10和PF11是Black-tln532的PF(Programmable Flags)口的第10、ll管脚,分别用作Netehip2272的中断输入管脚和复位控制管脚,ASMl是Blacktin532的异步存储块1的片选信号用作Netehip2272的片选信号,IOW,IOR是Blackfin532的写、读选通输出信号用作Netchip2272的写选通和读选通信号。IRQ是Netehip2272的中断输出信号,RESET是它的复位输入信号,CS是它的片选信号,D+,D-是USB总线的差分数据线,VCC和GND分别是它的电源线和地线。[!--empirenews.page--]


    Blackfin532和Netchip2272的数据交换采用中断驱动方式,当2272发生了特定的某些事件如收到主机发送的Setup包,收到主机发送的数据包等,需要Blackfin 532对事件进行处理时,2272在其IRQ管脚产生1个低电平,与它相连接的PF10管脚在检测到此低电平之后。在DSP内部产生中断,DSP在中断处理函数内部读取2272相关寄存器的值,并根据这些寄存器的值对发生的事件作出相应的处理,完成USB设备的枚举和数据的传输。

2 USB接口电路的软件设计
   
接口电路的软件设计包括固件程序和PC端的驱动程序。固件程序的设计需要对硬件电路和USB的通信协议比较熟悉,因而开发起来难度比较大,这里对固件程序的开发作以介绍。
2.1 固件程序
    设备的固件程序是指运行在设备端CPU中的程序,它主要用来完成对接收到的数据包的类型,内容进行识别和分析,并在分析的基础上对主机的请求做出相应的处理,完成设备的枚举,读取主机发送的数据和向主机发送数据,从而实现和主机之间的数据交换。固件程序的流程图如图3所示。


    固件程序主要包括初始化和中断服务程序两部分;
2.1.1 初始化
    初始化程序用以对Blackfin532和Netchip2272进行初始化设置。
    (1)对Blaekfin532进行软复位,对PLL(Phase Locked Loop),EBIU(External Bus Interface Unit),PF口进行设置,以及使能PF10引起的中断。
    (2)对Netchip2272进行软复位,对本地总线控制寄存器(LOCCTL,LOCCTL1),USB控制寄存器(USB_CTL0,USBCTL1),端点0的寄存器进行设置,在中断使能寄存器(IRQENDO,IRQENBl)中使能相应的中断。
2.1.2 中断服务程序
    中断服务程序主要是用来处理主机的Setup标准请求,将主机发送过来的数据读到Blacldin532中和将Blackfin532中的数据发送给主机。
主机要和USB设备进行数据交换首先要正确的识别USB设备,这需要经过一个枚举过程,这个过程主要通过主机向设备发送Setup请求,设备对该请求进行响应来完成。
    (1)USB设备加电,连接到主机的—个集线器端口。
    (2)主机检测到新设备连接后,总线复位。
    (3)主机使用默认地址(地址O)读取设备描述符。
    (4)主机给设备分配一个地址,在以后的通信里设备就只对这个地址的信息作出应答。
    (5)主机从新的地址获取设备描述符。
    (6)主机读取配置描述符。
    (7)主机读取配置描述符集合,主机除了读取配置描述符之外,还要读取接口描述符及端点描述符。
    (8)主机设置设备的配置。
    在中断服务程序中首先判断是何种类型的中断,如果是Setup请求中断,则调用函数setup_handler()进行处理,函数的参数为设备接收到的Setup数据包的第3~第8 bit(Setup~Setup)。在setup_handler()函数中根据Setup数据包的内容跳转至相应的分支,对Setup请求进行响应。使用软件Bushound5.0对设备的枚举过程进行观察,捕获的部分数据如图4所示。

[!--empirenews.page--]
    Bushound5.0只捕获到了设备枚举过程中主机发出获取配置描述符请求及之后的数据,图中的数据是主机发出获取配置描述符请求到主机发出设置配置请求之间的数据。
    USB设备和主机之间的数据交换。当Netchip2272接收到主机发送的数据包之后,就会产生一个中断信号给Blackfin532,Blackfin532在中断服务程序中查询相应的寄存器得知接收到数据包之后,直接将接收到的数据包读到Blackfin532中。USB设备需要向主机发送数据时,先将需要发送的数据放到输入端点的Buffer中,当主机向相应的输入端点发送In Token时,Buffe中的数据包就返回给了主机,数据包发送成功后Netehip2272会产生一个中断信号给Blackfin532,在中断处理函数中将全局变量Tx_data_flag的相应位置1,数据包发送成功。
2.2 驱动程序
    驱动程序编写是复杂的,选用Jungo的WindowsDriver,在Windows Driver检测到枚举成功的设备之后,输入设备的厂商ID(VID)和产品ID(PID),即可生成一个inf文件,将设备的PID和VID与设备的驱动程序绑定在一起,当设备通过设备描述符将VID,PID传送给主机之后,主机就可以据此找到设备的驱动程序了。

3 实验结果及分析
    设备枚举成功之后,利用BusView观察到的设备的配置情况如图5所示。


    USB设备一共有6个端点,这里仅列出其中两个端点的描述符,其他的和这两个类似。BusView显示的设备配置情况和固件程序中对设备的配置情况完全一致,这表明设备的枚举过程是正确的。


    通过使USB设备循环的向主机发送数据来检验USB输入到主机方向的数据传输,利用Bushound5.0捕获的部分数据如图6所示。图中的数据显示USB设备循环发送的数据是00 01 02 03 04 05 06 07 08 09,在Windows Driver中对相应的管道进行监听,收到的数据如图7所示。实验结果显示数据传输完全正确。对于主机输出到USB设备方向的数据传输,进行了检验,数据传输也完全正确。这表明基于Blackfin532和Netc-hip2272的USB接口电路的方案是可行的。

4 结束语
    基于Blackfin532和Netchip2272的USB接口电路具有数据传输快速、可靠、接口电路简单、固件程序的可移植性强等优点,具有良好的实用价值和应用前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭