1. ARM BTLM硬件架构与JTAG接口解析
ARM BTLM(Bluetooth Logic Module)是早期ARM开发平台中的关键组件,它集成了FPGA、PLD和蓝牙功能模块。作为调试接口的核心,JTAG在BTLM中扮演着至关重要的角色。我们先从硬件架构层面理解其设计逻辑:
1.1 模块堆栈与信号路由机制
BTLM采用模块化堆栈设计,JTAG信号通过顶部板卡向下传递至母板,形成完整的扫描链:
- TMS/TCK/TDI信号:从顶部模块垂直向下路由至母板
- TDO信号:从母板向上穿越堆栈中所有设备
- 隔离设计:逻辑模块(EXPA/EXPB)与核心模块(HDRA/HDRB)的JTAG信号完全隔离
这种架构允许开发者单独配置FPGA或调试ARM代码:
verilog复制// 典型JTAG信号连接示例
module jtag_router (
input nMBDET, // 母板检测信号
input TDI_above, // 上层模块的TDI
output TDO_above, // 向上层模块输出的TDO
input TDI_below, // 下层模块的TDI
output TDO_below // 向下层模块输出的TDO
);
assign TDO_below = nMBDET ? TDI_above : 1'bz;
assign TDO_above = nMBDET ? 1'bz : TDI_below;
endmodule
1.2 双模式JTAG路由策略
BTLM支持两种工作模式,信号路由动态变化:
| 工作模式 | 信号路径 | 控制信号 |
|---|---|---|
| 用户模式 | Multi-ICE → FPGA → 逻辑模块 → 母板 | CONFIG=0, S2[4]=0 |
| PLD编程模式 | JTAG工具 → PLD → FPGA |
