小工具知识网

当前位置: 首页 > 行业知识 > 【硬件工程师面经整理8

行业知识

【硬件工程师面经整理8

2026-11-03 17:46:09 来源:互联网转载

文章目录

  • SPI
  • I2C
    • I2C时序
    • I2C传输速率
    • I2C、SPI、UART协议的速率等问题
    • 串口通信(UART),波特率用的是多少,数据帧结构,用的什么芯片实现的
    • TCP/IP协议的层数
    • OSI(开放式系统互联)模型
    • 802.11协议族/调制方式
    • 对can通讯了解多少?

      协议���关

      ()

      SPI

      SPI(Serial Peripheral Interface)是一种同步串行通信接口协议,常用于在嵌入式系统中连接主控芯片和外围设备,如传感器、存储器、显示器等。SPI协议需要至少四根线来连接主控和外设,包括时钟信号、数据输入信号、数据输出信号和片选信号。它采用一组全双工的数据线,包括一个主机(master)和一个或多个从机(slave)

      SPI协议通常使用主从模式,其中主设备发出时钟信号并控制数据传输,而从设备则根据主设备的时钟信号进行数据传输。SPI协议的特点是数据传输速率快,可实现全双工通信,通信距离短且可靠性高。SPI协议通常用于需要高速数据传输的应用场合,例如存储器读写、传感器数据采集等。

      ()

      12.1.1 SPI协议的特点

      1. 通信方式:SPI协议是一种全双工通信方式,主机和从机可以同时发送和接收数据,通信效率高。
      2. 信号线数量:SPI协议采用四根信号线进行通信,包括一个时钟线(SCK)、一个主机输出从机输入线(MOSI)、一个主机输入从机输出线(MISO)和一个片选线(SS)。
      3. 传输数据类型:SPI协议可以传输不同类型的数据,包括控制信号、地址信息、数据字节等。
      4. 传输速率:SPI协议的传输速率可以通过调整时钟频率进行控制,速率通常在几百Kbps到几十Mbps之间。
      5. 芯片选择:SPI协议采用片选线(SS)进行芯片选择,主机可以通过拉低某个从机的片选线来选择与之通信的从机。

        12.1.2 SPI协议的通信过程:

      6. 主机拉低片选线,选择要通信的从机。
      7. 主机向从机发送控制信号、地址信息和数据字节等,同时从机也可以向主机发送数据。
      8. 主机通过时钟线(SCK)来控制数据传输的时序,从而实现数据的同步传输。
      9. 主机通过拉高片选线来结束通信。

        需要注意的是,SPI协议的具体参数会因不同的硬件平台、芯片型号、通信速率等因素而异,因此在实际应用中需要根据具体情况进行调整和优化。同时,需要确保主机和从机之间的SPI时序保持一致,否则可能导致通信错误或失败。

      I2C

      (I2C总线协议详解(特点、通信过程、典型I2C时序)

      I2C(Inter-Integrated Circuit)是一种串行通信协议,一种用于芯片间通信的串行通信协议。I2C协议只需要两根线来连接主控和从设备,即串行数据线(SDA)和串行时钟线(SCL)。在I2C总线上传输的数据被组织成字节的形式,每个字节由8个位组成。

      I2C协议中的数据传输是基于时钟信号的。在I2C总线上,每个设备都有一个唯一的地址。主设备通过向从设备发送特定的控制命令,来读取或写入从设备的寄存器或内部存储器。I2C协议中的传输分为两种模式:传输模式和地址模式。

      在I2C协议中,每个数据包由起始位(Start bit)和停止位(Stop bit)来标识。起始位表示一次新的数据传输即将开始,停止位则表示当前传输已经结束。在I2C协议中,每个数据位(Data bit)和每个应答位(ACK bit)都需要在时钟的上升沿或下降沿上进行读写操作。

      I2C协议中的时序要求比较严格,不同设备在实现I2C协议时可能会有不同的时序参数。例如,I2C总线上的数据传输速率是由主设备的时钟频率决定的,因此在不同的应用场景中需要根据具体情况进行时序分析和优化。

      【SDA线用于在主机和从机之间传输数据,其电平由主机或从机控制,当SDA为高电平时表示逻辑1,当SDA为低电平时表示逻辑0。

      SCL线用于同步数据传输的时钟信号,其电平也由主机或从机控制。主机在SCL上产生的时钟信号确定了数据传输的速率,从机则根据时钟信号来解析数据。

      在I2C通信中,主机通过控制SDA和SCL信号线来进行数据传输。主机在发送数据之前,需要通过发送起始信号(Start Bit)来标识一次数据传输的开始,然后发送设备地址和读写位,最后才是具体的数据。在传输完数据之后,主机还需要发送停止信号(Stop Bit)来结束数据传输。】

      I2C时序

      I2C总线的时序由一系列的时钟脉冲和数据传输组成。下面是一些I2C总线的时序特点:

      1. 起始条件:I2C总线上的一个数据传输的开始称为起始条件。在起始条件中,SDA线首先从高电平跳变到低电平,然后SCL线跟随SDA线的变化,变成低电平。起始条件表明数据传输的开始。
      2. 停止条件:I2C总线上的一个数据传输的结束称为停止条件。在停止条件中,SDA线首先从低电平跳变到高电平,然后SCL线跟随SDA线的变化,变成高电平。停止条件表明数据传输的结束。
      3. 时钟脉冲:在I2C总线上传输数据时,时钟脉冲用于同步数据的传输。SCL线的高低电平变化形成时钟脉冲,时钟脉冲的频率由主设备控制。
      4. 数据传输:在I2C总线上传输的数据被组织成字节的形式,每个字节由8个位组成。数据的传输是由主设备控制的,主设备通过SCL线上的时钟脉冲来同步数据的传输。
      5. 应答信号:在I2C总线上传输数据时,接收设备需要向主设备发送应答信号以确认数据的接收。在每个字节的最后一位后面,接收设备需要在SDA线上拉低一个时钟周期来发送应答信号。如果接收设备成功接收了数据,则发送一个低电平应答信号;如果接收设备未成功接收数据,则发送一个高电平的非应答信号。

        数据和时钟的传输顺序和时间参数,主要包括以下几个步骤:

      6. 总线空闲状态:SDA和SCL线都处于高电平状态。
      7. 起始信号:SDA线先拉低,然后SCL线跟着拉低,表示开始一个数据传输过程。
      8. 地址传输:主机向从机发送7位地址信息和一个读写标志位(低电平表示写操作,高电平表示读操作),每发送一位数据后都需要等待从机的ACK信号确认。
      9. 数据传输:主机向从机传输数据,每传输一个字节需要等待从机的ACK信号确认,传输完成后主机可以继续发送下一个数据字节。
      10. 停止信号:主机在数据传输完成后,先拉高SDA线,然后再拉高SCL线,表示传输结束。

        需要注意的是,I2C时序的具体参数会因不同的硬件平台、芯片型号、通信速率等因素而异,因此在实际应用中需要根据具体情况进行调整和优化。同时,需要确保主机和从机之间的I2C时序保持一致,否则可能导致通信错误或失败。

      I2C传输速率

      I2C(Inter-Integrated Circuit)是一种串行通信协议,其传输速率可以通过两种方式进行定义:标准模式和快速模式。

      标准模式:标准模式下,I2C总线速率最高为100Kbps。在标准模式下,总线时钟的周期为5微秒,每个数据字节的传输需要9个时钟周期,其中包括一个起始位、7位地址、读/写标志位、8位数据和一个应答位。

      快速模式:快速模式下,I2C总线速率最高可达400Kbps。在快速模式下,总线时钟的周期为1.25微秒,每个数据字节的传输需要1个起始位、7位地址、读/写标志位、8位数据和一个应答位,共计9个时钟周期。

      此外,还有更高速的I2C模式,例如高速模式(速率可达1Mbps)和超高速模式(速率可达3.4Mbps),但这些模式需要更高的系统时钟频率和更复杂的硬件设计,一般用于高性能和大容量数据传输的应用。

      需要注意的是,在实际应用中,I2C的传输速率还受到其他因素的影响,例如总线负载、传输距离、线路电容等,因此需要根据具体情况进行调整和优化

      12.2.3 IIC为什么要加上拉电阻

      接上拉电阻是因为 I2C 通信需要输出高电平的能力。一般开漏输出无法输出高电平,如果在漏极接上拉电阻,则可以进行电平转换。

      I2C 由两条总线 SDA 和 SCL 组成。连接到总线的器件的输出级必须是漏极开路,都通过上拉电阻连接到电源,这样才能够实现“线与”功能。当总线空闲时,这两条线路都是高电平。

      I2C连接中需要加上拉电阻的原因是为了保证总线的电平稳定和信号的正确传输。I2C连接的两条线都是双向传输的,因此在总线上的每一个器件都需要对这两条线进行控制。但是,在实际应用中,当某一个器件没有拉高或拉低某一条线时,该线就会处于高阻状态,导致总线电平不稳定。因此,需要加上拉电阻,使总线电平稳定在高电平或低电平状态。上拉电阻的阻值通常为2.2kΩ到10kΩ,下拉电阻的阻值通常为2.2kΩ到4.7kΩ。

      I2C、SPI、UART协议的速率等问题

      I2C (Inter-Integrated Circuit)协议是一种同步的串行通信协议,它使用两根线进行通信:时钟线(SCL)和数据线(SDA)。I2C协议有两条标准线速:标准模式(100 kbit/s)和快速模式(400 kbit/s),还有高速模式(3.4 Mbit/s)和超高速模式(5 Mbit/s)。

      SPI (Serial Peripheral Interface)协议也是一种同步的串行通信协议,它使用四条线进行通信:时钟线(SCK)、数据线(MOSI)、数据线(MISO)和片选线(SS)。SPI协议的速率可以由主设备控制,通常可以达到几十MHz。

      UART (Universal Asynchronous Receiver/Transmitter)协议是一种异步的串行通信协议,它使用两条线进行通信:发送线(TX)和接收线(RX)。UART通常是一个简单的硬件电路,速率通常由波特率(波特/秒)来表示,典型的波特率为9600、115200等。

      总的来说,SPI的速率通常比I2C和UART更高,而UART的使用比I2C和SPI更广泛。选择哪种协议取决于应用场景和要求,例如所需的速度、距离、电源需求等

      串口通信(UART),波特率用的是多少,数据帧结构,用的什么芯片实现的

      串口通信是一种通过串行数据传输方式实现的通信方式,常用于连接计算机与外部设备进行数据传输。通常情况下,串口通信会使用UART芯片来实现。

      波特率是指每秒钟传输的二进制位数,即传输速率。串口通信中,波特率是表示通信双方约定的数据传输速率,一般常用的波特率有9600、19200、38400、115200等。

      串口通信中,数据帧结构通常包括起始位、数据位、校验位和停止位。其中,起始位和停止位用来标识数据帧的开始和结束,校验位用于检验数据传输的准确性,数据位则用于传输实际数据。

      常用的串口通信芯片有MAX232、CH340、PL2303等,不同芯片具体实现方式可能有所不同。

      TCP/IP协议的层数

      TCP/IP协议是一种常用的网络协议,其层数的划分有不同的标准,最常用的是四层模型,也有人将其划分为五层模型。以下是常见的四层模型:

      1. 应用层(Application Layer):提供应用程序间通信和数据交换的协议,如HTTP、FTP、SMTP等。
      2. 传输层(Transport Layer):提供可靠的数据传输服务,如TCP和UDP协议。
      3. 网络层(Internet Layer):处理网络之间的数据传输和路由选择,如IP协议。
      4. 数据链路层(Link Layer):负责将数据包从一个节点传输到另一个节点,如Ethernet和Wi-Fi。

        注意,TCP/IP协议的层数和OSI参考模型不完全一致。在OSI参考模型中,还有会话层和表示层,而在TCP/IP协议中,这两个层次的功能被包含在应用层中。

      OSI(开放式系统互联)模型

      OSI模型(Open Systems Interconnection Model,开放式系统互联模型)是国际标准化组织(ISO)制定的一种用于计算机网络体系结构的参考模型。它将计算机网络的通信过程分为七层,每一层都负责不同的任务,下面是OSI模型的七层:

      1. 物理层(Physical Layer):物理层负责在物理媒介上传输数据,包括电气特性、光学特性、机械特性等,例如电缆、光纤等。
      2. 数据链路层(Data Link Layer):数据链路层负责将数据进行分帧、差错检测和纠正,保证数据的可靠传输。例如以太网、无线局域网等。
      3. 网络层(Network Layer):网络层负责在不同的网络之间进行路由选择,保证数据能够正确地到达目的地。例如IP协议。
      4. 传输层(Transport Layer):传输层负责对数据进行传输控制和差错控制,保证数据传输的可靠性和正确性。例如TCP协议、UDP协议。
      5. 会话层(Session Layer):会话层负责建立、管理和终止应用程序之间的通信会话,提供数据交换的逻辑通道。
      6. 表示层(Presentation Layer):表示层负责数据的格式转换、加密解密和数据压缩等,保证不同应用程序之间的数据格式兼容。
      7. 应用层(Application Layer):应用层是最上层的一层,它提供各种网络服务和应用程序,例如电子邮件、文件传输协议(FTP)、域名系统(DNS)等。

        OSI模型的分层结构可以帮助网络工程师理解网络协议的功能和相互之间的关系,方便网络设计和故障排除。

      802.11协议族/调制方式

      802.11协议族是无线局域网(WLAN)技术的标准,包括多个标准和协议。其中比较常见的标准有802.11a/b/g/n/ac/ax等,它们的主要区别在于频段、传输速率、调制方式等方面。

      关于调制方式,802.11协议族使用的调制方式主要包括以下几种:

      1. DSSS:直接序列扩频技术。它是802.11b标准中使用的一种调制方式,可以通过扩频技术提高信号的抗干扰能力和传输距离。
      2. FHSS:频率跳跃扩频技术。它是802.11b标准中的另一种调制方式,通过不断跳变信号频率来抵御干扰。
      3. OFDM:正交频分复用技术。它是802.11a/g/n/ac标准中使用的一种调制方式,通过将数据流分成多个子信道传输,提高了数据传输的速率和可靠性。
      4. DSSS-OFDM:DSSS和OFDM的混合调制方式。它是802.11n标准中使用的一种调制方式,通过将DSSS和OFDM相结合,提高了信号的传输距离和抗干扰能力。
      5. MU-MIMO:多用户多输入多输出技术。它是802.11ac/ax标准中使用的一种调制方式,通过多个天线同时向多个用户发送数据,提高了数据传输的效率和吞吐量。

        这些调制方式在不同的802.11标准中应用,具有不同的优缺点,需要根据实际应用场景选择合适的调制方式。

      对can通讯了解多少?

      CAN(Controller Area Network)是一种常用于汽车和工业领域的串行通信协议。它最初由德国Bosch公司在1986年开发,用于解决汽车电子系统中的通信需求。

      CAN通讯的特点包括以下几个方面:

      差分传输:CAN使用差分传输方式,通过两根线(CAN_H和CAN_L)传输数据。这种差分传输方式具有抗干扰能力强的优点,适用于工业环境和汽车电气系统中的噪声干扰较多的情况。

      总线拓扑结构:CAN通讯采用总线拓扑结构,所有节点共享同一根总线。这种结构简化了系统的布线,降低了成本,并且支持多个节点同时通信。

      冲突检测和容错机制:CAN使用了冲突检测和容错机制,可以在多个节点同时发送数据时检测到冲突,并通过优先级和重发机制解决冲突,确保数据的可靠传输。

      速率灵活可调:CAN支持多种通信速率,通常有几个标准速率可供选择,例如1Mbps、500kbps、250kbps等。这使得CAN适用于不同应用场景下的通信需求。

      消息优先级:CAN消息具有优先级,较高优先级的消息可以中断正在传输的低优先级消息,确保重要数据的及时传输。

      CAN通讯在汽车电子系统中被广泛应用,用于车身控制、发动机管理、底盘控制、仪表盘等模块之间的通信。它也在工业自动化领域中得到应用,用于工厂自动化、机器人控制等场景。

      注:

      在本文中,我借鉴了互联网上的一些内容,以总结面试经验和技巧。这些内容旨在为读者提供实用的指导和参考。然而,由于个人经验和认知的局限性,本文的总结可能存在不准确或遗漏之处。因此,我真诚地欢迎读者朋友们提出宝贵的意见和建议,以帮助我改进和完善这些内容。

      此外,有些知识点参考了其他博主,可能由于疏忽未注明出处。这些借鉴的部分旨在提供更多信息和观点,以丰富和完善文章的主题。在此,我对所借鉴的来源表示感谢。此外,为确保所引用的内容均符合版权规定,以维护知识产权和学术道德。若文中任何内容侵犯了您的合法权益,请相关权益人及时与我联系,我将立即进行核实并采取适当措施,包括但不限于删除相关内容或更新文章以消除影响。

上一篇:服务器冷备份怎么开?

下一篇:Android——记事本功能业务(完整代码)