ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MSP430F169(二)——UART波特率(论上)

2020-04-17 16:03:05  阅读:269  来源: 互联网

标签:分频 14 论上 UART 寄存器 传输 串口 波特率


文章目录

串口通信

1. 什么叫串口

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送
与并行接口相比,其优点也非常明显:

  1. 成本低,最少需要一根线就可以完成传输;
  2. 没有数据的相互干扰,误码率相对较低;
    缺点:传输速率相对较低。

2. 串口如何建立通信

对单片机有所了解的人都应该知道,串口通信是通过调配单片机内部的寄存器来控制速率。而MSP430F169内部最重要的几个配置无非是波特率的设置和多机通信。

2.1什么是波特率

在讲波特率之前我们要区分两个概念:波特率和比特率。
比特率:
比特率是指每秒传送的比特(bit)数。单位为比特(bps,bit/s),比特率越高,传送数据速度越快。(说白了就是传输0和1的速率:即每秒传输二进制的位数)
波特率:
波特率是指每秒传送的码元数。单位为波特(baud,symbol/s)。波特率是传输通道屏宽的指标。(即每秒传输字符的个数。例如9600的波特率,即每秒传输9600个字符,如果一个字符为八个码元,每个码元3个调制,即传输9600*3个bit)
任意两个单片机通信都需要一个相同的波特率,即传输速率相同,达到收发一致。

2.1.1计算波特率

受限于串口的模式,串口通信不能太快。于是降低一定的时钟频率,使单片机有足够的时间来处理数据,选择时钟的分频或者选用低频时钟。注意MSP430F169的UxRB寄存器必须大于三。以保证能够正常运行。如何得到一个波特率,我们直接拿出公式整数

BRCLK: 波特率的时钟源
N:分频因子
UxRB: 分频因子的整数寄存器
i:字符对应的位
mi:每个调制对应的数据(0或1)
n:字符数据位的个数,而MSP430F169的串口一般以8位封装(下面会讲到数据的封装)

例如:BRCLK=32.768KHz,要产生BITCLK=2400Hz,分频器的分频系数为32768 / 2400 = 13.65。所以设置分频器的整数寄存器计数值为13。接下来用调整寄存器的值来设置小数部分的0.65。只是小数部分是无线接近,很难达到精确。实际调整过程中用0.625代替0.65,也就是5/8。0.65*8=5.2,这个式子用来配置1的个数。用小数部分乘以8
至于1配置的位置,根据误码率决定,这里直接给出结论。UxMCTL = 0x6B
即分频器按顺序13、14、14、13、14、13、14、14来分频。在8 位调整器调整位都使用后,再重复这一顺序。
设置精准的波特率是为了降低误码率

2.2 串口数据的封装

我们来解释上面的波特率计算的n为什么为8。直接看下图在这里插入图片描述
ST:数据起始位,低电平有效
D0~D7:数据位,通过软件可以设置七位还是八位
AD:地址位
PA: 奇偶校验位,可通过软件设置需不需要这位
SP:停止位,可通过软件设置一位还是两位。高电平有效

在实际操作过程中,一般为8位数据位

总结

波特率的设置并不复杂,只需要按照步骤一步步调试,就能够达到一个较为不错的误码率

标签:分频,14,论上,UART,寄存器,传输,串口,波特率
来源: https://blog.csdn.net/qq_43313294/article/details/105546691

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有