日志档案

发表于 2008-7-7 8:56:09

1

标签: 无标签

usb_d12固件程序共享

    到目前为止,接触pdiusbd12程序已经接近5年多了,差不多6年光景了。前一段时间搞了一个usb开发的小项目,又将usb的固件等程序整理了一遍,该程序的源码如下:
点击下载(欢迎大家下载使用!!!!!!!)

       

        pdiusbd12固件程序主要分成如下几部分:

1、  应用层。该层主要在main.c文件中实现,实现usb设备固件程序的具体功能。

2、  协议处理层。该层又可以分为标准协议层、自定义协议层以及usb事务处理层。主要在usb_protocol.cvendor_request.cd12_isr.c文件中实现。

a)         标准协议层。该层主要在usb_protocol.c文件中实现,提供usb请求处理的方法。该层与具体的硬件和应用都没有任何关系,因此,该层可以很容易的移植到其它处理器上,基本无需改动。固件程序要使用协议层时,在应用层软件中首先需要注册协议层处理函数。注册函数的模版为struct usb_total_descriptor_s

b)        自定义协议层。该层主要在vendor_request.c文件中实现,封装了用户自定义的请求处理方法。

c)        事务处理层。该层主要实现了控制传输的相关机制,提供了中断传输、批量传输的事务接口。该层主要在d12_isr.c文件中实现。

3、  硬件抽象层。该层与具体的硬件相关,主要在sys_hal.c文件实现,封装了硬件系统的初始化等函数。

4、  D12操作层。该层为Pdiusbd12的驱动程序,实现pdiusbd12控制器的各种操作。

 

        usb_d12的固件程序代码量不大,在1000行以内,控制传输应该是逻辑最复杂的部分了,其采用一个状态及进行实现。该状态机的状态流图如下所示:

        usb_d12固件程序已经实际的硬件平台上得到了验证。


系统分类: 嵌入式   |   用户分类: 嵌入式系统设计   |   来源: 原创   |   【推荐给朋友】

    阅读(323)    回复(1)  

投一票您将和博主都有获奖机会!

  • tiloog

    2008-7-7 9:14:07

    有关usb固件开发、驱动开发方面的东东可以与我一起讨论哦~~