n76e003引脚图_N76E003之串口

本文详细介绍了N76E003单片机的串口特性,包括两个全双工串口的模式0至模式3,以及帧错误检测和多机通信功能。每个串口支持同步和异步模式,波特率可配置,并具备自动地址识别。还提供了串口0和串口1的初始化示例代码,以及波特率计算方法。此外,文章指出在ICP烧录时需要注意与串口1的引脚冲突问题。
摘要由CSDN通过智能技术生成

N76E003包含两个具备增强的自动地址识别和帧错误检测功能的全双工串口。由于两个串口的控制位是一样的,为了区分两个串口控制位,串口1的控制位以“_1”结尾(例如SCON_1)。下述详例以串口0为例。

每个串口都有一种同步工作模式:模式0。三种全双工异步模式:模式1,2,和3,这意味着收发可以同时连续进行。串口接收带有接收缓存,意味着在接收的前一个数据在被读取之前,串口就能接收第二个数据。接收和发送都是对SBUF进行操作访问,写入SBUF数据将直接传到发送寄存器,而读取SBUF是访问一个具有独立物理地址的接收寄存器。串口共有4种操作模式,任何一种模式,任何以操作SBUF的指令都将开始一次传输。注意,在使用串口功能前,串口所用管脚P0.7及 P0.6 (RXD 及 TXD引脚) 或者 P0.2及 P1.6 (RXD_1 及 TXD_1)必须先置1。N76E003提供更灵活的管脚配置,可将串口0的TXD及RXD通过UART0PX (AUXR1.2)更改位置。

13.1 模式 0

模式0是与外部设备进行同步通信的方式。在该模式下,串行数据由RXD脚进行收发,而TXD 脚用于产生移位时钟。这种方式下是以半双工的形式进行通信,每帧接收或发送8位数据。数据的最低位被最先发送或接收,波特率设置为FSYS/12(SM2 (SCON.5) 为 0) 或 FSYS/2 (SM2 为 1)。无论发送或接收数据,串行时钟将一直由MCU产生,因此串口模式 0 为主机模式。图13‑1 显示串口模式0传输时序图

如图所示,数据由双向RXD引脚进行收发,TXD引脚用来输出移位时钟。串口用移位时钟来一位位接收/发送数据与其他串口通讯。数据移入移出由最低位开始,波特率等于TXD的移位时钟频率。

向SBUF的写入数据将会开启发送,此时移位时钟启动数据从RXD脚串行移出,直至8位数据传输完成。传输标志位TI (SCON.1) 置 1表示 1 个字节数据传输完成。

当REN (SCON.4)=1 且 RI(SCON.0)=0 时串口开始接收数据。该条件告诉串口控制器有数据要移位进入。这个过程将持续到8位数据接收完毕,然后接收标志RI将置1。用户可以清零RI,以触发接收下一字节数据。

13.2 模式 1

模式1为异步全双工的工作方式。异步通讯模式通常用于PC间,调制解调器和其它类似接口间通讯。模式1下,10位数据通过TXD发送,通过RXD接收。10位数据组成如下:起始位(逻辑0),8位数据(最低位在前),停止位(逻辑1)。波特率由定时器1决定, SMOD (PCON.7) 设置为1可使波特率加倍.图13‑2为串口模式1发送和接收的时序图.

向SBUF写入数据开始传输,传输发生在TXD引脚上。首先是开始位,随后是8位数据位,最后是停止位。停止位出现后,TI(SCON.1)将置1 表示一个字节传输完成,所有位的传输速度取决于波特率。

当波特率发生器激活且REN(SCON.4) =1时,系统可以随时开始接收操作,当RXD脚上侦测到1到0的跳变时,数据将开始被采样并根据波特率的时钟频率接收,停止位必须符合一定的条件,接收到数据才能装载到SBUF:

1. RI (SCON.0) = 0

2. 要么SM2 (SCON.5) = 0, 要么接收到停止位STOP= 1,同时SM2 = 1且被寻址“Given”或符合广播地址(Broadcast address)匹配时。详见 13.7 多机通讯 和 13.8 自动地址识别。

如果上述条件满足,SBUF将加载到接收数据,RB8(SCON.2)为停止位,和RI将被置1,如果条件不满足,RI保持为0,没有数据加载。完成接收过程后,串口控制器将等待RXD脚上出现另一个1-0传输以开始新的数据接收。

13.3 模式 2

模式2为全双工异步通信, 与模式1不同的是,模式2是11位收发。数据由起始位(逻辑0),8位数据(最低位在前),第9位数据(TB8或RB8)和停止位(逻辑1)组成。第9位做奇偶校验位或多机通信时用来区分数据和地址。波特率是系统时钟频率的1/32 或1/64,由 SMOD位(PCON.7)来配置。图13‑3 指示串口模式2的传输时序。

向SBUF中写入数据启动TXD引脚发送,首先是开始位,然后是8位数据和TB8(SCON.3),最后是停止位,停止位发送后,TI将置位标志传输完成。

当REN=1时,串口可进行接收操作。RXD上的下降沿表示接收过程开始,数据根据所配置波特率进行采样和接收。停止位必须符合一定的条件,接收到数据才能装载到SBUF:

1. RI (SCON.0) = 0,

2. 要么SM2(SCON.5) = 0, 要么9th位 = 1同时 SM2 = 1且被寻址“Given”或符合广播地址(Broadcast address)匹配。详见 13.7 多机通讯 和 13.8 自动地址识别。

如果上述条件满足,则第9位数据进入RB8(SCON.2),8位数据进入SBUF,且RI置位。否则数据将不会装载,且RI保持为0。完成接收过程后,串口控制器等待RXD脚上的另一个1-0跳变以开始新的数据接收。

13.4 模式 3

除波特率外模式 3与模式 2相同。模式3采用定时器1的溢出率作为波特率时钟。图13‑3 模式3的传输时序,与模式2没有不同。

13.5 波特率

串口的不同模式的波特率时钟源和速度是完全不同的。详见表 13–3. 用于设定不同的波特率。

在模式1或模式3,串口0的波特率时钟源可通过BRCK (T3CON.5)选择定时器1或定时器3。对于串口1,只有采用定时器3作为唯一的时钟源。

当采用定时器1作为波特率发生器,需要关闭定时器1中断。定时器1可配置为计数器或是定时器,三种工作模式都可以。典型应用中,会配置为定时器工作在自动重装载模式(定时器模式2)。如果采用定时器3作为波特率发生器,同样也需要关闭定时器3中断。

模式1和模式3的波特率是可变的,取决于定时器1或2(003芯片)的溢出速率,就是说定时器1每溢出一次,串口发送一次数据。那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢?可以用公式去计算。

13.6 帧错误检测

帧错误检测用于异步模式 (模式 1, 2 和 3)。当由于总线干扰或争夺,导致没有检测到有效的停止位时,将发生帧错误。串口可以检测帧错误,并通过软件提示出错。

FE为帧错误标志,位于SCON第7位,这个位正常被用作为SM0 。当SMOD0 (PCON.6)置1时,帧错误检测功能打开,它作为FE标志。SM0和FE其实是相互独立的标志位。

当帧错误发生时࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值