DMR协议空中接口部分

文章目录

  • 前言
  • DMR 空中接口协议栈模型
  • 无线空中接口发送与接收参考模型
    • DMR的TDMA结构
    • 帧结构
    • 突发结构
      • 数据与控制突发
      • 语音突发
      • 公共广播信道突发
    • 数据信息传送时序
    • 语音信息传送时序
    • 帧同步
  • 调制解调
    • 4-CPFSK正交调制
    • 4-CPFSK解调
    • 基带成型滤波
  • 信道编码类型
  • 参考

前言

DMR 协议的标准号主要是 ETSI TS 102 361,该标准由欧洲电信标准协会(ETSI)制定。

具体分为以下几个部分:

  • ETSI TS 102 361-1:DMR 空中接口协议,规定了 DMR 设备之间无线接口的技术要求,包括调制方式、频段、信令等,确保语音和数据能在无线环境中无缝高效传输。
  • ETSI TS 102 361-2:DMR 语音和通用服务,明确了音频编码技术,用于数字化和压缩语音信号,还规定了呼叫管理和诸如消息传递、紧急信令等补充服务的协议。
  • ETSI TS 102 361-3:DMR 数据协议,规定了数据如何在 DMR 网络中传输,使能了文本消息、GPS 定位跟踪和遥测等服务,扩展了DMR 除语音通信外的应用。
  • ETSI TS 102 361-4:DMR 集群协议,主要针对大型网络中的通信信道管理,规定了信道分配、呼叫建立和资源管理的流程和协议,确保可用带宽的最佳利用,最小化通信延迟。

此外,ETSI TR 102 398 是 DMR 的通用系统设计技术报告,为 DMR 网络的高效规划、实施和运行提供了基本指导原则。

DMR 空中接口协议栈模型

DMR 标准把设备分成 I 类、II 类和 III 类。

I 类是指免执照的民用免费频点的 DMR 设备,II 类是指工作在直通模式或转发模式、有个人执照的 DMR 设备, III 类是指通过基站等进行通信控制、有个人执照的 DMR 集群系统设备。ETSI TS 102 361-1 和 ETSI TS 102 361-3 适用于所有的设备,ETSI TS 102 361-2 只适用于 I 类和 II 类设备,ETSI TS 102 361-4 只适用于 III 类设备。

这篇文章主要介绍DMR空中接口部分内容:
DMR 空中接口协议栈模型从下到上共为三层, 第一层:物理层,第二层:数据链路层,第三层:呼叫控制层。 空中接口协议栈在数据链路层垂直划分成控制面和用户面。控制面处理具有寻址功能的信令,用户面传输没有寻址功能的语音或数据流。DMR 空中接口协议栈模型如下:
DMR 空中接口协议栈模型
物理层处理发送或接收的比特突发,主要包含如下功能:调制与解调,收发切换,RF 特性,比特与符号定义,频率与符号同步,突发建立等。

数据链路层处理逻辑联系,隐藏来自上层的物理媒介,主要包括如下功能:信道编解码,交织解交织和比特调整,应答与重传,媒介接入控制与信道管理,帧,超帧建立与同步,突发与参数定义,链路寻址,语音应用与物理层接口,数据承载业务,与呼叫控制层交换信令或用户数据。

呼叫控制层仅仅适用于控制面,主要包括如下功能:基站激活/去激活,建立,维持和结束呼叫,单呼,组呼发送与接收,目的寻址,支持固有业务(紧急信令,抢占,迟后进入),数据呼叫控制,广播信令。

无线空中接口发送与接收参考模型

DMR 无线空中接口发送与接收参考模型规定了 DMR 终端发送与接收信号的基带处理流程:
基带

DMR的TDMA结构

DMR 标准规定了无线系统工作的频率范围为30M——1G,采用两时隙 TDMA 技术,12.5kHz 的射频载波带宽。
一个 TDMA 包含两个时隙,帧长为60ms,每个时隙长30ms,一个时隙传输一个突发,两个不同的呼叫占用两个不同的时隙。信道1的同步突发的位置和信道2的同步 突发的位置是相互独立的。上行信道的同步突发的位置和下行信道的同步突发的位置是相互独立的。 语音传输采用6个突发长度(360ms)的超帧,6个突发依次标记为"A"-"F"。每个超帧从突发 A 的语音同步标志开始,数据和控制信息不采用超帧结构。

