新闻中心

EEPW首页>嵌入式系统>设计应用> 基于PDIUSBDl2芯片的USB接口设计

基于PDIUSBDl2芯片的USB接口设计

作者: 时间:2012-03-09 来源:网络 收藏

2 硬件电路设计

构成的电路如图2所示。的8位并行数据接人的PO口,地址线A15(P2.7)作为的片选,地址线A14(P2.6)作为PDIUSBDl2的命令或数据的选择线。在片选信号有效的前提下(P2.7=0),当P2.6=1时,给PDIUSBDl2发命令;当P2.6=0时,给PDIUSBDl2写数据或从PDIUSBDl2的Buffer中读数据;因此,地址0x7FFF发命令,地址0x3FFF读写数据。PDIUSBDl2与的数据交换采用中断方式(外部中断0)。他的一个输出(GL_N)接LED对其状态进行监控,这个LED在USB被连接时会发光,在进行数据传输时会闪烁,LED常亮或一直不亮说明有问题。


USB设备通过4线电缆接入主机或USB Hub,这4线分别是:Vcc(总线电源),GND(地线),D+和D一(数据线)。主机通过D+和D一上的电压变化来检测到设备的状态,当没有设备连接到USB端口时,D+和D一线上的下拉电阻就将2条数据线拉到近地,当检测到任一条数据线电压接近Vcc,而其他保持近地电压,那么主机就知道该设备已经准备好了。

主机通过检测是哪一条数据线电压变高来确定设备是全速或低速,当D+数据线高时,就为全速;当D一数据线低时,就为低速。PDIUSBBDl2的全速模式通过软连接(SoftConnectTM)在D十上接1个1.5k12的上拉电阻。

3 固件设计

当设备连接到主机以后,主机通过给PDIUSBDl2的端点0发送包含标准USB请求的控制传输(即Setup包),PDIUSBDl2产生一个中断给MCU(INT0),MCU通过读PDIUSBDl2的中断寄存器和最后一次传输状态寄存器来对每一个请求作出响应,并通过PDIUSBDl2的端点0回送请求信息。主机从返回的信息中读取描述数据,分配和载人一个设备驱动程序并对设备进行配置。设备被配置好后,就可以使用配置中支持的端点来传输数据。这一部分工作由MCU来控制完成,并且该控制程序需要固化在ADuC812的内部ROM中,称之为固件(firmware)。

PDIUSBDl2的端点0有3个状态,其变化关系如图3所示,固件程序必须利用这3种状态关系来正确地处理控制传输。把主机通过PDIUSBDl2的端点0给设备发USB请求设为OUTs,通过端点0接收数据设为INs。MCU处理来自主机的Setup包(Control Out)的软件流程图如图4所示,MCU通过PDIUSBDl2的控制端点。给主机发送描述符数据(Control In)的软件流程图如图5所示。PDIUSBDl2的描述符数据必须严格遵循USBl.1协议第九章(Chap9)的规定,描述符数据包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符。

完成PDIUSBDl2的固件(Firmware)程序后,在USB设备驱动程序的开发中笔者使用了Jungo公司的WinDriver 5.03,应用程序的开发使用的是VC 6.0。

4 结 语
适合于高速数据采集系统与主机进行数据通信,同时,他也为便携式系统提供了方便、快捷和可靠的接口解决方案。目前,USB已经广泛地应用在PC的外设上,特别是USB 2.0协议推出后,数据传输能力和速度大大提高,使得USB数码相机、数码摄像机能在短时间内完成大容量的图像传输。此外,USB的突出特点使得他必将在更广阔的领域得到应用。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