云汉达人
本帖最后由 汉云 于 2016-10-21 16:09 编辑
答案出外:http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69162
1、 方式0:同步移位寄存器
方式0为半双工方式,又称为同步移位寄存器输出方式。在这种方式下,TxD引脚输出同步移位时钟,RxD用于发送和接收串行数据。串行口输出端可直接与移位寄存器相连,也可以用作扩展I/O口或外接同步输入输出设备。该方式下的数据帧为8位,低位在先,高位在后,没有起始位和停止位。串行口1方式0的功能结构及时序图如下图所示:
2、 UART方式
1) 方式1:8位可变波特率方式
方式1提供异步全双工通信,适合于点到点的通信。每个数据帧长度为10位:1个起始位(低电平)、8个数据位和1个停止位(高电平)。传输的数据首先是起始位,然后是8位数据(低位在前),最后一位是停止位。起始位和停止位是在发送时自动插入的。接收时,停止位进入SCON的RB8位。TxD为发送数据引脚,RxD为接收数据引脚。工作方式1的功能结构及接收/发送时序图如下图所示:
2) 串行口方式2:9位固定波特率方式
方式2提供异步全双工通信,适合于固定波特率的多机通信。每个数据字节长度为11位,1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。与方式1相比,没帧增加了一个第9位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。
串行通信方式2的功能结构图及其接收/发送时序图如下所示:
3)串行口方式3:9位可变波特率方式
该方式也适合与多机通信。方式3的每个数据字节长度为11位:1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。
方式3和方式1一样,其波特率可通过软件对定时器/计数器1或定时器2的设置进行波特率的选择,是可变的。方式3的波特率计算方法与方式1的方法相同,在此就不再赘述。
串行口工作方式3的功能结构及其数据接收/发送时序图如下图所示:
下面给出串行口1工作方式一览表:
从上表可以看出,
方式1与方式2、3的区别如下:
1方式1中,数据字是8位异步通信接口,串行口发送/接收共10位信息,第0位为起始位,1-8位是数据位,最后是停止位;方式2、3中,数据字为9位的异步通信接口,1位起始位,8位数据位,第9位是可程控位1或0,最后是停止位,共有11位信息。
2方式1、3的波特率是可变的,其波特率取决于定时器1的溢出率或定时器T2的溢出率和特殊功能寄存器PCON中的SMOD位的值,PCON寄存器中的SMOD是1还是0决定波特率是否加倍。
此外,方式2和方式3中还可以通过控制TB8位的方法,使其传送中附加的第9位数据可以作为多机通信中的地址/数据标志位,或作为数据的奇偶校验位。若以TB8作为奇偶校验位,在数据写入SBUF之前,先将数据的奇偶位写入TB8。
编写接收程序时,均应使REN=1,允许串行接收。只有在最后的移位脉冲产生并同时满足下列条件时,接收数据才会装入SBUF和RB8并置位RI:
1对于方式1:SM2=0或接收到的停止位=1;
2对于方式2、3:SM2=0或接收到的第9个数据=1。
云汉达人
本帖最后由 汉云 于 2016-10-21 16:09 编辑
答案出外:http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69162
1、 方式0:同步移位寄存器
方式0为半双工方式,又称为同步移位寄存器输出方式。在这种方式下,TxD引脚输出同步移位时钟,RxD用于发送和接收串行数据。串行口输出端可直接与移位寄存器相连,也可以用作扩展I/O口或外接同步输入输出设备。该方式下的数据帧为8位,低位在先,高位在后,没有起始位和停止位。串行口1方式0的功能结构及时序图如下图所示:
2、 UART方式
1) 方式1:8位可变波特率方式
方式1提供异步全双工通信,适合于点到点的通信。每个数据帧长度为10位:1个起始位(低电平)、8个数据位和1个停止位(高电平)。传输的数据首先是起始位,然后是8位数据(低位在前),最后一位是停止位。起始位和停止位是在发送时自动插入的。接收时,停止位进入SCON的RB8位。TxD为发送数据引脚,RxD为接收数据引脚。工作方式1的功能结构及接收/发送时序图如下图所示:
2) 串行口方式2:9位固定波特率方式
方式2提供异步全双工通信,适合于固定波特率的多机通信。每个数据字节长度为11位,1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。与方式1相比,没帧增加了一个第9位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。
串行通信方式2的功能结构图及其接收/发送时序图如下所示:
3)串行口方式3:9位可变波特率方式
该方式也适合与多机通信。方式3的每个数据字节长度为11位:1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。
方式3和方式1一样,其波特率可通过软件对定时器/计数器1或定时器2的设置进行波特率的选择,是可变的。方式3的波特率计算方法与方式1的方法相同,在此就不再赘述。
串行口工作方式3的功能结构及其数据接收/发送时序图如下图所示:
下面给出串行口1工作方式一览表:
从上表可以看出,
方式1与方式2、3的区别如下:
1方式1中,数据字是8位异步通信接口,串行口发送/接收共10位信息,第0位为起始位,1-8位是数据位,最后是停止位;方式2、3中,数据字为9位的异步通信接口,1位起始位,8位数据位,第9位是可程控位1或0,最后是停止位,共有11位信息。
2方式1、3的波特率是可变的,其波特率取决于定时器1的溢出率或定时器T2的溢出率和特殊功能寄存器PCON中的SMOD位的值,PCON寄存器中的SMOD是1还是0决定波特率是否加倍。
此外,方式2和方式3中还可以通过控制TB8位的方法,使其传送中附加的第9位数据可以作为多机通信中的地址/数据标志位,或作为数据的奇偶校验位。若以TB8作为奇偶校验位,在数据写入SBUF之前,先将数据的奇偶位写入TB8。
编写接收程序时,均应使REN=1,允许串行接收。只有在最后的移位脉冲产生并同时满足下列条件时,接收数据才会装入SBUF和RB8并置位RI:
1对于方式1:SM2=0或接收到的停止位=1;
2对于方式2、3:SM2=0或接收到的第9个数据=1。
举报