历史上的今天
返回首页

历史上的今天

今天是:2025年03月01日(星期六)

2018年03月01日 | 基于MSP430系列微控制器串口通信时的波特率自动检测的实现

2018-03-01 来源:eefocus

  通常微控制器通过串行接口与其它终端进行通信时,两个终端需要通讯波特率一致才能达到准确与可靠的通讯效果,串行波特率的自动检测(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检测应用在起始源代码中,同样也可以扩展运用到主机与从机通讯的任一时间段。


推荐阅读

史海拾趣

全智景(Allvision)公司的发展小趣事

为了进一步提升公司的竞争力,全智景公司开始实施全球化战略。公司积极拓展海外市场,与多个国家和地区的企业建立了合作关系。通过引进国外先进的技术和管理经验,全智景公司不断提升自身的综合实力。同时,公司还积极参与国际展览和交流活动,提升了品牌知名度和影响力。这一全球化战略为全智景公司带来了更广阔的发展空间和市场机遇。

EF Johnson Technologies Inc公司的发展小趣事

在产品质量方面,EF Johnson公司始终坚持高标准、严要求。公司建立了完善的质量管理体系,从原材料采购到生产制造再到售后服务,每一个环节都严格把关。这种对品质的执着追求让EF Johnson的产品在市场上赢得了良好的口碑和用户的信赖。随着品牌知名度的提升,EF Johnson的市场份额也稳步增长。

A1 PROS公司的发展小趣事

在2006年至2007年期间,A1 PROS的技术实力得到了业界的广泛认可。韩国技术信用保证基金将A1 PROS评选为杰出技术公司,这是对A1 PROS在技术研发和创新方面所取得成就的肯定。同时,A1 PROS还被韩国工业银行选定为家族企业,获得了更多的资金支持和发展机会。

Hartmann Codier GmbH公司的发展小趣事

进入2004年,A1 PROS开始着手研发彩色CCD传感器。经过两年的不懈努力,公司在2005年成功开发出3 IC彩色CCD传感器。这一创新产品不仅色彩还原度更高,而且功耗更低、稳定性更强,迅速受到市场的欢迎。随着彩色CCD传感器的推出,A1 PROS的产品线更加丰富,市场竞争力也进一步提升。

Adafruit公司的发展小趣事

在2000年,A1 PROS在韩国正式成立,初创期的它,主要专注于黑白CCD芯片的研发与生产。当时,随着数字技术的兴起,电子摄像头逐渐普及,市场对高质量的图像传感器需求日益增长。A1 PROS凭借其核心团队在半导体技术方面的深厚积累,成功研发出多款性能优越的黑白CCD芯片,并很快在市场上占据了一席之地。

为了拓展业务,A1 PROS积极寻求合作伙伴。2003年,它与台湾的昱生电子有限公司建立了合作关系,后者成为A1 PROS在台湾地区的主要经销商。这一合作不仅帮助A1 PROS打开了台湾市场,也为后续进军更广阔的亚洲市场奠定了基础。

科山芯创(COSINE)公司的发展小趣事

科山芯创(COSINE)公司成立于2017年,由一群对射频及模拟集成电路芯片充满热情的工程师创立。他们看到了中国电子行业中对于高性能、高品质芯片的巨大需求,于是决定成立一家公司,专注于这一领域的研发与设计。他们的初心是通过自主创新和核心技术,为国内外客户提供有竞争力的解决方案。

问答坊 | AI 解惑

称重传感器选用

手动丝锥折断原因及预防措施摘要:喷瓷管线接头焊后涂层与基体的界面研究活塞裙部中凸变椭圆异型面车削加工卧式车床模块化及可编程控制器的应用高速走丝线切割加工中不稳定加工状态分析中国最大的卧螺离心机问世提高国产机床市场占有率大有可为断路 ...…

查看全部问答>

2009EEWORLD年度人物大评选活动(投票已经结束,评选已公布)

   ********************************************************************************* 活动进行阶段: ********************************************************************************* 提起EEWORLD,哪些是你一下就能够 ...…

查看全部问答>

keil3能否用软件仿真arm运行

keil3能否用软件仿真arm运行…

查看全部问答>

请教mobile 5.0 加入汇编的问题

我把inline函数放到一个文件单独文件 有些函数比如说 FixPoint FixPoint::operator * ( const FixPoint& fp ) 这个函数在程序里面频繁调用 使用__asm{}加入arm汇编代码..不能编译通过.. nonstandard extension used : \'__asm\' keyword not s ...…

查看全部问答>

ce下有类似于skpye的应用程序可以用吗?

我下载了mobile版本的skype(cab安装包),在ce上不能安装; 我也下载了wince版本的SJphone(cab安装包),可以安装,但是双击后无法运行,也没有错误提示,就是没有对象出来! …

查看全部问答>

大家给讲讲这图呗,谢谢

为什么要电容C来导通 晶闸管VD,   AC自己导不通VD吗?…

查看全部问答>

TIM高级控制定时器

利用TIM外设来测量外部信号的频率和占空比: 1,,当中断请求发生了,如何计算外部信号的频率和占空比? 2,如我用的是STM32F103VBH6的芯片,利用TIM1高级控制定时器,将外部信号接到TIM1_CH2(PA9),TIM1_CH1(PA8)与示波器连接,    ...…

查看全部问答>

关于彩屏显示ascii码问题

Ascii -= 32;   //得到偏移后的值 这句话怎么理解。…

查看全部问答>

[TI首届低功耗设计大赛]+PCB终于告一段落!

[TI首届低功耗设计大赛]+PCB终于告一段落! …

查看全部问答>