智能座舱架构与芯片- (5) 硬件篇 下

四、短距无线连接

随着汽车智能化的发展与新型电子电气架构的演进,传统车内有线通信技术存在着诸多痛点:

  • 线束长度增加:由于智能化与自动化的发展,车内传感器和执行器均大幅增加。采用有线技术连接,则线束长度,重量,成本会带来更大影响;
  • 线束安装困难:线束安装强依赖于人工,线束安装的成本占人工成本的50%;基于有线连接的车载部件难以灵活升级,更增加了后期的维护与升级成本;
  • 接插件数量多:由于线束连接,导致车内接插件数量显著增加。由于车内电磁干扰等影响,一定场景下有接插件失效的危险;

因此,为了满足车辆生产制造过程中的成本控制,灵活部署,降低重量等需求,并且在座舱娱乐系统中方便用户体验,以车内短距无线连接代替部分有线连接,完成数据传输和控制功能成为发展重点。当前,电池管理系统,车载信息娱乐系统,无钥匙进入,胎压监测等车载应用出现了无线化的需求。车载应用功能对短距无线通信技术提出了“低时延,高可靠,精同步,高并发,高安全,低功耗”的要求。
下面将介绍用于智能座舱的车内短距无线通信技术,而用于车云一体化和车联网的5G+V2X通信模块则暂不涉及。

4.1 Wi-Fi

Wi-Fi是IEEE 发布的802.11协议家族,其发展历程和技术原理纷繁复杂,在此不多做介绍。目前在车内座舱环境中,为了引入对用户设备无线连接的支持,以及车机手机互联的需要,智能座舱域控制器中需要增加Wi-Fi模块的支持。

802.11协议发展历程

Wi-Fi 带宽计算

整机速率 = 空间流数量 * 1/(Symbol+GI) * 编码方式 * 码率 * 有效子载波数量

  • 空间流数量

空间流,即Wi-Fi AP与Station之间建立的空间数据流。2*2代表有2条数据流。8*8就代表有8条空间数据流。对于发送方来说,有几条空间流,就需要有几根天线。

  • Symbol与GI

Symbol就是时域上的传输信号,相邻的两个Symbol之间需要有一定的空隙(GI),以避免Symbol之间的干扰。不同Wi-Fi标准下的间隙也有不同,一般来说传输速率较快时GI需要适当增大。

  • 编码方式 (bit数/Symbol)

编码方式就是调制技术,即1个Symbol里面能承载的bit数量。从Wi-Fi 1到Wi-Fi 6,每次调制技术的提升,都能至少给每条空间流速率带来20%以上的提升。

  • 码率

理论上应该是按照编码方式无损传输,但现实没有这么美好。传输时需要加入一些用于纠错的信息码,用冗余换取高可靠度。码率就是排除纠错码之后实际真实传输的数据码占理论值的比例。

  • 有效子载波数量

载波类似于频域上的Symbol,一个子载波承载一个Symbol,不同调制方式及不同频宽下的子载波数量不一样。

下表给出了Wi-Fi的速率计算表格:

对于Wi-Fi6 8*8的配置来说,最大可支持空间8流,因此802.11ax在8*8的条件下,最大带宽为 1.2Gbps * 8 = 9.6Gbps;

注意,如果AP和手机建立连接,而手机只支持2*2,那么单个手机与AP的连接也只有2流,其最大速率只有2.4Gbps;有些Wi-Fi 模组支持双频并发(DBS with dual mac),此时代表在2.4GHz 和 5G Hz两个频段上并发传输,速率标记为2*2+2*2,实际最高带宽可接近3Gbps。

4.2 BT

蓝牙 (BlueTooth) 技术是一种无线数据语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定设备或移动设备之间的通信环境建立通用的无线电空中接口(Radio Air Interface),将通信技术与计算机技术进一步结合起来,使各种3C设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作。简单的说,蓝牙技术是一种利用低功率无线电在各种3C设备间彼此传输数据的技术。蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.15协议。

蓝牙规范可分为两个层次:

  • Core Specification(核心规范):用于规定蓝牙设备必须实现的通用功能和协议层次。它由软件和硬件模块组成,两个模块之间的信息和数据通过主机控制接口(HCI)的解释才能进行传递。 这个是必选。
  • Profiles(蓝牙应用规范):它从应用场景的角度为蓝牙技术的使用制定了不同的规范。这也是和大众日常生活接触最多的一部分。蓝牙支持很多Profiles,它是可选的。

Core Specification 包含2种技术:BR和LE,这两种技术,都包括了搜索,管理,连接等机制,但它们之间是独立发展的,因此BT设备最好能同时支持BR和LE,这样在设备进行互联时,可以根据实际需要,确保最大的兼容

1.Basic Rate (BR)

BR也称为经典蓝牙技术,它包括可选(optional)的EDR(Enhanced Data Rate)技术,以及交替使用的(Alternate)的MAC层PHY层扩展(简称AMP)。对于EDR来说,最高传输速率可以达到2.1Mbps;对于AMP来说,它借用了Wi-Fi的PHY层和MAC层,因此最高速率可以达到54Mbps。由于EDR采用的是BT自身的PHY层,而AMP采用的是Wi-Fi的MAC与PHY,因此EDR和AMP是需要交替使用的(Alternate mode)。简单的说就是两个BT设备先在EDR上完成了点对点的连接,然后再协商是否都迁移到AMP上去,以实现更高的传输速率。

2.Low Energy (LE)

LE的重点是低功耗。它主要通过几个低功耗组件来实现蓝牙设备的发现,管理,连接等功能。

  • GATT:表示服务器属性和客户端属性,描述了属性服务器中使用的服务层次,特点和属性。BLE设备使用它作为蓝牙低功耗应用规范的服务发现
  • ATT:实现了属性客户端和服务器之间的点对点协议。ATT客户端给ATT服务器发送请求命令,ATT服务器端向ATT客户端发送回复和通知。
  • SMP:用于生成对等协议的加密密钥和身份密钥。SMP管理加密密钥和身份密钥的存储,它通过生成和解析设备的地址来识别蓝牙设备。
  • L2CAP:管理连接间隔,例如10ms同步一次。它对LL进行一次简单封装,LL只关心数据本身,L2CAP就要区分是加密通道还是普通通道,同时还对连接间隔进行管理。

蓝牙常用的一些Profile:

1.A2DP:

全称为 Advances Audio Distribution Profile ,高质量音频分发规范,定义了如何将立体声(Stereo)质量的音频通过流媒体的方式从媒体源传输到接收器上,A2DP使用Asynchronous Connectionless Link(ACL,蓝牙异步传输)信道传输高质量音频内容,它依赖于Generic Audio/Video Distribution Profile(GAVDP,通用音频/视频分发规范)。A2DP必须支持低复杂度及Sub-bandCodec(SBC,低带宽编解码)。A2DP有两种应用场景分别是播放和录音。

  • 播放场景是具有蓝牙功能的播放器通过A2DP向蓝牙耳机或蓝牙立体声扬声器传送高质量音频。
  • 录音场景是具有蓝牙功能的麦克风通过A2DP向蓝牙录音器传送高质量音频。

2.AVRCP(Audio/Vedio Remote control profile)

音视频远程控制规范,它可以控制音视频流的协议,进行暂停,播放,停止,音量控制等。AVRCP协议定义了2个角色:

  • Target:被控制的目标设备,接收命令并按命令响应,例如电视,手机等;
  • Controller:远程控制端设备,发送控制命令到Target端,例如遥控器等;

3. HFP (Hands-Free Profile)

免提通话规范。定义了蓝牙音频网关设备如何通过蓝牙免提设备拨打和接听电话。HFP包括两个角色:Audio Gateway(AG,音频网关)和Hands-Free Unit(HF,免提设备)。

  • AG 是音频输入和输出的设备,典型的AG设备是手机。
  • HF是执行音频网关的远程音频输入输出设备,如耳机或者车载音响系统。
  • 和HFP相关的规范有Headset Profile(HSP,耳机规范),Phonebook Access Profile(PBAP,电话簿访问规范)。

蓝牙的发展历程

4.3 UWB

UWB(Ultra Wide Band, 超宽带)技术是一种使用1GHz以上频率带宽的无线载波通信技术。它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很大,尽管使用无线通信,但其数据传输速率可以达到几百兆比特每秒以上。使用UWB技术可在非常宽的带宽上传输信号,美国联邦通信委员会(FCC)对UWB技术的规定为:在3.1~10.6GHz频段中占用500MHz以上的带宽。

UWB的特点很多,其中一个特点是定位精确。

“冲激脉冲具有很高的定位精度。采用UWB技术,很容易将定位与通信合一,而常规无线电难以做到这一点。UWB技术具有极强的穿透能力,可在室内和地下进行精确定位,而GPS(全球定位系统)只能工作在GPS定位卫星的可视范围之内。与GPS提供绝对地理位置不同,超宽带无线电定位器可以给出相对位置,其定位精度可达厘米级,此外,超宽带无线电定位器在价格上更为便宜。”

在智能座舱上,目前UWB有3个应用方向:

1.无钥匙进入系统

2. 汽车迎宾系统

由于UWB具有定位精确的特性,因此可以在较远的地方就能感知到携带UWB钥匙的乘客靠近。此时可以启动相对应的迎宾系统,给用户以更佳的体验感受。

3. 车内儿童检测

欧洲NCAP计划从2023年1月起增加对车内儿童存在检测的评分,各项规定非常细致。美国正在立法要求所有新车预装儿童存在检测功能,预计在2025年全面实施。据说国内相关规范也在评估制订中。

“将儿童单独留在停放的车内,即使只有几分钟,也可能导致中暑和死亡,尤其是当汽车暴露在阳光下时。儿童无法自行下车,再加上对高温的耐受性较低,因此要求儿童不得留在车内无人看管。温度可以在短短15分钟内达到临界水平,让窗户半开着几乎不能减少威胁。与车祸相比,儿童死于车辆相关中暑的情况较少发生,但这些完全可以避免的死亡的性质值得特别关注,因为解决车内儿童体温过高问题的技术已经存在。”以上文字来自欧洲NCAP关于儿童存在检测的测试与评估标准的直接翻译。

用于车内儿童检测的技术,直接传感器方式有摄像头,毫米波雷达,UWB雷达等几种方式。

UWB雷达发射UWB脉冲信号,并接收该脉冲信号经障碍物反射后的回波,通过对回波扰动的分析来判断UWB雷达附近是否存在物体(或人)。具体来讲,UWB雷达通过接收到的CIR(Channel Impulse Response信道脉冲响应)来探测周围物体及其运动。可以通过它来检测儿童的呼吸,心跳等。

相比摄像头,UWB雷达没有隐私风险,可以穿透毯子,后向安全座椅等。相比毫米波雷达,它的成本相对较低,且没有无线电合规的风险。

根据2021年11月我国工信部颁布的《汽车雷达无线电管理暂行规定》:24G毫米波雷达已经禁止在新车上使用;77G毫米波雷达主要用于自适应巡航、防撞、盲点探测等应用;60G毫米波虽是目前舱内雷达使用的主要频段,但工信部本次规定尚未包含对60GHz频段的说明。

4.4 星闪SparkLink

星闪无线短距通信技术SparkLink,主要由星闪联盟制定和发布。针对包括汽车领域在内的关键应用场景及其需求,定义了从接入层到基础应用层的端到端标准体系。

星闪技术提供SLB(SparkLink Basic,星闪基础接入技术)和SLE(Sparklink Low Energy,星闪低功耗接入技术)两种无线通信接口。

一方面,SLB支持20s的单向时延、99.999%的传输可靠性和1s的同步精度,主要用于承载以车载主动降噪、无线投屏、工业机械运动控制等为代表的业务场景,其显著特征是低时延、高可靠、精同步和高并发等。

另一方面,SLE支持250s的双向交互、低至-110dBm的接收机灵敏度和多达256个用户的并发接入,主要用于承载包括耳机音频传输、无线电池管理系统、工业数据采集在内的具备低功耗要求的业务场景。

