zoukankan      html  css  js  c++  java
  • 一篇文章读懂什么是串口通信及其工作原理

    介绍

    串行通信是在数据处理设备和外围设备之间传输信息的最广泛使用的方法。一般而言,沟通意味着通过书面文件,口头语言,音频和视频课程在个人之间交换信息。

    每台设备都可能是您的个人计算机或移动设备在串行协议上运行。该协议是安全可靠的通信形式,具有由源主机(发送方)和目的地主机(接收方)寻址的一组规则。为了获得更好的洞察力,我已经解释了串行通信的概念。

    在嵌入式系统中,串行通信是以串行数字二进制形式使用不同方法交换数据的方式。用于数据交换的一些众所周知的接口是RS-232,RS-485,I2C,SPI等。

    什么是串口通讯?

    在串行通信中,数据是二进制脉冲的形式。换句话说,我们可以说二进制1表示逻辑高电平或5伏特,零表示逻辑低电平或0伏特。串行通信可以采用多种形式,具体取决于传输模式和数据传输的类型。该传输模式被归类为单工,半双工和全双工。每种传输模式都有一个源(也称为发送器)和目的地(也称为接收器)。

     

     

    该单纯形法是单向通信技术。只有一个客户端(发送方或接收方一次处于活动状态)。如果发送者发送,接收者只能接受。无线电和电视传输是单工模式的例子。

    在半双工模式下,发送方和接收方都是活动的但不是一次,即如果发送方发送,接收方可以接受但不能发送,反之亦然。一个很好的例子是互联网。如果客户端(笔记本电脑)发送网页请求,则Web服务器处理该应用程序并发回该信息。

    在全双工模式在世界上被广泛使用的通信。这里发送方和接收方都可以同时发送和接收。一个例子是你的智能手机。

    除传输模式外,我们还必须考虑主机(发送方或接收方)的字节顺序和协议设计。字节顺序是将数据存储在特定内存地址的方式。根据数据对齐,endian被归类为

    • Little Endian和

    • Big Endian。

    以此示例来理解字节序的概念。假设,我们有一个32位十六进制数据ABCD87E2。这些数据如何存储在内存中?为了清楚地了解,我已经解释了Little Endian和Big Endian之间的区别。

     

    数据传输可以通过两种方式进行。它们是串行通信和并行通信。串行通信是一种使用双线即发送器(发送器)和接收器逐位发送数据的技术。使用类似技术的通讯产品包括串口服务器,以太网模块等产品。

    例如,我想从发送器向接收器发送8位二进制数据11001110。但是,哪一点首先消失?最高有效位 - MSB(第 7 位)或最低有效位 - LSB(第 0 位)。我们不能说。在这里,我正在考虑LSB首先移动(对于小Endian)。

     

    从上图中可以看出每个时钟脉冲; 发送器将一位数据发送到接收器。

    并行通信一次移动8,16或32位数据。打印机和Xerox机器使用并行通信来加快数据传输速度。

     

     

    串行和并行通信之间的区别

    串行通信一次只发送一位。因此,这些需要更少的I / O(输入 - 输出)线。因此,占用更少的空间并且更能抵抗串扰。串行通信的主要优点是整个嵌入式系统的成本变得便宜并且可以长距离传输信息。串行传输用于DCE(数据通信设备)设备,如调制解调器。

    在并行通信中,一次发送一块数据(8,16或32位)。因此,每个数据位都需要一个单独的物理I / O线。并行通信的优点是速度快但缺点是它使用了更多的I / O(输入 - 输出)线。并行传输用于PC(个人计算机),用于互连CPU(中央处理单元),RAM(随机存取存储器),调制解调器,音频,视频和网络硬件。

    注意:如果您的集成电路或处理器支持较少量的输入/输出引脚,则最好选择串行通信

    为了便于理解,这里是串行和并行通信的比较。

    串行通信并行通信
    在一个时钟脉冲逐位发送数据 一次传输一大块数据
    需要一根电线传输数据 发送'n'位需要'n'行数
    通讯速度很慢 通讯速度快
    安装成本低 安装成本很高
    优选用于长途通信 用于短距离通信
    示例:计算机到计算机 计算机到多功能打印机

     

    时钟同步

    为了有效地处理串行设备,时钟是主要来源。时钟故障可能导致意外结果。每个串行设备的时钟信号不同,它分为同步协议和异步协议。

    同步串行接口

    同步串行接口上的所有设备都使用单CPU总线来共享时钟和数据。由于这个事实,数据传输更快。优点是波特率不会失配。此外,接口组件需要更少的I / O(输入 - 输出)线。例如I2C,SPI等。

    异步串行接口

    该异步接口不具有外部时钟信号,并将其即依赖于四个参数

    1. 波特率控制

    2. 数据流控制

    3. 传输和接收控制

    4. 错误控制。

    异步协议适用于稳定通信。这些用于长距离应用。异步协议的示例是RS-232,RS-422和RS-485。

    串口通讯如何工作?

    微控制器和微处理器等高级CPU 利用串行通信与外部世界以及芯片外围设备进行通信。为了熟悉,让我们举一个简单的例子。假如你想把一个机器的串口数据发送到电脑上呢?串口服务器假设您想将笔记本电脑中的文件发送到智能手机。你会怎么发送?可能使用蓝牙或WiFi协议,对。

    因此,以下是建立串行通信的步骤

    1. 添加连接。

    在第一步中,您的笔记本电脑将搜索100米附近的设备,并列出找到的设备。此过程通常称为漫游。

    1. 选择要通信的设备。

    要连接到您的手机,必须完成配对。软件中已存在默认配置。因此无需手动配置波特率。除此之外,还有四个未知规则。它们是波特率,数据位选择(成帧),起止位和奇偶校验。

     

    #1什么是波特率?

    波特率是以每秒比特数的形式从发送器向接收器传输数据的速度。一些标准波特率是1200,2400,4800,9600,57600。

    您必须在两侧设置相同的波特率(移动和笔记本电脑)。

    注意:波特率越高,可以在更短的时间内传输更多数据。

    但是,由于接收器端的采样频率不匹配,我建议使用最多115200作为安全限制。

    #2框架

    成帧显示您要从主机设备(笔记本电脑)发送到移动设备(接收器)的数据位数。是5,6,7或8位吗?大多数设备,8位是优选的。在选择8位数据块之后,必须由发送方和接收方同意字节顺序。

    #3同步

    发送器将同步位( 1个起始位和1或2个停止位)附加到原始数据帧。同步位有助于接收器识别数据传输的开始和结束。此过程称为异步数据传输。

    #4错误控制

    由于接收器端的外部噪声可能会发生数据损坏。获得稳定输出的唯一解决方案是检查奇偶校验。

    如果二进制数据包含偶数个1,则称为偶校验,奇偶校验位设置为' 1 '。如果二进制数据包括奇数1,则称为奇校验,现在奇偶校验位设置为' 0 '。

    异步串行协议

    开始使用嵌入式系统时,最常见的问题是使用异步协议的原因?

    • 在更远的距离移动信息

    • 用于更可靠的数据传输。

    一些异步通信协议是:

    RS-232协议

    • RS232是第一个用于连接电话调制解调器的串行协议。RS代表推荐标准,现在它已改为EIA(电子工业联盟)/ TIA(电信工业协会)。

    • 它还用于调制解调器,鼠标和CNC(计算数字计算)机器。您只能将单个发射器连接到单个接收器。

    • 它支持全双工通信,允许波特率高达1Mbps。

    • 电缆长度限制在50英尺。

    如您所知,存储在内存中的数据采用字节形式。您可能会怀疑字节数据如何转换为二进制位?答案是串口。

    串口有一个名为UART的内部芯片。UART是通用异步接收器发送器的首字母缩写,它将并行数据(字节)转换为按位串行形式。

     

    RS-232接口

    该RS232串口有九个脚,男或女款型。RS 232C串行通信接口是RS232的后续版本。

    RS232中的所有功能都存在于RS232C型号中,但它有25个引脚。在25或9个引脚中,我们仅使用三个引脚来连接终端设备。

     

    RS422接口

    我们可以使用RS232仅传输高达1Mpbs的数据。为了克服这个问题,RS422进入了图片。RS422是一款多点串行接口。我们可以使用单总线一次将10个发射器连接到10个接收器。它使用两根双绞线电缆(差分配置)发送数据。电缆长度为4000英尺,波特率为10Mbps。

     

    RS485接口

    RS485是业界首选的协议。与RS422不同,您可以在差分配置中连接32个线路驱动器和32个接收器。发射器也称为线路驱动器。但是,一次只有一个发送器处于活动状态。

     

    注意:对于RS232和RS485,您必须手动终止连接。

    Wire协议

    一根线类似于I2c协议。但是,不同之处在于一条线协议使用单条数据线和地线。它不需要时钟信号,从机使用内部晶体振荡器进行时钟控制。它提供半双工通信。

    一根线使用64位寻址方案。单线接口的优点是,它支持低成本的长距离通信。但是,缺点是它的速度较慢。

    异步有线协议非常适合长距离通信。但是,给同步串行接口提供范围有一个缺点。

    缺点是,如果需要连接更多的发射器和接收器,则安装成本会很高。

    同步串行协议

    同步通信协议是板载外设的最佳资源。优点是您可以在同一总线上连接更多设备。一些同步协议是I 2 C,SPI,CAN和LIN。

    I2C协议

    I2c(内部集成电路)是一种双线双向协议,用于在同一总线上的不同设备之间交换数据。I2c使用7位或10位地址,允许最多连接1024个设备。但是,它需要时钟信号来产生启动和停止条件。其优点是它提供400 kbps的数据传输。它适用于车载通信。

    SPI协议

    SPI(串行外设接口)协议以连续的流方式发送和接收数据,不会中断。建议该协议用于高速数据通信。它可以提供的最大速度是10 Mbps。

    与i2c不同,SPI有4条线。它们是MOSI(主输出从机),MISO(主机输出),时钟和从机选择信号。从理论上讲,我们可以连接无限数量的从设备,实际上它取决于总线的负载电容。

    CAN协议

    该协议专用于车辆系统或汽车。它是一种面向消息的协议,用于多路电线以节省铜。它是一种多主多串行总线,用于车辆自动启动/停止,防撞系统等应用。

    USB

    USB接口是串行或并行端口的最佳替代方案。与USB端口相关的数据传输比串行和并行接口快得多。USB支持从1.5 Mbps(USB 1.0)到4.8 Gbps(USB 3.0)的速度。今天,大多数嵌入式设备使用USB OTG(On the Go编程)技术将hex文件转储到微控制器。

    Microwire

    Microwire是一种三线串行通信协议。它在微控制器上有一个串行I / O端口,用于连接外围芯片。它支持高达3Mbps的速度。它比i2c和SPI协议的子集更快。

    结论

    串行通信是电子和嵌入式系统领域的重要组成部分。如果两个设备想要在同一总线上交换信息,则数据传输速率至关重要。因此,有必要为任何应用选择有效的串行协议

    更多物联网通信领域技术文章欢迎访问:http://shop.usr.cn/

  • 相关阅读:
    保存会话数据——cookie学习
    HttpServletRequest学习
    HttpServletResponse 学习
    Servlet学习
    Http协议简单学习笔记
    利用tomcat配置网站
    PHPCMS-V9 获取一级栏目、二级栏目、三级栏目
    PHP判断当前访问的是 微信、iphone、android 浏览器
    二维数组根据某个字段排序
    动物界的再生一个故事
  • 原文地址:https://www.cnblogs.com/mokuai/p/11772491.html
Copyright © 2011-2022 走看看