UART、SPI、I2C、CAN等协议的原理和数据收发 网络知识(配置IP、配置路由器、Linux下配置网络)

博客介绍了UART、SPI、I2C、CAN等常见网络协议。UART适用于低速应用,SPI是高速全双工同步总线,I2C是简单双向两线制总线,CAN具有高可靠性等优点。还介绍了配置IP、路由器及Linux下网络的方法,如在设置里或用ifconfig命令配置IP。

一、UART

        UART 是通用异步接收器/发送器,并定义了两个设备之间交换串行数据的协议或规则集。只需在接收器和发送器之间使用两条线即可实现发送和接受,且两端接地。通信方式有单工(数据仅向一个方向发送)、半双工(每端说话但一次只能发送一个,双向)、双工(两端可同时传输,双向)

        UART的优点是它是异步通信机制,发射器和接收器不共享一个时钟信号,大大简化了协议。但也由于不共享时钟,因此两端必须以相同的预先设置的波特率(速度)进行传输,以实现相同的位时序。同时,两端还必须使用相同的帧结构和参数。

        常用波特率4800、9600、19.2k、57.6k、115.2k。

        UART 适用于低速和低吞吐量的应用,因为它非常简单、低成本且易于实现。

数据通信格式:      起始位  七位有效数据位  奇偶校验位  停止位  空闲位

        UART 帧还可以包含一个可选的奇偶校验位,可用于错误检测。该位插入数据位的末尾和停止位之间。奇偶校验位的值取决于所使用的奇偶校验类型(偶数或奇数):

  • 在偶数奇偶校验中,该位使得帧中的 1 总数为偶数。
  • 在奇数奇偶校验中,该位使得帧中 1 的总数为奇数。

举例:
大写字母“S”(1 0 1 0 0 1 1)总共包含三个零和4个一。如果使用偶数奇偶校验,则奇偶校验位为零,因为已经有偶数个 1。如果使用奇数奇偶校验,则奇偶校验位必须为 1,才能使帧具有奇数个 1。      意思就是说该位的值使1的个数为偶数(偶数奇偶校验)或奇数(奇数奇偶校验)。
奇偶校验位只能检测单个翻转位。如果翻转了多个位,则无法使用单个奇偶校验位可靠地检测这些位。

二、SPI

Serial Peripheral  Interface  串行外围设备接口。SPI是高速全双工同步的通信总线。

使用一个单独的数据线和时钟信号来实现发送端和接收端的完美同步。时钟是一个振荡信号,它告诉接收端在确切的时机对数据线上的信号进行采样。

SPI总线包括四条逻辑线。

        MISO:Master input slave output 主机输入,从机输出(数据来自从机);

        MOSI:Master output slave input 主机输出,从机输入(数据来自主机);

        SCLK :Serial Clock 串行时钟信号,由主机产生发送给从机;

       SS:Slave Select 片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。

缺点:

三、I2C

        Intel - Integrated Circuit 是一种通用的总线协议。一种简单的双向两线制总线协议。它只需要两根线即可在连接于总线上的器件之间传送信息。

        主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送

        与串行外设接口 (SPI) 一样,它仅适用于单个设备内的短距离通信。与异步串行接口(如 RS-232 或 UART)一样,它只需要两条信号线来交换信息。

对比:

1、由于串行端口UART是异步(不传输时钟数据),因此使用它们的设备必须提前就数据速率达成一致。这两个设备的时钟也必须接近相同的速率,并且将保持这种状态 - 两端时钟速率之间的过大差异将导致数据乱码。2、异步串口需要硬件开销——两端的UART相对复杂,必要时难以在软件中准确实现。每帧数据至少有一个起始位和停止位,这意味着每发送 8 位数据需要 10 位的传输时间,这会影响数据速率。

SPI最明显的缺点是所需的引脚数量。连接单个控制器[1]到单个外设[1]SPI总线需要四条线路;每个额外的外围设备都需要控制器上一个额外的片选 I/O 引脚。引脚连接的快速扩散使得在必须将大量设备连接到一个控制器的情况下,它变得不受欢迎。此外,每个器件的大量连接会使在紧凑的 PCB 布局情况下更加难以布线信号

四、CAN

        控制器局域网总线(CAN,Controller Area Network)是一种实时应用的串行通讯协议总线,异步串行通讯低层网络,它可以使用双绞线来传输信号。

        对照OSI模型,CAN总线规范仅包含物理层和数据链路层的标准。

CAN总线具有以下几个优点:

高可靠性。CAN总线采用无主的网络架构,网络传输不依赖于主机的可靠性。

低成本。CAN总线物理层采用低压差分信号。

高传输效率。CAN总线使用面向位流编码的短数据帧,每个位都采用不归零编码,数据域最大长度位8字节。传输短数据帧时占用的网络周期短,受干扰或导致错误数据位的概率低,而且重传的时间也短。

易组网。CAN总线采用消息ID(11位或29位两种长度的消息ID)的二进制‘0’位的多少分配消息传输优先级,允许多个节点自动竞争和仲裁获取总线的占用权,甚至支持即插即用的节点。

开放协议和生态系统。

五、配置IP

法一:在设置里打开网络直接配置。

IP:172.16.129.108

子网掩码:255.255.255.0

网关:172.16.129.254

法二:在终端使用ifconfig命令配置ip地址,通常用来临时测试用,重启后ip地址将自动失效。

ifconfig:查看网络的配置信息

ifconfig <网卡名> 172.16.129.108  netmask 255.255.255.0:配置网络

route add default gw 172.16.129.254:配置网关

六、配置路由器

第一步:连接线缆。WAN口;LAN口。

第二步:设置自动获取ip地址。网上有详细教程说明!

打开以太网属性,勾选Internet协议版本4(TCP/IPv4)选自动获得IP地址、自动获得DNS服务器地址。判断是否获取IP成功:以太网下点状态---详细信息---已启用DHCP 是        这就成功啦!

七、Linux下配置网络

参考上。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值