串口,IIC,SPI,USB等总线硬件知识总结

串口,IIC,SPI,USB等总线硬件知识总结


文章目录

  • 串口,IIC,SPI,USB等总线硬件知识总结
  • 1 串口
  • 2.I2C
  • 3.SPI
  • 4.USB
    • 控制(Control)传输方式
    • 同步(Isochronous)传输方式
    • 中断(Interrupt)传输方式
    • 批量(Bulk)传输方式
  • 5.以太网接口
  • 6.PCI和PCI-E
  • 7.SD和SDIO


1 串口

RS-232、 RS-422与RS-485都是串行数据接口标准, 最初都是由电子工业协会(EIA) 制订并发布的。

RS-232在1962年发布, 命名为EIA-232-E。 之后发布的RS-422定义了一种平衡通信接口, 它是一种单机发送、 多机接收的单向、 平衡传输规范, 被命名为TIA/EIA-422-A标准。 RS-422改进了RS-232通信距离短、 速率低的缺点。 为进一步扩展应用范围, EIA又于1983年在RS-422的基础上制定了RS-485标准, 增加了多点、 双向通信能力, 即允许多个发送器连接到同一条总线上, 同时增加了发送器的驱动能力和冲突保护特性, 并扩展了总线共模范围, 被命名为TIA/EIA-485-A标准。

1969年发布的RS-232修改版RS-232C是嵌入式系统中应用最广泛的串行接口, 它为连接DTE(数据终端设备) 与DCE(数据通信设备) 而制定。 RS-232C标准接口有25条线(4条数据线、 11条控制线、 3条定时线、 7条备用和未定义线) , 常用的只有9根, 它们是RTS/CTS(请求发送/清除发送流控制) 、RxD/TxD(数据收发) 、 DSR/DTR(数据终端就绪/数据设置就绪流控制) 、 DCD(数据载波检测, 也称RLSD, 即接收线信号检出) 、 Ringing-RI(振铃指示) 、 SG(信号地) 信号。 RTS/CTS、 RxD/TxD、
DSR/DTR等信号的定义如下。

·RTS: 用来表示DTE请求DCE发送数据, 当终端要发送数据时, 使该信号有效。
·CTS: 用来表示DCE准备好接收DTE发来的数据, 是对RTS的响应信号。
·RxD: DTE通过RxD接收从DCE发来的串行数据。
·TxD: DTE通过TxD将串行数据发送到DCE。
·DSR: 有效(ON状态) 表明DCE可以使用。
·DTR: 有效(ON状态) 表明DTE可以使用。
·DCD: 当本地DCE设备收到对方DCE设备送来的载波信号时, 使DCD有效, 通知DTE准备接收, 并且由DCE将接收到的载波信号解调为数字信号, 经RxD线送给DTE。

·Ringing-RI: 当调制解调器收到交换台送来的振铃呼叫信号时, 使该信号有效(ON状态) , 通知终端, 已被呼叫。

最简单的RS-232C串口只需要连接RxD、 TxD、 SG这3个信号, 并使用XON/XOFF软件流控。

组成一个RS-232C串口的硬件原理如图2.9所示, 从CPU到连接器依次为CPU、 UART(通用异步接收器发送器, 作用是完成并/串转换) 、 CMOS/TTL电平与RS-232C电平转换、 DB9/DB25或自定义连接器。
在这里插入图片描述

图2.9 RS-232C串口电路原理

2.I2C

I2C( 内置集成电路) 总线是由Philips公司开发的两线式串行总线, 产生于20世纪80年代, 用于连接微控制器及其外围设备。 I2C总线简单而有效, 占用的PCB( 印制电路板) 空间很小, 芯片引脚数量少,设计成本低。 I2C总线支持多主控( Multi-Mastering) 模式, 任何能够进行发送和接收的设备都可以成为主设备。 主控能够控制数据的传输和时钟频率, 在任意时刻只能有一个主控。

组成I2C总线的两个信号为数据线SDA和时钟SCL。 为了避免总线信号的混乱, 要求各设备连接到总线的输出端必须是开漏输出或集电极开路输出的结构。 总线空闲时, 上拉电阻使SDA和SCL线都保持高电平。 根据开漏输出或集电极开路输出信号的“线与”逻辑, I2C总线上任意器件输出低电平都会使相应总线上的信号线变低。

“线与”逻辑指的是两个或两个以上的输出直接互连就可以实现“与”的逻辑功能, 只有输出端是开漏( 对于CMOS器件) 输出或集电极开路( 对于TTL器件) 输出时才满足此条件。 工程师一般以“OC门”简称开漏或集电极开路。

I2C设备上的串行数据线SDA接口电路是双向的, 输出电路用于向总线上发送数据, 输入电路用于接收总线上的数据。 同样地, 串行时钟线SCL也是双向的, 作为控制总线数据传送的主机要通过SCL输出电路发送时钟信号, 并检测总线上SCL上的电平以决定什么时候发下一个时钟脉冲电平; 作为接收主机命令的从设备需按总线上SCL的信号发送或接收SDA上的信号, 它也可以向SCL线发出低电平信号以延长总线时钟信号周期。

当SCL稳定在高电平时, SDA由高到低的变化将产生一个开始位, 而由低到高的变化则产生一个停止位, 如图所示。
在这里插入图片描述

开始位和停止位都由I2C主设备产生。 在选择从设备时, 如果从设备采用7位地址, 则主设备在发起传输过程前, 需先发送1字节的地址信息, 前7位为设备地址, 最后1位为读写标志。 之后, 每次传输的数据也是1字节, 从MSB开始传输。 每个字节传完后, 在SCL的第9个上升沿到来之前, 接收方应该发出1个ACK位。 SCL上的时钟脉冲由I2C主控方发出, 在第8个时钟周期之后, 主控方应该释放SDA, I2C总线的时序如图所示。

在这里插入图片描述
在这里插入图片描述

3.SPI

SPI( Serial Peripheral Interface, 串行外设接口) 总线系统是一种同步串行外设接口, 它可以使CPU与各种外围设备以串行方式进行通信以交换信息。 一般主控SoC作为SPI的“主”, 而外设作为SPI的“从”。

SPI接口一般使用4条线: 串行时钟线( SCLK) 、 主机输入/从机输出数据线MISO、 主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS( 在不同的文献里, 也常称为nCS、 CS、 CSB、 CSN、nSS、 STE、 SYNC等) 。下图演示了1个主机连接3个SPI外设的硬件连接图。
在这里插入图片描述

如下图所示, 在SPI总线的传输中, SS信号是低电平有效的, 当我们要与某外设通信的时候, 需要将该外设上的SS线置低。 此外, 特别要注意SPI从设备支持的SPI总线最高时钟频率( 决定了SCK的频率)以及外设的CPHA、 CPOL模式, 这决定了数据与时钟之间的偏移、 采样的时刻以及触发的边沿是上升沿还是下降沿。
在这里插入图片描述

SPI模块为了和外设进行数据交换, 根据外设工作要求, 其输出串行同步时钟极性( CPOL) 和相位( CPHA) 可以进行配置。 如果CPOL=0, 串行同步时钟的空闲状态为低电平; 如果CPOL=1, 串行同步时钟的空闲状态为高电平。 如果CPHA=0, 在串行同步时钟的第一个跳变沿( 上升或下降) 数据被采样; 如果CPHA=1, 在串行同步时钟的第二个跳变沿( 上升或下降) 数据被采样。

4.USB

USB( 通用串行总线) 是Intel、 Microsoft等厂商为解决计算机外设种类的日益增加与有限的主板插槽和端口之间的矛盾而于1995年提出的, 它具有数据传输率高、 易扩展、 支持即插即用和热插拔的优点,目前已得到广泛应用。

USB 1.1包含全速和低速两种模式, 低速方式的速率为1.5Mbit/s, 支持一些不需要很大数据吞吐量和很高实时性的设备, 如鼠标等。 全速模式为12Mbit/s, 可以外接速率更高的外设。 在USB 2.0中, 增加了一种高速方式, 数据传输率达到480Mbit/s, 半双工, 可以满足更高速外设的需要。 而USB 3.0( 也被认为是Super Speed USB) 的最大传输带宽高达5.0Gbit/s( 即640MB/s) , 全双工。

USB 2.0总线的机械连接非常简单, 采用4芯的屏蔽线, 一对差分线( D+、 D-) 传送信号, 另一对( VBUS、 电源地) 传送+5V的直流电。 USB 3.0线缆则设计了8条内部线路, 除VBUS、 电源地之外, 其余3对均为数据传输线路。 其中保留了D+与D-这两条兼容USB 2.0的线路, 新增了SSRX与SSTX专为USB3.0所设的线路。

在嵌入式系统中, 电路板若需要挂接USB设备, 则需提供USB主机( Host) 控制器和连接器; 若电路板需要作为USB设备, 则需提供USB设备适配器和连接器。 目前, 大多数SoC集成了USB主机控制器( 以连接USB外设) 和设备适配器( 以将本嵌入式系统作为其他计算机系统的USB外设, 如手机充当U盘) 。由USB主机、 设备和Hub组成的USB系统的物理拓扑结构如图所示。
USB的物理拓扑结构
每一个USB设备会有一个或者多个逻辑连接点在里面,每个连接点叫端点。USB提供了多种传输方式以适应各种设备的需要,一个端点可以选择如下一种传输方式。

控制(Control)传输方式

控制传输是双向传输,数据量通常较小,主要用来进行查询、配置和给USB设备发送通用命令。所有USB设备必须支持标准请求(Standard Request),控制传输方式和端点0。

同步(Isochronous)传输方式

同步传输提供了确定的带宽和间隔时间,它用于时间要求严格并具有较强容错性的流数据传输,或者用于要求恒定数据传送率的即时应用。例如进行语音业务传输时,使用同步传输方式是很好的选择。同步传输也常称为“Streaming Real-time”传输。

中断(Interrupt)传输方式

中断方式传送是单向的,对于USB主机而言,只有输入。中断传输方式主要用于定时查询设备是否有中断数据要传送,该传输方式应用在少量分散的、不可预测的数据传输场合,键盘、游戏杆和鼠标属于这一类型。

批量(Bulk)传输方式

批量传输主要应用在没有带宽、间隔时间要求的批量数据的传送和接收中,它要求保证传输。打印机和扫描仪属于这种类型。

而USB 3.0则增加了一种Bulk Streams传输模式,USB 2.0的Bulk模式只支持1个数据流,而BulkStreams传输模式则可以支持多个数据流,每个数据流被分配一个Stream ID(SID),每个SID与一个主机缓冲区对应。

在USB架构中,集线器负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机报告。一旦获悉有新设备连接上来,主机就会发送一系列请求给设备所挂载的集线器,再由集线器建立起一条连接主机和设备之间的通信通道。然后主机以控制传输的方式,通过端点0对设备发送各种请求,设备收到主机发来的请求后回复相应的信息,进行枚举(Enumerate)操作。因此USB总线具备热插拔的能力。

5.以太网接口

以太网接口由MAC(以太网媒体接入控制器)和PHY(物理接口收发器)组成。以太网MAC由IEEE802.3以太网标准定义,实现了数据链路层。常用的MAC支持10Mbit/s或100Mbit/s两种速率。吉比特以太网(也称为千兆位以太网)是快速以太网的下一代技术,将网速提高到了1000Mbit/s。千兆位以太网以IEEE 802.3z和802.3ab发布,作为IEEE 802.3标准的补充。

MAC和PHY之间采用MII(媒体独立接口)连接,它是IEEE-802.3定义的以太网行业标准,包括1个数据接口与MAC和PHY之间的1个管理接口。数据接口包括分别用于发送和接收的两条独立信道,每条信道都有自己的数据、时钟和控制信号,MII数据接口总共需要16个信号。MII管理接口包含两个信号,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。

一个以太网接口的硬件电路原理如图所示,从CPU到最终接口依次为CPU、MAC、PHY、以太网隔离变压器、RJ45插座。以太网隔离变压器是以太网收发芯片与连接器之间的磁性组件,在其两者之间起着信号传输、阻抗匹配、波形修复、信号杂波抑制和高电压隔离作用。
在这里插入图片描述
以太网接口的硬件电路原理许多处理器内部集成了MAC或同时集成了MAC和PHY, 另有许多以太网控制芯片也集成了MAC和PHY。

