通信串口物理接口

白癜风医院石家庄哪家好 http://pf.39.net/bdfyy/qsnbdf/190328/7004389.html
一、数据通信分类

计算机的数据传送方式:有并行和串行两种。

并行传送的特点是;各数据位同时传送,传送速度快、效率高。但需要的数据线多,因此传送成本高。并行数据传送的距离通常小于30米。

串行传送的特点是;数据传送按位顺序进行,最少只需一根传输线即可完成,成本低,但速度慢。串行数据传送的距离可以从几米到几千公里。

按照通信方式分类:同步和异步

同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口

异步通信:不带时钟同步信号。比如:UART(通用异步收发器),单总线1-WIRE,CAN总线

在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。

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

在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。

二、IIC(同步通信)1、IIC概述(同步通信)

IIC总线是由Philips公司开发的一种简单、同步、半双工双向的两线式串口总线。

IIC只需要两根线进行通信,SDA(串行数据线)和SCL(串行时钟线)

SCL线——负责产生同步时钟脉冲。

SDA线——负责在设备间传输串行数据。该总线可以将多个I2C设备连接到该系统上。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备

主设备负责控制通信,通过对数据传输进行初始化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。

1)IIC速率三、SPI(同步全双工通信)

SPI是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线,SPI的速率比I2C高,一般可以到几十Mbps,不同的器件当主机和当作从机的速率一般不同。

SPI总线是同步、全双工双向的4线式串行接口总线。它是由“单个主设备+多个从设备”构成的系统。在系统中,只要任意时刻只有一个主设备是处于激活状态的,就可以存在多个SPI主设备。常运用于AD转换器、EEPROM、FLASH、实时时钟、数字信号处理器和数字信号解码器之间实现通信。为了实现通信,SPI共有4条信号线,分别是:

2)SPI典型应用

SPI最典型的应用是单主机单从机,下图是接线方式,当然也可以多从机

(1)主设备出、从设备入(MasterOutSlaveIn,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(SlaveInput/SlaveDataIn,SI/SDI)。(2)主设备入、从设备出(MasterInSlaveOut,MISO):由从设备向主设备传输数据的信号线,也称为从设备输出(SlaveOutput/SlaveDataOut,SO/SDO)。(3)串行时钟(SerialClock,SCLK):传输时钟信号的信号线。(4)从设备选择(SlaveSelect,SS):用于选择从设备的信号线,低电平有效。SPI的工作时序模式由CPOL(ClockPolarity,时钟极性)和CPHA(ClockPhase,时钟相位)之间的相位关系决定,CPOL表示时钟信号的初始电平的状态,CPOL为0表示时钟信号初始状态为低电平,为1表示时钟信号的初始电平是高电平。CPHA表示在哪个时钟沿采样数据,CPHA为0表示在首个时钟变化沿采样数据,而CPHA为1则表示在第二个时钟变化沿采样数据。

UART、SPI、I2C比较①I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有

双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。②SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。③I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。④UART一帧可以传5/6/7/8位,I2C必须是8位。I2C和SPI都从最高位开始传。⑤SPI用片选信号选择从机,I2C用地址选择从机。

四、CAN(同步通信)

CAN是ControllerAreaNetwork的简称,是一种有效支持分布式控制或实时控制的串行通信网络,现在是汽车网络的标准协议。

CAN是控制器局域网络的简称,是一种能够实现分布式实时控制的串行通信网络。CAN总线的功能复杂且智能。主要用于汽车通信。CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上欧姆的终端电阻。

1)CAN电平逻辑五、1-WIRE

??单总线是美国DALLAS公司推出的外围串行扩展总线技术,与SPI、I2C串行数据通信方式不同,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。

1)1-WIRE典型框图

如下是1-WIRE的典型框图,可以看到微处理器和1-WIRE器件之间只有一根线。

六、UART1)异步通信UART引脚连接方法:

UART是异步,全双工串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收。UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。

对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就可以进行TTL电平通信了。

若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS接口(通常为DB9封装),因此不能直接交叉连接。RS接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS接口直接通信,需要也将芯片的输入输出端口也电平转换成RS类型,再交叉连接。

经过电平转换后,芯片串口和RS的电平标准是不一样的:

单片机是TTL电平:+5V表示1,0V表示0

RS是负逻辑电平,-3to-15V为1,3to15V为0

RS-通讯协议标准串口的设备间通讯结构图如下:

所以单片机串口与PC串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的RS口之间,通过电平转换电路(如下面图中的Max芯片)实现TTL电平与RS电平之间的转换。下图中的P10,也就是上文中提到的DB9。

STM32的UART特点

全双工异步通信;

n分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s;

n可编程的数据字长度(8位或者9位);

n可配置的停止位(支持1或者2位停止位);

n可配置的使用DMA多缓冲器通信;

n单独的发送器和接收器使能位;

n检测标志:①接受缓冲器②发送缓冲器空③传输结束标志;

n多个带标志的中断源,触发中断;

