飞思卡尔MC9S12XET256 SCI串口寄存器说明

更新时间:2023-10-12 02:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

串口寄存器说明

该模块指南提供了串行通信接口(SCI)模块概述。 SCI的允许与外围设备和其他CPU异步串行通信。 1.1 SCI包括这些特征: ?全双工或单线运行

?标准标记/空间不归零(NRZ)格式

?可选的IrDA1.4返回到零倒置(RZI)与可编程脉冲宽度格式 ?13位的波特率选择

?可编程8位或9位数据格式 ?分别使能发射机和接收机 ?可编程极性对发射机和接收机 ?可编程发送器输出校验 ?两个接收器唤醒的方法: -唤醒空闲线 - 地址标志唤醒

?中断驱动的操作有八个标志: -发送器空 - 传输完成 - 接收器满

- 空闲接收器输入 - 接收器溢出 -噪声误差 -帧错误 - 奇偶错误

- 接收有效边缘唤醒 - 发送冲突检测支持LIN -间隔检测支持LIN ?接收帧错误检测 ?硬件奇偶校验

?1 / 16位时间噪声检测 1.2 操作模式 SCI的功能相同在正常、特殊和仿真模式。它有两种低功耗模式,等待和停止模式。

?运行模式 ?等待模式 ?停止模式 1.3 寄存器说明

1、波特率控制寄存器(SCIBDH、SCIBDL)

SCIBDH和SCIBDL一起构成了一个16位的波特率控制寄存器。SBR12~~SBR0为波特率常数。

IREN:红外调制模式使能位

1 使能 0 禁止

TNP[0..1]:窄脉冲发射位,这些位使能SCI是否能发送一个1 / 16,3 /16,1/ 32或1 / 4的窄脉冲。见表20-3。

SBR[0..12]:波特率设置位

When IREN = 0 then,

SCI baud rate = SCI bus clock / (16 x SBR[12:0]) When IREN = 1 then,

SCI baud rate = SCI bus clock / (32 x SBR[12:1])

【说明】波特率发生器在复位后是禁止的,在设置TE、RE(在SCICR2寄存器中)后才会工作。当(SBR[12:0] = 0 and IREN = 0) 或者 (SBR[12:1] = 0 andIREN = 1),波特率发生器不工作。

【注意】在未写入SCIBDL,写SCIBDH没有反应。一般地,设置IREN=0,SR=52(总线频率8MHz),波特率为9600。

2、控制寄存器(SCICR1) 一般此寄存器可默认设置。

LOOPS: SCI回送模式/单线模式允许位

在LOOP模式下,RXD引脚与SCI接收部分断开,发射部分输出在内部和接收部分相连接,此时RXD可作为普通IO口,TXD输出SCI信号。 1 回送模式使能 0 正常模式

SCISWAI:等待模式下 SCI 停止位 0:在等待模式下允许 SCI

1:在等待模式下禁止 SCI,SCI不工作

RSRC:接收器信号源选择位,当 LOOPS=1 时,RSRC 决定接收器的内部反馈信号路径。

0:接收器的输入在内部连接到发送器输出(并非 TxD 引脚)。 1:接收器的输入连接到 TxD 引脚。

M:方式选择位(选择字符帧格式)。

0:1 个起始位,8 个数据位,1 个停止位。

1:1 个起始位,8 个数据位,第 9 个数据位,1 个停止位。 WAKE:唤醒选择位。

0:介质空闲唤醒。

1:地址标志(最后一个数据位为 1)唤醒。

ILT:空闲检测方式选择位,该位在 SCI 接收器可以使用的两种空闲检测方式中 选择一种。

0:快速检测,SCI 在一个帧的开始位后立即开始对“1”计数,因此停止位以及停止位前面的任何“1”均被计算在内,这样可以提前检测到空闲状态。

1:保守检测,SCI 在停止位后才开始对“1”计数,因此最后一个字节的停止位以及该位以前的各个为“广的位,对检测的时间长短无影响。

PE:奇偶校验允许位。

0:禁止奇偶校验。 1:允许奇偶校验。

PT:奇/偶校验选择位,如果奇偶校验允许,该位决定收发器使用奇校验还是偶校验。

0:选择偶校验。 1:选择奇校验。

3、控制寄存器2(SCICR2)

TIE: 发送中断允许位,

0: 禁止 TDRE 产生中断,

1: 则允许 TDRE 位置 1 时产生 SCI 中断请求。 TCIE:发送结束中断允许位,

0: 时禁止 TC 产生中断,

1: 则允许 TC 位置1 时产生SCI 中断请求。 RIE:接收中断允许位,

0: 时禁止 RDRF 和 OR 产生中断,

1: 则允许 RDRF或 OR 置 1 时产生 SCI 中断请求。 ILIE:空闲中断允许位,

0: 时禁止 IDLE 产生中断,

1: 则允许 IDLE 位置1 时产生 SCI 中断请求。 TE:发送允许位。该位由 0 置 1 时可用来发送空闲报头。

0: 发送器禁止。

1: 允许 SCI 发送部分工作,TxD 引脚(PSl/PS3)用于发送。 RE:接收允许位。

0: 接收器禁止。

1; 允许 SCI 接收器工作。 RWU:接收器唤醒控制位

0:SCI 接收器正常工作。

1:允许唤醒功能,禁止接收器中断。通常,硬件通过自动清除该位来唤醒接收器。 SBK:中止符发送允许位。只要该位保持为 1,发送器就不停地发出“0”;如果 变为 0,当前的全“0”