DMR时隙结构图:
DMR时隙结构

帧结构

DMR 标准采用两时隙 TDMA 结构:
帧结构

突发结构

通用突发结构由两块108bit 的净荷和1块48bit的同步域或嵌入信令消息构成。 每个突发总长度 30ms,携带的比特数是 288bit。其中 27.5ms 的时间内发送有效信息,2.5ms 是保护时间,分布在时隙左右两边各 1.25ms,于是突发之间相距 2.5ms。2.5ms 保护比特用来进行功率放大斜升和传播时延。27.5ms的中间的2.5ms是同步字段,码字随着突发类型不同而不同。下图是通用突发的结构。
突发结构
DMR中的突发包括一般的数据突发、语音突发和公共广播信道。

数据与控制突发

数据与控制突发是一种单一的突发格式,每一个突发中都必须包含数据同步信息。两个净荷的长度与语音突发相比都缩减到98bit,剩下的20bit 作为时隙类型定义了 196 比特数据代表的含义,数据类型也就确定了数据或控制信息的编码方式。其中时隙类型信息域主要定义了色码(CC),数据类型(data type, 数据类型确定了数据突发的类型,同时也确定了数据或控制信息的编码方式),如下图所示。
数据与控制突发

语音突发

语音突发用来携带压缩后的语音信息在信道中传输,语音突发提供 2 块 108 比特的语音净荷,代表 60ms 的压缩语音。根据语音突发中心携带的数据信息不同, 又可分为携带帧同步信息的语音突发和携带嵌入消息的语音突发。对于携带嵌入消息的语音突发中,嵌入信令域(EMB)主要携带色码,私有指示信息,链路控制开始/停止信息(LCSS,用在 LC[链路控制]或 CSBK[控制信令块]信令中,指示信令的开始,持续或结束)。其结构如下图所示。
语音突发

公共广播信道突发

公共广播信道突发(CACH)仅仅存在于集群模式下的下行链路中,用来提供成帧,接入信息和一些低速数据,该突发并不是专门绑定在信道1或信道2上,而是二者的共同部分,该突发长度仅为24bit,结构如下图所示。
公共广播信道突发

数据信息传送时序

数据或控制信息被携带在数据或控制突发中传送。对于一些信令或数据能够在一个单一的数据突发中被携带完,这时就使用一个 CSBK 突发,主要用在端到端语音业务请求,端到端语音响应请求,基站激活等这样一些控制信令中。而对于一些信令需要在多个突发中才能传送完,这时使用一种称之为MBC的突发来传送,其结构为MBC块头,MBC中间块(中间块数目可为0——2个),MBC块尾。 而对于一些数据信息,像短信息等可能需要几个突发才能传送完成,这时采用统一数据块(UDT)的结构来传送。统一数据块由一个或两个块头,数据中间块,数据尾块来构成。下图给出了数据块的传送时序图。
数据信息传送时序
在所有这些数据或控制突发中,每一个突发的中心都会插入48bit的帧同步码, 这是与下面介绍的语音帧是不同的。

语音信息传送时序

语音信息是携带在前面介绍的语音突发中来进行传输的,同时语音的传送使用超帧来传送。一个超帧由六个突发(标记为A,B,C,D,E,F)来构成,即需要 6 个时隙。在超帧的突发A中携带48bit的语音同步码,即前面介绍的携带帧同步信息的语音突发。超帧的B,C,D,E,F为前面介绍的携带嵌入信息信息的语音突发,通过嵌入信息来代替语音同步码。

在语音传送开始时,需要以一个语音LC头开始(标志着后面开始传送语音), 紧接着是多个语音超帧(携带语音信息),最后是语音终止LC突发(标志着语音传送 结束)。注意在语音超帧传送过程中,超帧必须传送完成,才能结束语音的传送,因此语音突发的个数始终是6的倍数。

