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