单片机c语言波特率检测,基于MSP430系列微控制器串口通信时的波特率自动检测的实现...

本文介绍了基于MSP430系列微控制器的串口通信波特率自动检测(ABR)技术,通过检测接收到的特定字符,实现与不同波特率系统的匹配通信。系统硬件包括MSP430F1232微控制器、UART接口等,软件设计使用C和汇编语言,涵盖了波特率设置和检测原理,确保在1200~115200波特率范围内的准确通信。
摘要由CSDN通过智能技术生成

通常微控制器通过串行接口与其它终端进行通信时,两个终端需要通讯波特率一致才能达到准确与可靠的通讯效果,串行波特率的自动检测(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系列微控制器。

0b740cc22893e5db00ca631833596494.png

3.软件设计

3.1软件简介

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文介绍一种在 80C51 串行通讯应用中自动检测波特率的方法。按照经验,程序起动后 所接收到的第 1 个字符用于测量波特率。 这种方法可以不用设定难于记忆的开关,还可以免去在有关应用中使用多种不同波特率的 烦恼。人们可以设想:一种可靠地实现自动波特检测的方法是可能的,它无须严格限制可被确 认的字符。问题是:在各种的条件下,如何可以在大量允许出现的字符中找出波特率的定间 隔。 显然,最快捷的方法是检测一个单独位间(single bit time),以确定接收波特率应该是 多少。可是,在 RS-232 模式下,许多 ASCII 字符并不能测量出一个单独位间。对于大多数 字符来说,只要波特率存在合理波动(这里的波特率是指标准波特率),从起始位到最后一位“可 见”位的数据传输周期就会在一定范围内发生变化。此外,许多系统采用 8 位数据、无奇偶校 验的格式传输 ASCII 字符。在这种格式里,普通 ASCII 字节不会有 MSB 设定,并且,UART 总是先发送数据低位(LSB),后发送数据高位(MSB),我们总会看见数据的停止位。 在下面的波特率检测程序中,先等待串行通讯输入管脚的起始信号(下降沿),然后起动 定器 T0。在其后的串行数据的每一个上升沿,将定器 T0 的数值捕获并保存。当定器 T0 溢出,其最后一次捕获的数值即为从串行数据起始位到最后一个上升沿(我们假设是停止位) 过程所持续的间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值