语音传送开始时序图:
语音传送开始时序图
语音传送结束时序图:
语音传送结束时序图

帧同步

DMR系统对采用的帧同步码组有严格的规定:帧同步码组插入在帧的中心位置,并且对于输入输出语音,数据或控制信息,由不同的帧同步码组来区分。

根据DMR协议规定的映射规则将语音和数据的同步码进行映射,得到的24个符号均为+3或-3,并且语音同步码与数据同步码的极性相反,因此帧同步相关器为语音模式提供一个正的结果,为数据模式提供相等但为负的结果,通过识别相关器的输出极性即可判断出传输的是语音突发还是数据突发。

帧同步码组:
帧同步码组

调制解调

DMR 标准采用的调制方式是一种四电平连续相位频移键控方式4-CPFSK(Four-level Continuous Phase Frequecy Shift Keying), 这是有记忆的调制方式,信号的特征是包络恒定和相位轨迹连续而且平滑。这种调制方式实际上是使携带信息的信号频率调制单一的载波,载波频率是连续变化的,从而避免了较大的频谱旁瓣,减小了信号传输过程所需的带宽。

4-CPFSK中一个四进制可表示为 {±1,±3}, 信息数据包含在已调信号中瞬时频偏中 。标准规定调制符号速率为 4.8 k s p s 4.8ksps 4.8ksps,每个符号携带 2 b i t 2bit 2bit 信息。调制之前使用平方根升余弦滤波器。调制的最大频偏为 D D D

D = 3 h / 2 T D = 3h/2T D=3h/2T

式中 h 为频偏系数,值为 0.27 ;T为符号周期,值为1/4800s,经计算 最大频偏 D 为1.944kHz 。还可得符号和频偏的映射关系:
符号和频偏的映射关系

4-CPFSK正交调制

4-CPFSK正交调制原理图:
4-CPFSK正交调制原理图
设定连续相位的 4 - CPFSK 信号: X ( t ) = A cos ⁡ ( 2 π f c t + φ ( I , t ) ) X(t)=A\cos(2\pi f_{c}t + \varphi(I,t)) X(t)=Acos(2πfct+φ(I,t))式中: f c f_{c} fc为载波频率; φ \varphi φ为载波的时变瞬时相位; A A A为载波幅度。 瞬时频偏和 m ( t ) m(t) m(t) 成线性关系变化,即: d φ ( t ) d t = D f m ( t ) \frac{d\varphi(t)}{dt}=D_{f}m(t) dtdφ(t)=Dfm(t)式中: D f D_{f} Df为调制指数, D f = 2 π K f D_{f} = 2\pi K_{f} Df=2πKf K f K_{f} Kf为调制常数,单位为 H z / V Hz/V Hz/V
因此调频信号变换成如下表达式: S ( t ) = A cos ⁡ ( 2 π f c t + D f ∫ − ∞ t m ( τ ) d τ ) = A cos ⁡ ( 2 π f c t + 2 π K f ∫ − ∞ t m ( τ ) d τ ) \begin{align*} S(t)&=A\cos\left(2\pi f_{c}t + D_{f}\int_{-\infty}^{t}m(\tau)d\tau\right)\\ &=A\cos\left(2\pi f_{c}t + 2\pi K_{f}\int_{-\infty}^{t}m(\tau)d\tau\right) \end{align*} S(t)=Acos(2πfct+Dftm(τ)dτ)=Acos(2πfct+2πKftm(τ)dτ) 将其离散化并展开,可得: S ( n T s ) = A cos ⁡ ( 2 π f c n T s ) cos ⁡ [ 2 π K f T s ∑ i = 1 n m ( i T s ) + m [ ( i − 1 ) T s ] 2 ] − A sin ⁡ ( 2 π f c n T s ) sin ⁡ [ 2 π K f T s ∑ i = 1 n m ( i T s ) + m [ ( i − 1 ) T s ] 2 ] = A cos ⁡ ( 2 π f c n T s ) cos ⁡ [ 2 π K f T s ∑ i = 1 n m ( i T s ) ] − A sin ⁡ ( 2 π f c n T s ) sin ⁡ [ 2 π K f T s ∑ i = 1 n m ( i T s ) ] = A cos ⁡ ( 2 π f c n T s ) I ( n T s ) − A sin ⁡ ( 2 π f c n T s ) Q ( n T s ) \begin{align*} S(nT_{s})&=A\cos(2\pi f_{c}nT_{s})\cos\left[2\pi K_{f}T_{s}\sum_{i = 1}^{n}\frac{m(iT_{s}) + m[(i - 1)T_{s}]}{2}\right]\\ &\quad - A\sin(2\pi f_{c}nT_{s})\sin\left[2\pi K_{f}T_{s}\sum_{i = 1}^{n}\frac{m(iT_{s}) + m[(i - 1)T_{s}]}{2}\right]\\ &=A\cos(2\pi f_{c}nT_{s})\cos\left[2\pi K_{f}T_{s}\sum_{i = 1}^{n}m(iT_{s})\right] - A\sin(2\pi f_{c}nT_{s})\sin\left[2\pi K_{f}T_{s}\sum_{i = 1}^{n}m(iT_{s})\right]\\ &=A\cos(2\pi f_{c}nT_{s})I(nT_{s}) - A\sin(2\pi f_{c}nT_{s})Q(nT_{s}) \end{align*} S(nTs)=Acos(2πfcnTs)cos[2πKfTsi=1n2m(iTs)+m[(i1)Ts]]Asin(2πfcnTs)sin[2πKfTsi=1n2m(iTs)+m[(i1)Ts]]=Acos(2πfcnTs)cos[2πKfTsi=1nm(iTs)]Asin(2πfcnTs)sin[2πKfTsi=1nm(iTs)]=Acos(2πfcnTs)I(nTs)Asin(2πfcnTs)Q(nTs)

4-CPFSK解调

4-CPFSK正交解调原理图:
4-CPFSK正交解调原理图
理论上,在AWGN信道上对4-CPFSK的解调方式是进行最大似然序列检测的维特比算法。然而,在实际中很少使用它,因为其最大缺点是检测器的复杂性较高。本文使用非相干正交解调方式:差分鉴频。该方式原理简单,计算量小,易于DSP上实现。

调频信号的表达式为: S ( t ) = A cos ⁡ ( 2 π f c t + 2 π K f ∫ 0 t m ( t ) d t ) S(t)=A\cos\left(2\pi f_{c}t + 2\pi K_{f}\int_{0}^{t}m(t)dt\right) S(t)=Acos(2πfct+2πKf0tm(t)dt)将调频信号和本地两路信号分别相乘,经低通滤波得到IQ两路的基带信号,离散化后: I ( n T s ) = A 2 cos ⁡ ( 2 π K f T s ∑ i = 1 n m ( i T s ) ) I(nT_{s})=\frac{A}{2}\cos\left(2\pi K_{f}T_{s}\sum_{i = 1}^{n}m(iT_{s})\right) I(nTs)=2Acos(2πKfTsi=1nm(iTs)) Q ( n T s ) = A 2 sin ⁡ ( 2 π K f T s ∑ i = 1 n m ( i T s ) ) Q(nT_{s})=\frac{A}{2}\sin\left(2\pi K_{f}T_{s}\sum_{i = 1}^{n}m(iT_{s})\right) Q(nTs)=2Asin(2πKfTsi=1nm(iTs))对IQ信号进行反正切运算: ϕ ( n ) = arctan ⁡ [ Q ( n ) I ( n ) ] = 2 π K f T s ∑ i = 1 n m ( i T s ) \phi(n)=\arctan\left[\frac{Q(n)}{I(n)}\right]=2\pi K_{f}T_{s}\sum_{i = 1}^{n}m(iT_{s}) ϕ(n)=arctan[I(n)Q(n)]=2πKfTsi=1nm(iTs)对相位进行差分计算得到瞬时相位: ϕ d ( n ) = ϕ ( n ) − ϕ ( n − 1 ) = 2 π K f ⋅ T s ⋅ m ( n ) \phi_{d}(n)=\phi(n)-\phi(n - 1)=2\pi K_{f}\cdot T_{s}\cdot m(n) ϕd(n)=ϕ(n)ϕ(n1)=2πKfTsm(n)上式除以对应系数 2 π K f T s 2\pi K_{f}T_{s} 2πKfTs可得基带信号 m ( n ) m(n) m(n)

