引言
当今许多实时监测系统与通信设备领域中,经常需要进行远距离的数据传送。为此,如何实现高速、可靠及低成本的数据传输是作为前级机或发送级的8051单片机迫切需要解决的新技术。据此,我们采用由Dallas SEMIconductor公司的芯片DSl075--Econ oscillator(高效型振荡器)为8051系列的DS87C520高速型单片机提供时钟的配置设计方案,实现单片机串行通信的高速波特率。
Econ oscillator(高效型振荡器)含有一个内部振荡器,用以产生一个基本频率;还内置了一个分频链,可以将基本频率降低到需要的速度。Econ oscillator 的每种型号提供四种基本频率(60MHz、66.67MHz、80MHz、100MHz),可调节的分频系数最高可达2052。Econ oscillator能根据系统需要配置为任何类型的钟控逻辑,包括单片机(微处理器)、FPGA、CPLD电路等。
8051单片机以及RS-232串行通信
选用时钟时,应认真考虑两个因素,即时钟频率和工作期限内的时钟精度。在8051单片机系统中,时钟频率取决于所采用的串行通信RS-232。例如,考虑一个采用12MHz时钟(早期8051的最高时钟频率)的异步模式1串行通信。表l列出了建立标准波特率所需的定时器1自动重新装载值。
表l中实际波特率是按照以下计算公式得出的:波特率所需的定时器I自动重新装载值。
其中:BaudRate为波特率;SMOD为波特率倍增位;fosc为振荡频率;THl为定时器l自动重新装载值。
表1中数值基于以下定时器 1状态:
·每12个时钟周期定时器增l(单片机DS87C520的定时器可以每4个或12个时钟周期增1)。
·自动重装载模式。
·禁止波特率倍增(SMOD=0)。
表l为早期的单片机采用晶体时的波特率和波特率误差。
一般情况下的RS-232串行通信.一旦波特率误差超出3%,尽管数据传送中有起始位或停止位进行同步,就有可能造成通信错误。3%的容许误差使12MHz晶振时的最高通信速率限制在2400波特,这在90年代初还不算坏,但对今天的标准来讲是一个不能忽略的大问题丁。
而现在适应于8051单片机串行通信的晶体:11.059MHz或22.118MHz,已开发出。单片机采用这种晶体后波特率有很大改善,见表2所示。数据传送率可达57.6kps(使DS87C520单片机波特率倍增,当SMOD=1后可达115.2kps),这样高的通信速率—波特率对于当前大多数单片机(或微处理器)系统已是很可观了。随着晶体11.059MHz或22.118MHz产品逐步市场化,使单片机应用糸统大为拓宽。
定时器1自动重装载值
Fosc=11.059MHz时的波特率
Fosc=22.118MHz时的波特率
255
28,799.5
57598.9
254
14399.7
28799.5
253
9599.8
19199.6
250
4799.91
9599.83
244
2399.95
4799.91
232
1199.98
2399.95
208
599.98
119.98
160
299.99
599.99
64
149.99
299.99
注:波特率与规定速率的偏差3%对于时钟精度提出了要求,即便采用专为RS-232串行通信优选的时钟频率,如果时钟频率变化超出3%,仍然会影响到通信的稳定.
关键字:高效型振荡器 单片机 高速串行通信 时钟配置
引用地址:
用高效型振荡器为单片机实现高速串行通信的时钟配置
推荐阅读最新更新时间:2024-03-16 15:50
PIC单片机EUSART串行通信接口的应用方法解析
PIC单片机的EUSART是一种串行通信接口,我们可以利用他让不同设备之间传输数据,我们来讲讲我们最常用的串行异步接收和发送。 管脚 串行异步接收和发送。如果只要两个引脚,一个是接收RX一个是发送TX。 数据格式 我们先来讲讲TX是如何发送出数据的,数据格式具体是什么样的。 如果我们要向其他设备发送个大写字母A。将是什么样的呢。“A”这个字母对应的ASCII码是65,对应的八位二进制数则是01000100。TX就将对应的二进制码发送出去。 发送时用高电平来代表1,用低电平代表0.那不发送数据的时候管脚就一直为高电平。 启动位和停止位 怎么区分现在是在发送数据还是在常态呢?所以在每次发送一个字节的数据之前TX脚
[单片机]
使用Keil C进行51单片机延时程序编写的几点心得
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要: 51 单片机的指令周期是晶振频率的1/12,也就是1us一个周期。mov r0, #09h需要2个极其周期,djnz也需要2个极其周期。那么存在r
[单片机]
Hi-Tech PICC 8bit MCU 的学习笔记 -- 环境篇
/*---------------------------------------------------------*/ Hi-Tech PICC 8bit MCU 的学习笔记 ---------- 环境篇 /*---------------------------------------------------------*/ 第一节 环境 1.概况 PIC 单片机的 C 语言编译器众多,常见的有 Hitech、CCS、IAR、Bytecraft 等公司,其中最常用的是Hitech 公司的PICC 编译器。在此列出几个主要的针对 PIC 单片机的 C 编译器相关连接网址,供参考: Hitech-PIC
[单片机]
基于MSP430单片机和微型输注仪器实现电机驱动装置的设计
1、引言 步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速起动和停止的特点。其机械位移和转速分别与输入脉冲的数量和脉冲频率成正比。步进电机在工业生产及人们生活的方方面面的应用十分广泛,而单片机控制步进电机具有功能灵活多样,脉冲输出准确,实时性强的特点,且系统成本较低。 现有的小型步进电机驱动电路,基本采用OC门驱动和三极管推拉式驱动。OC门电路驱动电机的缺点是驱动电流不够,响应速度慢,而且OC门最好工作在+5V电压环境下,在低电压环境下,工作不稳定。三极管推拉式驱动步进电机的缺点是NPN和PNP三极管的选择上。两个三极管的PN结开关点要尽量相同,否则三极管会被击穿,产生不安全隐患。 本文针对传统小型
[单片机]
单片机学习笔记————单片机学习方法和步骤
第一步:基础理论知识学习 基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。否则,你的单片机学习之路不仅会很艰难和漫长,还可能半途而废。 笔者始终认为,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。有些同学觉得单片机很难,越学越复杂,最后学不下去了。有的同学看书时似乎明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困惑了。 单片机属于数字电路,其概念、术语、硬件结构和原理都源自
[单片机]
基于HT46R73D-3设计的8位OTP MCU应用方案
基于HT46R73D-3设计的8位OTP MCU应用方案 HT46R73D-3是盛群半导体(Holtek)公司推出的双斜率ADC 8位OTP MCU , 包含有4KB OTP 程序内存、128 B数据存储器、2个16位计时器及1个8位计时器,另具备Buzzer硬件输出功能。配有丰富及多样化的外围功能,特别适用于电桥式传感器的量测系统,可用来量测压力、温度、湿度变化的产品,如:体重计、压力计、温度计、湿度计、胎压计等。本文介绍了HT46R73D-3主要特性, 方框图, 桥接传感器输入的双斜率ADC连接图和典型应用电路. The HT46R73D-3 is an 8-bit high performance, RISC arc
[单片机]
基于小型MCU的LED照明的色彩控制
在大趋势下, LED 用于通用照明指日可待。LED在通用照明中优势很多,如寿命更长以及效率更高。然而, LED技术还面临着一些挑战。其中一个挑战就是如何产生高品质的白光。白光LED的构成包含了蓝光LED和能将光输出移至光谱的其他波段的一种荧光粉。许多白光LED都无法产生高显色指数(Color Rendering Index,CRI),该参数用于衡量光源真实重现色彩的能力。 通过混合两种或两种以上颜色的LED光,可以获得品质更高的白光系统。在这些多色系统中,每种色源的光输出会随时间和温度而漂移。光传感器和小型单片机(MCU)可用于维持特定颜色和相关色温(CorrELated Color Temperature,CCT)。在本
[电源管理]
自己动手用Cortex-M3与ADXL345做个重力感应遥控器
已经是很久没有写文章了,因为没有时间,人家都说大四不考研,天天像过年,可我依旧没能有那份闲暇的时间。 现在几乎人人的手里都是一款安卓智能机这是我非常羡慕的,而我手里只有上学期用380元买的一台二手诺基亚N96,虽然也称得上智能机但是远远没有如今安卓智能的优秀,其中一个功能就是通过重力感应玩赛车游戏,我想这个大家都不陌生,只要把手机歪一歪斜一斜就可以控制赛车方向了,这个功能令桥哥好生羡慕嫉妒恨,可惜自己的手机不能玩,上周突来灵感何不自己做一个玩玩。正好上学期开始着手给侄子做的四轴飞行器的基板基本调试完成,核心的芯片就是一块M3微控器,一块三轴加速度传感器ADXL345,一块三轴数字陀螺仪。而要做一个简单的重力感应遥控器用M3结合A
[电源管理]