首页 理论教育 SCI发送器实战:单片机与嵌入式系统

SCI发送器实战:单片机与嵌入式系统

时间:2023-11-19 理论教育 版权反馈
【摘要】:SCI发送器由发送数据缓冲器、发送移位寄存器、传输控制逻辑与中断控制逻辑组成,其内部结构如图10-7所示。通过写SCI数据寄存器SCIxD可以把数据存储到发送数据缓冲器中。只要移位寄存器的字符没有完成,SCI发送器就不会释放对TxD引脚的控制。

SCI发送器实战:单片机与嵌入式系统

SCI发送器由发送数据缓冲器、发送移位寄存器、传输控制逻辑与中断控制逻辑组成,其内部结构如图10-7所示。

1.发送功能描述

SCI发送器输出引脚TxD的空闲态默认(复位后TXINV=O0)处于逻辑高电平,如果设定TXINV=1则TxD翻转为逻辑低电平。通过设置SCIxC2中的TE位为1可以使能发送器,此后发送器保持在空闲状态直到有效数据被写入发送数据缓冲器。通过写SCI数据寄存器SCIxD可以把数据存储到发送数据缓冲器中。

SCI发送器的核心部件是发送移位寄存器,它既可以是10位长,也可以是11位长,这取决于M控制位的设定。在本节的描述中,都假定M=l,选定普通的8位数据模式。在8位数据模式下,移位寄存器具有1位起始位、8位数据位和l位停止位共计10位长度。当发送移位寄存器可以发送一个新的字符时,在发送数据寄存器SCIxD中等待的数值被转送到移位寄存器(同步于波特率时钟),然后发送数据寄存器空标志位TDRE变为1以指示下一个字符能够被写入到发送数据寄存器SCIxD之中。

978-7-111-50417-7-Chapter10-9.jpg

图10-7 SCI发送器原理结构图

当停止位被从TxD引脚移位输出之后,如果在发送数据缓存中没有新的字符,那么发送器将设置发送完成标志位TC为1并进入空闲模式,TxD引脚保持为高,等待新字符的发送。

向TE写0并不会立即释放,TxD引脚作为一个通用I/O引脚,必须等到正在处理中的所有发送活动结束,其中包括发送中的字符、队列中的空闲符和队列中的暂停符。(www.xing528.com)

2.发送暂停和等待空闲

SCIxC2寄存器的SBK位用于发送暂停符,暂停符是在字符发送期间内(10位包含开始位和停止位)一个字符的逻辑0。若置位BRK13=1,可以达到13位的长度暂停时间。通常,程序等待TDRE置位(表示信息的最后一个字符移到发送移位寄存器),然后向SBK位先后写1和0,此时,若移位寄存器可用,就会发送暂停符。如果当暂停符进入移位寄存器后SBK仍为1,则模块会继续产生待发送的暂停符。

当使用“空闲线唤醒”功能时,两个消息之间必须要有一个空闲字符(逻辑1),以唤醒处于睡眠状态的接收器。通常,程序等待TDRE置位,然后向TE位先后写0和1,此时,若移位寄存器可用,就会发送空闲符。只要移位寄存器的字符没有完成(TE=0),SCI发送器就不会释放对TxD引脚的控制。

暂停符的长度受BRK13和M位影响,如表10-3所示。

表10-3 暂停符长度

978-7-111-50417-7-Chapter10-10.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