IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 嵌入式 - 晶振频率的来源和UART波特率的选择 -> 正文阅读

[嵌入式]嵌入式 - 晶振频率的来源和UART波特率的选择

电路板上经常要用到32.768KHz的晶振,表示晶振经过32768K个周期就是1s,16进制就是0x8000,是2的n次方形式,2^15。

这颗料已经出现了20年,非常普遍,也非常便宜,在各种电路中使用。

频率越低,消耗电流越低,这样手表等靠电池供电的产品就更省电。同时要兼顾频率越低误差越大的因素,还有生产工艺,频率越低的话,可能物料体积越大。

而我们还有经常使用的晶振物料,比如7.3728MHz。这个是因为经常使用的通信波特率的原因。

7.3728MHz/64 = 115200

而这个115200,就是我们平时使用串行通讯,比如UART等总线传输数据的频率。

这个波特率最早来自电报(teletypes),开始波特率是75,然后逐渐增加,每次翻倍,有时还会是1.5倍,比如28800,直到达到电话线的调制解调器modem已经无法支持的速度。所以后来的晶振也会根据这些波特率的使用,所沿用同样的标准。

在波特码(baudot code)中,通信标准是一个起始位,五个数据位和一个半停止位。后来5位的波特代码被搁置,一个新的8位码被开发出来,这就是ASCII的来源。

在Windows中使用的RealTerm中,一个免费的Windows下的终端程序,里面列出的UART的波特率如下:110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600。110的波特率使用的是8-level的电报类型比如ASR-33,150的波特率是75的2倍,常常和60波特率一起使用的是5-level的TTY。最初电话线调制解调器的标准是300bps。同时出现了每秒传送30个字符的终端。但bps和波特率是不同的。比如1200bps的调制解调器实际上使用的是600的波特率,4800bps调制解调器是哦那个的是1600的波特率。56K的猫用的是8000的波特率。这种差异是因为除了使用每秒一定数量的音调脉冲(tone pulses)外,还使用相移键控(phase-shift keying)和其他方法从相同的波特率中提取额外的带宽,以获得越来越高的bps。

正如你所看到的,UART速率的列表基本上从75开始,不断翻倍(跳过600),直到达到38400,然后乘以1.5,得到57600。而56K bps是模拟电话线的极限。更高的速率115200以上(再次从57600开始翻倍)用于硬线连接。14400和28800 bps是在当时调制解调器速度不能翻倍的情况下作为1.5 x 9600和1.5 x 19200推出的,但现在很少使用。

IBM PC的8250 UART,这个设备现在还是使用广泛,在Linux kernel中就能看到,路径是drivers\tty\serial\8250。而最开始,这个就是用的1.8432MHz的晶振时钟,然后再分频产生内部时钟,然后16个周期处理一个bit,如果不分频就是1.8432MHz/16 = 115200,如果分频1/2,就是57600波特率。这个晶振频率就是上面7.3728的1/4。

长期以来,使用115,200或其因子进行通信是很常见的,比如除以3就是38,400,还可以用38400的2次方,或者是除以2的57,600。大多数PC硬件支持这些速率。有些PC硬件可以支持230,400或460,800。请注意,许多嵌入式控制器喜欢的数据速率是其自身时钟速度的因子,一些USB-to-serial芯片可以支持3,000,000bps的任何整数分频,因此通过USB芯片连接到PC就会使用像1,000,000bps或1,500,000bps这样的速度。

不过现在UART通讯中是可以使用更高的波特率的,比如FTDI的芯片就支持3M的波特率,这个也和设备自身的时钟周期有关,以及另外一边的终端要支持。

参考:

Why 32.768KHz? | Microchip

What standard UART rates are there? - Electrical Engineering Stack Exchange

FTDI Knowledgebase

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:44:29  更:2022-09-21 00:44:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 18:10:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计