STC单片机波特率自适应方法

上传人:mar****e6 文档编号:169597352 上传时间:2022-11-16 格式:DOCX 页数:8 大小:20.04KB
收藏 版权申诉 举报 下载
STC单片机波特率自适应方法_第1页
第1页 / 共8页
STC单片机波特率自适应方法_第2页
第2页 / 共8页
STC单片机波特率自适应方法_第3页
第3页 / 共8页
资源描述:

《STC单片机波特率自适应方法》由会员分享,可在线阅读,更多相关《STC单片机波特率自适应方法(8页珍藏版)》请在装配图网上搜索。

1、STC 单片机波特率自适应方法作者:赵培宇 来源:现代电子技术2013年第 23期摘 要: 为了缩小电路体积、降低硬件成本,同时又保证串口稳定可靠通信,采用的一种 波特率自适应方法,该方法充分利用STC单片机运行速度快、拥有片内振荡器、片内资源丰 富的特点,在串行通信程序中,利用单片机I/O 口和定时器,对主机发送的固定字符进行测 量、计算,得到合适的波特率常数,从而实现波特率自适应。给出了设计原理、实现方法、误 差分析、流程图和部分程序,并通过应用实例验证该方法切实可行。关键词:STC单片机;串口通信;波特率选择;自适应方法中图分类号:TN911- 34; TP391文献标识码:A文章编号:

2、1004- 373X(2013)23- 0041 - 03Baud rate adaptive method for STC single- chip microcomputerZHAO Pei- yu(School of Electromechanical and Architectural Engineering, Jianghan University, Wuhan 430056, China)Abstract : To reduce circuit volume and hardware cost, and at the same time, guarantee the stable

3、and reliable serial port communication, a baud rate adaptive method is proposed. This method makes full use of STC microcontrollers characteristics of high- speed running, on- chip oscillator, rich on- chip resources. In the serial communication program, the microcontrollers I/O port and timer are u

4、tilized to detect and calculate the fixed character transmitted by host for getting the right baud rate constant, so as to realize the baud rate self- adaption. The design principle and realization method, error analysis, flow chart and part of the program are also given in this paper. The feasibili

5、ty of the method was verified by a true example.Keywords: STC single- chip microcomputer; serial communication; baud rate selection; self- adaptive method0引言串口 RS 232是工业控制、仪器仪表、计算机外设常用的一种通信协议。串口通信的波特 率一般都是选取标准系列值,并要求通信双方严格遵循相同的波特率,实际应用中,一台设备 往往要与多种其他设备联络,为适应各种不同设备的通信速度,就要求该设备能适应不同的波 特率,实现这种要求的常见方法有两

6、种,一是增加波特率选择开关,二是设计能自动适应各种 常见通信速度的串口。第一种方法增加了硬件,同时针对不同对象需要重新设置开关,在不清 楚对方波特率的情况下还无法使用。第二种方法采用软硬件结合,通过检测、计算,自动选择 正确的波特率,实际使用极其方便。自适应波特率串口的实现方法通常有以下几种:(1)协议约定通信开始时主机固定发送1个字符,从机以不同的波特率试探接收,当接 收到的数据与约定相同时,确定该波特率即是正确的通信波特率。(2)协议约定通信开始时主机发送1串字符,从机以某固定波特率接收,然后通过软件 分析接收到的数据,计算出接收数据与发送数据之间的倍数关系,从而确定正确的波特率。(3)协

7、议约定通信开始时主机固定发送1个字符,从机用单片机定时器检测RXD上的信 号宽度,通过计算来确定主机的波特率。以上3种方法,第一种由于需要多次试探,效率很低;第二种计算量过大,不适合单片机 处理;第三种方式单片机有现成的定时器资源,计算也相对简单,所以优选这种。要测量脉冲宽度,前提是单片机的时钟信号必须稳定。目前很多STC单片机可选外接晶 振时钟或片内RC振荡时钟,片内RC振荡时钟省去了外部的晶振等元件,成本降低、电路板 的体积也可以缩小,这对成本及体积敏感的应用很具优势。但选用片内RC振荡时,频率会有 15%左右的误差,频率的稳定性也比外接晶振要差,按理论计算值设置波特率参数,无法保 证可靠

