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 ...
随机推荐
- careercup-高等难度 18.7
18.7 给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成. 解法: 原题 给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词.例如,字段为{hell ...
- 微信js获得签名signature
服务器端: 1 获取微信js accessToken 备注:access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token. 开发者需要进行妥善保存.access_ ...
- iOS tabbar 控制器基本使用
RootViewController *rootVC=[[RootViewController alloc] init] SignInViewController *signVC = [[SignIn ...
- How to solve the SVDI SN Number Display Problem
Yesterday we have learn how to find the SVDI Serial Number, today one of customer from UK look our a ...
- MVC框架 - 捆绑
捆绑和缩小是两个性能改进提高应用程序在请求负载时的技术.目前大多数的主流浏览器限制每个主机同时连接到六个数量.这意味着,在一个时间,所有的其他请求将被浏览器排队. 启用捆绑和缩小 为使捆绑和缩小MVC ...
- TCP/IP协议原理与应用笔记26:网际协议(IP)之 分片(Fragmentation)
1. 分片(Fragmentation) 适应在不同的MTU的物理网上传输. 备注: MTU:最大传输单元,Maximum Transmission Unit,它是指一种通信协议的某一层上面所能通过的 ...
- DataGridView显示行号的几种方法来自http://www.soaspx.com/dotnet/csharp/csharp_20100204_2740.html
方法一: 网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号: private void dataGridView1_RowPostPai ...
- Java Script基础(三) 函数
一.JavaScript中的函数 在JavaScript中,函数类似于Java中的方法,是执行特定功能的代码块,可以重复调用.JavaScript中的函数分为两种,一种是系统函数,另一种是自定义函数. ...
- #316 div.2
主要记录下被坑的B.果然大晚上脑子就是不知道在干嘛,明明都测到 “1 1” 这个样例错了都没发现直接给放过去了,白白让人hack爽了... 题意就是给你一个数m,让你从1~n个数中选一个作a,使1~n ...
- ankhSVN安装后,VS2010使用
Tool->option->Source control->plug-in selection,选择ankhSVN AnkhSvn-2.5.12478.zip