基于MSP430系列微控制器串口通信时的波特率自动检测的实现

2018-03-01来源: eefocus关键字:MSP430系列  微控制器  串口通信时  波特率  自动检测

  通常微控制器通过串行接口与其它终端进行通信时,两个终端需要通讯波特率一致才能达到准确与可靠的通讯效果,串行波特率的自动检测(ABR)可以解决通信终端的波特率自动匹配问题,从而实现微控制器与PC或其它主机的串行通信。本文主要介绍MSP430系列微控制器实现串口通信时的波特率自动检测。

  1.概述

  当MCU需要同时与几个不同波特率值的系统进行通信时,ABR检测功能则显得很重要。ABR检测在检测波特率值的同时可以自动调整波特率值。在执行ARB检测算法时,当主机波特率在115200~74400之间时,MCU必须从主机接收到一个预先设置的特定字符,如字符;当主机波特率在9600~1200之间时,MCU则需从主机接收到第二个字符,然后将接收到的字符值与预先设置的值进行比较,如果匹配,则通讯波特率调整为相应的设定值,如果不匹配,则返回一个错误代码。可以用多种方法实现ABR的自动检测,本文采用的方法优点在于无需改变硬件电路。

  2.系统硬件结构框图

  本文开发板包含MSP430F1232微控制器、32kHz晶振、UART接口芯片和其它外设电路。PC机作为串行通信的主机,通过RS-232接口与开发板上的MSP430F1232进行通信,如下图所示,该通信方法适用含有USART模块的任意MSP430系列微控制器。

MSP430系列微控制器

  3.软件设计

  3.1软件简介

软件设计源程序采用C与汇编语言结合完成

  软件设计源程序采用C与汇编语言结合完成,如上表所示。其中,main.c程序用C语言完成,可以调用C或汇编语言的波特率算法,C和汇编语言的波特率算法具有相同的功能,可随意选择其中一个即可。

  3.2USART设置

  文中将USART模块设置为UART模式,8个数据位、一个停止位,无奇偶校验位,系统SMCLK时钟作为USART时钟源,配置为1MHz频率,允许UART的最高通讯波特率达到230400。本文分析的标准波特率值范围1200~115k之间。UART模块初始化波特率设置为115200波特率。

  3.3ABR原理

  这部分主要讲述如何通过从主机接收到的一个或两个特定字符判断串行主机的通行波特率并且自动调整波特率。本文采用检测单个回车字符判断主机波特率是否在115200~9600之间,如果终端主机通信波特率低于9600,则接到第二个回车字符以判断通信波特率是否在9600~1200之间,同时,如果需检测的波特率在9600~1200之间,则第二个回车字符需在ABR算法中进行设置。两种情况下,接收的回车字符都有唯一的模式,算法操作如下图所示。

算法操作

  3.4115200~14400波特率检测原理

  本节主要讲述当主机通信在115200。14400之间时ABR的检测算法。MSP430微控制器初始化UART波特率为一个较高数值,如115200。因为一般串口通讯波特率从高到低存在一种比例关系的,如:115200=2×57600=3×384000当接收到主机波率在115200~14400之间时,发送一个预先确定的回车字符,如果从机波特率不匹配,则从机接收的实际字符会根据从机波特率大小有所不同,如下图所示。当在相位中接收到0字符时,则判断主机波特率低于14400,即可确定主机通信波特率不在5200~14400检测范围之内。

机接收的实际字符会根据从机波特率大小有所不同

  3.59600~1200波特率检测原理

  当主机通信在9600~1200之间时ABR的检测算法与115200~14400之间原理一样,检测该段范围之内的波特率须先确定主机通信波特率低于14400,主机发送字符后,从机以不同波特率接收到的字符如下图所示,一旦确定了波特率的范围,则可以通过设置MSP430波特率发生器调节自身的通信波特率速度,以确保与主机通信速度相匹配。寄存器的通信速度值如表2所示。不同波特率接收到的字符

  3.6自动检测源代码

  自动波特率检测源代码如下所示:

自动波特率检测源代码

自动波特率检测源代码

自动波特率检测源代码

  4.结语

  本文主要描述了利用MSP430微控制器实现自动波特率检测技术,通过发送一个或两个特定的字符来确定主机通信波特率,在接收过程中如果波特率不正确字符将会丢失。尽管ABR检测应用在起始源代码中,同样也可以扩展运用到主机与从机通讯的任一时间段。