n其他:校验控制,四个错误检测标志。

串口通信过程

STM32中UART参数

起始位:表示数据传输的开始,电平逻辑为“0”。数据位:可能值有5、6、7、8、9,表示传输这几个bit位数据。一般取值为8,因为一个ASCII字符值为8位。奇偶校验位:用于接收方对接收到的数据进行校验,校验“1”的位数为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。停止位:表示一帧数据的结束。电平逻辑为“1”。如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

UART串口通信的数据包以帧为单位,常用的帧结构为:1位起始位+8位数据位+1位奇偶校验位(可选)+1位停止位。如下图所示:

奇偶校验位分为奇校验和偶校验两种,是一种简单的数据误码校验方法。奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数;偶校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为偶数。

校验方法除了奇校验(odd)、偶校验(even)之外,还可以有:0校验(space)、1校验(mark)以及无校验(noparity)。0/1校验:不管有效数据中的内容是什么,校验位总为0或者1。

UART框图

这个框图分成上、中、下三个部分,具体的可以看《STM32中文参考手册》中的描述。

框图的上部分,数据从RX进入到接收移位寄存器,后进入到接收数据寄存器,最终供CPU或者DMA来进行读取;数据从CPU或者DMA传递过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过TX发送出去。

然而,UART的发送和接收都需要波特率来进行控制的,波特率是怎样控制的呢?

这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两者连接的又是接收器时钟、发送器时钟。也就是说,异步通信尽管没有时钟同步信号,但是在串口内部,是提供了时钟信号来进行控制的。而接收器时钟和发送器时钟又是由什么控制的呢?

可以看到,接收器时钟和发送器时钟又被连接到同一个控制单元,也就是说它们共用一个波特率发生器。同时也可以看到接收器时钟(发生器时钟)的计算方法、USRRTDIV的计算方法。

七、物理接口

串行端口称为串口,也称为串行通信接口,即COM端口。

UART口(嵌入式里面说的串口,一般是指UART口。4个pin(Vcc,GND,RX,TX),用TTL电平)、COM口、USB口、RJ45以太网口是指的物理接口形式(硬件)。

TTL、RS-(全双工)、RS-(半双工)RS-(全双工)是指的电平标准(电信号)。

RJ45:以太网最常用的接口。

使用国际连接器标准定义的8个位置(8针)。修改后的插孔或插头

单片机与PC通讯示意图如下

UART接口:通用异步收发器(UniversalAsynchronousReceiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块,UART有4个pin(VCC,GND,RX,TX),用的TTL电平,低电平为0(0V),高电平为1(3.3V或以上)。

COM口:即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。一般我们见到的是两种物理标准。D型9针插头,和4针杜邦头两种。这是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。由于是预留在电路板上的,协议可以有很多种,要看具体设备,应用了串口通信时序和RS的逻辑电平。

1)USB通用串行总线(UniversalSerialBus)缩写为USB,(物理接口)

是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术,特点是传输速度快,支持热插拔,可连接多个设备。

??我们在很多地方可以看到USB的身影,鼠标,键盘,手机充电器,现在几乎所有的电子充电设备都是USB接口,如下是各个USB的物理接口。

USB接口是计算机主板上的四针接口。2根信号线(D+、D-)和2根电源线(+、-)

最常见的的Type-A型USB接口定义如下。

Pin#

Name

颜色

1

VBUS/+5V

红色

2

D-/Data-/DM

白色

3

D+/Data+/DP

绿色

4

GND

黑色

USB电缆分为屏蔽型和非屏蔽型。屏蔽电缆的传输速度可以达到12Mbps,价格更高。

非屏蔽电缆的速度为1.5Mbps,但价格便宜。

2、USB速率

1MB/s=8Mbps(1个Byte等于8bit)

USB1.0低速(LowSpeed)传输速率为1.5Mbps;

USB1.1全速(FullSpeed)传输速率为12Mbps;

USB2.0高速(HighSpeed)传输速率为Mbps;

USB3.0超速(SuperSpeed)传输速率为5Gbps;

USB3.1Gen2超高速(SuperSpeed+)传输速率为10Gbps;

●USBType-C

又称USB-C,是一种通用串行总线(USB)的硬件接口形式,外观上最大特点在于其上下端完全一致,与Micro-USB相比用户不必再区分USB正反面。

但USB-C只是一个接口,不一定支持USB3.1或PowerDelivery。

自从年USB-C规范发布后,许多新款的Android移动设备、笔记本电脑、台式机甚至是游戏机等3C设备开始使用这种连接端口。Windows10原生支持Type-C。

4、USB转RS-

USB转,可以先将USB转换为TTL,再将TTL转换为RS,当然市面上也有很多USB直接转RS的线材,线材内部集成转换电路,淘宝上某USB转RS用的两个芯片是FT和SP。

预览时标签不可点收录于话题#个上一篇下一篇



转载请注明地址:http://www.gongjingmilanagjml.com/glxf/7982.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章