6.PCI和PCI-E

PCI(外围部件互连)是由Intel于1991年推出的一种局部总线,作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛应用。PCI总线具有如下特点。
·数据总线为32位,可扩充到64位。
·可进行突发(Burst)模式传输。突发方式传输是指取得总线控制权后连续进行多个数据的传输。突发传输时,只需要给出目的地的首地址,访问第1个数据后,第2~n个数据会在首地址的基础上按一定规则自动寻址和传输。与突发方式对应的是单周期方式,它在1个总线周期只传送1个数据。
·总线操作与处理器—存储器子系统操作并行。
·采用中央集中式总线仲裁。
·支持全自动配置、资源分配,PCI卡内有设备信息寄存器组为系统提供卡的信息,可实现即插即用。
·PCI总线规范独立于微处理器,通用性好。
·PCI设备可以完全作为主控设备控制总线。
图给出了一个典型的基于PCI总线的计算机系统逻辑示意图,系统的各个部分通过PCI总线和PCI-PCI桥连接在一起。CPU和RAM通过PCI桥连接到PCI总线0(即主PCI总线),而具有PCI接口的显卡则可以直接连接到主PCI总线上。PCI-PCI桥是一个特殊的PCI设备,它负责将PCI总线0和PCI总线1(即从PCI主线)连接在一起,通常PCI总线1称为PCI-PCI桥的下游(Downstream),而PCI总线0则称为PCI-PCI桥的上游(Upstream)。为了兼容旧的ISA总线标准,PCI总线还可以通过PCI-ISA桥来连接ISA总线,从而支持以前的ISA设备。

在这里插入图片描述
基于PCI总线的计算机系统逻辑示意图

当PCI卡刚加电时, 卡上配置空间即可以被访问。 PCI配置空间保存着该卡工作时所需的所有信息,如厂家、 卡功能、 资源要求、 处理能力、 功能模块数量、 主控卡能力等。 通过对这个空间信息的读取与编程, 可完成对PCI卡的配置。 如图2.17所示, PCI配置空间共为256字节, 主要包括如下信息。
·制造商标识(Vendor ID):由PCI组织分配给厂家。
·设备标识(Device ID):按产品分类给本卡的编号。
·分类码(Class Code):本卡功能的分类码,如图卡、显示卡、解压卡等。
·申请存储器空间:PCI卡内有存储器或以存储器编址的寄存器和I/O空间,为使驱动程序和应用程序能访问它们,需申请CPU的一段存储区域以进行定位。配置空间的基地址寄存器用于此目的。
·申请I/O空间:配置空间中的基地址寄存器用来进行系统I/O空间的申请。
·中断资源申请:配置空间中的中断引脚和中断线用来向系统申请中断资源。偏移3Dh处为中断引脚寄存器,其值表明PCI设备使用了哪一个中断引脚,对应关系为1—INTA#、2—INTB#、3—INTC#、4—INTD#。
在这里插入图片描述
PCI配置空间

PCI-E(PCI Express)是Intel公司提出的新一代的总线接口,PCI Express采用了目前业内流行的点对点串行连接,比起PCI以及更早的计算机总线的共享并行架构,每个设备都有自己的专用连接,采用串行方式传输数据,不需要向整个总线请求带宽,并可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。

PCI Express在软件层面上兼容目前的PCI技术和设备,支持PCI设备和内存模组的初始化,也就是说无须推倒目前的驱动程序、操作系统,就可以支持PCI Express设备。

7.SD和SDIO

SD(Secure Digital)是一种关于Flash存储卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC(Multi-Media Card)保持了兼容。SDHC(SD High Capacity)是大容量SD卡,支持的最大容量为32GB。2009年发布的SDXC(SD eXtended Capacity)则支持最大2TB大小的容量。

SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)在SD标准的基础上,定义了除存储卡以外的外设接口。SDIO主要有两类应用——可移动和不可移动。不可移动设备遵循相同的电气标准,但不要求符合物理标准。现在已经有非常多的手机或者手持装置都支持SDIO的功能,以连接WiFi、蓝牙、GPS等模块。

