| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 各种通信协议 -> 正文阅读 |
|
[嵌入式]各种通信协议 |
一、UART?Universal Asynchronous Receiver Transmitter 即通用异步接收器,是一种通用的串行、异步通信总线。该总线有两条数据线,可以实现全双工的发送和接收。在嵌入式系统中常用于主机与辅助设备之间的通讯。 UART帧格式一帧数据的构成:起始位+ 数据位 + 校验位 + 停止位 起始位:1位,逻辑’0’,表示传输一个字符的开始 数据位:要发送的数据,一般为5-8位,最多8位,如果超过8位,则需要发送两次来进行拼接 校验位:0~1位, 无校验/奇校验/偶校验 奇校验:在数据位中有奇数个逻辑‘1’时,该位为0;否则为1 偶校验:在数据位中有偶数个逻辑‘1’时,该位为0;否则为1 停止位:表示传输一个字符的结束,可以是1个、1.5个、2个高电平 空闲位:当前线路上无数据传输时,置为高电平 数据传输顺序:先传送数据的低位,后传送数据的高位 通信速度(波特率):在单片机应用,常用通信速度有2400、4800、9600、19200、115200 bit/s UART硬件连接TX --?数据发送接口 UART存在的问题1、电气接口不统一 ①UART只是对信号的时序进行了定义,而未定义接口的电气特性??? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2、抗干扰能力差 UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能较差,数据在传输过程中很容易出错? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3、?通信距离极短 因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信 二、IIC总线IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线。主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线 一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步; IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。 ?IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总钱时,? ?IIC也具备冲突检测和伸裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器; ?IIC总线通讯过程: IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据 。??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,‘0'表示主机发送数据,'1"表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自已的地址进行比较,如果相同,则认为自己被主机寻扯,然后再根据第8位 ?起始信号和停止信号? 起始信号:SCL为高电平时,SDA由高变低表示起始信号 字节传送与应答 IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器,即一帧共有9位。 同步信号 典型IIC时序?主机向从机发送数据 从机向主机发送数据? 注:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答, A非表示非应答,S表示起始信号,P表示终止信号 三、TTL电平Transistor-Transistor Logic,是一种电平逻辑,晶体管-晶体管逻辑。通常我们采用二进制来表示数据,为了表示二进制,需要用高低电平表示这些二进制数,3.3V/5V等价于逻辑“1”,0V等价于逻辑“0”。UART特指单片机的UART端口,使用的就是TTL电平。嵌入式里面说的串口,一般是指UART口,而TTL、RS-232、RS-485是指的电平标准(电信号)。 1、标准TTL电平逻辑 2、CMOS电平 四、RS-232协议RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准。 接口 信号 电平转换 USB转RS-232 USB转232,可以先将USB转换为TTL,再将TTL转换为RS232,市面上也有很多USB直接转RS-232的线材,线材内部集成转换电路,下图为USB转RS-232串口: TTL和RS-232互转 单片机接口一般是TTL电平,如果需要接232电平的外设,就需要加TTL转RS232的模块,转换方向是双向的。TTL和RS232电平互相转换最常用的芯片是MAX232和SP3232。 RS232存在的问题? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ①RS232接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使 用电平转换芯片才能与TTL电路连接? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②通信速度较低? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③易产生共模干扰,抗噪声干扰性弱 ④传输距离较短(15m) 五、RS-485协议该标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络,能在远距离条件下以及电子噪声大的环境下有效传输信号;该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。 信号? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RS-485标准规定采用差分信号进行数据传输,两线间的电压差为+2v到+6v表示逻辑“1”,两线间的电压差为-2v到-6y表示逻辑“0”;使用差分信号能有效地减少噪声信号的干扰,延长通信距离,RS-485的通信距离可以达到1500m;RS-485接口信号的电平比RS-232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。? 接口 电平转换 TTL和RS-485转换 TTL转成RS-485很常见,收发器芯片市面上很多,比如MAX485,用起来也很简单,一般左边接MCU的GPIO,用来控制。 RS-232和RS-485转换 RS-232和RS-485之间可以转换,一个方法是RS-232转换成TTL,再由TTL转换为RS-485,当然也有芯片支持将RS-232支持转换成RS-485,双向转换。 RS485的优势
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:42:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |