原创 usb_d12固件程序共享

2008-7-7 08:56 4924 9 12 分类: MCU/ 嵌入式
    到目前为止,接触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行以内,控制传输应该是逻辑最复杂的部分了,其采用一个状态及进行实现。该状态机的状态流图如下所示:
20037125-69a1-4da8-98eb-8dd05c571da9.JPG


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







文章评论3条评论)

登录后参与讨论

用户311886 2011-5-26 09:54

哥啊。。。今天终于看到你的USB固件程序了。。这段时间我导师要我在一块LPC2214的板上面加一个D12的USB口。。可是调了老半天固件程序都不通。。不知道您有没有做过这个MCU的D12固件程序呢?如果有的话,可不可以发一份给我啊,谢谢了!我的邮箱是:kingbovey@foxmail.com

用户52478 2008-11-21 23:35

谢谢正想学习了

用户411565 2008-7-7 09:14

有关usb固件开发、驱动开发方面的东东可以与我一起讨论哦~~
相关推荐阅读
用户411565 2012-12-18 12:58
我的存储之道博客
大家好,最近一直在做存储方面的工作,所以我在51CTO上专门开辟了一个空间讨论存储相关的问题,喜欢存储的朋友可以可以访问我的存储博客: 存储之道 (http://alanwu.blog.51cto...
用户411565 2012-04-06 21:39
SAS Cable可以有多长?
SAS接口是高端硬盘的主流接口,是存储系统的理想选择。我们知道高速信号的传输距离和传输线相关的,那么SAS作为外部通信接口,其Cable线具体可以有多长呢? 我在网上找到上图所示的眼图测...
用户411565 2012-04-06 21:38
对TRIM SCSI命令的一些分析
前一段时间做了一些对SSD方面进行优化的工作,SSD最大的问题在于长时间使用之后,IO性能会急剧下降。其主要问题在于为了防止“写放大”问题的产生,SSD的firmware采用了类似于log方式的算...
用户411565 2012-04-06 21:35
惊叹!我们的跨洋网络
  每次地质自然灾害的时候,总会伴随着网络的问题,这是由于我们的越洋光纤网络出了故障,受到自然力的破坏而导致断裂。越洋光纤,听起来的确是件非常不可思议的事情,工程量非常的巨大,但正是如此伟大的...
用户411565 2012-04-06 21:33
科学仪器网络模型
科学仪器概述     科学仪器发展趋势 科学是从测量开始的,科学仪器是信息技术的源头,是信息产业的重要组成部分,是现代科学与工业的基石。科学仪器产业的发展关系到国家科学研究实力、生...
用户411565 2012-04-06 21:16
谈谈RAID产品与技术
说起RAID,学计算机的同学马上会说RAID技术简单啊,就是将数据条带化,然后计算一些冗余数据,一并写入磁盘。通过RAID技术一方面提高系统的IO性能;另一方面提高系统的可靠性。单纯从RAID的原...
我要评论
3
9
关闭 站长推荐上一条 /2 下一条