一般情况下,芯片内部集成的SD控制器同时支持MMC、SD卡,又支持SDIO卡,但是SD和SDIO的协议还是有不一样的地方,支持的命令也会有不同。SD/SDIO的传输模式有:
·SPI模式
·1位模式
·4位模式
表显示了SDIO接口的引脚定义。其中CLK为时钟引脚,每个时钟周期传输一个命令或数据位;CMD是命令引脚,命令在CMD线上串行传输,是双向半双工的(命令从主机到从卡,而命令的响应是从卡发送到主机);DAT[0]~DAT[3]为数据线引脚;在SPI模式中,第8脚位被当成中断信号。图给出了一个SDIO单模块读、写的典型时序。
在这里插入图片描述
在这里插入图片描述
SDIO单模块读、 写的典型时序

eMMC(Embedded Multi Media Card) 是当前移动设备本地存储的主流解决方案, 目的在于简化手机存储器的设计。 eMMC就是NAND Flash、 闪存控制芯片和标准接口封装的集合, 它把NAND和控制芯片直接封装在一起成为一个多芯片封装(Multi-Chip Package, MCP) 芯片。 eMMC支持DAT[0]~DAT[7]8位的数据线。 上电或者复位后, 默认处于1位模式, 只使用DAT[0], 后续可以配置为4位或者8位模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3266.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3+vite+ts 搭建脚手架01创建vite项目并且在项目中初次使用router

vue3vite 搭建脚手架01创建vite项目并且在项目中使用router 1.使用yarn安装vite项目 yarn create vite 搭建vite项目 在开发语言中选择vuets2.安装现在最新的 vue-router4 yarn add vue-router4 在packger中检查是否成功安装3.简单配置router文件 在项目中新建views和…

【C++】map、set、multimap、multiset的介绍和使用

我讨厌世俗&#xff0c;也耐得住孤独。 文章目录一、键值对二、树形结构的关联式容器1.set1.1 set的介绍1.2 set的使用1.3 multiset的使用2.map2.1 map的介绍2.2 map的使用2.3 multimap的使用三、两道OJ题1.前K个高频单词&#xff08;less<T>小于号是小的在左面升序&…

如何将字符串反转?

参考答案 使用 StringBuilder 或 StringBuffer 的 reverse 方法&#xff0c;本质都调用了它们的父类 AbstractStringBuilder 的 reverse 方法实现。&#xff08;JDK1.8&#xff09;不考虑字符串中的字符是否是 Unicode 编码&#xff0c;自己实现。递归1. public AbstractStrin…

优秀程序员的5个特征,你在第几层?

每个人程序员都对未来的职业发展有着憧憬和规划&#xff0c;要做架构师、要做技术总监、要做CTO。但现实总是复杂的&#xff0c;日复一日的工作与生活总能让人一次又一次地陷入迷茫。大部分原因就是对职业发展轨迹和自我能力提升的一般规律缺乏认识&#xff0c;做事找不到方向或…

WebSocket 测试工具

一、WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直…

MySQL数据库管理系统安装部署——Linux

MySQL数据库管理系统安装部署——Linux 简介 MySQL数据库管理系统&#xff08;后续简称MySQL)&#xff0c;是一款知名的数据库系统&#xff0c;其特点是:轻量、简单、功能丰富。MySQL数据库可谓是软件行业的明星产品&#xff0c;无论是后端开发、大数据、AI、运维、测试等各类…

linux入门---操作体统的概念

什么是操作系统 操作系统是一个对软硬件资源进行管理的软件。计算机由一堆硬件组成&#xff0c;这些硬件遵循着冯诺依曼体系结构 在这个硬件的基础上还有一个软件叫做操作系统 操作系统的任务是对硬件进行管理&#xff0c;既然是管理的话操作系统得访问到底层的硬件&#xf…

【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)

文章目录前言如何理解“贪心算法”&#xff1f;贪心算法实战分析1.分糖果2.钱币找零3.区间覆盖内容小结最后说一句&#x1f431;‍&#x1f409;作者简介&#xff1a;大家好&#xff0c;我是黑洞晓威&#xff0c;一名大二学生&#xff0c;希望和大家一起进步。 &#x1f47f;本…