由于正切函数周期是 π \pi π,需对结果校正,规则如下:
ϕ d ( n ) > π / 2 \phi_{d}(n)>\pi/2 ϕd(n)>π/2时, ϕ d ′ ( n ) = ϕ d ( n ) − π \phi_{d}'(n)=\phi_{d}(n)-\pi ϕd(n)=ϕd(n)π
ϕ d ( n ) < − π / 2 \phi_{d}(n)<-\pi/2 ϕd(n)<π/2时, ϕ d ′ ( n ) = ϕ d ( n ) + π \phi_{d}'(n)=\phi_{d}(n)+\pi ϕd(n)=ϕd(n)+π

基带成型滤波

在DMR标准中,基带矩形脉冲需先通过平方根升余弦滤波器进行基带成型,以避免码间串扰。

平方根升余弦滤波器的时域表达式为: h ( t ) = 4 α T π ( T 2 − 16 α 2 t 2 ) cos ⁡ [ π ( 1 + α ) ] + T π ( T 2 − 16 α 2 t 2 ) cos ⁡ [ π ( 1 − α ) ] h(t)=\frac{4\alpha T}{\pi(T^{2}-16\alpha^{2}t^{2})}\cos[\pi(1 + \alpha)]+\frac{T}{\pi(T^{2}-16\alpha^{2}t^{2})}\cos[\pi(1 - \alpha)] h(t)=π(T216α2t2)4αTcos[π(1+α)]+π(T216α2t2)Tcos[π(1α)]其频率响应表达式为: H ( f ) = H e f f ( f ) = { 1 0 ≤ ∣ f ∣ ≤ 1 − α 2 T 1 2 { 1 + cos ⁡ [ π ( 2 T ∣ f ∣ − 1 + α ) 2 α ] } 1 − α 2 T ≤ ∣ f ∣ ≤ 1 + α 2 T 0 1 + α 2 T ≤ ∣ f ∣ H(f)=\sqrt{H_{eff}(f)} = \begin{cases} 1 & 0\leq |f|\leq\frac{1 - \alpha}{2T} \\ \sqrt{\frac{1}{2}\left\{1 + \cos\left[\frac{\pi(2T|f|-1 + \alpha)}{2\alpha}\right]\right\}} & \frac{1 - \alpha}{2T}\leq |f|\leq\frac{1 + \alpha}{2T} \\ 0 & \frac{1 + \alpha}{2T}\leq |f| \end{cases} H(f)=Heff(f) = 121{1+cos[2απ(2Tf1+α)]} 00f2T1α2T1αf2T1+α2T1+αf

式中, T T T为符号时间长度, α \alpha α为滚降系数。在DMR中, T = 1 / 4.8 k T=1/4.8k T=1/4.8k α = 0.2 \alpha=0.2 α=0.2

信道编码类型

DMR 标准提供了大量的差错控制编码,主要包括三大类:前向纠错编码,校验编码,交织。针对不同的信息域,DMR 规定了不同的编码方式,下表列出了不同信息域对应的前向纠错编码与校验编码,表中内容的含义在表后进行说明。
信道编码
表格内容说明:

  • 嵌入信令域与嵌入信令共同构成 48bit 的嵌入消息,但二者的含义与编码方式是完全不同的。嵌入信令域由 4bit 的色码,1bit 的私密信息指示,2bit 的链路控制开始/停止标志构成,这 7bit 的信息经过二次剩余编码 QR(16,7,6)得到 16bit 数 据。嵌入信令是 DMR 中为了方便迟后进入,定义的 72bit 的链路控制(LC)消息, 该消息经过校验编码,变长BPTC 编码,交织后通过 4 个语音突发的 32bit 嵌入信令位置来传送。
  • TDMA 接入信道类型(TACT)是由1bit AT(接入类型)位,1bit TC(TDMA 信道繁忙还是空闲指示)位,2bit LCSS(链路控制开始/停止)位这 4bit 构成,这 4bit 经过汉明(7,4)编码。28bit 的短链路控制(LC)消息经过加入8bit 的 CRC 校验位后,通过变长 BPTC 编码,并在多个公共广播信道(CACH)突发间进行交织,交织后再分成四个片段,每个片段与相应的 TACT 进行交织,再作为一个 CACH 突发内容。
  • DMR 标准将 IP 数据报分成多个数据包,每个数据包再分割成数据块,同时在分成块时会加入一个块头,块头包含 10 个字节的地址与控制信息,然后使用标准规定的 CRC-CCITT 进行校验,数据块有 1/2 码率与 3/4 码率数据块和相应的块尾。对于一些数据包,接收方在收到后需要向发送方发出响应信息,响应数据就是由表中的响应数据块头和相应数据块构成。
  • 前向纠错编码和校验编码中文解释如下:二次剩余编码(QR: Quadratic Residue Code),格雷编码(Golay),汉明编码(Hamming),块状拓扑码(BPTC: Block Product Turbo Code),四分之三码率网格编码(Rate ¾ Trellis),五比特校验编码(5-bit CheckSum (CS)),循环冗余校验编码(CRC:Cyclic Redundancy Checksum)。

参考

论文:《DMR数字集群对讲机基带关键技术研究与实现》
论文:《DMR数字对讲机协议的研究与实现》
论文:《基于DMR的调制解调及同步的研究和仿真》
标准:TS 102 361-1 DMR 空中接口协议

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

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

相关文章

专题二串联所有单词的子串

1.题目 题目分析&#xff1a; 有一个字符串s和字符串数组&#xff0c;如何字符串数组里面的元素可以组成一个字符串&#xff0c;然后要在字符串里面找到连续子串跟组成的字符串一样&#xff0c;返回起始地址。 2.算法原理 这道题可以把字符串数组的元素string看出char&#x…

uniapp或者vue 使用serialport

参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位&#xff1a;否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…

编程题-计算器(中等)

题目&#xff1a; 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外)&#xff0c;计算其结果。 表达式仅包含非负整数&#xff0c;&#xff0c; - &#xff0c;*&#xff0c;/ 四种运算符和空格 。 整数除法仅保留整数部分。 解法一&#xff08;栈&…

数据增强术:如何利用大模型(LLMs)来模拟不同的扰动类型以增强信息提取任务的鲁棒性

一、对抗样本库构建 1. 基于LLMs的领域针对性扰动设计对抗样本生成 替换实体、三元组和触发器&#xff08;Replace Entity, Triple, and Trigger&#xff09; 使用LLMs&#xff08;如GPT-4&#xff09;来替换句子中的实体、关系三元组或事件触发器&#xff0c;同时保持其类型不…

深入了解Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件&#xff0c;就有了版本控制器&#xff1b; 所谓的版本控制器&#xff0c;就是能够了解到一个文件的历史记录&#xff08;修改记录&#xff09;&#xff1b;简单来说就是记录每一次的改动和版本迭代的一个管理系统&#xff0c;同…

Windows编程----进程的当前目录

进程的当前目录 Windows Api中有大量的函数在调用的时候&#xff0c;需要传递路径。比如创建文件&#xff0c;创建目录&#xff0c;删除目录&#xff0c;删除文件等等。拿创建文件的CreateFile函数做比喻&#xff0c;如果我们要创建的文件路径不是全路径&#xff0c;那么wind…

MyBatis-Plus分页控件使用及使用过程发现的一个坑

最近维护一个旧项目的时候&#xff0c;出现了一个BUG&#xff0c;经排查后发现是Mybatis-plus分页控件使用的时候需要注意的一个问题&#xff0c;故在本地使用MybatisPlus模拟出现了一下这个问题。 首先&#xff0c;先说一下MyBatis-Plus的使用&#xff1a; 1&#xff09;引入…

服务端和客户端通信(TCP)

服务端 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks;namespace TeachTcpServer {class Program{static void Main(string[] args){#region 知识点一 …

Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置

截止 2025/3/9 &#xff0c;版本更新到了 3.29.1 &#xff0c;但是为了防止出现一些奇怪的bug&#xff0c;我安装的还是老一点的&#xff0c;3.19&#xff0c;其他版本的安装同理。AndroidStudio用的是 2024/3/1 版本。 — 1 环境变量&#xff08;Windows&#xff09; PUB_H…

C++11中的Condition_variable

C11中的condition_variable 在C11中&#xff0c;条件变量&#xff08;std::condition_variable&#xff09;是线程同步机制之一&#xff0c;用于在多线程环境中实现线程间的通信和协调。它允许一个或多个线程在某个条件尚未满足时等待&#xff0c;直到其他线程通知条件已经满足…

ROS2-话题学习

强烈推荐教程&#xff1a; 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

深度学习模型Transformer核心组件—前馈网络FFN

第一章&#xff1a;人工智能之不同数据类型及其特点梳理 第二章&#xff1a;自然语言处理(NLP)&#xff1a;文本向量化从文字到数字的原理 第三章&#xff1a;循环神经网络RNN&#xff1a;理解 RNN的工作机制与应用场景(附代码) 第四章&#xff1a;循环神经网络RNN、LSTM以及GR…

Helm安装chart包到k8s报错“不能重复使用名称,名称已被使用”

一、报错提示如下 “Error: INSTALLATION FAILED: cannot re-use a name that is still in use”,意思是安装chart时提供的名称已存在&#xff0c;不能重复使用同一个名称。 登录后复制 rootiZ:/usr/local/src/my-helm-repo/charts# helm install mymemcached3 memcached -n te…

容器编排革命:从 Docker Run 到 Docker Compose 的进化之路20250309

容器编排革命&#xff1a;从 Docker Run 到 Docker Compose 的进化之路 一、容器化部署的范式转变 在 Docker 生态系统的演进中&#xff0c;容器编排正从“手动操作”走向“自动化管理”。根据 Docker 官方 2023 年开发者调查报告&#xff0c;78% 的开发者已采用 Docker Compo…

对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)

前言 25年2.4日&#xff0c;几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST&#xff0c;如之前所介绍的&#xff0c;他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址&#xff1a;github.com/Ph…

VBA使用fso对象合并指定路径的txt文件(含子目录)

图(1) 前几天我跟大家分享了在VBA中如何获取指定类型文件的路径的方法&#xff0c;其中最重要的一个思路就是在处理完当前目录的文件后&#xff0c;再调用程序自身来对子目录进行处理&#xff0c;以此来实现对子目录的无限循环&#xff0c;直至所有文件都处理完毕为止。按照此设…

nginx反向代理功能

如上图所示&#xff0c;当配置好nginx反向代理服务器的时候&#xff0c;客户端向nginx反向代理服务器发送请求&#xff0c;nginx反向代理服务器再向真实服务器转发请求。 nginx作为反向代理就是利用nginx高并发&#xff0c;速度快的特性&#xff0c;让nginx能够承受更多的链接…

deepseek在pycharm中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm&#xff0c;如何接入deepseek是我们窥探ai代码编写的第一步&#xff0c;熟悉起来总没坏处。 1、官网安装pycharm社区版&#xff08;免费&#xff09;&#xff0c;如果需要安装专业版&#xff0c;需要另外找破解码。 2、安装Ollama…

【江协科技STM32】ADC数模转换器-学习笔记

ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁&#xff0c;ADC是一种将连续的模拟信号转换为离散的数字信号的设备或模块12位逐次逼近型…

八卡5090服务器首发亮相!

AI 人工智能领域热度居高不下。OpenAI 的 GPT - 4 凭强悍语言处理能力&#xff0c;在内容创作、智能客服等领域广泛应用。清华大学团队的 DeepSeek 大模型在深度学习训练优势突出&#xff0c;正促使各行业应用端算力需求向推理主导转变&#xff0c;呈爆发式增长 。 随着 DeepS…