首页 > 其他分享 >S5PV210开发 -- UART 详解

S5PV210开发 -- UART 详解

时间:2023-04-03 20:09:15浏览次数:48  
标签:RS S5PV210 电平 -- UART 串口 485 RS232 232


上一篇文章系统的讲了一下通信的分类,包括并行通信,串行通信。串行通信的分类,包括同步通信,异步通信。

这篇文章我们主要讲一下 UART

 

串口编程,我们并不陌生。之前讲过RS485通信,参看:UNIX再学习 -- RS485 串口编程

再者,参看:日常生活小技巧 -- UART 回环测试

一、基本概念

 

参看:UART -- 维基百科

UART 是 Universal Asynchronous Receiver/Transmitter,通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。 而RS232、RS449、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(Physical Layer)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的资料链接层(Data Link Layer)的概念。 COM是PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM均为RS232。若配有多个异步串行通信口,则分别称为COM1、COM2... 。

二、UART数据传输格式

在讲之前先感慨两句,UART这部分的总结,真真的网上看了好多的资料。但都讲的很零碎,没有个所以然。看的我很纠结,不知道从何讲起。

还好我们之前有讲过串口编程,并非对 UART一无所知。那就从 TTL 和 RS232 电平说起。

(1)TTL 和 RS232 电平

RS232 电平
逻辑1:-3V~-15V
逻辑0:+3V~+15V

TTL 电平
逻辑1:+2V~+5V
逻辑0:+0V~+0.8V

 

TTL 电平和 RS232 电平我会再开一篇详细来讲。这里就是要了解一下SP3232 芯片。

我们查看原理图,串口电路部分:

S5PV210开发 -- UART 详解_串口

你能区分 SP3232 芯片引脚哪边是TTL电平,哪边是 RS232 电平吗?(傻纸问题,哈哈)

我们介绍UART基本概念的时候,也提到了现在PC机的COM均为RS232,但是单片机的电平是TTL电平。

所以要用一个电平转化芯片 SP3232,然后使得单片机和PC通过串口进行通信。

上图标的很清楚啦,PC_TXD0、PC_RXD0 在PC端,为RS232电平

(2)数据传输格式

S5PV210开发 -- UART 详解_串口_02

 

空闲位: 从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,为逻辑 1。

起始位:必须是持续1bit时间的逻辑 0 电平,标志着传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。

数据位:紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、6位、7位或8位,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位)。传输数据时先传送字符的低位,后传送字符的高位。

    这里有几个知识点需要知道:

    ASCII 码,参看:C语言再学习 -- ASCII码表(转)

    MSB 和 LSB,参看:C语言再学习-- 大端小端详解(转)

    思考:

    传输数据时先传送字符的低位,后传送字符的高位。

    因为通常我们的PC是小端的,如果没有另外说明,通常可以假定数据首先传输最低有效位(LSB)。

    在标准ASCII码中 127 转化成二进制为 0111 1111,即最有效高位一直为 0。只需传输 7 位即可

    在扩展ASCII码中 255 转化成二进制为 1111 1111,需要传输 8 位。

校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

    这里有几个知识点需要知道:

    校验位可分为NONE(无校验位)、ODD(奇校验)、EVEN(偶校验),一般多为无校验位。

    奇偶校验,参看:奇偶校验 -- 百度百科   

    奇偶校验位是一个表示给定位数的二进制数中 1 的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检 测码。奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中 1 的个数是奇数,那么偶校验位就置为 1,从而使得总的 1 的个数是偶数;如果给定一组数据位中 1 的个数是偶数,那么奇校验位就置为 1,使得总的1 的个数保持奇数不变。

    举个栗子:假设传输的数据位为 01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是 偶校验,则偶校验位为1(要确保总共有偶数个1)

校验位在数据位后面,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是“0”,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中“1”的个数,如果是奇数,表示传送正确,否则表示传送错误。

 


 

S5PV210开发 -- UART 详解_双绞线_03

停止位:可以是是1bit、1.5bit或2bit,可以由软件设定。它一定是逻辑 1 电平,标志着传输一个字符的结束。

    由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供 计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

(3)举例说明TTL电平和RS232电平数据传输格式的不同

上面我们提到了 TTL 电平和 RS232 电平的逻辑电平是不同的,那么接下来我们举个栗子。

例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,无校验位。(先传第一个字节55,再传第二个字节aa,每个字节都是从低位向高位逐位传输)。我们来看它在一下 TTL 电平和 RS232 电平的信号线上的波形。

《1》TTL电平的串行数据帧格式

对于正逻辑的 TTL 电平,起始位是逻辑 0 为低电平;停止位和空闲位是逻辑 1 为高电平。

S5PV210开发 -- UART 详解_双绞线_04

《2》RS-232电平的串行数据帧格式

 

对于正逻辑的 RS232 电平,起始位是逻辑 0 为高电平;停止位和空闲位是逻辑 1 为低电平。

 

S5PV210开发 -- UART 详解_串口_05

 

 

上面提到 UART 包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范。

我们最常见的是 RS232、RS485、RS422 这三个。下面我们一一的来详细讲解一下。

