串口通信的接收与发送 串口通信( 三 )


有多少种串行通信协议?串行通信协议包括系统间协议和系统内协议 。
系统间协议:用于与两个不同设备通信的系统间协议 。就像计算机和微控制器套件之间的通信一样 。通过内部总线系统进行通信 。常用的有UART协议、USART协议和USB协议 。
内部系统协议:内部系统协议用于通信电路板上的两个设备 。当使用这些系统内协议时,我们将扩展微控制器的外围设备,而不使用系统内协议 。使用系统内协议将增加电路复杂性和功耗 。使用系统内协议,降低了电路复杂度和功耗,降低了成本,数据访问非常安全 。常见的协议包括I2C协议、SPI协议和CAN协议 。
UART代表通用异步发送器和接收器 。UART协议是具有两种有线协议的串行通信 。数据电缆信号线标记为Rx和Tx 。串行通信通常用于发送和接收信号 。它通过串行端口而不是脉冲发送和接收数据 。UART接收数据字节并按顺序发送位 。
在嵌入式系统中,USAT协议通常被用作单片机的外设 。一般来说,TTL电平直接取自芯片引脚;间接芯片转换的可能性是RS232级别 。详情请参考:串行通信标准 。
UART是一种半双工协议 。半双工是指具有发送和接收数据的功能,但不能同时进行 。大多数控制器在电路板上都有硬件UART 。它使用数据线来发送和接收数据 。它有一个起始位,一个8位数据和一个停止位,表示8位数据从高到低传输一个人的信号 。比如:电子邮件、短信、对讲机、工业物联网传输设备串口服务器 。
USART代表通用同步和异步发送器和接收器 。这是一种双线协议的串行通信 。数据电缆信号线标记为Rx和TX 。该协议用于逐字节发送和接收数据和时钟脉冲 。这是一个全双工协议,这意味着同时以不同的板速度发送和接收数据 。不同的设备通过该协议与微控制器通信 。比如电信 。
USB代表通用串行总线 。同样,它也是双线协议的串行通信 。数据线和信号线标记为D+和D- 。该协议用于与系统外设通信 。USB协议用于串行地向主机和外围设备发送和接收数据 。USB通信需要基于系统功能的驱动软件 。USB设备可以在总线上传输数据,而无需来自主机的任何请求 。现在,大多数设备都使用这种技术通过USB协议进行通信 。像电脑一样通过USB与ARM控制器通信 。USB以不同的模式传输数据 。第一种是10 kbps到100 kbps的慢速模式;第二种是全速模式下500kbps到10mbps,高速模式下25mbps到400Mbps 。USB线的最大长度是4米 。
比如:鼠标、键盘、集线器、开关、笔驱动 。
I2C代表内部集成电路 。I2C只需要两根线就能把所有外设连接到微控制器上 。I2C只需要两根线SDA(串行数据线)和SCL(串行时钟线)就可以在设备之间传输信息 。它是从机通信协议的主机 。每个从站都有一个唯一的地址 。主设备发送目标从设备的地址和读/写标志 。该地址与该器件开启的所有从器件相匹配,其它从器件处于禁用模式 。一旦地址匹配,主机和从机将进行通信并发送和接收数据 。发送方发送8位数据,接收方用1位回复进行回复 。通信完成后,主站发出停止条件 。
I2C总线是由飞利浦半导体公司开发的 。它最初的目的是提供一种简单的方法来连接CPU和外围芯片 。嵌入式系统中的外围设备通常作为内存映射设备连接到微控制器 。I2C只需要两根线就能把所有外设连接到微控制器上 。这些活动线路称为SDA和SCL,是双向的 。SDA线是串行数据线,而SCA线是串行时钟线 。
I2C上拉电阻:
为什么在I2C SCL和SDA线路中使用上拉电阻?
SDA和SCL线都是开漏驱动器 。
它可以将输出拉低或拉高 。
为了使线路为高电平,必须提供一个上拉电阻 。
SPI代表串行外设接口 。它是摩托罗拉开发的串行通信协议之一 。有时,SPI协议也称为4线协议 。它需要四根电线MOSI,米索,SS和SCLK 。用于主机和从机之间通信的SPI协议 。主机首先使用该频率来配置时钟 。然后,主机通过拉动按钮来选择特定的从机进行通信 。选择一个特定的设备,并启动主机和特定从机之间的通信 。主机一次只能选择一个从机 。这是一个全双工通信协议 。在位传输的情况下,不限于8位字 。
CAN代表控制器局域网 。这是一个串行通信协议 。它需要两排CAN高(H+)和CAN低(H-) 。它是由Robert bosh公司于1985年为车载网络开发的 。它基于面向消息的传输协议 。
70年代是汽车厂商开始推出新功能的时代,比如防抱死制动、空调制、档位控制、中控锁等等 。这些功能确保了额外的布线和复杂的设计,从而增加了成本和风险 。为了克服这些问题,robert bosch在20世纪80年代引入了CAN协议 。这种串行通信协议在1993年由ISO11898进一步标准化 。正是CAN协议彻底改变了先进传感器之间的通信 。


推荐阅读