在汽车领域,星闪技术的主要应用场景有:

  • 车载主动降噪
  • 无钥匙进入
  • 车载免提通话
  • 车机手机互联
  • 无线电池管理系统
  • 营运车辆全景环视
  • 无线氛围灯

五、存储子系统

随着车内新应用赋能,比如智能座舱可以将电商购物平台接入车内,还可以为后排乘客提供更丰富的视听娱乐节目,同时还要做好EDR这一类驾驶突发事件记录仪的日志记录,并处理各路传感器的采样输入信息,还要为驾乘人员提供合理的建议辅助作出决策,这一切不断升级进化的智能系统对车载存储需求要求扩大到数十GB的范围。据Counterpoint的研究表明,L3级自动驾驶汽车,单小时传感器生成的数据在TB级别。在未来十年内,乘用车单车存储容量将达到2TB。

智能座舱的存储子系统,根据需求,可以采用SD card,eMMC,UFS,SSD等方式。

5.1 车载存储器的演进过程

  1. 早期的GPS导航仪、行车记录仪等车载设备配备的基本都是SD卡,一般的SD卡只有4比特的总线宽度,可以提供最快100MBps的读写带宽,最大到上百GB的容量,可以提供简单的写保护功能。其缺点是显而易见的,由于依靠的仅是SD的金手指和卡槽内的金属触点连接,无法长时间可靠地适应汽车内颠簸、高温、高湿的变化环境。
  2. 后面出现了eMMC器件,这里的e代表的就是Embedded,虽然叫嵌入式MMC卡,其实它的外形结构是一块153引脚的BGA封装芯片。将其焊接在PCB板上,具有更好的稳定性,而且e.MMC卡具有8比特的总线宽度,可以提供最快400MB/S的读取速度,最高容量可达512GB,包括了内部带电源保护和温度超标管理,并且可以快速响应嵌入式系统的启动要求。
  3. 除了eMMC器件,在一些汽车上开始采用UFS(Universal Flash Storage,通用闪存存储器)存储芯片,其外形和eMMC几乎一模一样,也是BGA的封装芯片形式,它可以提供两对插分信号总线来高速传输数据,目前UFS 2.1的协议已经可以最快支持到1.2GB的读出速率,UFS 3.1的版本协议更是在2.1协议基础上翻了一倍,达到了2.9GB每秒,今后UFS 4.0版本协议更是达到了惊人的4.6GB每秒的吞吐率,而且单芯片能提供最高容量可以达到1TB容量。
  4. 除此之外,各大存储厂商也在积极研发基于PCIe接口的NVMe协议车规级SSD,将提供大于10GB每秒的数据吞吐率,而且包含前面eMMC、UFS的快速响应和温度管理特性,可以为下一代基于自动驾驶的智能车载系统提供几十TB的海量存储容量。

5.2 存储器的生命周期

由于车内严苛的使用环境,车载存储器除了从接口类型、读写速度,及存储容量几个维度外,还需要从其他维度来评估存储器的品质。比如从性能、可靠性、温度范围和增强特性等四个方面来衡量车载存储器的品质。首先要制造商具备多年的闪存研发经验积累,才能保证产品在满足高性能条件下同时具备可靠的品质保障。其次满足车用电子元件的AEC-Q100和国际标准。三是要能适应负40度到正85度的宽温和负40度到正105度的超宽温的工作环境、工作温度要求。四是要具备温度管理、快速启动、智能分区,满足汽车生产条件的100%存储空间的数据预烧录要求。

对于车载存储器来说,其生命周期的长短,除了受车载环境的影响,还与应用场景,以及Host端的读写操作特性有关。例如,一个长期、反复读写存储器的操作环境,必然加速存储器内部颗粒的磨损,从而变相减少它的生命周期。

无论是SD card,eMMC,UFS,SSD固态硬盘,其内部的存储颗粒都是NAND flash,用户数据写入NAND flash内部的cell中。不同类型的NAND,每个cell可以存储的数据容量不同。例如SLC NAND,每个cell可以保存1bit的数据;MLC可以保存2bit,TLC可以保存3bit。如下图所示:

图片来源:Kioxia

在向NAND cell中写数据时,首先要执行erase操作。也就是通过给cell的每一位写"1"的操作,将NAND cell初始化。这个过程被称为一次P/E cycle(Program/Erase)。每次P/E都会导致cell 单元的氧化层发生轻微退化(degrade ever so slightly),当达到一定的P/E次数后,cell单元将不再能够保存电荷,从而使用寿命终结。在上述3种类型的NAND中,SLC可以支持的P/E 次数最多,MLC次之,而TLC最弱。

为了保存数据,NAND还必须为cell维持一定的电压,以保持电荷。NAND controller firmware软件需要周期性地给NAND cell进行刷新,这样才能保证读取数据的正确性。然而,电荷将随着时间自然退化,并且电荷损失率可能会因极端温度变化和NAND cell 的健康而加速退化。

影响 NAND 单元寿命的因素有:

  • 极端温度变化:

恶劣的车载环境会对存储器件的寿命造成影响,极热或极寒都会对车载电子设备造成巨大的挑战,根据车规AEC-Q100 grade3 的要求,车载电子设备的工作温度要满足从-40度到+105度。低温对存储器的影响还不太大,但是高温环境将使得NAND的数据保持能力大大降低。如下图所示,P/E cycles 的次数越多,NAND的数据保持能力降低越快。相同条件下,温度越高,NAND的寿命就越低。

  • Flash存储磨损:

在向NAND写入数据之前,首先要执行P/E操作。P/E 操作将以Block为单位,向NAND cell写入“1”,称为erase。当重复进行erase后,电子氧化层将逐渐退化,在读取NAND cell中所保存的数据时就有可能会出错。虽然一些小量错误可以通过ECC错误校验码进行恢复,但当错误大量发生时,ECC也不可能将之完全恢复。这就会导致读数据错误,或者erase 失败。每一个NAND 都会有一个最大可支持的P/E cycles数目,当NAND block的P/E cycles超过这个数目时,它就不再可用了。衡量磨损加速的一个重要考量因素就是写放大系数WAF (Write Amplification Factor)

  • 写放大系数WAF:

理想状态下,当Host端向NAND 端写入一个Byte的数据时,NAND controller应该只向NAND cell中写入1个Byte。但是由于NAND的特性(按块block擦除,按页page写入),因此很快就会造成NAND的碎片化。此时NAND controller为了进行写负载均衡,将会在闲暇时间执行garbage collection操作。garbage collection会造成数据在NAND内部的搬运,因此实际写入NAND cell的数据将远远大于主机端写入NAND的数据。我们使用写放大系数来衡量这一参数:

为了降低WAF,提升NAND的使用寿命,一些良好的使用NAND习惯有:

  1. 仔细评估WAF:应该收集并分析工作负载的trace信息,并计算WAF。然后使用这些数据作为系统性能改进的参考依据。
  2. 创建大的读写trunk:大量而频繁的小容量读写操作将会大大增加WAF。由于NAND的特性,它的读和写是以page为单位,擦除是以block为单位。因此在日常使用NAND的时候,应该在软件端尽量创建足够的buffer再进行NAND的读写操作。例如常用的log机制,最好是创建RAM buffer进行缓冲。
  3. 使用pSLC mode:对于那些需要小量写入的关键数据,可以将MLC或者TLC合并,作为一个伪SLC单元来写入。此时一个伪SLC单元只能存储1bit的数据,但它可以达到SLC的P/E cycles。这样操作所付出的代价是,2倍的MLC或者3倍的TLC,才能组合成一个pseUdo SLC单元。
  4. 使用负载均衡算法:这是对NAND controller厂商的要求。它们需要监控NAND 单元的使用情况,挑选出"at risk"的NAND block,并将它们的数据迁移到仍然具有良好性能的NAND block中。
  5. 监控NAND health registers:NAND 厂商(eMMC or UFS)都会提供与NAND health有关的实时报告,它是通过监控相关的寄存器而给出的。主机厂开发端通过监控这些健康报告,就可以得知当前的NAND寿命状态,并且可以分析出哪些读写NAND的操作是有风险的,这样就可以有针对性的去改进。

5.3 UFS

随着技术的发展,智能座舱的存储器逐渐从eMMC向UFS演化。

对于UFS来说,其内部存储单元还是NAND,它与eMMC的区别主要在于接口。从这幅图可以看出,UFS使用了MIPI联盟定义的M-Phy,而M-Phy又来源于UniPro协议。正是因为使用了串行化的传输方式,UFS才能够再一次地提升读写速率。

  • UFS系统框图

  • EMMC系统框图

未完待续...

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio21.2.0.3858免激活版安装下载

前阵子世界级电音盛会Tomorrowland在比利时如期举行,拉开了疫情下Rave文化复兴的帷幕。而国内,也推出了如《超感星电音》等电子音乐综艺,在节目上大家也更多地了解到了电子音乐的制作过程。节目中最被大家看好的制作人Carta所使用的FL Studio…

Camtasia2024年破解版安装包如何下载?

作为一个互联网人,没少在录屏软件这个坑里摸爬滚打。培训、学习、游戏、影视解说……都得用它。这时候没个拿得出手的私藏软件,还怎么混?说实话,录屏软件这两年也用了不少,基本功能是有但总觉得缺点什么,直…

SpringBoot静态资源配置

项目中 SSM中配置 第一种&#xff1a;配置文件中 <mvc:resources mapping"/js/**" location"/js/"/> <mvc:resources mapping"/css/**" location"/css/"/> <mvc:resources mapping"/html/**" location&q…

在无回显的情况下如何判断是否存在命令注入漏洞

在无回显的情况下如何判断是否存在命令注入漏洞 这种情况下可以使用OOB带外来实现&#xff0c;言而简之&#xff0c;就是利用命令执行漏洞去解析我们的dns如果dns日志有记录那就说明存在命令注入漏洞 首先先简单搭建一个无回显的命令注入 <?phpexec($_REQUEST[777]); ?&…

windows事件查看器日志

Windows 事件查看器&#xff08;Event Viewer&#xff09;是 Windows 操作系统提供的一个内置工具&#xff0c;它用于管理和查看系统、应用程序和安全事件日志。在 Windows 系统中&#xff0c;各种活动和错误都会被记录到事件日志中&#xff0c;包括系统启动、应用程序崩溃、安…

力扣第463题 岛屿的周长 C++ 深度优先搜索 + 思维判断的边界

题目 463. 岛屿的周长 简单 相关标签 深度优先搜索 广度优先搜索 数组 矩阵 给定一个 row x col 的二维网格地图 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陆地&#xff0c; grid[i][j] 0 表示水域。 网格中的格子 水平和垂直 方向相连&#xff08;对角线…

Gem5系统仿真模拟器之创建gem5——翻译自官网

文章目录 安装并使用gem5 模拟器支持的操作系统和环境依赖在 Ubuntu 22.04 启动(gem5 > v21.1)Docker获取代码用 SCons 构建用法首次构建 gem5gem5 二进制类型调试opt快速 常见错误错误的 gcc 版本Python 位于非默认位置未安装 M4 宏处理器Protobuf 3.12.3 问题 安装并使用g…

OpenAI宫斗大戏,奥特曼面临的选择

首先不得不说&#xff0c;这件事情进展真快&#xff0c;三四天时间之内&#xff0c;大量的消息&#xff0c;各种不同渠道的&#xff0c;各种不同角度的&#xff0c;其中也包括各种决策&#xff0c;速度之快真的是应接不暇&#xff0c;仿佛在看真人秀一般 这里简单帮大家梳理一…

2021秋招-面经

面经总结 微软STCA面试-面经 字节AI lab实习面试记录 腾讯PCG-腾讯新闻面试 百度(AIDU)-内容策略部门面试 百度(AIDU)-搜索策略-机器学习算法工程师 百度(AIDU)-知识图谱部门算法工程师(2020-07-08) 百度(AIDU)-NLP部门算法工程师(2020-07-10) 微软STCA面试-面经 2020-…

Docker 单节点部署 Consul

Docker 单节点部署Consul 1 Docker 拉取 Consul 镜像2 Docker 创建 Consul 容器3 启动 Consul 容器 CAP 原则是由计算机科学家 Eric Brewer 提出的&#xff0c;用于描述分布式系统中的一致性、可用性和分区容忍性之间的权衡关系&#xff0c;CAP 是三个概念的首字母缩写。 原则…

数独·12中解法·anroid 数独小游戏·休闲益智小游戏

标题数独12中解法anroid 数独小游戏休闲益智小游戏&#xff08;继续更新中……&#xff09; 一款经典数独训练app 资源下载 &#xff08;0积分&#xff09;https://download.csdn.net/download/qq_38355313/88544810 —— —— 数独&#xff08;sh d&#xff09;是源自18世纪…

【C++】泛型编程 ⑪ ( 类模板的运算符重载 - 函数实现 写在类外部的不同的 .h 头文件和 .cpp 代码中 )

文章目录 一、类模板的运算符重载 - 函数实现 写在类外部的不同的 .h 头文件和 .cpp 代码中1、分离代码 后的 友元函数报错信息 - 错误示例Student.h 头文件内容Student.cpp 代码文件内容Test.cpp 代码文件内容执行报错信息 2、问题分析 二、代码示例 - 函数实现 写在类外部的不…

vue2.0中使用v-if/v-show切换后echarts不显示和宽高问题

vue2.0中使用v-if/v-show切换后echarts不显示和宽高问题 需求描述问题描述问题解析 解决方案使用v-show替代&#xff08;不推荐&#xff09;v-if使用$nextTick&#xff08;推荐&#xff09; 需求描述 使用ehcarts时&#xff0c;请求数据时加loading,请求结束后取消loading并显示…

redis之高可用

&#xff08;一&#xff09;redis之高可用 1、在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比&#xff08;365天&#xff09;99.9% 2、redis的高可用的含义更加广泛&#xff0c;正常服务是指标之一&#xff0c;数据容量的扩展、数据的安全性 3、在r…

存储日志数据并满足安全要求

日志数据是包含有关网络中发生的事件的记录的重要信息&#xff0c;日志数据对于监控网络和了解网络活动、用户操作及其动机至关重要。 由于网络中的每个设备都会生成日志&#xff0c;因此收集的数据量巨大&#xff0c;管理和存储所有这些数据成为一项挑战&#xff0c;日志归档…

【C语言】数据结构——栈和队列实例探究

&#x1f497;个人主页&#x1f497; ⭐个人专栏——数据结构学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读&#xff1a;一、 栈1. 栈的概念及结构2. 栈的实现3. 实现代码3.1 定义结构体3.2 初始化栈3.3 销毁栈3.4 入栈3.5 出栈…

【Java 进阶篇】深入理解 Jackson:Java 对象转 JSON 的艺术

嗨&#xff0c;亲爱的小白们&#xff01;欢迎来到这篇关于 Jackson JSON 解析器中 Java 对象转 JSON 的详细解析指南。JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;而 Jackson 作为一个强大的 JSON 解析库&#xff0c;能够帮…

基于SVM的车牌识别算法

基于SVM的车牌识别系统&#xff08;Python代码实现&#xff09; 车牌识别系统是智能交通系统的重要组成部分&#xff0c;有着广泛的应用。车牌识别系统主要有车牌定位、字符分割和字符识别三部分组成&#xff0c;本文的研究重点是车牌字符识别这部分&#xff0c;本文提出了一种…

RT-Thread Hoist_Motor PID

本节介绍的是一个举升电机&#xff0c;顾名思义&#xff0c;通过转轴控制物体升降&#xff0c;为双通道磁性译码器&#xff0c;利用电调进行操控&#xff0c;具体驱动类似于大学期间最大众的SG180舵机&#xff0c;在一定的频率下&#xff0c;通过调制脉宽进行控制。 设备介绍…

数据结构 图

树是无环连通图&#xff0c;是一种特殊的图。 分类 图分为有向图[边是有方向的]和无向图[边是无方向的]。 无向图(a—b)&#xff0c;建立两条有向图(a—>b&#xff0c;b—>a)&#xff0c;无向图是一种特殊的有向图。 存储有向图 邻接矩阵 ——用于存储比较稠密的图【…