电子产业一站式赋能平台

PCB联盟网

搜索
查看: 48|回复: 0
收起左侧

学单片机要掌握哪些通信技术?

[复制链接]

344

主题

344

帖子

3148

积分

四级会员

Rank: 4

积分
3148
发表于 2024-11-12 11:46:00 | 显示全部楼层 |阅读模式
作者 | strongerHuang
微信公众号 | strongerHuang
不定期会有读者问类似这样的问题:从事单片机工作,要掌握哪些通信的技术知识?
随着技术的发展,通信技术越来越多,但在嵌入式领域,常见的通信技术其实也不多,像UART、 I2C、 SPI、 CAN、 USB和TCP/IP等这些算是最常见的一些。
这些通信技术说简单也简单,说难也难,这里站在初学者角度科普一下其中的基础内容。
常见通信技术
UART
UART:Universal Asynchronous Receiver/Transmitter,通用异步收发器。
USART:Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步串行接收/发送器。
USART可以理解为UART和USRT二合一的通信接口,一个是同步通信,一个是异步通信。
I2CI2C:Inter-Integrated Circuit,字面上的意思是集成电路之间,它其实是I2C Bus简称,所以中文应该叫集成电路总线,它是一种串行通信总线。
SPISPI:Serial Peripheral Interface,串行外设接口,是一种高速的,全双工,同步的通信总线。
QSPI是Queued SPI的简写,是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。
QSPI是在SPI协议的基础上,对其增加了队列传输机制,传输过程不需要CPU干预,极大的提高了传输效率。
CANCAN:Controller Area Network,控制器局域网络。
CAN 总线是一种应用广泛的现场总线 ,在工业测控和工业自动化等领域有很大的应用前景。
USBUSB:Universal Serial Bus,通用串行总线。
USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。
TCP/IPTCP/IP:Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议。
TCP/IP是传输协议,当然,这里主要指Internet网,只是TCP/IP是其中最为重要的一层传输协议。
当然,这些只是常见的通信技术,还有很多有线和无线的通信技术,这里就不过多描述。
通信原理
这几种常见串行方式基础的通信原理不难,网上教程也有很多,这里给大家整合一下。
UARTUART通信一般是3线,当然也有单线半双工模式。
UART连接方式:

ypx4elgb4xj640133703959.png

ypx4elgb4xj640133703959.png

UART通信数据格式:

1q0upsnvq00640133704059.png

1q0upsnvq00640133704059.png

这一节详细更多内容请参看《通信教程01》中串行通信章节。
I2CI2C是串行同步通信方式,一般是2线(SDA数据线、SCL时钟线),一主多从的通信方式。
I2C连线方式:

wm45k4uoegw640133704159.png

wm45k4uoegw640133704159.png

SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需通过上拉电阻接电源VCC。当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小。
I2C一般是地址+数据+ACK方式,基础的数据格式:

eay4vh0yzyw640133704259.jpg

eay4vh0yzyw640133704259.jpg

SPISPI应用非常广泛,通常用于在微控制器和小型外设(如移位寄存器,传感器和SD卡)之间发送数据的接口总线。
SPI通信主要使用3线(SCK、MOSI、MISO)进行通信:

r10cmtxjdjf640133704359.png

r10cmtxjdjf640133704359.png

但是SPI也用于多从机通信,此时,会多处一个CS片选信号线。

vewdedn1jqw640133704459.png

vewdedn1jqw640133704459.png

多从机接线方式:

4l0pb15xpja640133704559.png

4l0pb15xpja640133704559.png

当然,还有类似I2C多从机,通过寻址方式实现:

4g2dtmrzpet640133704659.png

4g2dtmrzpet640133704659.png

SPI通信协议比I2C要简单的多,没有过多的数据处理。
CANCAN通信是相对前面3种更复杂的一种局域网络,不管是硬件,还是软件协议都更加复杂。
这里不详细讲述,可以关注公众号回复【CANOpen系列教程】,里面有关于CAN从底层硬件、协议、到上层软件的详细内容。
USBUSB是生活中常见的一种串行通信接口,主要4线(D+ D- VCC GND):

5vwz4tkfpvy640133704759.png

5vwz4tkfpvy640133704759.png

USB设备端的D-或D+数据线连接1.5K欧姆的上拉电阻。当设备插入PC机的时候,会将PC机的D-或D+端的电压拉高,当PC机在D-或D+端检测到高电平时,就知道有设备插入了。
如果是PC机D-端被拉高,接入的则是USB低速设备;如果是PC机D+端被拉高,接入的则是USB全速或高速设备,具体是全速设备还是高速设备,会由PC机和USB设备发包握手确定。

dhww435yyzi640133704859.jpg

dhww435yyzi640133704859.jpg

USB传输速度有:低速1.5Mbps(USB1.0协议)、全速12Mbps(USB1.1协议)、高速480Mbps(USB2.0协议)、超高速5Gbps(USB3.0协议)等。
------------ END ------------

4jcvhtoe5gc640133704959.gif

4jcvhtoe5gc640133704959.gif

●专栏《嵌入式工具●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程
关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。
点击“阅读原文”查看更多分享。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表