USB时钟为什么是48MHz
在学习2440的USB配置时钟中,发现它的时钟需要设置成48MHz固定的,这个我就来兴趣了,为什么这里面USB的时钟一定要是48M呢?在网上找了众多文章,都是讲解如何配置2440的MPLL和UPLL,根据外部晶振来设置不同的参数,先配置UPLLCON,再配置MPLLCON,
但我需要的不是这个,是它背后的原因。于是,开始了找寻答案的旅程。
先还是从datasheet中找:
对UPLLCON的配置,都是采用固定值:
从下面来时钟配置来看:
UPLL实际产生固定96MHZ的频率,二分频给USB主机使用,一分频给Camera采样使用
从寄存器默认值设置来看:
从datasheet上面种种介绍来看,S3C2440内部的USB控制器模块时钟使用的频率固定为 48MHz。
从6410上面的USB Host时钟设置上来看,也是如此:
这里,问题就来了,为什么要设置成固定的48MHz,这个数据对于USB传输来说,有什么意义?
通过网上了解USB速度相关的知识:
USB 1.1
低速(low-speed) 传输速率 1.5Mbps
全速(full-speed) 传输速率 12Mbps
标准脉冲时钟为12MHz,总线脉冲时钟为1KHz,也就是说,每个1ms,USB主机控制器在USB线缆上产生一个时钟脉冲序列,这个为帧开始数据包(SOF)
USB 2.0 在USB 1.1 的基础上,向下兼容,并增加高速模式
USB 2.0
低速(low-speed) 传输速率 1.5Mbps
全速(full-speed) 传输速率 12Mbps
高速 (high-speed)传输速率 480Mbps
USB 3.0 在USB2.0的基础上,向下兼容,增加了超高速模式(super speed)
USB 3.0
低速(low-speed) 传输速率 1.5Mbps
全速(full-speed) 传输速率 12Mbps
高速 (high-speed)传输速率 480Mbps
超高速(Super Speed)传输速度4.8Gbps
上述速度均为理论传输最高数值,单位为Mbps,如需化为MB/S,需要除以8. 在实际使用中,需要兼容其他系统的速度,往往会打个8折。
上网翻来USB2.0规范,在 5.12.2 节 USB Clock Model 和7.1.17 Cable Attenuation l一节中,发现一点有用的东西,先摘录如下:
USB的时钟模型:
UBS的电缆衰减:
结合USB传输规定,线缆的最大长度不超过5米,USB级联不能超过5级。同时,在一个USB系统中,USB device 和USB Hub总数不能超过127个,所有的USB device都连接在USB Hub。一个USB HOST总是与一个USB Root Hub相连,USB Hub为每个端口提供 100mA电流供设备使用。
另外,这里也寻找了一些答案:
http://www.edaboard.com/thread91063.html
USB控制器接收部分的数字部分工作在60MHz,8位模式。当接收到高达480Mbps的数据时,为了从数据线中恢复时钟信号和数据信号,USB使用Delay-locked loop(DLL)来产生采样时钟,将采样的数据保存到弹性缓冲器中,弹性缓冲器再将数据以60MHz的时钟导出到数字部分。
最后在这里找到一些有用的回答:http://electronicdesign.com/boards/480-mbitss-signal-integrity-becomes-issue-usb-20-designs
最后总结一下:
USB总线时钟设置为48MHz,一部分是传输电缆本身的衰减因素,另一部分,为了兼容USB1.1的低速传输,还有的就是规范上的一些限制吧。
目前,就网上的资料就找到这么多,在找寻答案的同时,发现如下一些好文章,现在给出来:
这篇文章里面,介绍了USB Connector相关知识:
http://www.beyondlogic.org/usbnutshell/usb2.shtml
这篇文章总结了常用总线频率,很不错。
USB时钟为什么是48MHz的更多相关文章
- Cotex-M3内核STM32F10XX系列时钟及其配置方法
一.背景 最近做个项目,需要使用STM32,还是以前一样的观点,时钟就是MCU心脏,供血即时钟频率输出,想要弄明白一个MCU,时钟是一个非常好的切入点.言归正传,网上已经有太多大神详述过STM32的详 ...
- stm32f407以太网及USB OTG快速开发
stm32f407以太网及USB OTG快速开发 引言 想要快速完成网络协议栈和USB OTG功能,使用ST自家的工具STM32CubMx再好不过的了.如果你还不会使用,别着急下面我会一步一步的用图片 ...
- c8051f320学习,单片机不外乎时钟、IO、串口、USB等外设用法
时钟 IO(输入.输出,如何配置) IO 数字和模拟资源可以通过25个I/O 引脚(C805 1F3 2 0 ),每个端口引脚都可以被定义为 通用I/O(GPIO)或 0 模拟输入 所有端口I ...
- [转] STM32各种时钟的区别
[原创]:http://m.oschina.net/blog/129357 我在原创的基础又从另一位博主处引用了一些内容. 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是 ...
- STM32时钟理解
转载自 http://blog.sina.com.cn/s/blog_6ebd49350100q6xw.html STM32时钟理解 一.硬件上的连接问题 如果使用内部RC振荡器而不使用外部晶振,请按 ...
- Cotex-M3内核LPC17xx系列时钟及其配置方法
一.背景: 最近正在接手一个项目,核心芯片既是LPC17XX系列MCU,内核为ARM的Cotex-M3内核. 想要玩转一个MCU,就一定得搞定其时钟! 时钟对MCU而言,就好比人类的心脏.由其给AHB ...
- stm32时钟分析
转载自http://blog.chinaunix.net/uid-21658993-id-3129667.html 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. 其实是 ...
- (六)STM32的时钟系统
在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL (1) HSI是高速内部时钟,RC振荡器,频率为8MHz: (2) HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外 ...
- linux 时钟源初步分析linux kernel 时钟框架详细介绍
初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB ...
随机推荐
- h5-4 canvas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 进程产生的三种方式:fork、system和exec
1.fork()方式 fork()函数以父进程为蓝本复制一个进程,其ID号与父进程ID号不同.在Linux环境下,fork()是以写复制实现的,只有内存等与父进程不同,其他与父进程共享,只有在父进程或 ...
- (转)ASP.NET Identity登录原理 - Claims-based认证和OWIN
在Membership系列的最后一篇引入了ASP.NET Identity,看到大家对它还是挺感兴趣的,于是来一篇详解登录原理的文章.本文会涉及到Claims-based(基于声明)的认证,我们会详 ...
- Web安全XSS
Web安全XSS 简单的反射型XSS钓鱼演示 </form> <script> function hack(){ XSSImage=new Image; XSSImage.sr ...
- Diagram of Spring 3.0 module dependencies--转载
原文地址:http://www.ogrigas.eu/spring/2009/12/diagram-of-spring-3-0-module-dependencies As Spring 3.0.0. ...
- 深入分析 Linux 内核链表--转
引用地址:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 一. 链表数据结构简介 链表是一种常用的组织有序数据 ...
- 二进制序列化框架easypack发布啦!
简介 easypack是基于boost.serialization的二进制序列化框架,使用极其方便. Examples 基本类型 int age = 20; std::string name = &q ...
- Mosaic HDU 4819 二维线段树入门题
Mosaic Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/102400 K (Java/Others)Total S ...
- PHP面向对象(一)
一.类和对象 1.什么是类:类(class)是对一类事物的描述,是抽象.概念上的定义.是具有某些相同属性和功能行为的一些对象集合. 在面向对象的编程中,类是应该有一个类名并包括属性书名和功能说明两个主 ...
- 【Linux/Ubuntu学习 13】ubuntu上好用的pdf软件okular
step 1: 安装 sudo apt-get install okular step 2: 注释 按 F6 快捷方式打开注释功能,你会发现太神奇了. step 3: 中文配置 如果安装完成后中文显示 ...