
通信协议
文章平均质量分 55
嵌入式常用通信协议介绍
川渝小神丢
独立思考!
展开
-
485通信要点
1. 双绞线485物理线缆跟CAN一样,使用双绞线,目的是抑制共模干扰2. 485芯片485可以理解为一个uart+方向控制,485属于半双工,同时只能发送或者接收,因此需要一根引脚控制数据方向,这跟引脚连接到485芯片,由芯片内部电路实现具体控制。3. 485收发切换注意,由于485芯片各个厂家的差异,响应速度也会不同,在通信时要根据物理层硬件特性和链路层协议不一样而合理地,实现收法切换延时。比如刚发送完不能理解切换到接收状态,要延时基本...原创 2021-10-30 10:25:17 · 4406 阅读 · 0 评论 -
UART和RS232/RS485的关系是什么?
串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句中同等的位置使用。在百度搜索二者的区别,可以看到排在最前面的答案充斥着混淆的概念。就此,谈谈我对这几个概念的理解,希望能帮初学者厘清它们之间的关系。通讯问题,和交通是一样的。串口通转载 2016-06-01 15:26:51 · 578 阅读 · 0 评论 -
I2C死锁原因及解决方法
现象:单片机采用硬件i2c读取E2PROM,当单片机复位时,会有概率出现再无法与E2PROM通信,此时SCL为高,SDA一直为低原因:当单片机正在和E2PROM通信,如果主正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待主SCL变低后,从再释放SDA为高。如果此时正好单片机复位,主SCL还没来得及变低,直接变成高电平,此时从还在等待SCL变低,所以原创 2016-01-22 17:24:13 · 14211 阅读 · 1 评论 -
串口通讯/485/232
1. uart232/485、I2C、SPI等都是串行通信.2. Uart与Usart,Uart是通用异步收发器,而Usart是通用同步异步收发器。 这里说的异步即一个数据包与另外一个数据包是异步的,通信双方在完成一包后并不知道下一包什么时候到,包与包之间没有固定间隔,但是包内的数据位(也包括起始/停止位、校验位等)是同步的,它们的间隔是固定的。 同步即一帧数据里面包含多包...原创 2020-02-18 18:06:45 · 405 阅读 · 0 评论 -
CAN总线的拓扑、Bus Off、仲裁机制、邮箱
一、CAN总线具有严格的错误诊断功能,该功能已经固化在芯片中,一旦错误被检测,正在传送的数据帧将会立即停止而待总线空闲时再次重发直至发送成功,该过程并不需要CPU的干涉,除非错误累计该发送器进入总线关闭(Bus Off)。二、CAN总线bus off一般发生于外部干扰,比如汽车逆变器交流参数的干扰。处于总线关闭状态的节点不允许发送和接收任何形式的帧报文。且只能通过用户请求进行恢复。方案如下:1. 软件上,复位CPU或CAN控制器是最简单的处理方式,但是为了让系统恢复,一般当发生CAN总线关闭时,可原创 2020-08-03 09:55:53 · 4076 阅读 · 0 评论 -
太厉害了,终于有人能把TCP/IP协议讲的明明白白了!
从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。一、 计算机网络体系结构分层计算机网络体系结构分层:计算机网络体系结构分层:不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议.转载 2020-06-10 09:31:59 · 543 阅读 · 0 评论 -
边缘计算设备连入云端方案(以阿里云IOT的iot studio服务开发为例)
1. 设备端支持TCP/IP协议栈,便于建立TCP连接。关于TCP的OSI七层协议相关概念: https://blog.youkuaiyun.com/mccand1234/article/details/515908042. 设备端需要支持MQTT应用层协议,MQTT相关概念: https://blog.youkuaiyun.com/wzhqazcscs/article/details/79603261 如果是ARM-LINUX平台,可以安装基于Python3的库实现MQTT的支持。如果是S...原创 2020-05-22 16:58:33 · 974 阅读 · 0 评论 -
Modbus协议通信要点
1. Modbus相关概念,网上一大堆,可以参考外文网站http://www.simplymodbus.ca/TCPclient.htm2. Modubs协议属于数据链路层协议,即在物理层基础之上实现原始比特的可靠传输。比如物理层的通信媒介为485,那么原始比特传输一般是1个起始位,8个数据位,2个停止位,有无校验位都可。为了实现可靠传输,需要数据链路协议收发帧。3. Mod...原创 2020-05-08 14:03:38 · 1553 阅读 · 0 评论 -
RS485通信(Modbus)丢包解决经验(基于ARM/Linux和STM32平台)
1. RS485通信属于半双工通信,即发送和接收不能同时进行,需要切换,一般定义一根GPIO做RTS切换。2. ARM-Linux平台有Linux底层驱动做自动切换,比如应用程序发送完成后,一般会在底层驱动自动切换接收。3. 但是STM32平台基于UCOS系统,如果发送完数据后,接收切换不及时就会导致接收到的数据不完整,一般是都数据帧前面几个字节。举例:比如mosbus的链路通信,如果...原创 2020-04-30 10:08:02 · 14779 阅读 · 3 评论 -
同步/异步,串行/并行,SPI/I2C/UART/RS485/CAN等简单介绍与区别
一、异步通信1. 所谓异步通信是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间传送基本同步。2. 发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。3. 以字符为单位传送信息。4. 相邻两字符间隔长度不确定。5. 必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。6. 异步通信时不要求...原创 2020-03-30 15:41:12 · 11781 阅读 · 3 评论