通讯协议的学习日志
什么是全双工?
半工是指信息只可以进行单向的传输,
双工是指信息可以进行双向的传输
半双工是指信息只可以同时进行单向的传输(能解决信息冲突)
全双工是指信息可以同时进行双向的传输
同步通信:是指在信息传递的过程中数据传输的方式和时序需要保持一致(发送端需要等待接收端的接收信号之后才可以进行下一次的数据传输)
异步通信:是指发送端和接收端没有统一的时钟信号,就需要通过数据的起始位和停止位来确认进行通信,比较简单但是传输的速度较慢。
同步通信可以适用于点对多
异步通信只适用于点对点
1.GPIO:GPIO就是通用输入输出端口,他输入和输出的方式一般是通过高低电平的方式进行输入和输出,通过对GPIO整个电路的了解,判断输入类型和输出类型,来判断高低电平。进而进行相关数据的输入和输出。那么GPIO实际上是通过读取引脚的高低电平来获取数据,这个引脚一般来自于外设。一般常用GPIO进行通讯的就是按键,LED灯,蜂鸣器,还有一些中断。GPIO的一些特殊引脚还可以作为其他通讯协议的引脚。
2.SPI通讯协议,SPI就是串行外设接口,是一种标准的四线同步双向串行总线,SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。(来自于//CSDN:通信方式梳理:GPIO,I2C,SPI,UART,USART,USB的区别)
SPI只有一个主机作为时钟信号,可以有多个从机。SPI数据采集的时机是高电位变低点位或者低点位变高电位的时机,一般要看配置。CKP是时钟极性就是用来配置高低电位变换的。
CKP极性是什么,空闲时候时钟就是什么。
CKE = 0:在时钟信号SCK的第一个跳变沿采样;
CKE = 1:在时钟信号SCK的第二个跳变沿采样;
将NSS片选的信号电信号拉低,NSS信号还可以是(CE,CS,SSEL)
SCLK时钟线也可以使SCK。
SPI是怎么传输数据的呢?
MISO可以是SDO。
MISI可以是SDA。
因为是同步通信所以有一个CLK的时钟接口来保证时序的一致性,
SDA:可以实现全双工的原因是有一个接收端SDO,一个输出端SDI.
使用SPI通讯的一般有显示屏,和一些无线模块
和显示屏通信时,一般有SCL时钟线同步时钟,SDA数据线传输数据,RES复位线来复位LCD,DC是数据命令线,来判断单片机传输的数据还是命令,此外还有CS片选线用于指定连接单片机的引脚。BL是背光线,用来控制LCD的背光亮度。
3.UART在传输时一般为低电平,在不传输时一般为高电平。
当检测到UART的高电平向低电平的转换时,开始以波特率的频率读取数据中的每一位数据。
(?为什么UART的一个字节可以是10比特/带八比特的数据位)
什么叫波特率?
也就是每秒通信传输的比特数。那9600的波特率就是传输一个比特需要 1/9600秒。
怎么设置UART的通讯方式呢?
4.IIC通讯协议
用于微控制器和外围设备,一般用于主机和从机在数据量不大以及距离不远的情况下使用,IIC由数据线SDA和时钟线SCL组成,是一种半双工通讯协议。一般以八位比特数据进行传输。IIC用两根线就可以完成传输,他SCL用于同步时钟信号,SDA用于传输信息,当SDA为高电平,SCL下降沿时,开始传输,当SDA为高电平,SCL上升沿时为结束传输,当SCL为高电平时,SDA信号不能发生改变。发送的是控制字节+地址字节+数据字节。
5.RS485电气协议
RS485是个电气协议,他定义的是多少电平为逻辑高电平,多少电平为逻辑低电平,同时有RS485芯片,将MCUTTL电平和实际用的电平进行电压的转换。
6.DVP
- DVP的信号脚名称及作用:
PCLK:pixel clock ,像素时钟,每个时钟对应一个像素数据;
HSYNC:horizonal synchronization,行同步信号
VSYNC:vertical synchronization,帧同步信号;
DATA:像素数据,视频数据,具体位宽要看ISP是否支持;
XCLK:或者MCLK,ISP芯片输出给驱动sensor的时钟;
也是并行传输的一个接口。