usb芯片PDIUSBD12简介

现在的USB生产厂商很多,几乎所有的硬件厂商都有USB 的产品。USB控制器一般有两种类型:一种是MCU 集成在芯片里面的如Intel 的
8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及MOTOLORA、National Semiconductors 等公司的产品。另一种就是纯粹的USB接口芯片仅处理USB 通信如PHILIPS 的PDIUSBD11(I2C 接口)、PDIUSBP11A、PDIUSBD12(并行接口)、National Semiconductor的USBN9602、USBN9603、USBN9604等、前一种由于开发时需要单独的开发系统,因此开发成本较高;而后一种只是一个芯片与MCU接

PDIUSBD12完全符合USB1.1规范

以上是典型的51单片机和PDIUSBD12的相连图

上图详解

ALE始终接低电平,说明采用单独地址和数据总线配置

A0脚接80C51的任何I/O引脚,控制是命令还是数据输入到PDIUSBD12,使用独立的地址总线A0(I/O口模拟),没有使用地址数据总线复用,则ALE信号则不需要使用,若不用A0,而地址数据总线复用,则需要使用ALE信号

 

80C51的P0 口直接与PDIUSBD12 的数据总线相连接,CLKOUT时钟输出为80C51提供时钟输入,但是在实际相连的时候并没有这样连接

,悬空,单片机外接晶振

 

对于单片机控制程序,目前没有任何厂商提供自动生成固件firmware 的工具,因此所有程序都要由自己手工编制,即只卖芯片,不提供固件

USB的单片机程序包括三部分:

1.初始化单片机和外围电路(包括USB芯片)

2、主循环部分,用来检测

3.中断服务程序,其任务是对时间敏感的,必须马上执行

根据USB 协议,任何传输都是由主机host 开始的,这样,单片机作它的前台工作,等待中断,主机首先要发令牌包给USB 设备(这里是PDIUSBD12),PDIUSBD12 接收到令牌包后就给单片机发中断,单片机进入中断服务程序,首先读PDIUSBD12 的中断寄存器,判断USB 令牌包的类型,然后执行相应的操作。

注意:因此,USB单片机程序主要就是中断服务程序的编写,在USB单片机程序中要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端口0的编程。
单片机与PDIUSBD12 的通信主要是靠单片机给PDIUSBD12发命令和数据来实现的。PDIUSBD12的命令字分为三种:初始化命令字、数据流命令字和通用命令字。PDIUSBD12给出了各种命令的代码和地址。单片机先给PDIUSBD12 的命令地址发命令,根据不同命令的要求再发送或读出不同的数据。因此可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可

USB 初始化过程为

  • Set Address Enable;
  • Set Endpoint Enable(此时LED亮);
  • Disconnect;
  • delay (1~2 s);
  • Connect(即用43h 参数调用Set Mode,此时LED灭);
  • Read Interrupt Register。

 

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值