60GHz雷达CPD方案:Infineon与TI技术对比

技术背景

Euro NCAP 2026 CPD要求:

  • 必须检测儿童遗留在车内
  • 必须区分成人/儿童/宠物
  • 必须穿透遮挡(毛毯、衣物)
  • 2026年强制标配

60GHz雷达优势:

  • 穿透性强:可穿透毛毯、衣物
  • 高精度:毫米级距离分辨率
  • 低功耗:适合长时间监控
  • 隐私友好:不采集图像

Infineon 60GHz方案

产品规格

参数 BGT60ATR24C BGT60UTR24A
频率范围 60-64 GHz 60-64 GHz
发射通道 2 Tx 2 Tx
接收通道 4 Rx 4 Rx
天线封装 AIP (Antenna in Package) AIP
尺寸 6.4×6.4mm 8.2×8.2mm
功耗 <1W <1W
探测距离 0.2-5m 0.2-10m

核心能力

1. 儿童检测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
"""
Infineon 60GHz雷达CPD检测算法
基于呼吸运动检测
"""

import numpy as np
from typing import Tuple, List

class InfineonCPD:
"""
Infineon 60GHz雷达儿童检测器

核心原理:
1. 发射60GHz FMCW信号
2. 接收回波,检测微小位移
3. 提取呼吸频率(儿童:30-60次/分)
4. 分类成人与儿童
"""

def __init__(self,
sample_rate: int = 1000,
fft_size: int = 4096):
"""
Args:
sample_rate: 采样率 (Hz)
fft_size: FFT点数
"""
self.sample_rate = sample_rate
self.fft_size = fft_size

# 呼吸频率范围
self.adult_breath_range = (12, 20) # 成人:12-20次/分
self.child_breath_range = (30, 60) # 儿童:30-60次/分
self.infant_breath_range = (40, 60) # 婴儿:40-60次/分

def process_radar_data(self,
radar_data: np.ndarray) -> Dict:
"""
处理雷达数据

Args:
radar_data: 雷达ADC数据 (N_chirps, N_samples)

Returns:
result: 检测结果
"""
# 1. Range FFT
range_profile = self._compute_range_fft(radar_data)

# 2. 检测运动目标
targets = self._detect_moving_targets(range_profile)

# 3. 提取呼吸信号
breath_signals = self._extract_breath_signal(targets)

# 4. 估计呼吸频率
breath_rates = self._estimate_breath_rate(breath_signals)

# 5. 分类
classification = self._classify_occupant(breath_rates)

return {
'num_occupants': len(targets),
'breath_rates': breath_rates,
'classification': classification,
'positions': [t['position'] for t in targets]
}

def _compute_range_fft(self, data: np.ndarray) -> np.ndarray:
"""计算距离FFT"""
# 对每个chirp做FFT
range_fft = np.fft.fft(data, n=self.fft_size, axis=1)

# 取模
range_profile = np.abs(range_fft)

return range_profile

def _detect_moving_targets(self,
range_profile: np.ndarray) -> List[Dict]:
"""检测运动目标"""
targets = []

# 时间维度差分,检测运动
diff = np.diff(range_profile, axis=0)

# 累积能量
energy = np.sum(np.abs(diff), axis=0)

# 峰值检测
threshold = np.mean(energy) + 3 * np.std(energy)
peaks = np.where(energy > threshold)[0]

for peak in peaks:
# 转换为距离
distance = peak * 0.01 # 简化,实际需要根据雷达参数

targets.append({
'range_bin': peak,
'position': distance,
'energy': energy[peak]
})

return targets

def _extract_breath_signal(self,
targets: List[Dict]) -> List[np.ndarray]:
"""提取呼吸信号"""
breath_signals = []

for target in targets:
# 从相位提取微小位移
# 呼吸引起的胸部运动约5-10mm
# 简化:使用相位变化

# 模拟呼吸信号
t = np.linspace(0, 10, self.sample_rate * 10)
breath_freq = np.random.uniform(0.5, 1.0) # 30-60次/分
breath_signal = np.sin(2 * np.pi * breath_freq * t)

breath_signals.append(breath_signal)

return breath_signals

def _estimate_breath_rate(self,
breath_signals: List[np.ndarray]) -> List[float]:
"""估计呼吸频率"""
breath_rates = []

for signal in breath_signals:
# FFT
fft = np.fft.fft(signal, n=self.fft_size)
freqs = np.fft.fftfreq(self.fft_size, 1/self.sample_rate)

# 找峰值频率
positive_freqs = freqs[:self.fft_size//2]
positive_fft = np.abs(fft[:self.fft_size//2])

peak_idx = np.argmax(positive_fft)
peak_freq = positive_freqs[peak_idx]

# 转换为呼吸频率(次/分)
breath_rate = peak_freq * 60

breath_rates.append(breath_rate)

return breath_rates

def _classify_occupant(self,
breath_rates: List[float]) -> List[str]:
"""分类乘员类型"""
classification = []

for rate in breath_rates:
if self.adult_breath_range[0] <= rate <= self.adult_breath_range[1]:
classification.append('ADULT')
elif self.child_breath_range[0] <= rate <= self.child_breath_range[1]:
classification.append('CHILD')
elif self.infant_breath_range[0] <= rate <= self.infant_breath_range[1]:
classification.append('INFANT')
else:
classification.append('UNKNOWN')

return classification


# 测试
if __name__ == "__main__":
cpd = InfineonCPD()

# 模拟雷达数据
radar_data = np.random.randn(100, 256)

result = cpd.process_radar_data(radar_data)
print(f"检测到乘员数: {result['num_occupants']}")
print(f"分类结果: {result['classification']}")

Infineon方案优势

优势 说明
单传感器全覆盖 1个雷达覆盖5座车
成人/儿童分类 基于呼吸频率区分
穿透遮挡 可穿透毛毯、衣物
低功耗 <1W,适合熄火后监控
AIP封装 天线集成,体积小

TI 60GHz方案

产品规格

参数 IWR6843AOP AWR6843ISK
频率范围 60-64 GHz 60-64 GHz
发射通道 3 Tx 3 Tx
接收通道 4 Rx 4 Rx
天线封装 AOP (Antenna on Package) ISK (板载天线)
尺寸 10.4×10.4mm 55×55mm (模块)
功耗 <1.5W <2W
探测距离 0.2-10m 0.2-15m

TI SDK支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
"""
TI mmWave SDK CPD示例
"""

class TICPDDetector:
"""TI 60GHz雷达CPD检测器"""

def __init__(self, config_file: str):
"""
Args:
config_file: TI mmWave配置文件
"""
self.config = self._load_config(config_file)

def configure_radar(self):
"""配置雷达参数"""
config_commands = [
# 帧配置
"frameCfg 0 1 16 0 100 1 0",

# Chirp配置
"chirpCfg 0 0 0 0 0 0 0 1",

# 通道配置
"channelCfg 15 5 0",

# ADC配置
"adcCfg 2 1",

# 低功耗模式
"lowPower 0 0"
]

return config_commands

def parse_detected_points(self,
uart_data: bytes) -> List[Dict]:
"""
解析检测点数据

TI mmWave输出格式:
- Header: 魔数、版本、长度
- TLV: 点云、目标列表等
"""
points = []

# 解析TLV
# 简化:提取点云

return points

TI参考设计

TIDEP-01023:儿童乘员检测

特性 参数
检测距离 0.2-3m
检测精度 ±0.1m
分类准确率 >95%
功耗 <0.5W(低功耗模式)
唤醒时间 <100ms

方案对比

硬件对比

维度 Infineon TI
芯片尺寸 更小 (6.4mm) 较大 (10.4mm)
功耗 更低 (<1W) 稍高 (<1.5W)
天线集成 AIP AOP
开发板成本 ~$300 ~$500
SDK成熟度 中等 成熟

软件对比

维度 Infineon TI
SDK Radar Development Kit mmWave SDK
算法库 基础 丰富
文档 中等 完善
社区支持 较少 活跃
量产案例 较少 较多

性能对比

指标 Infineon TI
儿童检测率 >95% >95%
成人/儿童分类 >90% >92%
穿透遮挡 支持 支持
检测延迟 <3s <2s
误报率 <1% <0.5%

Euro NCAP CPD测试场景

官方测试场景

场景编号 场景描述 检测要求
CPD-01 婴儿座椅(后向) ≤60秒检测
CPD-02 儿童座椅(前向) ≤60秒检测
CPD-03 儿童单独在后座 ≤60秒检测
CPD-04 儿童被毛毯遮挡 ≤120秒检测
CPD-05 儿童睡眠状态 ≤90秒检测
CPD-06 儿童+成人同座 正确区分

测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def run_cpd_test(scenario_id: str, detector) -> Dict:
"""
运行CPD测试

Args:
scenario_id: 场景编号
detector: 检测器

Returns:
result: 测试结果
"""
# 场景定义
scenarios = {
'CPD-01': {
'description': '婴儿座椅(后向)',
'occupant_type': 'INFANT',
'timeout': 60,
'obstruction': None
},
'CPD-04': {
'description': '儿童被毛毯遮挡',
'occupant_type': 'CHILD',
'timeout': 120,
'obstruction': 'BLANKET'
}
}

scenario = scenarios[scenario_id]

# 模拟测试
start_time = time.time()

# 检测循环
detected = False
detection_time = 0

for i in range(scenario['timeout']):
# 获取雷达数据
radar_data = get_radar_frame()

# 检测
result = detector.process_radar_data(radar_data)

if scenario['occupant_type'] in result['classification']:
detected = True
detection_time = i
break

time.sleep(1)

return {
'scenario_id': scenario_id,
'description': scenario['description'],
'detected': detected,
'detection_time': detection_time,
'timeout': scenario['timeout'],
'pass': detected and detection_time <= scenario['timeout']
}

IMS开发建议

1. 传感器选型

场景 推荐方案 原因
前排CPD TI IWR6843AOP 成熟度高
后排CPD Infineon BGT60ATR24C 尺寸小,功耗低
全舱监控 2×Infineon + 1×TI 成本优化

2. 安装位置

位置 覆盖范围 优点
顶棚中央 全舱 视角最佳
B柱 前排+后排侧面 隐蔽
后排座椅下方 后排 成本低

3. 系统集成

class IntegratedCPDSystem:
    """集成CPD系统"""
    
    def __init__(self):
        self.radar_front = InfineonCPD()
        self.radar_rear = TICPDDetector('config.cfg')
        self.alert_manager = AlertManager()
        
    def monitor(self):
        """持续监控"""
        while True:
            # 前排检测
            front_result = self.radar_front.process_radar_data(
                get_front_radar_data()
            )
            
            # 后排检测
            rear_result = self.radar_rear.process_radar_data(
                get_rear_radar_data()
            )
            
            # 儿童遗留检测
            if self._child_left_alone(front_result, rear_result):
                self.alert_manager.trigger_c

https://dapalm.com/2026/06/11/2026-06-11-60GHz-Radar-CPD-Infineon-TI/
作者
Mars
发布于
2026年6月11日
许可协议