内江移动网站建设,潍坊网站建设方案书,建设网站要多少费用,中山的网站建设公司目录
通信的基本概念
通信的方式
1.按照数据传送的方式#xff0c;可分为串行通信和并行通信。
1.1串行通信
1.2并行通信
2.按照通信的数据同步方式#xff0c;又可以分为异步通信和同步通信。
2.1 异步通信
2.2同步通信
3.按照数据的传输方向#xff0c;又可以分为…目录
通信的基本概念
通信的方式
1.按照数据传送的方式可分为串行通信和并行通信。
1.1串行通信
1.2并行通信
2.按照通信的数据同步方式又可以分为异步通信和同步通信。
2.1 异步通信
2.2同步通信
3.按照数据的传输方向又可以分为单工通信半双工通信还有全双工通信。
3.1单工通信
3.2半双工通信
3.3全双工通信
4.总线
通信速率
串口通信简介
串口通信
串口
接口标准和接口种类
接口标准
接口种类
常见通信接口
接口上的引脚定义
逻辑电平
串口数据收发线交叉连接
通信协议 通信的基本概念
随着单片机的系统的广泛应用和计算机网络的技术普及单片机的通信功能越来越重要。 像在WiFi、蓝牙、GPS、GSM和GPRS这些应用当中充分体现了串口通信的重要性。 学习51单片机的重点难点主要体现在51的中断、定时计数器、以及串口通信这些功能。中断、定时计数器再前四节已经搞定本节就来学习一下串口通信。 下面我们就来看一下串口通信相关的一些基本概念。 我们知道51单片机不仅可以实现串口通信还可以通过IO口模拟实现多种其他的一些通信比如SPIIIC等等学习这些通信前我们就很有必要了解一下通信的一些基本概念。 通信的方式
可以分为很多种
按照数据传送的方式可分为串行通信和并行通信。
按照通信的数据同步方式又可以分为异步通信和同步通信。 按照数据的传输方向又可以分为单工通信半双工通信还有全双工通信。
下面就逐个来介绍。 1.按照数据传送的方式可分为串行通信和并行通信。
1.1串行通信
在串行通信当中是指使用一条数据线将数据一位一位的一次进行传输每一位数据占据固定的时间长度。只需要很少的几条线就可以在系统之间进行数据交换特别适用于计算机与计算机计算机与外部设备的远距离的传输这样可以大大的节约成本因为它只需要很少的线。
那像在数据传输过程当中它的数据是依靠一根线来进行一位一位的传输它优先传输低位D0最后在传输高位D7字节的数据就通过8次传输到接收设备当中。 串行通信它有一个特点就是传输线很少从这张图当中也可以看到它只需要一根线对于长距离传输的这些应用它的成本是非常低的。 可以利用电话线或者是一些网线这些现成的设备来进行传输但是传输的控制以及稳定性就相对来说要复杂一些。 因为你这个数据要在一条数据线上面进行传输你需要对它的数据进行处理一位的一位的发送那相比于并行通信来说相对来说要复杂一点。
1.2并行通信
那我们再来看一下并行通信。
它通常是将这个数据的字节的各个位一个字节为8位按照多条数据线同时进行传输通常是有8位16位32位的数据一起传输。
那像我们这张图当中要传输一个字节的数据那这里就有8根并行线接到接收设备一个字节就是通过每一根线传输一位总共就8位一次性传输过去。 这种通信方式的特点是控制简单传输速度快。一个字节一下就传过去了不需要一位一位的传。
我们前面的串行通信是一个字节分8次一次一位的传输而我们并行通信是8位同时传输这样的速度比串行通信肯定是更快的。
但是如果说由于这个传输线比较多那对于长距离传输的一些应用就增加了比较大的成本。
比如说我们在长距离传输的时候如果使用串行通信的时候它只要一根数据线而这个并行通信它需要8根所以成本相对于串行通信来说比较高的。并且我们长距离传输的时候接收方的各位同时接收存在困难所以它的抗干扰能力就要差一些。
2.按照通信的数据同步方式又可以分为异步通信和同步通信。
2.1 异步通信
异步通信通信双方各自约定通信速率
异步通信是指通信的发送和接收设备使用各自的时钟控制数据的发送和接收过程为了使双方收发协调要求发送的设备和接收的设备的时钟尽可能一致。 这是什么意思因为它们要使用各自的时钟来控制它的数据发送和接收如果说你们这两个设备发送设备和接收设备的时钟都不相同的话那么它接收的数据也可能是错的或者是乱的所以在异步通信的过程当中要求发送设备和接收设备它的时钟尽可能要一致。
异步通信是以字符为单位进行传输的字符与字符之间的间隙是任意的。但每个字符中的个位是以固定的时间传输也就是说字符之间的间隔时间或者说间隙是任意的。 但是它字符之间不一定有位间隔的整数倍关系但是同一个字符内的各个位之间的间隙是位间隔的整数倍关系。
我们来看一下对于异步通信来说字符帧的格式是这样的。
有起始位然后紧接着跟着八个数据位它也有校验位和停止位这是一帧一帧的字符数据总共是11个也就是说字符帧通常含有11个位。 异步通信的特点是不要求收发双方的时钟严格一致实现容易。
比如说我们发送设备的时钟的频率假设是11.0592那这个接收设备不是说一定要按照11.0592兆它可以有一定的有误差范围这样对于我们接收设备来说实现这么大的时钟就比较容易一点而不是精确设备开销也较小因为它采用的是一位一位的进行传输但每个字符之间要附加2~3个位用来作为起始、校验停止这些位。 各帧与各帧之间因为有了间隔所以它的传出效率不是很高。
因为我们可以看到这张图在每一个字符与字符之间这个间隔时间是不同的。因为有了这个间隔所以在传输数据的时候它的效率就不是很高。
2.2同步通信
同步通信通信双方靠一根时钟线来约定通信速率
同步通信是要建立发送方时钟对接收方时钟直接的控制从这张图当中我们可以看到比如说我们这里计算机甲是发送方计算机乙是接收方那么发送方的时钟是直接控制接收方的所以让我们这双方的时钟完全相同也就是同步这就是同步通信。此时传输数据的位之间的距离是位间隔的整数倍。
同时传输的字符间是不留间隙的也就保持了这个位同步的关系。
发送方对接收方的同步可以通过两种方式来实现像这像下面这两张图。 一种是外同步一种是自同步。
外同步是通过发送方的时钟来控制接收方的时钟这就可以达到外同步。
然后自同步的话是通过发送方控制发送的数据和时钟实现自同步。
通俗来讲外同步就是时钟线传输时钟信号数据线传输数据信号。自同步就是一条线上同时传输了时钟和数据信号。 异步和同步的概念可以说同步就像两人打电话异步就是发短信。这种同步通信我们用的不是很多主要是异步通信那一块像串口通信它就是异步的通信。 3.按照数据的传输方向又可以分为单工通信半双工通信还有全双工通信。
3.1单工通信
单工通信是指数据传输仅按照方向来进行传输它不能实现反向的传输。
从这张图当中我们也可以看得到发送方是按照发送方到接收方的这个数据传输方向不能实现反方向的传输所以它是单工的通信。 3.2半双工通信
半双工的通信是数据传输可以按照两个方向进行传输一个是发送一个是接收。但它是需要进行分时才能进行发送和接收那从这张图我们也可以看到。 假如在时间1这个点是处于发送的状态就是从发送设备到接收设备传输数据如果在时间2的时候要接收数据那从接收设备来发送数据到我们的发送设备从而接收。所以在发送和接收这一块它的时间点是不一样的也就进行了分时进行传输。
3.3全双工通信
全双工的通信是指数据可以同时进行两个方向的传输。
比如说我们从这张图当中可以看到它可以既可以作为发送又可以作为接收可以同时进行。 补充
4.总线
总线就是连接各个设备的数据传输线路类似于一条马路把路边各住户连接起来使住户可以相互交流 通信速率
下面我们来介绍概念通信速率。
衡量通信性能的重要指标参数就是这个通信的速率通常也叫比特率。 比特率是每秒钟传输二进制代码的位数它的单位是位/秒。 比如说我们每秒钟传输240个字符。按照前面的格式字符它包含起始位、停止位然后中间有八个数据位假如没有校验位的话那么1字符的一帧数据含有10个位那比特率是多少结果是2400bps。 在后面我们还会遇到一个概念就是波特率。 通常我们接触比较多的是波特率我们可以把它看成是比特率。
波特率表示每秒钟传输了多少个码元串口通信的速率发送和接收各数据位的间隔时间。而比特率是每秒钟传输二进制代码的位数。 这个码元是通信信号调试的概念通信中常用的时间间隔相同的符号表示二进制的数字这样的信号称为码元。
第一种情况比如常见通信中用0V表示数字05V表示数字1每个码元可以表示两种状态0和1所以一个码元也就等于一个二进制的比特位。此时波特率的大小跟比特率的大小是一致的。
第二种情况如果在通信传输过程当中用0V2V4V6V等等来表示二进制的话那表示0V就是002V是014V是106V是11每个码元可以表示四种状态也就是两个二进制的比特位00 01 10 11就是用两个比特位来表示一个码元。所以码元是二进制的比特位的一半这个时候的波特率就是比特率的一半。 我们常见的通信当中码元是表示两种状态也就是0和1跟我们的二进制位是一样的。所以我们也可以把波特率看成是比特率。在我们常见的通信当中基本上是这样的所以我们在通信应用当中我们通常也叫波特率很少听到比特率这种叫法。大家要知道它们的区别。 串口通信简介
接下来我们来看一下51单片机的串口的介绍首先我们来看一下串口通信的简介。
串口通信
是指外设和计算机间通过数据信号线 、地线、控制线等按位进行传输数据的一种通讯方式。 串口
是一种应用十分广泛的通讯接口串口成本低、容易使用、通信线路简单可实现两个设备的互相通信。
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信极大的扩展了单片机的应用范围增强了单片机系统的硬件实力。 51单片机内部自带UARTUniversal Asynchronous Receiver Transmitter通用异步收发器可实现单片机的串口通信。
串口是一种接口标准。它规定了接口的电器标准没有规定接口插件的电缆以及使用的协议它规定的是接口标准厂家必须按照这个接口标准来做串口的标准接口。
所以在我们的串口设备当中通常会见到它的这个接口比如我们下面这张图当中的DB9或者是DB25的这种标准接口。 不过我们现在应用比较多的是这种DB9的孔。 接口标准和接口种类
接口标准
下面我们来看一下接口标准。
串口通信的结构标准有很多RS232C、RS232、RS422A、RS485等等常用的是这种RS232和RS485。
RS232其实就是在RS232C的基础上的改进版本它的原理是一样的那所以这里我们就以RS232C这个接口进行讲解。
RS232C是美国电子工业协会在1969年修订的RS232C的标准定义了数据终端设备与数据通信设备之间的物理接口标准规定了使用25帧的连接器我们简称DB25。 连接器的尺寸以及每个插针的排列位置都有明确的定义这个就是DB25的接口标准的图。 这个针脚的排序在途中已经标出来了第一行从左1号开始到13号第二行从左往右是14~25号。 现在还有一种九针的RS232C非标准连接接口我们通常也称为DB9。 我们都见到的大多数设备是使用DB9的这种接口DB25和DB9这种接口的接头有公头和母头之分其中带针状的是公头带孔状的这个接头是母头下面这张图我们可以看到。 公头和母头它的管脚顺序是不一样的从这张图当中我们可以看得到排序方式正好是相反的。所以自己在做这个封装图的时候要注意你的设备是使用公头还是母头。这种接口现在多见于台式电脑。
接口种类
其实现在还有一种常见的接口叫做VGA接口。VGA接口共有15针分成3排每排5个孔显卡上应用最为广泛的接口类型。VGA接口是传输视频的英文名叫做Video Graphics Array视频图形阵列。和DB9用来传输数据的外观长得有点像但是完全不同的接口不要搞混了。 现在笔记本电脑大部分都是USB接口 左边插USB右边就是串口线路就可以和单片机连接
我们开发板上的这个位置就是USB和串口之间电平的相互转换转换之后就可以在电脑上使用串口这样的功能了。 然后电脑端也就是STC那个软件上有一个东西叫串口助手来帮助我们收发数据显示。 常见通信接口
在这里总结一下常见通信接口相互比较一下 PS
UART通用异步收发器串口异步串口。
可挂载多个设备特点的接口都可以称为总线
IIC一般都读作 I方C总线
SPI总线
1-Wire读作one-wire单总线
CAN总线一般应用在汽车领域把很多连在一起的传感器用CAN总线挂起来用差分信号传输传输距离很远稳定性也很好同步的通信方式一般都带有一个时钟线SCL/SCLK异步的通信方式一般都不带时钟线。
下面分别介绍表格中的几种通信接口
51单片机的UART
STC89C52有1个UART
STC89C52的UART有四种工作模式
模式0同步移位寄存器
模式18位UART波特率可变常用
模式29位UART波特率固定
模式39位UART波特率可变 接口上的引脚定义
接口上的脚都有明确的定义我们来看一下。 下面这张图是RS-232C接口标准的引脚定义。 图中带括号的是DB9的脚位而没有带括号的是DB25的脚位。 这么多脚是不是所有的脚位都用上了在串口通信当中我们通常一般只会用到三个脚哪三个脚串行发送和接收肯定是必不可少的2脚和3脚都会用到然后还有GND也就是信号地脚5脚。 所以通常我们在串口通信当中应用的比较多的三个脚就是2、3、5也就是TXD、RXD和GND。
尤其是GND如果由于在做串口通信的时候它只顾发送和接收这两个脚位的连接忽略了GND直接会导致通信两设备之间没有共地通信可能就会出现错误所以在串口通信当中一定要记住设备之间要进行共地也就是要连接这个GND 5脚。
逻辑电平
在RS-232C标准当中它对逻辑电平也进行了规定。
比如在TXD和RXD数据线上面
逻辑1电平范围是-3~15V的电压范围。 逻辑0的话它是3V到15V的电压。
这个跟我们前面学习单片机的高电平1是5V0是0V是不一样的。
我们单片机通常是TTL的电平所以我们在使用51单片机的时候要将TTL电平跟RS-232的电平进行转换的话它需要转换的东西就是MAX232电平转换芯片。
因为我们的串口通信是RS232的电平而我们单片机的串口电平是TTL的电平所以通过MAX232这个芯片可以将RS232电平跟TTL的电平进行转换这样就可以实现通信了。 电平标准是数据1和数据0的表达方式是传输线缆中人为规定的电压与数据的对应关系串口常用的电平标准有如下三种
TTL电平5V表示10V表示0单片机走的电平
RS232电平-3~-15V表示13~15V表示0比如DB9接口走的电平
以上两种电平的传输距离也才十多米。
RS485电平两线压差两根线之间的电压差2~6V表示1-2~-6V表示0差分信号
RS485电平能传一千米以上。 串口数据收发线交叉连接
在串口通信当中我们还要注意的一点是串口数据收发线要进行交叉的连接。 何为交叉连接
是指在发送方和接收方发送方的TXDTransmit exchange data要连接接收方的接收管脚RXD我发送的数据才能到达接收设备的接收引脚。 同样的我们发送方的接收引脚要连接接收方的发送引脚。发送数据就直接传到我们的接收设备当中。 这就是交叉的连接。 还有一点就是要注意两个设备之间要进行共GND。 简单双向串口通信有两根通信线发送端TXD和接收端RXD
TXD与RXD要交叉连接
当只需单向的数据传输时可以直接一根通信线
当电平标准不一致时需要加电平转换芯片 PSVCC是供电的电源的供电电压如果设备1和设备2都有独立电源的话可以不接VCC如果比如说设备2是一个模块的话它不会独立供电那么设备1需要向设备2供电也就是接个VCC。VCC和GND其实就是电源的正负极通信就是中间两根线。 通信协议
在前面我们介绍了RS-232C没有规定协议的标准但是通常我们做串口通信的时候是按照96-N-8-1的格式。 这个96是代表我们的通信波特率是9600BPS也就是每秒钟传输的二进制的位数9600 bps。因为通常使用的是异步串口通信也就是说没有时钟线两个设备要进行通信的话必须要保持一致的波特率。当然波特率不一定必须要9600也可以是4800还可以是115200。当然51单片机它也跑不到这么高我们是只举例子。比如我们发送方使用的是9600我们在写程序的时候接收方的波特率也必须是9600。保持波动率是一致的。 然后这个N代表的是无校验位由于在串口通信当中相对更容易受到外部的干扰导致传输数据出现偏差可以在传输过程当中加上这个校验位来解决这个问题。
校验方法有奇校验还有偶校验以及0校验也是无校验。
通常我们在串口通信当中用的比较多的是无校验也就是N。 然后
这个8是指传输的数据位通常是8位也就是一个字节。在数据格式前面我们介绍过异步通信有有5位也有6位、7位当然我们用的比较多的是8位也正好对应我们一个字节。
然后这个1代表的是停止位串口通信的数据包从起始信号开始直到停止信号结束数据包的起始信号是由逻辑电平0这个数据位表示数据包停止位信号可以是0.511.52两个逻辑1的数据位表示只要双方约定一致就可以了。
我们通常使用的是一个停止位所以通常的这个协议标准我们是按照这个96-N-8-1的这种格式。其中96我们通常可以更改它的波动率后面的几种我们通常是按照N-8-1。 没讲完下一篇继续.....
单片机学习笔记---串口通信2-CSDN博客