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

2023-11-22 08:30

本文主要是介绍智能座舱架构与芯片- (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系统框图

未完待续...

这篇关于智能座舱架构与芯片- (5) 硬件篇 下的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408828

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者