打印

USB开发速成-我最真实的经验!

[复制链接]
2214|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shilei40|  楼主 | 2008-10-28 09:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  今天给大家介绍一种我尝试过的自认为比较简便的开发USB接口的方式,这是我个人的亲身经历。发表在这里不是要显得自己多牛(事实上这里很多网友的水平都比我高)而是想介绍给那些迫于老板压力需要在短时间内开发出USB接口的工程师们。毕竟,好东西应该和大家分享:)

    前段时间接了一个项目,基于机顶盒做一个USB主控接口(平台是ST5105,操作系统为OS2.0.)。这是我第一次接触USB的开发,而且项目时间很紧,要求1个月之内实现U盘读写的基本功能。我先了解了一些USB的基本理论:比如什么是USB主/从,USB2.0和1.1协议的基本概念,USB驱动分为哪几部分等。接下来就开始芯片选型。我当时的要求很明确:就是要软件简单,开发工作量小。另外,原厂的支持应该要比较好,至少可以在电话中帮我解答疑难问题。最开始考虑的是CYPRESS811和 NXP1760. 匆忙搜了一下资料发现参考代码很复杂,调试起来工作量不小。这时候我没有匆忙地立即着手研发,而是继续不懈地在网络上搜索,并多方打听。我坚信“磨刀不误砍柴工”很快我发现了爱普生的72U16。从爱普生USB芯片中文网(WWW.EPSON.COM.CN/USB/)下载下来产品简介和SPEC.,发现这颗芯片以FIRMWARE的形式内嵌了USB底层驱动以及MASS STORAGE等类协议,并且自带MCU来负责这些FIRMWARE的执行。也就是说处理器这边不用再写USB协议和类驱动的程序了。当时觉得心跳都加快了 呵呵 有点怀疑介绍的真实性,毕竟这年头大忽悠太多了。于是打电话给爱普生的800,后来七转八转到了爱普生原厂FAE那里,确认了一些技术细节,OK,和介绍资料吻合。了解到处理器这边只需要一个CF驱动即可(72U16内部有一个CF驱动到USB驱动的转换),于是基本定下来了。当时选择72U16还有一个原因,接电话的FAE比较有耐心,解答也比较专业,而且在北京有OFFICE。这点我一直认为很重要。申请了两片样片,就开工了。这时候时间已经过去了半个多月。下面我把开发过程和调试心得贴出来,共享给大家。


一.硬件设计
首先是原理图的设计。72U16与MCU的接口有IDE和并行总线两种方式,据说如果按照IDE总线连接方式,传输速度会更快一些,但是可惜ST5105没有IDE总线,只好选择并行总线的方式了。
1)    与CPU的连接
地址线说明:
    U16内部寄存器是按16位映射的,所以如果MCU的地址总线是8位寻址的, 地址线连接时要按照CPU A[4]-A[1]对应U16 CA[3]-CA[0]的方式。
信号逻辑说明:
    U16以‘x’作为前缀的信号是负逻辑信号(低电平或下降沿有效)。
http://www.rdeasy.cn/store/
相关链接:http://www.rdeasy.cn/store

相关帖子

沙发
dragon_hn| | 2008-10-29 20:15 | 只看该作者

任何知识不存在速成

说速成的是广告而已.

使用特权

评论回复
板凳
wswh2o| | 2008-10-30 15:01 | 只看该作者

能速成的都不值钱

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

25

帖子

0

粉丝