1. 什么是边界扫描?提到边界扫描,就不得不提jtag,因为边界扫描是jtag接口的功能之一。
jtag,是joint test action group的简称,即联合测试行为小组。
jtag,对于电子行业的工程师们来说再熟悉不过了,无论是搞单片机、arm开发,还是fpga、dsp开发,都离不开这个接口,它不仅可以进行程序下载,还能在线调试debug,简简单单几根线就完成了如此强大的功能,大大的提高了开发效率。
但是,你知道吗?jtag协议的设计初衷, 并不是用来下载程序的 。
jtag中的't',是test的缩写,没错!jtag接口被设计之初,就是用来测试的!
上世纪90年代,集成电路、芯片设计产业开始迅速发展,同时,也面临着诸多问题:芯片管脚和晶圆之间的连接如何确定是正常的?芯片管脚之间是没有短路的?芯片被焊接到pcb板上之后,如何保证焊接是良好的,没有短路、开路?芯片外围的电路和与之互联的芯片是正常的呢?尤其是一些bga封装的芯片,无法使用探针等方式来直接测量芯片的管脚。
面对这些问题,philips、ti等半导体厂商在1985年成立了联合测试行动小组 ,即jtag,用来解决这些问题。
尽管人们认为 ieee 1149.1 标准实际上就是jtag,不过该标准的官方称谓是“ 标准测试访问端口与边界扫描架构 (standard test access port and boundary-scan architecture) ”。它定义了利用边界扫描检测 pc 电路板的检测访问端口 (tap) 等。
jtag协议发展到现在,目前主要有三个典型应用:
程序下载。即目前最常用的一个功能,它可以把用户程序下载到芯片内部的flash中。程序调试。即实时监控程序的运动状态,并且可以通过加入断点的方式来实时调试程序。边界扫描。即boundary-scan,也就是jtag设计的初衷,主要用于芯片本身和pcb电路板的硬件测试。2. jtag硬件接口jtag协议工作的基本逻辑全依赖内部的tap控制器(test access port),其实就是一个状态机,通过tms信号来切换不同的状态。
标准的jtag接口最少需要4个引脚,即:tck、tdi、tdo和tms,在ieee1149.1标准中,trst信号是可选的。
下面是每个信号的定义和功能:
test clock input (tck)
tck 为 tap 的操作提供了一个独立的、基本的时钟信号,tap 的所有操作都是通过这个时钟信号来驱动的。tck 在 ieee 1149.1 标准里是强制要求的。test mode selection input (tms)
tms 信号用来控制 tap 状态机的转换。通过 tms 信号,可以控制 tap 在不同的状态间相互转换。tms 信号在 tck 的上升沿有效。tms 在 ieee 1149.1 标准里是强制要求的。**test data input (tdi) **
tdi 是数据输入的接口。所有要输入到特定寄存器的数据都是通过 tdi 接口一位一位串行输入的(由 tck 驱动)。tdi 在 ieee 1149.1 标准里是强制要求的。**test data output (tdo)
**tdo 是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过 tdo 接口一位一位串行输出的(由 tck 驱动)。tdo 在 ieee 1149.1 标准里是强制要求的。**test reset input (trst) **
trst可以用来对tap controller进行复位(初始化)。不过这个信号接口在ieee 1149.1标准里是可选的,并不是强制要求的。因为通过 tms 也可以对 tap controller 进行复位(初始化)。以jlink的jtag接口为例,可以看到标准的4个jtag管脚:
以下是jtag接口的使用示意:
每个管脚都有一个边界扫描寄存器单元,在时钟的驱动下,每个管脚的信号在寄存器单元之间依次流动,从而实现每个管脚状态的控制和读取。
3. 边界扫描相关的软硬件理论上只要支持jtag协议的调试器、下载器,都可以用来进行边界扫描测试,不过可能需要开发相对应的上位机软件。
本文介绍常见的两款边界扫描测试方案。
jlink + topjtag probetopjtag是一款非常简洁、实用的边界扫描测试软件,支持多种调试器,比如最常用的jlink、usb-blaster等等。我会在后面的文章单独介绍这款软件配合jlink来进行边界扫描测试。
x-jtag一套非常专业的边界扫描方案,研发公司位于英国剑桥,包括调试器和上位机,功能极其强大,当然售价也不菲!广泛应用于航天、汽车、国防、医疗、通信等专业领域。
5. 总结对了,开头介绍的那款板卡,我使用边界扫描获取到的管脚定义如下:
##################################################################### copyright(c), 2010-2023, https://blog.csdn.net/whik1194# modulename : top.xdc # date : 2023-03-04# time : 23:55:00# author : whik1194# function : pin constraint# version : v1.0# version | modify# ----------------------------------# v1.0 first version####################################################################set_property package_pin aa10 [get_ports gclk_p]set_property package_pin d9 [get_ports greset]set_property package_pin d8 [get_ports key]set_property package_pin g20 [get_ports led1]set_property package_pin h19 [get_ports led2]set_property package_pin e20 [get_ports led3]set_property package_pin f19 [get_ports led4]set_property package_pin f8 [get_ports uart_rxd]set_property package_pin f9 [get_ports uart_txd]set_property package_pin g14 [get_ports can_rx]set_property package_pin h14 [get_ports can_tx]set_property iostandard diff_sstl12 [get_ports gclk_p]set_property iostandard diff_sstl12 [get_ports gclk_n]set_property iostandard lvcmos33 [get_ports greset]set_property iostandard lvcmos25 [get_ports led1]set_property iostandard lvcmos25 [get_ports led2]set_property iostandard lvcmos25 [get_ports led3]set_property iostandard lvcmos25 [get_ports led4]set_property iostandard lvcmos33 [get_ports key]set_property iostandard lvcmos33 [get_ports uart_rxd]set_property iostandard lvcmos33 [get_ports uart_txd]set_property iostandard lvcmos33 [get_ports can_rx]set_property iostandard lvcmos33 [get_ports can_tx]#qspi set_property bitstream.general.compress true [current_design]set_property bitstream.config.configrate 50 [current_design]set_property bitstream.config.spi_buswidth 4 [current_design]
网络切片的分类 网络切片粒度如何选择
四川成飞集成科技股份有限公司2018年年度报告
高精度磁栅尺
小米6使用联发科X30? 这样的小米6你还会买吗?
未来自动驾驶汽车将成为必然趋势,汽车行业顺应潮流的同时还需解决这些问题
什么是边界扫描?JTAG边界扫描测试方案介绍
保千里打令V10S的VR全景镜头模组究竟有多小?
土壤养分检测仪有什么作用
发展中国家隐藏着语音识别的金矿?
工业互联网平台何其多,谁能跑出来,主要看命运
多家上市公司宣布将分拆旗下的锂电业务板块独立IPO
智能家居系统之智能照明系统设计与改造方法
受苹果A7处理器订单影响,全球晶圆厂资本支出均有何异变?
380亿美元收购恩智浦半导体公司有望获批
是三维激光扫描技术满足历史建筑测绘要求
用工业互联网技术创新各行业解决方案
PCB油墨的特性以及使用注意事项解析
氮化镓推动电源解决方案
化工工艺流程图阀门程序设计
用案例分析如何将客户需求转化为产品之一