三、RS232

(1)接口标准

RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。它被广泛用于计算机串行接口外设连接。

RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)。

RS-232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。

(2)常见连接器

常见的有 DB9 和 DB25,并且连接器分公/母头。

《1》DB9

首先它相关器件有很多。这里只是介绍最常见的。

DB9针串口鱼叉式公头母头:

S5PV210开发 -- UART 详解_串口_06

S5PV210开发 -- UART 详解_双绞线_07

 

DB9针串口焊板式公座母座:

S5PV210开发 -- UART 详解_数据_08

S5PV210开发 -- UART 详解_数据_09

 

 

串口线延长母对母/公对母/公对公:

 

S5PV210开发 -- UART 详解_数据_10

讲到串口线,它有交叉线与直通线之分:

参看:串口线-交叉线与直通线之分

1:串口交叉线
串口线两头都一样都相同。都是公对公或者母对母串口线,这种线必须是交叉线。一端的第二针与另一端的第三针是通路的,说明此线是交叉线。
以下是判断方法:

S5PV210开发 -- UART 详解_双绞线_11

S5PV210开发 -- UART 详解_数据_12

2:串口直通线
如果用户串口设备与串口服务器连接使用公对母串口线,那必须使用公对母直通线。
一端公头的2对应,另一端母头的2,一端母头的3对应另一端公头的3.

S5PV210开发 -- UART 详解_串口_13

 

DB9针串口焊板式PCB元件封装:

S5PV210开发 -- UART 详解_数据_14

 

最后示例分析串口直通和交叉之分:

以联想台式机为例,通常PC上的串口为公头的:

S5PV210开发 -- UART 详解_双绞线_15

或者笔记本电脑,通常用的 USB转串口线,也是公头的:

S5PV210开发 -- UART 详解_数据_16

 

1:串口交叉线

S5PV210开发 -- UART 详解_双绞线_17

2:串口直通线

S5PV210开发 -- UART 详解_串口_18

引脚定义:

公头:

S5PV210开发 -- UART 详解_串口_19

母头:

Pin2 TXD

Pin3 RXD

Pin5 GND

《2》DB25

S5PV210开发 -- UART 详解_数据_20

(3)RS232收发器

这类芯片也有不少,我们就讲上面提到的 SP3232,查看相关手册和原理图。

《1》特性

满足EIA/TIA-232-F标准,工作电压为+3.0V到+5.5V
满载最小数据速率:120Kbps
1uA的低功耗关断模式,接收器(SP3222E)有效
可与RS-232共同使用,电源低至+2.7V 
增强型ESD规范:  
±15kV人体放电模式 
±15kV IEC1000-4-2气隙放电 
±8kV IEC1000-4-2接触放电

《2》封装

S5PV210开发 -- UART 详解_串口_21

《3》引脚说明

S5PV210开发 -- UART 详解_双绞线_22

《4》相关电路图

S5PV210开发 -- UART 详解_双绞线_23

四、RS485

(1)接口标准

电子工业协会(EIA)于1983 年制订并发布RS-485 标准,并经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A,习惯地称之为RS-485 标准。
它是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。
RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12kΩ、RS-422是4kΩ;由于RS-485满足所有RS-422的规范,所以RS-485的驱动器可以在RS-422网络中应用。
RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s。[2] 

RS-485 标准是为弥补RS-232 通信距离短、速率低等缺点而产生的。RS-485 标准只规定了平衡发送器和接收器的电特性,而没有规定接插件、传输电缆和应用层通信协议

RS-485 标准与RS-232 不一样,数据信号采用差分传输方式(Differential Driver Mode),作用是可以抑制共模干扰。

(2)485转232接口

上面提到了,标准没有规定接插件,所以一般都是引出四根线:VCC,GND,TXD,RXD

常用的还有 485转232转换器

S5PV210开发 -- UART 详解_串口_24

(3)RS485收发器

这里主要讲一下 SP3485

《1》特性

RS-485和RS-422收发器 
工作电压为+3.3V  
可与+0.5V的逻辑电路共同工作 
驱动器/接收器使能 z 
低功耗关断模式(SP3481) 
-7V~+12V的共模输入电压范围 
允许在同一串行总线上连接32个收发器 
与工业标准75176管脚配置兼容 
驱动器输出短路保护

《2》电路图和引脚

S5PV210开发 -- UART 详解_串口_25

引脚说明:

Pin1-RO-接收器输出。
Pin2-RE-接收器输出使能(低电平有效)。
Pin3-DE-驱动器输出使能(高电平有效)。
Pin4-DI-驱动器输入。
Pin5-GND-连接地。
Pin6-A-驱动器输出/接收器输入(同相)。
Pin7-B-驱动器输出/接收器输入(反相)。
Pin8-Vcc

 

注意:将AB间120欧姆去掉,如果采用阻抗匹配的电缆,300米以内几乎可以不用加终端电阻。加终端电阻的缺点就是增大了线路的无用功耗,尤其是电池系统供电时,降低了电池的续航能力。我一开始没有将它去掉,导致只能发送数据,无法接收数据。

 

五、RS422

我用的并不多,所以只是简单简绍一下:

