SCI接收器包含接收数据缓冲器、接收移位寄存器、接收控制逻辑、中断控制逻辑和奇偶校验等,其内部结构如图10-8所示。
1.接收功能描述
SCI模块通过设定SClxC2中的RE位为1来使能接收器。本节假定SCI被配置为8位数据模式,则接收字符帧由1位逻辑0起始位、8位或9位数据位(LSB在前)、l位逻辑1停止位构成。
接收器在把停止位接收到接收移位寄存器之后,如果接收数据寄存器不为满状态,那么接收到的数据被传送到接收数据寄存器,且接收数据寄存器满标志位RDRF变为1。如果RDRF已经为1,说明接收数据寄存器也为满,那么接收器溢出标志位OR变为l,新的数据被丢失。由于SCI接收器是双缓冲结构,用户程序在RDRF为l之后,必须在一个字符时间内从接收数据缓冲中读取接收数据以避免接收数据溢出丢失。
当程序检测到接收数据寄存器满时(RDRF=1),通过读SCIxD可以得到接收数据寄存器的数据。在8位模式下,RDRF标志位可通过先后读SCIxS1和SCIxD寄存器自动清零。
2.数据采样技术
SCI接收器以16倍波特率采样逻辑电平,搜索RxD串行输入引脚上的下降沿。下降沿的定义为:3个逻辑1采样后,采样到逻辑0。16倍波特率时钟把位时间分成16段,分别标记RT1到RT16。当定位到一个下降沿时,再用3个采样RT3、RT5和RT7来确认这是开始位而不是噪声。如果3个采样中不少于两个是0,则接收器假定与接收字符同步。然后接收器在每个位时间都进行采样,包括开始位和停止位。通过RT8、RT9、RT10的采样值确定当前为的逻辑电平。在一个位时间内占主导的采样值就被认定为该位的逻辑电平。(www.xing528.com)
3.接收唤醒技术
接收器唤醒是一种硬件机制,它允许SCI接收器忽略那些供不同SCI接收器使用的信息中的字符。在这个系统中,所有的接收器会判断每个信息的第一个字符,一旦检测出该信息是提供给不同SCI模块的,则将SCIxC2中的接受唤醒控制位RWU置1。当RWU置位后和接收器相关状态位的设定被抑制,那就可以消除程序对不重要消息字符的控制。当消息接受结束时,所有接收器自动强制RWU为0,因而所有的接收器被唤醒并对下一个信息的第一个字符进行检测。
接收器唤醒有两种:一种是空闲线唤醒,另一种是地址标志唤醒。当WAKE=0,接收器被设置为空闲线唤醒,在这种模式下,当接收器在一个完整字符时间内检测到空闲线电平时,RWU自动清零。当WAKE=1,接收器被设置为地址标志唤醒,在这种模式下,当接收器检测到接收数据字符的最高有效为是逻辑1时,RWU自动清零。
图10-8 SCI接收器原理结构图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。