针对单片机串行通信技术全解析

发布者:WanderlustGaze最新更新时间:2018-05-07 来源: MCU开发加油站关键字:RS485  串行通讯 手机看文章 扫描二维码
随时随地手机看文章

1、什么是串行通信?

串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。

简言之:串行通讯就是排成一队走,并行就是排成一列走,如下图

2、同步串行通信(Synchronous serial communication)和异步串行通信(Asynchronous serial communication)

  1. 发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。这就是常说的同步串行通信(Synchronous serial communication),I2C、SPI等有时钟信号的协议,都属于这种通信方式。

  2. 发送端在数据发送之前和之后,通过特定形式的信号(例如START信号和STOP信号),告诉接收端,可以开始(或者停止)接收数据了。与此同时,收发两方会约定一个数据发送的速度(就是大名鼎鼎的波特率),发送端在发送START信号之后,就按照固定的节奏发送串行数据,与此同时,接收端在收到START信号之后,也按照固定的节奏接收串行数据。这就是常说的异步串行通信(Asynchronous serial communication)。

3、单片机上常用的串行通讯接口

  •  SPI:高速同步串行口。3~4线接口,收发独立、可同步进行串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。SPI通常有SCK时钟,STB片选,DATA数据信号三个信号。 I2C通常有 SDA数据和SCL时钟两个信号。SPI总线真正实现了全双工数据传输,SPI 有3线跟4线两种,4线的话,就是多了一条叫SDC的线,用来告知从设备现在传输的是数据还是指令。这个接口较快,可以传输较连续的数据。SPI的速度要大于IIC,一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。

  •  UART:通用异步串行口,一般我们说的单片机上的“串口”大多是特指UART。可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机(单片机与单片机之间)通信上面用的最多。

  •  IIC:一种串行传输方式,三线制,网上可找到其通信协议和用法的,IIC 接口的协议里面包括设备地址信息,可以同一总线上连接多个从设备,通过应答来互通数据及命令。但是传输速率有限,标准模式下可达到100Kbps,快速模式下可达到400Kbps,高速模式下达到Mbps,不能实现全双工,不适合传输很多的数据。

  •  USB:这个肯定是很熟悉的了,几乎每天都打交道。通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。很多单片机上也带有USB接口例如ST的STM32。

以上各种接口的通讯协议是不一样的,如UART最简单的协议是一个起始位一个终止位中间八个数据位,而USB的话通讯协议就复杂的多的多。

4、串行接口电气标准。

TTL电平:TTL电平指的是低电平为0,高电平为1(+5V电平),大多数的单片机自带的串口用的就是这种电平。一般用于芯片之间通信,TTL电平通信距离较短。

UART使用的是单片机自带的电平,单片机是什么电平标准那么该单片机上的UART就是什么电平标准,例如51单片机的UART就是用的TTL电平。而这种电平是没办法用于远程数据传输的,为了能让串行数据能够传输的更远,我们需要更加强大的传输标准,于是就有了RS-232、RS-422、RS485等。

  •   RS-232-C

RS-232-C也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。自IBM PC/AT开始使用简化了的9芯D型插座。至今25芯插头座现代应用中已经很少采用。电脑一般有两个串行口:COM1和COM2,9针D形接口通常在计算机后面能看到。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。

  •   RS-422

为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS- 422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

  •   RS-485

为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485 标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A标准。

下图是一般传输过程:单片机匹配电平到RS-232,通过RS-232传输,再从RS-232匹配到TTL再给另一个单片机。

5、其他

各种串行通讯是可以相互转换的,如下图中我们最经常使用的CH340芯片就能够把USB转成TTL电平的UART串口通讯。

关键字:RS485  串行通讯 引用地址:针对单片机串行通信技术全解析

上一篇:全球15大人工智能芯片企业排名表中,NVIDIA英伟达成为领头羊
下一篇:寒武纪国内首款云端智能芯片有何用途?

推荐阅读最新更新时间:2024-05-07 18:00