Spring Boot 各层作用与联系

目录 1 Entity 层 2 DAO 层 3 Service 层 4 Controller 层 Spring Boot 各层之间的联系&#xff1a; controller 层-----> service 层(接口->接口实现类) -----> dao 层的.mapper 文件 -----> 和 mapper 层里的.xml 文件对应 1 Entity 层 实体层&#xff0c;…

Java笔记_6(面向对象)

Java笔记_6一、面向对象1.1、设计对象并使用1.2、封装1.3、就近原则和this关键字1.4、构造方法1.5、标准的JavaBean类1.6、对象内存图1.7、基本数据类型和引用数据类型1.8、this的内存原理1.9、成员和局部二、面向对象&#xff08;综合练习&#xff09;2.1、文字版格斗游戏2.2、…

正式环境关闭swagger

直接上步骤&#xff0c;如图&#xff1a;1&#xff0c;启动判断写在相应的环境配置文件中&#xff0c;根据条件判断是否启动 swagger &#xff1a;添加配置项&#xff1a;swagger.is.enable配置文件中添加&#xff1a;#是否激活 swagger true or falseswagger.is.enabletrue2&a…

【Linux】-初识Linux

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Linux】 分享&#xff1a;逆着光行走&#xff0c;任风吹雨打。 ——《起风了》 主要内容&#xff1a;Linux的一些最基本指令&#xff0c;Linux的小程序&#xff0c;Linux关于连…

从暴力递归到动态规划(2)小乖,你也在为转移方程而烦恼吗?

前引&#xff1a;继上篇我们讲到暴力递归的过程&#xff0c;这一篇blog我们将继续对从暴力递归到动态规划的实现过程&#xff0c;与上篇类似&#xff0c;我们依然采用题目的方式对其转化过程进行论述。上篇博客&#xff1a;https://blog.csdn.net/m0_65431718/article/details/…

看完这篇 教你玩转渗透测试靶机vulnhub——My File Server: 1

Vulnhub靶机My File Server: 1渗透测试详解Vulnhub靶机介绍&#xff1a;Vulnhub靶机下载&#xff1a;Vulnhub靶机安装&#xff1a;Vulnhub靶机漏洞详解&#xff1a;①&#xff1a;信息收集&#xff1a;②&#xff1a;FTP匿名登入&#xff1a;③&#xff1a;SMB共享服务&#xf…

【微信小程序】-- 使用 Git 管理项目(五十)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

【Docker】Compose容器编排LNMP上云

文章目录什么是Docker-Compose下载安装官网官网下载安装卸载Compose核心概念一文件两要素三个步骤Compose常用命令DjangoMysqlRedisNginx部署部署架构构建django容器 - - - dockerfile编写构建Nginx容器docker-compose 编排容器Django项目配置custom_webmysql容器redis容器Djan…

一文看懂数据仓库

数据仓库数据仓库的概念数据仓库的主要特征数据仓库的分层数据仓库的分层介绍原始数据层&#xff1a;ODS&#xff08;Operational Data Store&#xff09;数据仓库层&#xff1a;DW&#xff08;Data Warehouse&#xff09;数据明细层&#xff1a;DWD&#xff08;Data Warehouse…

邪恶的想法冒出,立马启动python实现美女通通下

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 完整源码、python资料: 点击此处跳转文末名片获取 当我在首页刷到这些的时候~ 我的心里逐渐浮现一个邪念&#xff1a;我把这些小姐姐全都采集&#xff0c;可以嘛&#xff1f; 答案当然是可以的~毕竟就我这技术&#xff0c…

【Java|golang】45. 跳跃游戏 II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - 1] 的最…

不会写SQL?ChatGPT 来帮你

想必当前最火的软件就是ChaGPT了&#xff0c;它是一款基于人工智能技术的大型语言模型,在数据库方面&#xff0c;ChaGPT可以被用来进行自然语言处理&#xff0c;实现自然语言查询和分析数据库。通过将ChaGPT与数据库集成&#xff0c;可以使得数据库更加智能化&#xff0c;提高数…