8、的通信,但按以上自适应波特率串口的第三种方法,每次通信前实测、计算、确定波特 率常数,就可以实现稳定可靠的通信,这样充分利用了 STC单片机的优势。1 STC单片机的特点标准51芯片由于定时器最高分辨率只有1 s对于较高的通信波特率来说,测量精度不 够,导致计算值不准,无法正常工作。STC系列单片机是在标准51单片机基础上发展起来 的,它增加了很多实用的接口电路,扩大了时钟的频率范围,设计出了1T时钟的芯片,可以 通过软件对系统时钟分频,并提供了片内RC振荡时钟,在目前51芯片的市场占有极大的份 额。STC系列单片机采用片内RC振荡时钟、自适应波特率串口通信技术,可以广泛地应用于 分布式控制、

9、智能仪表、通信等行业。2自适应工作原理STC单片机采用异步通信,UART工作于模式1(8位UART,波特率可变),用定时计 数器2做波特率发生器,工作于模式2(8位自动重装模式),主从机按图1方式连接,从机 自适应主机的波特率。图 1 系统连接图自适应过程由主机发送联络字符开始。为了使从机获得最大的测量脉宽,提高测量精度, 由主机发送二进制“0”。如图 2 所示,二进制“0”由 1 位起始位,8 位数据位(低位在先)及 1 位停止位构成,其中1位起始位和8位数据位全为0,所以低电平的宽度为9 b。图2 自适应波形图从机查询RXD引脚的电平,检测到低电平后就启动定时器0开始计时,再检测到高电平

10、就停止定时器0计时,根据定时器0的定时值就可以计算出主机的波特率。当时钟分频寄存器CLK_DIV=0 (不分频),特殊功能寄存器AUXR=0xC0(T0用IT时 钟),则:每位传送所需时间=lfoscT0计数值-9 (1)波特率=1每位传送所需时间=fosc- 1T0计数值x9(2)式中fosc 为从机的时钟频率。而STC51系列单片机在UART模式1,时钟模式为1T时,其波特率公式为:波特率=2SM0D fosc (256-TH1) x32 (3)由式(2),式(3)可导出UART时钟为1T时:TH1 (1T) =256-2SMOD T0 计数值 288 (4)STC51系列单片机在UART

11、模式1,时钟模式为12T时,其波特率公式为:波特率=2SM0D fosc(256-TH1)x12x32 (5)由式(2),式(5)可导出UART时钟为12T时:TH1(12T) =256-2SMOD T0 计数值 3 456 (6)从机UART在模式1下,将式(4)或式(6)计算结果作为定时器1重装值,设定通信参 数,通过串口回送应答信号给主机。主机如正确接收到从机回送的信号,就说明从机已完成波 特率自适应,可以开始正常通信了。3 误差分析为保证可靠通信,要求通信双方的波特率相对误差小于2.5%。在自适应波特率校准系统中,误差主要来自两个方面,一是定时器TO 启动和停止滞后造 成的误差AT0;

12、二是波特率发生器T1本身固有的一个机器周期误差AT1=1。由于STC51 单片机采用1T时钟定时,AT0误差只有标准51系列芯片的112,系统误差主要由AT1 决 定。以STC12C5620为例,当采用片内RC振荡,时钟频率通常在5.26.9 MHz之间。当时钟 频率为5.2 MHz,SMOD=1时,UART时钟分别按12T, 1T计算,见表1,表2。表1 UART时钟12分频时计算的波特率误差表1、表2中加粗部分表示可以选用的波特率值,由表1、表2可知,只要编程时选择合 适的时钟,在5.2 MHz时钟频率下,波特率可以在300115 200 b/s之间实现自适应,由T1 取整带来的误差在0.

