主要内容:串行口的结构、串行口的4 种工作方式、多机通信、波特率的制定方法、串行口的应用。
MCS-51单片机内部有一个全双工的异步串行口。
全双工:双机通信之间可以同时实现发送数据和接收数据。
异步:收发双方没有应用同一时钟来控制数据传送。传送的数据是以一帧一帧格式进行的。
串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。
简言之:串行通讯就是排成一队走,并行就是排成一列走。
同步串行通信(Synchronous serial communication)和异步串行通信(Asynchronous serial communication)
1)发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。这就是常说的同步串行通信(Synchronous serial communication),I2C、SPI等有时钟信号的协议,都属于这种通信方式。
2)发送端在数据发送之前和之后,通过特定形式的信号(例如START信号和STOP信号),告诉接收端,可以开始(或者停止)接收数据了。与此同时,收发两方会约定一个数据发送的速度(就是大名鼎鼎的波特率),发送端在发送START信号之后,就按照固定的节奏发送串行数据,与此同时,接收端在收到START信号之后,也按照固定的节奏接收串行数据。这就是常说的异步串行通信(Asynchronous serial communication)。
串行异步通信是单片机中常用的方式:
数据按帧传输,一包含 数据按帧传输,一包含 起始位 、数据校验和停止。依靠 起始位 、停止保持通信同步。因每帧传输都要建立一次同步 ,即需要额外两个附加位适用于工作速度较低的场合。
串行口的接口及基本原理:
该单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。
两个物理上独立地接收和发送缓冲器,可同时收、发数据(全双工)。两个缓冲区公用一个特殊功能寄存器字节地址:SBUF(99H),它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,