当前位置:首页 > 模拟 > 模拟
[导读]基于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分别是它的电源线和地线。


    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所示。


    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接口电路具有数据传输快速、可靠、接口电路简单、固件程序的可移植性强等优点,具有良好的实用价值和应用前景。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