13、5%以内。当系统时钟为6.9 MHz时,用同样的方法计算,也可以证明波 特率可以在300115 200 b/s之间实现自适应,由T1取整带来的误差也在0.5%以内。由此可 见,STC12C5620采用片内RC振荡,可以在300115 200 b/s之间完成波特率自适应,实现稳 定可靠的通信。表2 UART时钟1分频时计算的波特率误差4 软件流程与程序主机软件流程图如图3所示,从机软件流程图如图4所示。图3主机软件流程图图4从机软件流程图以下为C51波特率自适应程序:void main ( void)AUXR=0xC0;AUXR.7=1, T0用1T时钟;AUXR.6=1, T1 用1T时钟SC

14、ON =0x50; /SCON: mode 1, 8 b UART, enable rcvrTMOD|=0x21; /TMOD: timer 0, mode 1 , 16 b; timer1, mode 2, 8 b reloadPCON|=0x80;TL0=0; /自适应波特率测量TH0=0; /T0 清零while(RXD); /RXD 引脚为高等待TR0=1; /开始波特率测量while(!RXD); /RXD 引脚为低等待TR0=0; /STOP T0RELOAD=256-( TH0*256+TL0) /144-0.5;计算波特率常数,时钟IT, SMOD=1TH1=RELOAD;TR

15、1=1 ; /TR1 : timer 1 runTI=1 ; /TI: set TI to send first char of UARTRI=0;REN=1;IE=0x90; /EA=1;ES=1;5 应用实例采用STC12C5620设计的重力检测开关,如图5所示。为降低成本、缩小体积,采用了片 内 RC 振荡,不设按键及显示。重力检测开关首次工作前需设定一些参数,并校准。由于没有 键盘及显示,采用和计算机联机设置、校准。本电路采用了上述的自适应波特率工作方式,由 PC机作主机,通过串口来初始化重力检测开关的各参数。图 5 重力检测开关计算机设置界面如图 6所示。图 6 计算机设置界面设置时

16、,将重力检测开关与计算机之间用RS 232线连接好,然后点击PC机软件界面上的 “连接串口” 按钮进行波特率自适应,当界面上状态栏提示“连接串口成功!”时,表示波特率自 适应工作正确完成,可以进行参数设置和校准操作。设置、校准后,重力检测开关就可脱机正 常工作了。经反复验证,该电路在300115 200 b/s波特率范围内可稳定通信工作。6结 语 该波特率自适应方法,可扩展应用于其他单片机系统,解决对方的波特率未知、或对方的 波特率有偏差而无法正常通信的问题,即使对方的波特率不是标准值也可正常工作,具有较大 的实用价值。参考文献1 南通国芯微电子有限公司.STC12C5628AD数据手册S.南

17、通:南通国芯微电子有限公 司, 2011.2 刘燕,陈兴文串行通信的波特率自动检测方法的实现J.大连民族学院学报,2008, 10(1) : 31- 34.3 周建华,万书芹,薛忠杰.一种新颖的UART自适应波特率发生器的设计J.半导体技 术,2007,32 (12): 1052- 1055.4 赵达飞.波特率自适应的模拟串行通信J.现代计量仪器与技术,2009 (7): 58- 59.5 赵炯串行数据传输协议的剖析研究J.计算机工程,2004,30 (9): 105- 108.6 马玉春串行通信协议的研究及应用J.计算机应用研究,2004 (4): 228- 232.7 张雷,梁建武,陈英串行通信协议的研究与实现J.现代计算机,2006 (9): 57- 59.8 严天华,周辉效率串行通信协议的设计J.单片机与嵌入式系统应用,2003 (6): 75- 77.9 乔渠,赵国豪,王文记串行通信波特率的自动识别J.单片机与嵌入式系统应用,2007(2) : 33- 35.10 常江,胡丹,常亮串行通信中的波特率设置和误差分析J四川工业学院学报, 2004, 23 (2): 22- 24.作者简介:赵培宇男,1964年出生,浙江宁波人,高级工程师,主任。主要从事机电一 体化、自动化仪器仪表的教学科研工作。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!