标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。典型的RS-422是四线接口。实际上

还有一根信号地线,共5根线。其DB9连接器引脚定义。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。
RS-422的最大传输距离为1219米,最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。

六、三者比较

参看:串行通信的基础知识- RS-232C / RS-422 / RS-485 -

S5PV210开发 -- UART 详解_数据_26

七、需要了解的小知识点

双绞线,参看:双绞线 -- 百度百科

S5PV210开发 -- UART 详解_数据_27

 

差分布线,参看:Altium Designer -- 差分布线原则

如何差分布线,参看:Altium Designer -- 精心总结

八、总结

扩展阅读:

Serial Communication

Universal Asynchronous Receiver/Transmitter (UART)

The USART of the AVR

Serial and UART Tutorial

 

这篇文章,写了好久。查阅相关资料应该是最多的一次了。最后发现还是有很多东西没有写,也是无语。

最近诸事不顺,搞的很焦虑。真的感觉人是很脆弱的,放宽心开心健康过好每一天,是多么珍贵。


标签:RS,S5PV210,电平,--,UART,串口,485,RS232,232
From: https://blog.51cto.com/u_15979522/6167156

相关文章

  • S5PV210开发 -- 通信
    参看:串行通信基本原理参看:【51单片机】(手把手教你)串口通信-基础篇一、基本概念首先,我们先看一下什么是 通信(communication)随着计算机网络化和微积分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部......
  • S5PV210开发 -- Linux dd命令
    昨天群里有人询问,为什么破坏BootLoader破坏不掉。出现错误:dd:writing'/dev/mtdblock0':Operationnotpermitted我说需要插着SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚)然后我们来看一下它操作指令:  busyboxddif=/dev/zeroof=/dev/mmcblk0bs=512......
  • POJ 2773 Happy 2006 二分+容斥原理(二进制枚举或dfs)
    Happy2006TimeLimit: 3000MS MemoryLimit: 65536KTotalSubmissions: 14003 Accepted: 4946DescriptionTwopositiveintegersaresaidtoberelativelyprimetoeachotheriftheGreatCommonDivisor(GCD)is1.Forinstance,1,3,5,7,9...areallrelativel......
  • 日常生活小技巧 -- 文件对比工具 Beyond Compare
    BeyondCompare,文件对比工具,应用还是挺广泛的。下面我们讲一下它的下载安装使用方法。其实很简单!!下载:DownloadBeyondCompare4安装:以管理员身份运行,然后按照提示一步一步的安装即可,没什么好说的。使用:双击new->FolderCompare然后点击Browsefor选择要对比的文件然后进行比较然......
  • LIVE555再学习 -- testOnDemandRTSPServer 源码分析
    一、简介先看一下官网上的介绍:testOnDemandRTSPServer createsaRTSPserverthatcanstream,viaRTPunicast,fromvarioustypesofmediafile,ondemand.(Supportedmediatypesinclude:MPEG-1or2audioorvideo(elementarystream),includingMP3audio;MPEG-4......
  • LIVE555再学习 -- 单播、多播、广播、直播、点播 都是个啥?
    上一篇文章提到单播、多播。但是这是什么意思?接下来我们看一下。参看:搜狗--单播参看:维基百科——单播一、单播简介    Unicast,是客户端与服务器之间的点到点连接。“点到点”指每个客户端都从服务器接收远程流。仅当客户端发出请求时,才发送单播流。Unicast(单播):在客......
  • LIVE555再学习 -- testRTSPClient 实例
    上一篇文章简单看了一遍 testRTSPClient 的源码,接下来举几个应用实例加深一下。首先什么都不做修改,先执行一遍,看一下。一、执行 testRTSPClient 特么,上面的东西我没看明白。。。a=、b=、c=等等这是什么?还有我看别人分析的好像用到什么网络抓包工具,我不知道是什么工具,可能是......
  • LIVE555再学习 -- testH264VideoStreamer 源码分析
    上一篇文章我们已经讲了一部分:testH264VideoStreamer重复从H.264基本流视频文件(名为“test.264”)中读取,并使用RTP多播进行流式传输。 该程序还具有内置的RTSP服务器。Apple的“QuickTime播放器”可用于接收和播放此音频流。要使用它,让玩家打开会话的“rtsp://”URL(程序在......
  • LIVE555再学习 -- testRTSPClient 源码分析
    现在开讲 testRTSPClient。在官网这这样一段介绍,参看:RTSPclient翻译下来就是:testRTSPClient是一个命令行程序,显示如何打开和接收由RTSPURL指定的媒体流,即以rtsp://开头的URL在这个演示应用中,接收到的音频/视频数据什么也没有。但是,您可以在自己的应用程序中使用和调整此代码(......
  • LIVE555再学习 -- Windows 下编译
    然后开始下载编译,其中包含,Windows、Linux和交叉编译三种形式。首先来讲Windows下编译参看:Live555研究之一源代码编译一、下载源码下载:Indexof/liveMedia/public参看:LIVE555StreamingMedia选择下载live555-latest.tar.gz二、文件介绍我的开发环境为win1064位+VS2017将上面......