通常微控制器通过串行接口与其它终端进行通信时,两个终端需要通讯波特率一致才能达到准确与可靠的通讯效果,串行波特率的自动检测(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系列微控制器。
3.软件设计
3.1软件简介
软件设计源程序采用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系列 微控制器 串口通信时 波特率 自动检测
引用地址:
基于MSP430系列微控制器串口通信时的波特率自动检测的实现
推荐阅读最新更新时间:2024-03-16 15:56
单片机实验室操作管理规程
51黑单片机网为各位老师收集的实验室管理制度 1、学生进出实验室必须有序,在班委的组织下,按照所分组名单到指定的试验台进行实验。 2、学生进入实验室后,组长必须清点人数并向老师报告出勤情况。 3、学生进入实验室,必须听从指导老师安排。 4、按照安全用电,以及设备正确操作方法进行实验。 5、严格遵守课堂纪律,不得在室内喧哗,打闹,随意走动,保持室内安静,清洁。 6、实习操作内容必须符合教学内容,严禁进行与教学内容之外的操作,不得擅自动用与教学内容无关的设备、设施。如有违反立即停止其实验,并作严肃处理。 7、操作时,学生态度要认真,并按预先编好的程序进行操作,由老师检查正确,方可进行通电试验。 8、实验室的一切物品未经老师
[单片机]
51单片机LED点阵上移程序!(汇编)
注释:行采用74LS154+PNP三极管驱动 列采用两个74HC595驱动! 此程序可以实现上移!下面是视频链接实拍效果,请大家查看!链接地址:视频祥见: http://www.tudou.com/programs/view/D0SCJyO4RBQ/ SDATA EQU P1.0 ;串行数据 SCLK EQU P1.1 ;移位时钟脉冲 RCK EQU P1.2 ;输出锁存器控制脉冲 ORG 000H JMP MAIN ORG 0030H MAIN: MOV SP,#5FH MOV 20H,#00H MAIN1: MOV R0,#5 MAIN2: MOV R3,#10H MOV R1,#00H MOV R2,20H
[单片机]
基于MN101EF32D单片机的电子血压计工作原理
引言 血压是极为重要的健康指标,血压测量的准确与否直接关系到人们的健康。国家把血压计列为强制检定计量器具。一般医院使用的水银血压计基于人工柯氏音法,这种方法存在一些固有的缺点:一是放气的快慢对读数有直接影响,国际标准放气速度为每秒3~5mmHg,而不同的医生放气有快有慢,会影响测量的准确度;二是这种方法以人的视觉、听觉和协调程度为主要依据,很难标准化。为此,本设计从血压的检测方法着手,采用日本松下公司高速、低功耗的MN101EF32D单片机,作为血压计测量、控制、数据读写、数据显示的核心,可准确地采用示波法(振荡法)测量血压。 工作原理 示波法(振荡法)是根据袖带在减压过程中,其压力振荡波的振幅变化包络线来判定血压的。目前比
[单片机]
什么是单片机的时序
时序的由来 我们已经知道单片机执行指令的过程就是顺序地从ROM程序存储器中取出指令一条一条的顺序执行然后进行一系列的微操作控制来完成各种指定的动作它在协调内部的各种动作时必须要有一定的顺序换句话说就是这一系列微操作控制信号在时间上要有一个严格的先后次序这种次序就是单片机的时序这就好比我们学校上课时用的电铃为了保证课堂秩序学校就必须在铃声的统一协调下安排各个课程和活动那么单片机的时序是如何规定的呢接着往下看。 时序的周期 计算机每访问一次存储器的时间我们把它称为一个机器周期它是一个时间基准就象我们日常生活中使用的秒一样计算机中一个机器周期包括 12个振荡周期什么是振荡周期一个振荡周期是多少时间振荡周期就是振荡源的周期也就是我
[单片机]
单片机显示原理(LCD1602)
一.接口 LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示: 图1 再来一张它的背面的,如图2所示: 图2 它的
[单片机]
PIC单片机IIC通信程序
#include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0X3B31); const uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar a1,a2,a3,a4; void delay(uint x) { uint a,b; for(a=x;a 0;a--) for(b=110;b 0;b--); } voi
[单片机]
51单片机-LCD1602
1.硬件设计 1.1.LCD1602介绍 LCD1602是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。 LCD1602主要用来显示数字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节V0和背光源AK 关于LCD的工作原理,结构堆叠等的介绍,可参考如下链接:https://lishiyi.blog.csdn.net/article/details/124106767?spm=1001.2014.3001.550
[单片机]
基于MSP430F149单片机的车体调平装置设计
随着国防技术的发展,根据任务需求,越来越多的军用武器需要随时变更工作地点。为了保证这些军用武器的机动性能,往往以载车为运输载体,如火箭炮这样的大型武器就被安装在载车上。载车到达目的地后,借助平台快速将武器架设调至水平而后工作,工作完成后平台能够快速地撤收、转移。既保证了武器的工作性能,又提高了机动性。 传统上,主要依靠人工手动完成平台的水平度调节,这需要一部分人员手动调节千斤顶,另外一部分人员观察水平仪的水泡位置。这种调平方式费时费力,且精度低、抗倾覆能力差。随着调平时间和调平精度要求的提高,过去的调平方式已远远不能满足实际情况的需要,所需时间短、精度高、抗倾覆能力强的自动调平控制技术应运而生。 在军用方面,自动调平控制系统广泛应用
[单片机]