电流模电路是一种以电流为基本信号载体进行处理、传输和运算的模拟集成电路设计方法。与传统的电压模电路不同,电流模电路强调利用电流节点、电流复制、电流加法和电流放大等特性,在高频、低功耗和高线性度应用中展现出显著优势。
主要特点:
- 信号表示方式:信息由电流大小表示(I ∝ 信号)。
- 高速性能:由于电流信号响应快、压摆率高,适合宽带应用。
- 低功耗潜力:可在低压下工作,尤其适用于深亚微米CMOS工艺。
- 良好的级联能力:电流输出天然具有低输出阻抗或高输出阻抗匹配特性,便于模块连接。
- 对寄生电容不敏感:电流传输不受节点电容充放电速度限制,提升频率响应。
- 易于实现非线性函数:如指数、对数、乘法器等可通过BJT或MOS管的I-V特性实现。
常见电流模有源器件:
| 器件 | 功能简介 |
|---|---|
| OTA(Operational Transconductance Amplifier) | 将输入电压转换为输出电流,用于可编程增益、滤波器 |
| CCII(Second Generation Current Conveyor) | 具有X、Y、Z端口,实现电流传递与电压缓冲,广泛用于滤波和振荡器 |
| CFA(Current Feedback Amplifier) | 高带宽、高slew rate,适用于高速放大器 |
| Current Mirror(电流镜) | 复制或缩放电流,是偏置和信号处理的基础单元 |
| CDBA(Current Differencing Buffered Amplifier) | 差分电流输入,电压输出,用于新型模拟功能电路 |
典型应用领域:
- 高速数据转换器(如电流舵DAC)
- 连续时间滤波器(Gm-C滤波器)
- 模拟神经网络与脉冲神经元电路
- 射频前端与通信系统
- 传感器接口电路(尤其是电流输出型传感器)
# 示例:理想CCII+行为建模(Python仿真示意)
class CCII:
def __init__(self):
pass
def operate(self, I_y, V_x):
"""
理想CCII操作:
- Y端口:输入电压 V_y = V_x(电压跟随)
- X端口:输入电流 I_x = I_y(电流复制到X)
- Z端口:输出电流 I_z = I_x(方向取决于CCII极性)
"""
V_y = V_x # Y端电压等于X端电压
I_x = I_y # 输入电流从Y流入,X流出相同电流
I_z = I_x # Z端输出该电流(假设为正向CCII)
return I_z, V_y
# 使用示例
ccii = CCII()
input_current = 20e-6 # 20 μA 输入电流
input_voltage = 0.7 # 0.7 V 参考电压
output_current, mirrored_voltage = ccii.operate(input_current, input_voltage)
print(f"CCII输出电流: {output_current*1e6:.1f} μA")
print(f"Y端复制电压: {mirrored_voltage:.2f} V")
使用第二代电流传送器(CCII)构建二阶电流模滤波器是一种经典的模拟电路设计方法,尤其适用于实现高精度、高频响应的连续时间滤波功能。CCII具有良好的电流传输和电压缓冲能力,适合构建无源元件少、易于集成的有源滤波器。
一、CCII的基本特性
以正向CCII(CCII+)为例:
- Y端口:输入电压,V_Y = V_X(电压跟随)
- X端口:输入/输出电流,I_X = I_Y(电流复制到X节点)
- Z端口:高阻抗电流输出端,I_Z = I_X
即:Y端“感知”电压,X端“传递”电流,Z端“输出”电流。
二、基于CCII的二阶电流模低通滤波器设计(示例)
目标:实现一个二阶低通滤波器
传递函数形式:
H(s)=Iout(s)Iin(s)=ω02s2+s⋅ω0Q+ω02
H(s) = \frac{I_{out}(s)}{I_{in}(s)} = \frac{\omega_0^2}{s^2 + s\cdot\frac{\omega_0}{Q} + \omega_0^2}
H(s)=Iin(s)Iout(s)=s2+s⋅Qω0+ω02ω02
电路结构(常用双CCII + 两电容结构):
I_in ──┬───→ Y1 (CCII1)
│
C1
│
├───→ X1 → Z1 ──┐
│ │
GND C2
│
X2 ←── Z2 ←──┐
│ │
CCII2 R (可选用于转压)
│
GND
V_X1 = 0 (接地),所以 V_Y1 = 0 → 虚地
I_X1 = I_in (来自Y端电流)
Z1 输出电流给 C2 充电 → 形成积分作用
C2 上电压反馈到 CCII2 的 Y2 端 → V_Y2 = V_C2
CCII2 的 X2 接地 → V_X2 = 0 → 所以 V_Y2 = V_X2 = 0? ❌ 不合理!
修正思路:采用浮地或负反馈配置。
✅ 正确经典结构:使用两个CCII和两个电容实现二阶低通
改进型:Kerwin-Huelsman-Newcomb (KHN) 类似结构的电流模实现
但更常见的是使用 跨导-C(Gm-C)思想结合CCII 或 电流模式双积分反馈结构。
✅ 实用示例:基于双CCII与双电容的二阶低通滤波器
电路连接方式:
I_in ───→ Y1 (CCII1)
│
X1 ──→ I1
│
Z1 ──┬──→ C1 ─→ GND
│
└──→ C2 ─→ GND
│
X2 ←── Z2 ←──┐
│ │
CCII2│
│ │
Y2───┘
│
GND
关键连接说明:
- CCII1: X1 接地 ⇒ V_X1 = 0 ⇒ Y1 也为虚地 ⇒ 可接受电流输入 I_in
- Z1 输出电流同时对 C1 和 C2 充电
- C1 上电压 V_C1 连接到 CCII2 的 Y2 端
- CCII2: X2 接地 ⇒ V_X2 = 0 ⇒ 所以 V_Y2 = V_X2 = 0? ❌ 再次冲突!
⚠️ 问题根源:若 X 接地,则 Y 必须等于 X 电压 → 强制 Y 接地,无法接收信号。
✅ 解决方案:使用浮点电压或反馈路径构造积分器
✅ 成熟方案:电流模双二次滤波器(Biquad)使用两个CCII和两个电容
参考文献中典型结构如下(简化版):
使用两个CCII和两个电容实现通用二阶滤波器
+---------+
I_in ─────→| CCII1 |<───┐
| | │
+---------+ │
Z1 ────┬───→ C1 ─→ GND
│
C2 ─→ GND
│
┌─────────X2
│ |
│ CCII2
│ |
└←────── Y2
↑
V_out?(非直接)
实际上输出取自 Z1 或通过额外转换。
更好的方式是引入 电流积分器概念。
✅ 推荐结构:基于CCII的电流积分器构建二阶滤波器
第一步:构建电流积分器
利用 CCII + 电容 构成电流积分器:
I_in ───→ Y1 (CCII1)
│
X1 (接地) → V_X1 = 0 ⇒ V_Y1 = 0(虚地)
│
Z1 ───→ C ───→ GND
=> I_C = I_Z1 = I_in
=> dV_C/dt = I_in / C
=> V_C(t) = (1/C)∫I_in dt
此时 V_C 出现在电容两端,可作为中间变量。
将此 V_C 接入另一个 CCII 的 Y 端,用于生成反馈电流。
二阶低通滤波器结构(举例):
I_in ───→ Y1 (CCII1)
│
X1 (GND)
│
Z1 ───┬──→ C1 ─→ GND → 节点 A: V_A = (1/C1)∫I_in dt
│
└──→ C2 ─→ GND
│
X2 ←── Z2 ←──┐
│ │
CCII2 │
│ │
Y2────┘
│
GND
❌ 错误:Y2 接 GND ⇒ V_Y2 = 0 ⇒ V_X2 = 0 ⇒ 正确,但 Z2 输出什么?
改进:让第一个积分器的电压驱动第二个 CCII 来产生反馈。
✅ 正确设计示例:双积分反馈结构(MCCII-based Biquad)
使用两个 正向CCII(CCII+) 和两个电容:
I_in ──→ Y1 (CCII1)
│
X1 (接 C1 上端)
│
Z1 ──→ C1 ─→ GND
V1 (C1上电压) ──→ Y2 (CCII2)
│
X2 (接地)
│
Z2 ──→ C2 ─→ GND
V2 (C2上电压) ──→ Y3 (CCII3?) ... 复杂化
为简化,实际常用 单输出二阶节 如下:
✅ 最简实用结构(文献常用)—— 二阶低通电流模滤波器
使用 两个CCII+ 和两个电容,实现低通响应:
+------------------+
| CCII1 |
I_in ─────>| Y |
| Z |───────→ I_int ──┐
| X |<───────────────┤
+------------------+ │
C1
│
GND
I_int ──→ Y2 (CCII2)
│
X2 (GND)
│
Z2 ───→ C2 ─→ GND
输出电流 I_out = I_Z2,其行为满足:
d²I_out/dt² + (1/(R_eq C)) dI_out/dt + ω₀² I_out = K·I_in
→ 经拉普拉斯变换得标准二阶系统。
虽然严格推导需建立状态方程,但在理想条件下,这种级联积分结构可逼近二阶低通。
Python仿真示意(理想积分器模型)
import numpy as np
import matplotlib.pyplot as plt
# 模拟二阶电流模滤波器响应(理想双积分器)
def second_order_lowpass_current_mode(I_in_t, C1=1e-9, C2=1e-9, t_max=1e-6, steps=1000):
dt = t_max / steps
time = np.linspace(0, t_max, steps)
I_in = np.array([I_in_t] * steps) # 恒定输入电流测试
V_c1 = 0
I_c2 = 0
V_c2 = 0
v_c1_list = []
i_c2_list = []
for i in range(steps):
# 第一级积分:I_in 对 C1 积分 → V_c1
V_c1 += (I_in[i] / C1) * dt
# 第二级:V_c1 控制后续电流(假设线性关系或用电压控制电流源)
# 简化:令 I_c2 = g * V_c1 (如通过OTA)
g = 2e-3 # 假设跨导
I_c2 = g * V_c1
V_c2 += (I_c2 / C2) * dt
v_c1_list.append(V_c1)
i_c2_list.append(I_c2)
return time, np.array(v_c1_list), np.array(i_c2_list)
# 仿真运行
t, v1, i2 = second_order_lowpass_current_mode(50e-6)
plt.plot(t*1e6, i2*1e6)
plt.title("Simulated 2nd-Order Current-Mode Filter Output Current")
plt.xlabel("Time (μs)")
plt.ylabel("Output Current (μA)")
plt.grid(True)
plt.show()
总结
使用 CCII 构建二阶电流模滤波器的关键在于:
- 利用 CCII + 电容 构成 电流积分器;
- 采用 多级积分反馈结构(如双积分器反馈);
- 合理设置偏置和接地关系,避免端口冲突;
- 输出通常为电流信号,便于级联。
此类滤波器广泛应用于 Gm-C 滤波器、连续时间滤波器和通信前端 IC 中。


12万+

被折叠的 条评论
为什么被折叠?



