说明:
- 面试群,群号: 228447240
- 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);
- 文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要经过认真思考,答案不重要,重要的是通过题目理解所考知识点,好应对题目更多的变化;
- 博主与大家一起学习,一起刷题,共同进步;
- 写文不易,麻烦给个三连!!!
1.关于RS232,你了解多少
答案:
1)无论是RS232还是RS485底层都是串口,只是在电气特性上面做了些修改,使得改善串口的问题
2)(接口)RS232有9根线,一般只使用其中的RXD TXD GND
3)(信号)规定逻辑1的电平为-5V到-15V,逻辑0的电平为+5V到+15V,提高了抗干扰能力,传输距离一般可达15m
由于我们处理器的电平是TTL电平达不到RS232这个电平要求,所以中间还需要一个转换过程,一般使用 MAX232这款芯片,把TTL电平转为RS23。
问题:由于RS232的电信号电压较高,容易烧心片,并且还使用到额外的芯片成本较高,传输速率较低,所以这个时候就出现RS485来改善。
2.RS232和RS485的区别(抗干扰,距离,电平,设备连接)
答案:
3.什么是IIC协议
答案:
概念:串行的、半双工的总线,主要应用于近距离,低速的芯片之间的通信,IIC有两根线,
SDA------->数据收发
SCL------->通信双方的时钟的同步
IIC总线上可以挂很多的器件,这些器件即可以作为主机也可以作为从机,那么总线是如何区分这些器件?通过器件的地址
4.IIC通信的过程
答案:
由主机发起启用总线,这个时候其他器件就会知道总线被占用就不会去启动总线。
1)主机发送一个字节:字节里面指明要和谁通信和通信的方向是读还是写,这个时候其他器件就会去比较自己的器件地址,看看是不是自己,这个时候确定通信方向之后后面就不能改变通信方向直到通信结束
2)从机对比自己的地址,发现是在叫自己之后就会回应主机
3)发送器发送数据
4)接收器发送回应信号
5)不断循环4、5
6)主机发起停止信号,释放总线
5.IIC协议的信号有什么
答案:
1)起始信号
2)停止信号
3)应答信号
4)发送数据信号:寻址或者数据
6.IIC总线起始信号和停止信号
答案:
起始:在SCL为高电平时,SDA由高变低
停止:在SCL为高电平时,SDA由低变高
字节发送和应答
数据为是8位,先发高为再发低位(1表示高,0表示低),之后接收器会发一位应答位(SCL为低的时候发),0表示应答。
7.解决IIC同步问题
答案:
比如发送方发送数据1111 0000 接收方怎么知道连续发了几个1几个0,这里解决的方法不同于串口,串口主要是依靠波特率,和每次只能发送一个字节来解决时差问题。
但是IIC是使用同步解决
在SCL为低的时候发送方修改自己的电信号为自己想要发送的信号,在SCL为高的时候接收方就会去总线上读取SDA的数据,这个时候发送方的电信号不能变,不然接收方就不知道你是1还是0,这样发一个数据位就接收方就收一个bit,不会存在时间误差。
8.典型的IIC时序
答案:
1) 主机发从机收
2)主机收从机发
3)先主机发几个数从机接收后,想让从机发主机收
这里重新启动之前之所以没有P是因为,发起停止信号后总线使用权可能被抢走
一般的通信流程是
主机发起起始信号---->主机发送目标器件的地址+读写方向--->器件应答------主机发送从机的寄存器地址----->器件应答
9.SPI是什么
答案:
概念:spi是高速、全双工、同步的串行通信总线,SPI至少有4根线,
MOSI 主机发送从机收
MISO 从机发送主机收
SCLK 时钟---->同步
CS 片选---->寻址
10.SPI通信过程
答案:
先发送高位再发送低位,发送完一个字节之后无需应答即可开始下个字节,没有起始,结束,应答信号,直接发送数据。
在时钟线SCL下降沿或者上升沿时,发送器将数据发送到数据线,在紧接着的上升沿或者下降沿接收器从数据线接收数据。