posts - 33,  comments - 1,  views - 48511
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.12.1. 并口通讯

如下图,假如mcu1把想要传递给mcu2的数据(4个位分别为d0/d1/d2/d3)放到对应的引脚(实际上就是设置对应引脚的高、低电平),接着设置cs引脚高电平。Muc2感知cs引脚高电平后,将d0~d3的数据读入。这就是并口通讯的模型。

wps13

可见,并口通讯一次性传递多位数据,数据带宽大(数据总线位数),速度快,但占用IO口多,如图中传递4位需要占用5个IO口。

1.12.2. 串行通讯

以单总线结构为例,如下图:

wps14

假如MCU1和MCU2做出如下约定:

1. 空闲时间d0始终保持高电平(硬件上MCU1/MCU2均可将d0拉低);

2. 启动发送数据,数据发起方将d0拉低并保持1S;

3. 高电平0.75s+低电平0.25s代表1;

4. 低电平0.75s+高电平0.25s代表0;

5. 数据高位在前,地位在后;

接下来,MCU1就可以向MCU2传递数据了,比如要传递字符“a”,二级制码是0b10010111,顺序如下:

1. Mcu1将d0拉低并维持1S,MCU2在感知到d0有1S低电平时准备好接受数据;

2. 1S后MCU1继续保持d0高电平0.75s,然后将d0拉低0.25S,在此期间MCU2根据高、低电平的比例区分0/1;

3. 循环至发送完最后一位1;

4. MCU1将d0拉高;

以上过程,就是串行通讯的模型,显然串行通讯是通讯双方根据约定操控、读取IO口数据的过程,其本质依然是操控IO。在串行通讯中,双方的约定就是通讯协议,通讯时使用到的硬件接口称为总线(如图中d0),协议和总线分别从软件层、硬件层描述串行通讯。

单片机上常用的串行通讯协议/总线有spi总线、i2c总线、uart总线等。常见的单片机已经将通讯协议做成硬件内置模块,使用者只需要调用响应的寄存器就可以完成通讯。

posted on   史久超  阅读(634)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
知识改变命运
点击右上角即可分享
微信分享提示