关键字:MSP430系列  微控制器  串口通信时  波特率  自动检测 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2018030137975.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于嵌入式WinCE设备与LPC935单片机CAN通信设计
下一篇:基于LM3S8962为控制核心的六相位交通信号机设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430G2553与MSP430F5336系列单片机总结[4]——比较器B的使用
比较器B是什么,顾名思义,它其实就是用来比较模拟电压+输入端和-输入端的电压大小,然后设置输出信号CBOUT的值的,如果 + 端电压高于 - 端电压,则CBOUT置高,否则置低。主要的控制寄存器有CBCTL0,CBCTL1,CBCTL2,CBCTL3,CBINT,CBIV,在MSP430G2553中没有比较器B,但是F5336中有,所以接下来的代码全都是F5336的比较器B使用程序:1.比较器B输入通道CB0接外部模拟输入信号,并且引至比较器+输入端,内部参考电压发生器利用共享电压源产生2.0V参考电压。最后当CB0输入模拟信号电压高于2.0V时,CBOUT输出高电平,当CB0输入模拟信号电压低于2.0V时,输出低电平
发表于 2019-11-06
MSP430系列嵌入式实验教程---基础
MSP430单片机的CPU属于RISC(精简指令集)处理器,RISC处理器基本上是为高级语言所设计的,因为精简指令系统很大程度上降低了编译器的设计难度,有利于产生高效紧凑的代码。初学者完全可以在不深入了解汇编指令系统的情况下,直接开始C语言的学习。本章介绍MSP430单片机软件工程的开发基础,主要讲解MSP430单片机C语言编程基础、MSP430单片机的软件编程方法及软件集成开发环境的基本操作。通过本章的讲解,旨在使读者对MSP430单片机的编程思想有一定的了解。C语言基础变量定义单片机的RAM较小,运算速度有限,在编程时应注意通过合理的编码提高单片机的利用效率。对于小于256的正整数,定义为uint8_t,变量名可取
发表于 2019-10-23
MSP430系列嵌入式实验教程---基础
MSP430系列微控制器简介
内容涉及以下: ●按照所处理的信号,对电子线路的分类 ●数字电路的特点 ●常用数字集成电路器件的种类和特点 ●微控制器(Microcontroller,MCU)的结构 ●德州仪器(TI)公司MSP430系列微控制器(MCU)的特点 ●MSP430微控制器的最小系统电路 ●MSP430微控制器的内部资源 ●不同型号MSP430微控制器芯片的区别引言电子线路的功用是完成信号的产生、传输和处理。按照信号的特点,电子线路可以被划分为处理连续信号的模拟电路和处理离散信号的数字电路。相对于模拟电路,数字电路具有许多优点。首先,在数字系统中信号电压的准确值并不
发表于 2019-04-19
MSP430系列微控制器简介
MSP430系列单片机-Timer_A实现PWM
概念PWM信号是一种具有固定周期、不定占空比的数字信号。 如果Timer_A的计数器工作在增计数模式,输出采用输出模式7(复位/置位模式) 利用寄存器TAxCCR0控制PWM波形的周期,用其他某个寄存器TAxCCRx来控制占空比(t高电平/ T周期)题目设ACLK = TACLK = LFXT1 = 32768Hz, MCLK = SMCLK = DCOCLK = 32 * ACLK = 1.048576MHz,利用Timer_A输出周期 512/32768 = 15.625ms,占空比分别为75%和25%的PWM矩波形。代码如下:#include  "msp430
发表于 2018-05-05
MSP430系列单片机-读RAM数据烧写到Flash中
题目一从RAM地址0x0200中读取一个long数据,并烧写至地址为0x1800的Flash中。代码:#include"io430.h"void main(void){    //初始化RAM信息段的指针    unsigned long * RAM_ptr = (unsigned long *) 0x0200;    //初始化Flash信息段的指针    unsigned long * Flash_ptr = (unsigned long *) 0x1800;    //存放数据的变量   
发表于 2018-05-05
MSP430G2xx1系列USI的SPI模式详解
简述在 MSP430 系列中微控制器中有三种串行通讯模块。它们分别是 USART 、 USI 和 USCI 。USART 支持同一硬件模块的两种串行模式,分别是 UART 和 SPI 。 USART 实现了独立的收发转换暂存器和 分离的收发缓冲暂存器以及中断能力。通用同步串行通讯 (USI) ,对于一个 GPIO 数量少的设备来说,是一个高性能串行接口。它是一个 8 或 16bit 移位寄存器,可被用作输出数据,或配合软件一起使用时,可以实现串行通讯。而且 USI 包含了一个能轻松实现 SPI 和 I2C 通讯的硬件功能。 USI 模块还包含了中断功能来减少必要 的对串行通讯管理软件并保持 MSP430 超低功耗的能力。通用
发表于 2018-05-05
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved