更优质的服务在 立微电子 ------ SST 授权专业代理
网站: www.spacltd.com.cn
1
FlashFlex51 MCU 增强 UART
1.0 简单介绍
FlashFlex51 系列微控制器包括支持 8051 微控制器增强型串行 UART 特征。在标准
UART 中增加两个特征:错误帧侦测和自动地址识别。错误帧侦测允许在串行接收操作中检
查一个无效的停止位。自动地址识别指的是通过允许每个器件被单独或者成组寻址来建立多
处理器串行通信机制。在这种配置中,一个器件只有在接受到自己的地址,组地址,广播地
址才能被中断。这样减少了软件过多地比较地址。
2.0 错误帧侦测
错误帧侦测允许在接收操作串行模式 1,2,3 中检查一个停止位。因为同步串型协议不允许
用停止位所以串型模式 0 不允许有错误帧侦测。如下图 2-1 所示,RXD 信号最开始的由高
到低的跳变表明了一个开始位。在八个数据位和一个可选择的第九位被接收后,停止位应该
被拉高最少 1bit 的时间。不正确的停止位可能表示串行线上的噪音,收发器中不匹配的波
特率或者两个 CPU 中同时传输数据。硬件侦测不正确的停止位允许错误恢复来产生更可靠
的通信。
错误帧侦测通过读位于 SFR 的 SCON[7]的 FE SFR 位来执行。然而,这一位与串行模
式位 SM0 共用,这两个位的选择通过设置或清除 PCON 寄存器中的 SMOD0 来进行。请参
照下面图 2-2.
一旦 FE 位被选择,如果串行接收中一个无效的停止位被采样到,它就会被硬件置位。
软件在接收和处理任何错误后可能检查 FE 位。当 FE 位被置位后,它只能够被软件清零。
这时候,不管 FE 位是否被置位,接下来的数据都将继续被接收到,同时有效的停止位不能
通过硬件清除 FE.
2.1 错误帧检测的软件示例
下面两个列表是关于怎样实现错误帧检测的示例 Keil C51 和汇编语言的代码。两个例子
都是针对 MCU 运行在串行模式 1,波特率位 9600,晶振是 11.0592MHZ 的情况。