帧发送结束后,TxD 引脚将变成空闲状态。如果 SBK 开 关一次,发送器将只发出 10(11)个“0”,然后复原,处于空闲或发送数据状态。 0: 中止符产生器关闭。

1: 产生中止符,至少 10 或 11 个连续的“0”。

【说明】该寄存器主要完成收发中断的控制、收发的允许等操作。

4、状态寄存器 1(SCISR1)

该寄存器反映 SCI 运行过程中的各种状态,包括发送器和接收器的状态信息和接收器的出错信息。这个寄存器的TDRE,TC,RDRF,IDLE和OR位跟控制寄存器2有关,控制寄存器2中的对应位为中断使能位,状态寄存器1中的位为中断状态位。

TDRE: 发送保持器空标志位。发送前必须读 SCISR1,并确认 TDRE=1,然后将新的数据写入发送

保持器以开始发送过程。复位后该位为 1。 0:SC0DR 处于忙状态

1:发送保持器的数据已被传送到发送移位器,这时可以向发送保持器写入新的数据 TC:发送结束标志。该位在发送器空闲(无发送动作)时置位。读 SCISRl,然后写 SCIDR 将清除该位。

0:发送器忙,正在发送 1:发送器空闲,无发送

RDRF:接收数据就绪标志。当收到的字符已经在 SCIDR 中就绪时,RDRF 置 1, 顺次读取 SCISRl

和 SCIDR 将会自动清除 RDRF。该位被清除后,必须等到 RxD 线变为活动,然后重新变成空闲以后,IDLE 位才会被再次置 1。 0:SCIDR 空,数据寄存器无数据

1:SCIDR 中数据已就绪,数据寄存器数据有效

IDLE: 空闲标志。检测到接收器 RxD 端空闲(收到 10 或者 11 个以上连续的 “1”)。当 RWU 位

为 1 时,空闲状态不会使该位置 1。该位被清除后,必须等到 RDRF 置位(RxD 线变为活动,然后重新变成空闲),IDLE 位才会被再次置 1。 0:RxD 线活动。 1:RxD 线空闲。

OR:重叠错误标志。如果接收数据寄存器中的数据尚未读取(RDRF=1),接受移位寄存器又准备向其传

送新的数据,则称为重叠错误,该位被置 1。必须清除该位,才能使新的数据进入接收数据寄存器。

0:无重叠。

1:出现重叠错误。

NF:噪声错误标志。噪声错误出现时,该位与 RDRF 在同一个周器内置位,但如果同时或已经出现重

叠错误,该位不置位。 0:采样结果一致。

1:在起始位、数据位或停止位接收期间检测到噪声。

FE:帧格式错误。如果在应该出现停止位的时刻,检测到 0,则该位置位。顺次读取寄存器 SCISRl 和

SCIDR 将清除 FE 标志。 0:检测到停止位。

1:在预期的停止位处检测到 0。

PF:奇偶错误标志。指示收到数据的奇偶性与校验位是否一致。奇偶校验允许(PE=1)时,该标志才有意

义。所要求的奇偶性由 SC0CR1 中的 PT 位决定。 0:奇偶校验正确。 1:奇偶校验错误。

【说明】该寄存器显示SCI运行情况,收发数据是否满、空,是否出错等

5、状态寄存器2(SCISR2)

BRK13:中止符长度控制位。

0:中止符长度为 10 或 11 位。 1:中止符长度为 13 或 14 位。

TXDIR:单线模式下发送管脚数据方向控制位。

0:单线模式下 TxD 脚用于输入。 1:单线模式下 TxD 脚用于输出。

RAF:接收器活动标志位。反映接收器是否处于活动状态。在搜索起始位的 RT1 期间该位置 1,当接

收器器检测到空闲状态或者出现一个伪起始位(通常由于噪 声或波特率匹配错误引起)时,该位清 0。

0:没有接收操作。 1:正在接收。

2、数据寄存器(SCIDRH、SCIDRL)

SCI 内部分别设有发送和接收两个数据寄存器,其低位都通过 SCIDRL 访 问,读操作返回接收数据寄存器 RDR 的内容,写操作数据置入发送数据寄存器。TDR。

当 M=1 即运行在 9 位数据模式时,SCIDRL 和 SCIDRH 形成 9 位的 SCI数据字,这时必须先写入 SCIDRH,以便与低位字节(SCIDRL)一起进入发送移 位器。

当 M=0 即 SCI 只用于 7 位或 8 位的数据传送,可以只访问 SCIDRL。 当 PE=1 即奇偶校验允许时,奇偶校验位由硬件负责,无需软件干预。

R8:接收到的位 8,该位写操作无效。当 SCI 设置成 9 位数据运行模式时,该位是从串行数据流中

接收到的第 9 位。

当SCI 配置成9 位数据格式(M=1)时,R8 是接收数据的第九位。

T8:发送位 8,任何时候可写。当 SCI 设置成 9 位数据模式时,该位是送到串行 数据流的第 9 位。

该位不必为每个数据重新设置,每次发送可重复使用。 当SCI 配置成9 位数据格式(M=1)时,T8 是发送数据的第九位。 R[7:0]:接收位

接收的数据位。 T[7:0]:发送位

发送的数据位。

注意,读写时跟C语言的读写操作是一样的。需要定义字节型变量。 注:如果T8 的值和前面发送的一样,T8 就不必重新写入。直到重新写入不同的值,T8才被更新。在8 位数据模式中,只有SCIDRL 需要访问。在9 位数据模式中,用8 位写指令操作时,要先写SCIDRH,后写SCIDRL。

本文来源:https://www.bwwdw.com/article/o1lf.html

Top