单片机05:串行通信.ppt
文本预览下载声明
(2)同步通信。 同步通信中,在数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC来指示。 下图: 同步传送的数据格式 6.串行通信的过程及通信协议 两个通信设备在串行线路上实现成功的通信必须解决两个问题:一是串-并/并-串的转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;二是设备同步,即发送设备和接收设备的工作节拍相同,以确保发送数据在接收端被正确读出。 (1)串-并/并-串的转换。 串行通信是将计算机内部的并行数据转换成串行数据,将其通过一根通信线传送,并将接收的串行数据再转换成并行数据送到计算机中。 在计算机发送串行数据之前,计算机内部的并行数据被送入移位寄存器并一位一位地移出,将并行数据转换成串行数据。在接收数据时,来自通信线路的串行数据被送入移位寄存器,满8位后并行送到计算机内部。在串行通信控制电路中,串-并/并-串转换逻辑被集成在串行异步通信控制器芯片中。 (2)设备同步。 进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据脉冲。设备同步对通信双方有两个共同要求:一是通信双方必须采用统一的编码方法;二是通信双方必须能产生相同的传送速率。 (3)串行通信协议。 通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信方式必须遵从统一的通信协议。串行通信协议包括同步协议和异步协议两种,本书只讨论异步串行通信协议。 5.1.2 串行接口电路: 串行数据通信主要有两个技术问题:一个是数据传送, 另一个则是数据转换。 (2)SM2—多机通信控制位。 因多机通信是在方式2和方式3下进行,因此SM2位主要用于方式2和方式3。当串行口以方式2或方式3接收时,如SM2=l,则只有当接收到的第9位数据 (RB8)为“l”,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的前8位数据丢弃。而当SM2=0时,则不论第9位数据为“0”还是为“l”,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为“0”。 (3)REN—允许接收位。 REN位用于对串行数据的接收进行控制: REN=0 禁止接收 REN=1 允许接收 该位由软件置位或复位。 (4)TB8—发送数据位8。 在方式2和方式3时,TB8的内容是要发送的第9位数据,其值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校验位使用;在多机通信中,常以TB8位的状态表示主机发送的是地址帧还是数据帧,且一般约定:TB8=0为数据帧,TB8=1为地址帧。 (5)RB8—接收数据位8。 在方式2或方式3时,RB8存放接收到的第9位数据,代表着接收数据的某种特征 (与TB8的功能类似),故应根据其状态对接收数据进行操作。 (6)TI—发送中断标志。 当方式0时,发送完第8位数据后,该位由硬件置位。在其他方式下,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI位由软件清“0”。 (7)RI—接收中断标志。 当方式0时,接收完第8位数据后,该位由硬件置位。在其他方式下。当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。RI位由软件清“0”。 5.3.1 工作方式0及应用 在方式0下,是把串行口作为同步移位寄存器使用,数据发送与接收如下图: 【例5-1】 利用串行口工作方式0扩展出8位并行I/O口,驱动共阳极LED数码管显示0~9。电路连接如图5-14。 把89C51串行口8位状态码串行移位输出后,TI置“l”,把Tl作为状态查询标志,则使用查询方法完成的串行口和CD4094驱动共阳极LED数码管(查表)显示0-9数字的参考 子程序如下: DSPLY:MOV DPTR, #TABLE MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI RET TABLE:DB 0C0H,0F9H,0A4H 0B0H,99H DB 92H,82H,0F8H,80H,90H 【例5-2】用51单片机串行口外加移位
显示全部