常见硬件通信协议总结
来源:互联网 发布:电脑淘宝怎么看上新 编辑:程序博客网 时间:2024/05/22 06:28
(正好手上的nodemcu支持UART、SPI、I2C协议,所以这篇文章干脆就用nodemcu来分析协议了~)
UART
用逻辑分析仪捕捉nodemcu init.lua给上位机发送 “A”:
-- init.luatmr.alarm(1, 1000, tmr.ALARM_AUTO, function() print('A')end)
解码设置:
解码结果:
SPI
GitHub上的nodemcu项目编译的固件中的spi没法用,测了好久,时序都不对。所以用的Arduino for esp项目来测的SPI时序。
#include <SPI.h>void setup(){ SPI.setDataMode(0);//SPI_MODE0 CPOL: 0 CPHA: 0 SPI.begin(); while (1) { SPI.transfer(0xAD); }}
解码设置:
解码结果:
I2C
I2C协议只用到两根线。具体细节可以参考I2C总线协议
-- init.luaid = 0sda = 1scl = 2i2c.setup(id, sda, scl, i2c.SLOW)tmr.alarm(1, 10, tmr.ALARM_AUTO, function() i2c.start(id) i2c.write(0, 0xAD) i2c.stop(id)end)
解码设置:
解码结果:
这里只是测试代码,所以没有从机对主机发出的信号做出应答,因而解码结果中有非应答信号。
(USB)
本来是想分析一下USB协议的,结果一看才发现,我的妈呀,太多了。。以上协议传输单位为字节,而USB传输单位为packet,因而可以灵活定义数据传送方式。所以以上协议相较于USB协议简直就是小打小闹啊=。=
USB硬件接口有vcc gnd d+ d-,数据传输由d+ d-配合完成。基本知识可参考USB协议基本知识和USB通讯协议–深入理解 ,要想了解详细内容还得深入研究,这方面的书太多太厚。。我这里就不深究了,等以后要用到再说。
nodemcu的引脚细节可以看这里
阅读全文
0 0
- 常见硬件通信协议总结
- ARM硬件知识和常见通信协议
- 常见web通信协议
- 常见网络通信协议结构图
- 常见的串行通信协议
- IIC通信协议总结
- 698通信协议总结
- SPI通信协议学习总结
- H.323通信协议学习总结
- 通用通信协议栈完善总结
- 常见系统通信协议使用及理解
- 常见硬件术语手册
- 常见硬件术语大全
- 通信协议
- 通信协议
- 通信协议
- 通信协议
- 通信协议
- 2017-6-6(成功搭建服务器)
- 【Linux 系统编程】Xshell 远程连接Linux 服务器
- 排序算法之总纲
- 关于Socket程序中的ntohs, ntohl, htons,htonl
- Tensorflow
- 常见硬件通信协议总结
- SQL语句更新时间字段的年份、月份、天数、时、分、秒
- 接口回调传值和执行方法
- 开会
- Aspose.Words图片水印
- numpy.core.defchararray.join
- hibernater学习笔记(一)
- K近邻分类
- web思维导图