关于RS232 RS422 RS485三种异步通信
典型的串行通讯标准是RS232和RS485.它们定义了电压,阻抗等.但不对软件协议给予定义 区别于RS232, RS485的特性包括: 1. RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。接口信号电平比RS -232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。 2. RS-485的数据最高传输速率为10Mbps 3. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。 4. RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米,另外RS-
[嵌入式]
串行通讯到以太网多路转换的实现
1 引言   某装置有4台光导液位二次表,根据工艺要求,需要把二次表显示改造为DCS监视。光导液位二次表只能输出RS-485的串行信号,监视操作站要求能同时进行监视。因此本系统的技术实质是实现多路串行通讯到多路以太网通讯的转换。 2 设计方案 2.1 简单方案   串行通讯(无论是RS-232还是RS-485)只是点对点的通讯,因此可以将4台光导液位二次表接入一台操作服务器上,另三台操作客户机从操作服务器取数据。这样就能满足上述要求,如图1所示。   图1 服务器-客户机模式方案结构示意   但是,出于安全性考虑,操作服务器明显成为系统的瓶颈,一旦出现服务器故障将造成系统瘫痪,这是工艺不能允许的。因此,
[网络通信]
如何选择一款合适RS232转RS485转换器
传统的RS232串行接口只适合于短距离(一般为二十几米以内)传输,且只能连接一台仪表。而RS485标准为总线型标准,可并接几十台仪表,布线简单方便,通讯距离可达到1200米,尤为适合工业现场的数据采集与通讯。由于通常计算机只具备RS232接口,RS485总线数据要与计算机进行通信,则需要一台RS232-RS485转换器,实现RS485总线接口与RS232串行接口之间的数据双向通讯。 一款合适的RS232转RS485转换器为整个总线传输提高安全稳定性,提高工作效率,如何在众多的转换器中选择一款性价比高、质量好的RS232转RS485转换器? “有源”“隔离型”“工业级”“光隔防雷型”RS232、RS422、RS485转换器,绝非市面
[单片机]
51单片机RS485通讯程序仿真与MODBUS RTU静止时间详解
仿真原理图如下 由于MODBUS-RTU 要求每帧信息中的数据间隔时间不得超过1.5字符的静止时间。 因此: (1)、当串口产生接收中断后,立即重装“超时定时器”的初始值。(注:超时定时器的初始值和波特率有关) 问题如下:  (a)、由于要求在串口接收中断中重装超时定时器初始值,那么,该超时定时器就只能采用“溢出模式”,而不能采用“CTC模式” (b)、超时定时器必须在程序初始化时就一直开启。 我的理解对吗? (2)两帧之间的3.5字符的静止时间该如何实现呢? 接收到每个字节的时候,初始化定时器就行,最后一个字节后,定时器就溢出了 利用单独的软件定时器,来判断一帧接收报文结束,可以防止若报文接收不完整,该帧通信任务无
[单片机]
51单片机<font color='red'>RS485</font>通讯程序仿真与MODBUS RTU静止时间详解
RS232转RS485电路图
本图为R232转RS485的通讯电路转换图 点击查看放大的图纸 自制无源RS232-485转换器 一、RS-232、RS-422与RS-485的简单介绍    RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的。RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。其传送距离最大约为15米,最高速率为20kb/s,并且RS-232是为点对点(即只用一对收、发设备)通讯而设计的。所以,RS232只适合于本地通讯使用。   RS-422由RS-232发展而来,它是为弥补RS-232之
[模拟电子]
RS232转<font color='red'>RS485</font>电路图
LonWorks网络技术与RS485总线技术深度解析
  在智能建筑及工业自动化等领域中,LonWorks网络技术与RS485($49.9800)总线技术应用非常广泛。分析LonWorks技术与RS485总线技术的优劣对它们在实际工程中的合理应用极为重要。LonWorks技术的核心是Neuron神经元芯片,它包括一个固化的LonTalk高级通信协议,三个CPU,一个多任务操作系统和灵活的输入/输出方式。 LonTalk协议提供了OSI参考模型所定义的全部七层协议,其中,1-6层协议固化在神经元芯片中,只有第七层应用层是根据应用对象自行定义,可以大大节约了开发时间和成本投入。   一、LonWorks技术的先进性成就了卓越的控制网络   LonWorks网络技术是美国Echelon公司
[嵌入式]
串行通讯——使用printf函数
对于没有仿真器的板子来说,串口是一个非常好的调试工具,你可以将你需要观察的变量 通过串口发送到PC上进行后续分析,进行调试。这里主要介绍在Keil C中怎么使用串口来 调试程序。 程序代码如下: #include reg52.h #include stdio.h void serial_init(void); void main() { serial_init(); while(1) { printf( Hello,Serial Port\n ; } } void serial_init(void) //串口初始化函数 { TMOD = 0x20;
[单片机]
<font color='red'>串行通讯</font>——使用printf函数
太阳能发电系统数据采集与传输的硬件设计
   0 引言   ARM(Advanced RISC Machines)是对一类微处理器的通称。ARM是微处理器行业的一家知名企业,它设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM微处理器是一种高性能、低功耗的32位微处理器,该处理器广泛应用于嵌入式系统中。ARM 9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。在此,以ST公司生产的ARM 9系列中典型的STR912FW44X6芯片作为硬件开发平台的MCU,完成了基于ARM的太阳能发电系统中数据采集与传输系统的硬件设计,并提出了一种利用RS 485串口代替RS 232串121来进
[模拟电子]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved