前言
本次讲解STC8A8K64S4A12系列单片机串行口知识点。
一、关于通讯和通信的区别
目前,这两个词的使用频率相当高,但词义范围尚没有明确统一的界定。
关于通讯:“通讯”传统意义上主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其网络的构成主要由电子设备系统和无线电系统构成,传输和处理的信号是模拟的。所以,“通讯”一词应特指采用电报、电话等媒体传输系统实现上述媒体信息传输的过程。
关于通信:“通信”仅指数据通信,即通过计算机网络系统和数据通信系统实现数据的端到端传输。通信的“信”指信息(Information),信息的载体是二进制的数据,是数字的。数据则是可以用来表达传统媒体形式的信息,如声音、图像、动画等。
由于旧的“通讯”系统早已实现了数字化、计算机网络化改造,因此可以认为目前的数据通信系统已涵盖了过去的“通讯”系统的功能。按照这个结论,目前应多使用“通信”一词表达互联网间与局域网内的数据传输,尽量少用或不用“通讯”一词,以免引起概念上的误解。
二、关于串行通信和串口通信的区别
通常我们会在各种文档描述中看到串行通信和串口通信的术语,虽然只有一字之差,但表示的含义却差别很大。
串行通信:
串行通信的含义:串行通信是一种概念,是相对并行通信而言的。串行通信指一比特一比特的收发数据,而并行通信可一次性收发多个比特的数据。
常见串行通信:UART,I2C,SPI等等。
串口通信:
串口通信的含义:串口通信是一种通信手段,是相对于以太网方式、红外方式、蓝牙方式等而言的。
常见串口通信:某种意义上而言,串口通信指的就是单片机或者说微处理器的UART串行口通信。
三、关于串行通信和并行通信的区别
串行通信和并行通信的概念:
串行通信:使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
并行通信:如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。
串行通信和并行通信优缺点对比:
传输速率:并行通信传输速率比串行通信传输速率快得多。
通信距离:并行通信不支持远距离通信,串行通信可支持远距离通信。
抗干扰性:串行通信抗干扰性比并行通信强,稳定性高。
通信成本:串口通信成本低,并行通信成本高。
下面给出串行通信和并行通信的示意图:
☆注:串行通信是先发送一个字节的低位,再发送一个字节的高位。
四、关于单工通信、半双工通信和全双工通信
单工通信:
概念:只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。
举例:寻呼机。
半双工通信:
概念:允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。
举例:无线对讲机。
全双工通信:
概念:允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。
举例:电话机、手机。
五、关于同步通信和异步通信
同步通信:
概念:同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
同步通信示意图如下。
异步通信:
概念:异步通信是一种很常用的通信方式。相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
异步通信示意图如下。
六、关于同步通信和异步通信的比
对比同步通信和异步通信:
同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
同步通信的单位是帧,异步通信的单位是字符。
同步通信效率高,异步通信效率较低。
同步通信较复杂,通信的双方必须使用同一时钟;异步通信简单,双方时钟可允许一定误差。
同步通信可用于点对多点,异步通信只适用于点对点。
七、几种常见电平信号的区别
有几种电平信号大家常常听说,比如TTL电平、RS232电平和RS485电平等。下面介绍下三种电平之间的区别。
三种电平信号都是基于数字信号而言的,数字信号要么是逻辑“1”,要么是逻辑“0”。在表示逻辑“1”或逻辑“0”时会对应不同的电平值,而使用的是TTL电平、RS232电平还是RS485电平正是决定了这个不同的电平值。
TTL( Transistor-Transistor Logic )电平信号:应用最广泛的电平信号,
高电平等价于逻辑“1”,低电平等价于逻辑“0”。一般规定输出高电平范围2.4V5V,输出低电平0V0.4V。
RS232电平信号:低电平等价于逻辑“1”,高电平等价于逻辑“0”。一般规定输出高电平范围+3V+15V,输出低电平-15V-3V。
RS485电平信号:低电平等价于逻辑“1”,高电平等价于逻辑“0”。一般规定输出高电平范围+2V+6V,输出低电平-6V-2V 。
八、单片机串行口介绍
单片机串行口:串行口是单片机的最基本外设之一,不同型号单片机所带串行口并不一致,比如多数51单片机所带串行口是UART,没有USART。STM32所带串行口有UART,也有USART。具体根据所选单片机型号而定。
下面介绍UART和USART的概念。
UART(全称是Universal Asynchronous Receiver and Transmitter) :通用异步收发器。
USART(全称是Universal Synchronous Asynchronous Receiver and Transmitter):通用同步异步收发器。
USART和UART的区别:
UART只能用于异步串行通信, USART既可以用于同步串行通信,也能用于异步串行通信。
当USART用于异步串行通信时,和UART 没有区别。
九、关于串口流控的介绍
串口流控:提供了由于某种原因不能进行通信时阻塞通信的一种机制。
串口流控分类:实现串口流控可采用硬件流控和软件流控两种方式。
硬件流控:使用串行电缆控制线上的电压信号来控制数据的发送和接收。硬件流控有两种方式:DTR/DSR方式和RTS/CTS方式。
软件流控:使用数据流中的两个特殊的字符,XOFF和XON,来控制数据的接收和发送。
注意事项:
软件流控一般是在串行口没有硬件流控的条件下而使用的。换句话说,如果串口有硬件流控,是不会使用软件流控的。
一般单片机串行口如果有硬件流控引脚的话,常见的配置是除了有串行口必要的RXD和TXD引脚外,还有RTS和CTS 两个信号引脚。
十、关于单片机串行口的引脚
单片机通常会有多组串行口可供使用,而针对一组串行口可能会因其是否有硬件流控、是否有同步功能而有不同的引脚数:
不带硬件流控的UART接口。
序号引脚名功能描述
1UART_RX串口接收
2UART_TX串口发送
不带硬件流控的USART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_CK串口同步时钟线
☆注:带硬件流控单片机串行口USART会有上面5个引脚,实际使用时如果用不到串口流控,可将USART_RTS和USART_CTS作为普通IO口使用。如果不用串口同步通信,可将USART_CK作为普通IO口使用。换句话说,该USART串行口可只使用USART_RX和USART_TX两个引脚进行串口异步通信。
带硬件流控的UART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_RTS串口硬件流控RTS
4USUART_CTS串口硬件流控CTS
☆注:带硬件流控单片机串行口UART会有上面4个引脚,实际使用时如果用不到串口流控,可只使用UART_RX和UART_TX两个引脚。此时,UART_RTS和UART_CTS可作为普通IO口使用。
带硬件流控的USART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_CK串口同步时钟线
4USUART_RTS串口硬件流控RTS
5USUART_CTS串口硬件流控CTS
☆注:带硬件流控单片机串行口USART会有上面5个引脚,实际使用时如果用不到串口流控,可将USART_RTS和USART_CTS作为普通IO口使用。如果不用串口同步通信,可将USART_CK作为普通IO口使用。换句话说,该USART串行口可只使用USART_RX和USART_TX两个引脚进行串口异步通信。
十一、关于单片机串行口的应用
串行口的常见应用:
单片机串行口外接RS232芯片(MAX232/SP3232等)可扩展为RS232接口。
单片机串行口外接RS485芯片(MAX485/SP485等) 可扩展为RS485接口。
单片机串行口外接USB转串口芯片(CH340等)可扩展为USB接口。
单片机串行口外接TTL电平的相应功能模块则就具有了模块的功能,如HC-08蓝牙串口模块则单片机可实现蓝牙BLE通信,如外接WiFi模块ESP8266则单片机可实现无线WiFi通信,如外接PM2.5的模块,则单片机可实现对环境PM2.5的采集。
以上是单片机串行口的最常见应用,基础而实用,大家务必学好单片机串行口的硬件和软件设计。
十二、单片机串行口的应用
总结
以上就是今天要讲的内容!