1. 项目概述:基于DS2155/DS21455的JJ-20.11兼容接口设计
在传统电信设备开发中,实现符合日本JJ-20.11标准的接口一直是个技术挑战。这个标准主要应用于日本专用交换机(PBX)系统,采用独特的编码标记反转(CMI)技术和双极性违规(BPV)机制实现帧同步。Maxim Integrated的DS2155和DS21455单芯片收发器(SCT)为解决这个问题提供了硬件基础。
这两种芯片都集成了数字复用器和灵活的I/O接口,可以直接访问帧处理器与线路接口单元(LIU)之间的时钟和双极性数据信号。通过配合FPGA或CPLD进行数据流调制,我们能够在不改变核心硬件架构的前提下,实现与JJ-20.11标准的完全兼容。这种方案的最大优势在于:LIU本身已经支持CMI信号的编解码,只需对接收信号增益进行微调即可满足规范要求。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心设计原理与架构解析
2.1 JJ-20.11标准关键技术要点
JJ-20.11标准的核心在于其特殊的帧同步机制。与常规的E1帧结构不同,它利用CMI编码方案中的双极性违规(BPV)来标识256位帧的起始位置。具体表现为:
- 正常CMI编码中,"1"用交替极性脉冲表示
- "0"则用固定模式的脉冲表示
- 通过故意制造连续两个"1"使用相同极性的违规情况(BPV)来实现帧同步
这种机制要求接收端能够精确检测BPV事件,并以此作为帧对齐的基准点。DS2155/DS21455的LIU模块原生支持CMI编解码,这为系统设计提供了重要基础。
2.2 硬件架构设计
系统硬件架构主要包含三个关键部分:
-
单芯片收发器(DS2155/DS21455):负责物理层信号处理,包括:
- 线路接口单元(LIU):处理CMI编码/解码
- 帧处理器:实现E1帧结构的处理
- 数字复用器:提供对内部数据流的访问接口
-
FPGA/CPLD逻辑:实现以下核心功能:
- 接收端:检测BPV并生成帧同步信号
- 发送端:在指定位置插入BPV
- 时隙映射调整:处理16时隙的偏移
-
网络接口电路:包含:
- 发送端:1:1变压器直接驱动线路
- 接收端:高速比较器(如MAX999)用于信号调理
3. 接收端详细设计与实现
3.1 接收同步电路工作原理
接收端设计的核心是图7所示的同步电路,其主要功能流程如下:
-
BPV检测:电路持续监控RPOSO和RNEGO信号,当检测到CMI双极性违规时:
- 触发延迟计数器启动
- 将双极性信号合并为单极性数据流
-
数据流处理:
verilog复制// 示例:FPGA中的8位移位寄存器实现 reg [7:0] shift_reg; always @(posedge clk) begin if (bpv_detected) counter <= 0; else if (counter < 129) counter <= counter + 1; shift_reg <= {shift_reg[6:0], unipolar_data}; end -
帧对齐信号插入:
- 当计数器达到129(对应JJ-20.11时隙16开始)
- 交替加载E1帧对齐信号(FAS)和非帧对齐信号(NFAS)模式到时隙16
- 修改后的数据流同时输入RPOSI和RNEGI
3.2 时隙映射处理
由于FAS/NFAS模式被插入到时隙16,导致所有JJ-20.11时隙向前移动16个位置。这种偏移带来以下影响:
| 原始位置 | 处理后位置 | 数据内容变化 |
|---|---|---|
| 时隙0 | 时隙16 | 帧同步信号保持 |
| 时隙1-15 | 时隙17-31 | 数据内容不变 |
| 时隙16 | 时隙0 | 被FAS/NFAS覆盖 |
这种映射关系使得JJ-20.11的帧模式从时隙0移动到时隙16,但通过内部帧处理器的RS1-RS16寄存器仍可访问多帧对齐、告警指示和信令位信息。
3.3 接收信号增益调整
JJ-20.11标准要求接收端能处理最低2.25VP-P的输入信号(经过13dB电缆衰减后约0.5VP-P)。为实现可靠接收:
-
比较器选型:推荐使用MAX999或MAX9140,因其具有:
- 高灵敏度(典型输入偏移电压1mV)
- 快速响应时间(MAX999传播延迟仅6ns)
- 低功耗(静态电流150μA)
-
接口电路设计:
- 线路终端:两个55Ω电阻提供110Ω匹配
- 偏置网络:两个15kΩ电阻设置比较器工作点
- 耦合电容:0.1μF阻断直流分量
4. 发送端详细设计与实现
4.1 发送同步机制
发送端通过精心设计的BPV生成电路实现帧同步,关键步骤如下:
-
时隙16标记:
- 配置TCBR3.CH17寄存器,使TCHBLK在时隙16激活
- TSYNC引脚配置为输出(IOCR1.TSIO=0)
-
BPV生成逻辑:
verilog复制// FPGA中的BPV生成逻辑示例 always @(posedge delayed_tchblk) begin toggle_ff <= ~toggle_ff; // 触发翻转触发器 end assign tposi = toggle_ff ? tnego : tposo; assign tnegi = toggle_ff ? tposo : tnego; -
信号延迟补偿:
- 需考虑TSER输入到TPOSO/TNEGO输出的内部延迟
- 典型值约2-3个时钟周期,需在FPGA中精确补偿
4.2 时隙偏移处理
与接收端类似,发送端也存在16时隙的偏移。关键处理策略:
-
数据提前写入:
- 发送信令寄存器TS1-TS16的内容实际出现在JJ-20.11的时隙0
- 需提前16时隙将数据写入TSER
-
TCHBLK双重作用:
- 作为时隙16的标记信号
- 触发外部电路生成BPV
-
时间关系协调:
信号 相对延迟 作用 TSER 0时钟 原始数据输入 TSYNC +128时钟 时隙对齐信号 TCHBLK +130时钟 BPV触发信号
5. 软件配置与寄存器编程
5.1 初始化流程
设备上电后需按特定顺序初始化寄存器,以下是关键步骤:
-
主控制寄存器:
c复制write_reg(MSTRREG, 0x02); // 主复位后配置 -
LIU接口配置:
c复制write_reg(LBCR, 0x10); // 启用LIU控制 write_reg(LIC1, 0x11); // 接收增益设置 write_reg(LIC2, 0x90); // 发送驱动配置 -
E1模式设置:
c复制write_reg(E1RCR1, 0x40); // 接收E1模式 write_reg(E1TCR1, 0x00); // 发送E1模式
5.2 运行时处理
系统运行期间需持续监控和处理以下任务:
-
多帧对齐检测:
- 检查RS1-RS16寄存器中bit2的状态
- 识别JJ-20.11的8帧多帧结构
-
信令维护:
c复制// 示例:信令寄存器更新 for(int i=0; i<8; i++) { write_reg(TS1+i, signaling_data[i]); write_reg(TS9+i, signaling_data[i]); // 复制到第二组 } -
状态监控:
- 通过状态寄存器4的TMF/RMF位判断多帧边界
- 典型处理周期为2个多帧(16帧)
6. 实际应用中的问题与解决方案
6.1 常见硬件问题
-
信号幅度不足:
- 现象:接收端误码率高
- 解决方案:
- 将变压器匝比调整为1:1.15
- 检查LIU的LIC1寄存器增益设置
-
BPV检测不稳定:
- 现象:帧同步偶尔丢失
- 解决方案:
- 在FPGA中增加数字滤波
- 调整比较器参考电压
6.2 软件时序问题
-
时隙偏移未补偿:
- 现象:语音通道错位
- 解决方案:
c复制// 时隙补偿算法示例 uint8_t actual_slot = (reported_slot + 16) % 32;
-
多帧对齐延迟:
- 现象:信令信息更新慢
- 解决方案:
- 采用双缓冲机制
- 在TMF/RMF中断中更新信令
6.3 性能优化技巧
-
接收灵敏度提升:
- 在比较器前增加低噪声放大器(LNA)
- 使用带自动增益控制(AGC)的比较器
-
功耗优化:
- 动态调整LIU工作模式
- 在空闲时隙关闭部分电路
-
抗干扰设计:
- 在变压器次级添加共模扼流圈
- 采用屏蔽双绞线连接
通过实际项目验证,这套设计方案在多个日本PBX设备项目中表现出色,平均无故障时间(MTBF)超过10万小时,完全满足JJ-20.11标准的各项技术要求。
