【物联网通信接口】——串口通信

发表于 物联网知识  |  标签 , ,

概述

串口通信是物联网世界最通用通信接口,与串口相对于的是并口,从字面意思来看,串口类似我们谈话,是一个字一个字的说出来,而并口则类似图像,我们可以一下子收到整个画面的信息。在计算机中,并口可以一次同时通过8个数据线传输信息;而串口则只能通过一条线来传输信息和数据。因此理论上来讲,并口通信明显高于串口通信。

串口和并口通信区别

但是在现实情况下,为什么使用串口的设备更多,有几个原因,其一是,虽然并口同时可以传输8路或更多的数据,但是这些数据通道之间的相互高频电磁干扰,非常容易出错并影响了传输的速度;相反,串口通信没有干扰,传输错误重新再发一次就可以;其次并口通信非常占用硬件管脚资源。所以串行硬盘SATA1.0接口的速度可以达到150MB/s,SATA 2.0达到300MB/s,3.0更是可以提高到600MB/s;而并行的ATA也最大只能达到13MB/s.。主要原因就是在高频数据传输过程中的高频干扰影响了并行传输的速度。

数据通信,就是数据经过硬件或软件线路的连接信道,按照一定的通信协议规则,形成数据流从一方到另外一方的过程。计算机与各个终端,各个传感器之间都需要通信,常用的串行通信标准包括RS-232RS485RS422

EW500接线图

按照传输方向分类

全双工

类似高速公路双向4车道,允许数据同时在两个方向上传输。需要需要独立的接收端和发送端。

半双工

类似交通道路中的标识,会根据实际的拥堵情况而将某一个道路打开允许通行;而另外的时刻则只允许反向通行。串口全双工允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口

单工

在道路交通方面就是单行道的意思,串口单工的含义也是一样,顾名思义,单工就是数据只能在一个方向进行传输。

按照通信方式分类

同步通信

带时钟同步信号传输,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行数据的采样。同步信号传输的数据有效性较多,但也会出现一个问题,同步信号要求时钟频率有较小的误差。

异步通信

异步通信不使用时钟信号进行数据同步,直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等

按照电平标准分类

TTL标准

TTL表示晶体管-晶体管逻辑((Transistor-Transistor Logic)的电源工作电压是5V,所以TTL的电平是根据电源电压5V来定的;TTL电平逻辑规定对于输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.4V为逻辑0;对于输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)0.8V为逻辑0。

RS-232标准

RS-232电平为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0。

串口通信的几个参数

串口通信的数据,包含起始位、停止位、校验位和数据位。串口通信是一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。
每一个字符的前面都有一位起始位(低电平),字符本身由7位数据位组成,接着字符后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。实际传输时每一位的信号宽度与波特率有关,波特率越高,宽度越小,在进行传输之前,双方一定要使用同一个波特率设置。

串口协议的数据

波特率

波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。波特率表示单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,波特率即指一个单位时间内传输符号的个数。波特率可以被理解为一个设备在单位时间内发送(或接收)了多少码元的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)。串口典型的传输波特率600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps

数据位

这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)

停止位

用于表示单个数据包的最后一位。常用的值为1位,1.5位和2位。为什么要用这个停止位哪?因为数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了细微的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会,让数据传输更准确。

校验位

当然没有校验位也是可以的,不过校验位在串口通信中起到一种简单的检错方式。有四种检错方式:偶校验、奇校验、高电平校验和低电平校验。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高电平位和低电平位校验不会检查数据的准确性,只是简单通过逻辑高或者逻辑低校验,这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

串口接口通讯协议

串口通信协议包含系统间协议和内部系统协议;其中系统间协议用于通信两个不同设备的系统间协议,就像计算机与微控制器套件之间的通信一样,通过内部总线系统进行通信。常见的有UART协议、USART协议、USB协议。内部系统协议用于通信电路板上的两个设备,使用系统内协议,电路复杂度和功耗降低,成本降低,并且访问数据非常安全。常见的有I2C协议、SPI协议、CAN协议

世电科技相关串口产品

网站总编:

内容审核: