原创 USB学习一:USB硬件电路解析

2008-7-14 10:47 7791 11 12 分类: 通信

USB学习一:USB硬件电路解析<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


       题记:其实早就想学习USB了,但是开始的时候由于基础差点,看到USB那么多繁复的上电复位啊枚举啊还有那么多的包啊,头很大没有一点思路。所以当时只是看看资料翻翻周立功的《PDIUSBD12 USB固件编程与驱动开发》做个了解,并没有深入。但是正如圈圈的USB小组里说的,现在的电子工程师不懂USB可不行,所以决心重新着手USB的进阶了。其实我以前的51实验板和MSP430的板子上面都有USB的这一块电路,只可惜实验程序写得不够针对,所以看起来很费劲,也提不起我的兴趣。现在有圈圈的板子,我想那么多有针对性并且完整的程序在等着,岂有学不会之理,呵呵,先感谢下EDN的助学小组!


       我的第一篇USB日志从硬件下手,至于基本的一些概念当然是要先了解的,但是我以为学习应该以实践为主,以练带学,从中不断积累。所以,在了解了一些基本的USB的概念和PDIUSBD12芯片以后,应该着手实践了。其实如果你不是做USB的芯片开发,对于那一大堆理论也不是必须完全领会的,我也是带着似懂非懂的状态来操控PDIUSBD12的,对于它的一些寄存器的控制是重点,掌握了这个基本算是入了门,至于其它的一些时序上的读写操作什么的我想对于有基础的人不是难点。


       先来看一下PDIUSBD12的引脚配置和引脚分配:


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />



点击看大图


点击看大图


点击看大图


       圈圈的原理图我就不贴了(不好截图,有点乱,呵呵~~就放个下载链接吧pdf)。D0-D7口接单片机的P0口,因为实验中不使用DMA传输,所以与DMA传输有关的DMREQDMACK_NEOT_N几个引脚被悬空或者接地了。CLKOUTVOUT3.3SUSPEND三个引脚由于不使用就悬空或者接地了。GL_N接一个电阻和LED指示灯用于指示通信状态,INT_N接单片机的一个中断口,D+D-两个差分信号是接标准USB接口的,XTAL1XTAL2之间接16MHz的晶振,另外VCCGND自不必说。最后来看下几个可以有不同接法的引脚:ALERD_NWR_NCS_N,其实这几个引脚的不同接法是普遍性的,也就是说你可以把这几个脚接成单片机时序控制数据地址的读写操作,也可以把PDIUSBD12的寄存器接成单片机的外部RAM,这样对寄存器的寻址就和RAM一样了,可以免去复杂的时序操作。而我们看到圈圈的电路里采用了前者,也就是用时序来读写D12的寄存器,因此它的电路接法是:把ALE接地,CS_N接地(片选有效),WR_NRD_N接单片机的专用读写口P3.6P3.7(采用时序读写操作这两个口其实不一定非得接这两个口,接其它任何的IO口也行),所以在程序里面我们会看到有专门的D12寄存器读写子程序。


       我们再来讨论一下后者的接法实现,如图:



点击看大图


       这种接法是把D12ALE脚与单片机的ALE脚相接,这是专用的外部RAM扩展,详细的说明(包括RAM扩展接法的寻址和读写)在CAN学习笔记的硬件部分有介绍了。


       以上两种寄存器读写方式都是很有代表性的,无所谓谁好谁坏,根据个人习惯吧。其实在RAM寻址空间允许的情况下采用后者还是比较方便的。但是圈圈采用了前者,那么在以后的程序中都以此为基础进行编程。


       上面分析了D12的各个管脚的分配情况,有些脚还必须接一定的电阻,如差分信号D+D-就必须在接1K的电阻后接VCC或者GNDUSB标准接口的四个信号口,中间两个就是接差分信号的,而边上两个就是电源信号(从计算机接出的+5V,有时大家在设计时往往利用这个5V做系统电源)。


       硬件电路分析到这里大概能对D12有一个初步的掌握了,下一步就应该去熟悉一下D12内部的一些寄存器以及这些寄存器在不同的配置状态下都能实现什么样工作。


 


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1602598 2012-6-15 13:16

嗯,不错

用户553565 2010-8-26 10:51

有些脚还必须接一定的电阻,如差分信号D+和D-就必须在接1K的电阻后接VCC或者GND。 与图不同。。

用户288936 2010-8-18 22:26

状态机我觉得还是自己写比较好,stateCAD生成的HDL代码可读性特别差!而且状态机写起来比较简单,只要你时序搞的很清楚!另外我觉得Matlab里面的stateflow也是一个非常好的生成FSM的好工具!有兴趣可以研究下的!

用户1407990 2010-8-9 11:35

我装了这个软件,但不知道如何使用,RIPLE可以指点一下吗

ilove314_323192455 2010-8-5 12:48

谢谢riple,可以尝试一下

ash_riple_768180695 2010-8-5 11:45

写状态机,建议特权同学使用stateCAD。由状态图自动生成优化的HDL代码,让工程师可以把精力集中在算法设计上。
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条