CN1240005C - 将生产测试接口接至全局串行总线的方法和装置 - Google Patents
将生产测试接口接至全局串行总线的方法和装置 Download PDFInfo
- Publication number
- CN1240005C CN1240005C CNB991274415A CN99127441A CN1240005C CN 1240005 C CN1240005 C CN 1240005C CN B991274415 A CNB991274415 A CN B991274415A CN 99127441 A CN99127441 A CN 99127441A CN 1240005 C CN1240005 C CN 1240005C
- Authority
- CN
- China
- Prior art keywords
- interface
- serial bus
- slave
- production test
- global serial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种将一个生产测试接口接至一个诸如互联集成电路(I2C)总线之类的全局串行总线的方法和装置。输入/输出缓存逻辑对需传送给和来自全局串行总线的数据进行缓存。与输入/输出缓存逻辑连接的从控接口逻辑接收来自输入/输出缓存逻辑的数据和将数据发送给输入/输出缓存逻辑。与输入/输出缓存逻辑和从控接口逻辑连接的从控控制器对与输入/输出缓存逻辑的数据交换进行调步。接在输入/输出缓存器和全局串行总线之间的差错检测逻辑用来检测差错状况。
Description
技术领域
本发明属数据处理领域,具体地说,与将生产测试接口接至诸如互联集成电路(I2C)总线之类的全局串行总线的方法和装置有关。
背景技术
I2C总线是一个工业标准串行双向2线总线,通常用于互连一个或多个主从控制的多个集成电路。I2C总线包括两条总线线路,一条是串行数据线路(SDA),另一条是串行时钟线路(SCA)。I2C总线支持任何集成电路(IC)生产工艺,如负沟道金属氧化物半导体(NMOS)、互补金属氧化物半导体(CMOS)和双极性半导体。在多个接到I2C总线上的器件之间由两条线路载运串行数据(SDA)和串行时钟(SLC)信息。
需要有一些方法和有效机制将诸如遵从IEEE1145.1规范的联合测试动作组(Joint Test Action Group)JTAG接口之类的生产测试接口接至包括互联集成电路(inter integrated circuit(I2C))总线的全局串行总线。所希望的是可以用诸如I2C总线之类的全局串行总线查询VPD信息、提供寄存器访问和执行多个挂到这串行总线上的器件(包括存储器和IO子系统)内的测试。
发明内容
发明的主要目的是提供将一个生产测试接口接至一个包括互联集成电路(I2C)总线在内的全局串行总线的方法和装置。其他目的是使这样的方法和装置基本上没有不良影响和克服现有技术的许多缺点。
本发明提供了一种将一个生产测试接口接至一个全局串行总线的装置,所述装置包括:输入/输出缓存器,用来缓存需传送给和来自所述全局串行总线的数据;一个与所述输入/输出缓存器以及所述生产测试接口相连接的从控接口,用来在所述输入/输出缓存器和所述生产测试接口之间传送数据;以及一个与所述输入/输出缓存器和所述从控接口连接的从控控制器,用来对与所述输入/输出缓存器的数据交换进行调步,所述从控控制器从所述全局串行总线接收控制命令。
本发明提供了一种将一个生产测试接口接至一个全局串行总线的方法,所述方法包括下列步骤:在一个物理接口和一个内部总线之间配置一个从控状态机,所述物理接口与所述全局串行总线连接,而所述内部总线与所述生产测试接口连接;以及利用所述从控状态机执行下列步骤:缓存所述全局串行总线和所述生产测试接口之间需传送的数据,从所述全局串行总线接收控制命令,以及对所述生产测试接口和所述全局串行总线之间的数据交换进行调步。
本发明提供了一种将一个生产测试接口接至一个全局串行总线的集成电路器件,所述集成电路器件包括:输入/输出缓存器,用来缓存需传送给和来自所述全局串行总线的数据;一个与所述输入/输出缓存器以及所述生产测试接口相连接的从控接口,用来在所述输入/输出缓存器和所述生产测试接口之间传送数据;以及一个与所述输入/输出缓存器和所述从控接口连接的从控控制器,用来对与所述输入/输出缓存器的数据交换进行调步,所述从控控制器从所述全局串行总线接收控制命令。
简要地说,本发明为将一个生产测试接口接至一个诸如互联集成电路(I2C)总线那样的全局串行总线提供了方法和装置。需传送至和来自全局串行总线的数据由输入/输出缓存逻辑缓存。一个接至输入/输出缓存逻辑的从控接口逻辑从输入/输出缓存逻辑接收数据和向输入/输出缓存逻辑发送数据。接至输入/输出缓存逻辑和从控制接口逻辑的从控控制器调整输入/输出缓存逻辑的数据交换步调。
按照本发明的一个特点,在输入/输出缓存器与全局串行总线之间配有差错检测逻辑,用来检测差错。
附图说明
本发明及其以上和其他目的和优点从以下对附图所示的优选实施例的详细说明中可以看得更为清楚。在这些附图中:
图1为示出按优选实施例实现的生产测试接口与全局互联集成电路(I2C)总线互连装置的方框图;
图2为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的从控数据和控制寄存器的方框图。
图3为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的从控IO缓存逻辑的方框图;
图4为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的从控测试接入口(TAP)接口的方框图;
图5为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的从控控制器的方框图;
图6为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机与物理接口之间数据调步的方框图;
图7为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的IO缓存逻辑与I2C从属状态机的从控测试接入口(TAP)接口之间的数据调步的方框图;
图8为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的从控差错处理逻辑的方框图;
图9为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的多个状态的方框图;
图10A和10B分别示出了按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的原始写控制流程和原始读控制流程;
图10C和10D分别示出了按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的寄存器写控制流程和寄存器读控制流程;
图10E和10F分别示出了按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的I2C从控状态机的控制写控制流程和控制读控制流程;以及
图11为示出按优选实施例实现的图1所示生产测试接口与全局互联集成电路(I2C)总线互连装置的测试接入口(TAP)和边界扫描体系结构,入口的方框图。
具体实施方式
下面结合图1说明按本发明实现的生产测试接口与全局互联集成电路(I2C)总线互连装置100。生产测试接口与I2C总线互连装置100包括一个从属I2C状态机和翻译器102,通过I2C物理接口104接至I2C总线106。生产测试接口与I2C总线互连装置100可以做在单个集成电路芯片上。I2C状态机和翻译器102通过内部JTAG总线110与多路器(MUX)108连接。MUX108接至外部JTAG总线112。控制输入113加到MUX108上,以在内部JTAG总线110和外部JTAG总线112之间进行选择。测试接入口和边界扫描体系结构,入口114或其它的JTAG实现方式,接在MUX108与时钟控制、内建自检(BIST)和其他功能118、多达223个结构寄存器120和一些JTAG可扫描寄存器或测试数据寄存器(TDR)122之间。
按照本优选实施例的特点,生产测试接口与I2C总线互连装置100以一种独到的方式沟通了I2C总线106和JTAG测试接入口(TAP)入口114,使互连装置100既支持固有的I2C寄存器传送协议又支持全部的JTAG功能。生产测试接口与I2C总线互连装置100遵从工业标准的I2C总线协议,但又不限制JTAG功能。生产测试接口与I2C总线互连装置100大大减轻了互连布线,引进了芯片级寻址能力,定义了直接存储器映射输入/输出(MMIO)读写寄存器寻址能力。
按照本优选实施例的特点,有了生产测试接口与I2C总线互连装置100就能使用对于电路内数据通路、测试和实验室/现场调试功能的生产测试硬件。生产测试接口与I2C总线互连装置100引入了一个新的扫描控制器指令,扫描通信即读,减少了I2C总线106上的寄存器读响应等待。生产测试接口与I2C总线互连装置100简化和减少了系统级生产测试的连接。系统级生产测试对于测试接口可以只用单个I2C连接106,从而简化了测试连线过程和执行综合和内建测试所需的软件。
I2C状态机和翻译器102将通过I2C总线106发送的数据变换为固有的JTAG命令。I2C状态机和翻译器102可以用作一个与入口114对接的TAP控制器,以执行对接在I2C总线106上的芯片内的寄存器进行读、写和扫描。I2C状态机和翻译器102可以启动逻辑内建自检(LBIST)或数组内建自检(ABIST)、扫描JTAG TDR122、控制芯片计时,以及任何其他可通过JTAG总线112启动由入口114实现的功能。生产测试接口与I2C总线互连装置100采用7比特从寻址模式,可以直接对27个从控对象寻址。这个协议意味着一个被寻址的从控对象响应读/写,对存储器内由这个具体从控对象规定处开始的相继字节进行串行访问。生产测试接口与I2C总线互连装置100将直接寻址扩展到223,对8字节对准寄存器进行操作。此外,还可执行由入口114支持的寄存器读/写以外的操作。
串行I2C总线106包括串行数据(SDA)和串行时钟(SCL)两条线路,在总线静止时复位为1。任何总线主控都可以用一个启动比特(SDA1→0,而SCL=“1”)发起消息传送。I2C总线协议对数据分组操作,每个分组一字节宽,每个分组后接一个确认比特(0=良好确认)。消息传送开始后,从控在确认比特定时期间有权驱动SDA,而主控在其他时间有权驱动SCL和SDA。主控逻辑始终拥有时钟。从控除了确认比特外占用SDA来读。在SCL计时(0→1→0)期间每个SDA数据/确认比特必需保持稳定的1或0,使得SDA在SCL的上升沿前就建立,一直保持到SCL的下降沿,而在SCL为低电平时再转换。
分组的比特以最高有效比特(bit1)首先发送。启动字节的比特1-7为具体从控芯片的地址。启动字节的比特8是一个读/写比特。写是以主控发送字节而从控确认应答进行的。在主控写了读启动字节后就开始进行读操作,但在从控确认启动字节后数据流反向。现在,从控发送分组而主控确认。从控一直发送到主控应答Ack=1。所有传输都以一个停止比特(SCL=1,而SDS 0→1)结束。总线在停止比特后重新静止。
IEEE 1149.1规定了一种称为测试接入口的5线路接口,与边界扫描体系结构通信。入口114是联合测试动作组(JTAG)接口IEEE 1149.1规范的具体实现。JTAG测试接入口(TAP)的5条线路是:JTAG测试时钟输入(TCK),JTAG测试数据输入(TDI),JTAG测试数据输出(TDO),JTAG测试模式选择输入(TMS),以及JTAG测试逻辑复位输入(TRST)。测试时钟输入(TCK)的上升沿使入口114对TMS和TDI采样。
在TCK上升沿期间的JTAG测试模式选择输入(TMS)的值使得在入口114的TAP控制器内进行状态转移。测试数据输入(TDI)是输入给入口114的串行数据。测试数据输出(TDO)是从入口114输出的串行数据。JTAG测试逻辑复位输入(TRST)使测试逻辑异步复位(TAP→TestLogicRst),恢复入口114。ShiftIR是使指令在入口114内TDI和TDO之间串行移动的状态。在TMS保持为0时,每个TCK时钟使另一个比特从TDI移入指令寄存器,而使IR状态移出TDO。指令寄存器的内容确定了需访问的具体TDR,或需执行的非寄存器操作。ShiftDR是使许多数据寄存器(TDR)之一串接在TDI和TDO之间的状态。在TMS保持为0时,每个TCK时钟使另一个比特从TDI移入寄存器,而使(老)数据移出TDO。
图2示出了按优选实施例实现的I2C状态机和翻译器102的总标为200的一些原始从控数据和控制寄存器。I2C从控逻辑200包括一个缓存数据、地址和寄存器读/写(R/W)的输入/输出缓存寄存器(IOBUF)201和一个与之配合的输入/输出字节计数寄存器(IOCNT)202。I2C从控逻辑200包括一个接在物理接口104和从控JTAG接口204之间的差错检测器203。I2C从控逻辑200包括一个接在物理接口104、输入/输出字节计数寄存器(IOCNT)202和从控JTAG接口204之间的从控控制器206。从控JTAG接口204包括一个串行移位寄存器(SSR)208和一个与之配合的比特计数寄存器(BCR)210。从控JTAG接口204包括一个测试模式选择(TMS)的选择寄存器(TSR)212和TMS终端选择寄存器(TTSR)214、一个提供测试时钟输入(TCK)的时钟产生器(CG)216和一个提供JTAG测试模式选择输入(TMS)的MUX218。
物理接口104处理I2C协议和定时,提供一个1字节宽的数据接口和相应的握手信号。SDA指的是由I2C规定的双向串行数据信号。SCL指的是由I2C规定的串行时钟信号。物理接口104的操作通常遵从I2C标准的传统实施方式。
IO缓存器(IOBUF)201对送至和来自由I2C启动字节标明作为从控芯片的受访问芯片的相继字节进行缓存。IOBUF 201内的数据每次一个字节地并行送至和来自物理接口104。整个启动字节保存在IOBUF 201内,但只有读/写比特再由I2C状态机102使用。在写操作期间,数据流从I2C总线106流向内部JTAG总线110的TDI或TMS。在读操作期间,数据流从内部JTAG总线110的TDO流向I2C总线106。串行移位寄存器(SSR)208能并行接收来自IOBUF 201或向IOBUF 201提供多达8个字节。这数据然后就按IEEE 1149.1协议串行地移至内部JTAG总线110和从那里移入。
物理接口104对I2C总线106进行监视,接收进入/送出的各个字节。如果字节是一个启动字节,物理接口104就将7比特的从控地址与芯片地址相比较。如果地址不一致,就略去这个字节和其余消息。物理接口104向从控控制器206发送一个信号,表明已接收到一个字节。
从控控制器206对与IOBUF 201的数据交换进行调步,递减IO计数(IOCNT)202,使数据在IOBUF 201内正确对齐。在接收到或发送到消息的结尾时,或者在IOBUF上溢或下溢时,从控控制器206就在SSR 208和IOBUF 201之间传送数据,触发从控JTAG接口204,以执行一个或多个JTAG原始操作。在本说明和权利要求中所谓的原始操作是指由一个或多个测试时钟输入(TCK)脉冲组成的一个序列驱动送至和来自内部从控JTAG接口204的测试模式选择(TMS)、控制,或者TDI/TDO、指令或数据/状态。
图3示出了实现IOBUF 201和IOCNT 202的从控IO缓存逻辑。从控IO缓存逻辑201和IOCNT 202包括IO计数寄存器(IOCNTL2)302、正/倒计数器304、比较器(>“1011”)306、AND门307、IO缓存器(IOBUFL2)308和多路器(MUX IOA,MUX IOB)310和312。IOCNT 202等效于IO计数寄存器(IOCNTL2)302和正/倒计数器304。
在静止时,IO计数寄存器(IOCNTL2)302用指向IO缓存器201的最低有效字节的b“1011”的计数数据(CNTDATA)并行装载。I2C状态机102通过断言LOADCNT指出CNTDATA有效,送至IOCNTL2302。随着各字节通过I2C总线106传送,计数递减,相继指向下一个最高有效字节。I2C物理接口104处理传送比特(最高有效比特先传),IOBUF 201向I2C物理接口104提供和从I2C物理接口104接收字节(最低有效字节先送)。
如果启动字节指出是一个对I2C总线106的读操作,I2C状态机102在准备将数据返回I2C总线106的过程中通过断言LOADCNT有效和CNTDATA=b“0111”使IOCNT前跳到IO缓存器201的数据部分。
IOCNT寄存器IOCNTL2 302在寄存器读/写操作期间再用作一个原始操作步骤计数器304。在这种模式中,加到步骤计数器304上的CountUp每次执行寄存器读/写时序中的下个原始命令步骤时由I2C状态机102激活。只有IOBUF 201的IOCNTL2和数据部改变,而IOBUF地址和启动字节保持它们的值不变。
12字节的IO缓存寄存器(IOBUFL2)308从启动字节开始自右至左一次一个字节装载。来自I2C物理接口104的数据根据信号IS_BYTE_O到达,由来自I2C状态机102的信号COUNTBYTE指为有效。MUX IOA 310将IOBUF数据反馈给所有字节,除了IOCNT所指字节,它用IS_BYTE_O上的数据代替。
读信息根据信号IS_BYTE_I送至物理接口104。MUX IOD 312根据IS_BYTE_I选择需驱动的第IOCNT个字节。来自SSR 208的数据在BUFLOAD信号由I2C状态机102激活时并行装入IOBUF 201的数据部分。这发生在一个寄存器读原始时序的最终,或者在一个I2C命令请求时执行一个1步骤JTAG原始命令之后。
数据、命令/地址和r/w比特通过IOBUFL2(0:95)信号送至I2C状态机102和SSR 208。由AND门307产生的指示IOBUF充满/排空状况。
下面的表1提供了多路器(MUX IOA,MUX IOB)310、312的MUX规定,其中x表示不需考虑。
表1:MUX规定
| MUX IOA 310输出 | CountByteR W | IOcntL2 | BufLoad |
| SSRL2(0:63)和IOBUFL2(64:95)IOBUFL2(0:95)IS_BYTE_0(0:7)和IOBUFL2(8:95)IOBUFL2(0:7)和IS_BYTE_O(0:7)和IOBUFL2(15:95)其他IOBUFL2(0:87)和IS_BYTE_O(0:7)不考虑(超限差错,数据接收过多) | x x0 x1 01 001 x1 x1 x | xx000000010111其他1011>1011 | 1000000 |
| MUX IOB 312输出 | |||
| IOBUFL2(0:7)IOBUFL2(8:15)其他IOBUFL2(56:63) | xxxx | x000x001其他x111 | xxxx |
MUX IOB 312不考虑IOcntL2的最高有效比特,从控逻辑只返回数据,从不返回地址信息。
图4示出了实现JTAG接口204的测试接入口(TAP)接口逻辑。从控TAP接口逻辑204包括一个TAP时钟状态机(TAPCMSL2)402,多个多路器(MUX A,MUX B,MUX C,MUX D,MUX E)404、406、408、410和412,多个寄存器(SSRL2(0:63),TTSRL2,TSRL2,BCRL2(0:5))414、416、418和420,一个倒计数器421,一个比较器(=“111111”)422,多个锁存器413、424和426,以及一对AND门428和430。
在装入命令(LOADCMD)信号激活时,测试接入口命令(TAPCMD)被认为对启动内部JTAG总线110上的活动有效。TAPCMD信号的信息如下面所说明的那样装入命令寄存器,而1时钟(ONECLK2)锁存器426被置为1,以在一个或多个TCK脉冲上释放。见下面的表2、3和4中对TAP时钟状态机(TAPCSM)402、TAP原始命令接口和MUX D410的规定。MUX B 406提供反馈,在LOADCMD不是有效时保持命令寄存器当前值不变。MUX A 404同样也保持SSR(数据)值不变。
TAP时钟状态机(TAPCMSL2)402保持在空闲状态(IDLE)直至受到ONECLKL2激活。状态机402依次通过状态TCKF1、TCKR0、TCKR1再回到IDLE。状态机402继续通过这些状态循环,只要ONECLKL2=1。TCK在TCK上升(TCKR0,TCKR1)状态被驱动为1,有效地将基本从控时钟四分频,提供大致为50%的工作比。在TCKR1状态,BCR递减,而SSR数据右移一个比特。JTAG的TDO在TCK的上升沿采样的要求通过在TCKR0状态用TDO装入TDOL2锁存器413来达到。见下面表4内的MUX E 412的规定。
表2:TAP时钟状态机(TAPCSML2)402
| 状态(编码) | 输入 | 下个状态 | 输出 |
| IDLE(00) | ONECLKL2其他 | TCKF1IDLE | |
| TCKF1(01) | TCKR0 | 如果BCRL2=111111复位ONECLKL2 | |
| TCKR0(11) | TCKR1 | TCK=1装入来自TDO的TDOL1 | |
| TCKR1(10) | IDLE | TCK=1BCRCount=not(BCRL2=“111111”SSR右移1位 |
状态机402的状态是格雷编码的,以防止在状态转换期间对TCK的误操作。除非在状态表内另有规定,输出为0。
加到MUX A 404、MUX B 406和BCRL2 420的TAP命令(TAPCMD)信号是9字节宽。第一字节是一个需由JTAG扫描逻辑204执行的原始命令。TMS选择寄存器(TSRL2:TAPCMD比特0)418确定MUX C 408将选择来自SSRL2(0:63)的SSR数据移出给TMS,还是一个常数值。零0表示在SSRL2 414内的数据是一个TMS控制信息流。1使MUX C选择一个不变的0值在前N-1个TCK时钟脉冲期间加到TMS上,然后选择TTSRL2 416的值在第N个(终端)TCK脉冲期间加到TMS上。
终端TMS选择寄存器(TTSRL2:TAPCMD比特1)416提供一个值在第N个(终端)TCK脉冲期间加到TMS。TTSRL2416用于长扫描操作,如果SSR的64比特宽度不足以完成扫描的话。TTSRL2=0将沟通一些原始操作,使扫描可以用另一个原始命令继续下去。TTSRL2=1通过使入口114内的JTAG TAP状态离开移位DR或移位IR状态终止这操作。通过以一种否则使不用于原始命令的组合方式选通TAPCMD比特0:1形成测试逻辑复位(TRST)。AND门428的这个输出由锁存器424锁存,以免测试逻辑复位TRST信号误操作。比特计数寄存器420(BCRL2:TAPCMD比特2:7)规定随一个TMS或TDI信息序列发送的TCK脉冲的个数。BCR值为b“111110”表示需发送64个TCK脉冲(整个SSR寄存器414将右移出TDI或TMS),将TDO在左侧移回SSR。BCR=b“111111”是终端计数,指示需释放一个TCK脉冲。
TAPCMD的第一字节的定义总结于以下表3。
表3:TAP原始命令接口
TAPCMD信号的其余比特表示在准备移出TDI或TMS中需装入SSR208的数据。
| 比特 | 信号 | 说明 |
| 0 | TSRL2 418 | TMS选择寄存器0:TMS<=(SSR(63),右移)*(BCRL2+2)1:TMS<=0当BCRL2/=111111TTSRL2当BCRL2=111111 |
| 1 | TTSRL2416 | TMS终端选择寄存器值在BCRL2计数的最后一个比特期间当TSRL2=1时加到TMS |
| TRST | TRST<=(TSRL2=0)和(TTSRL2=1)这是得到TRST功能而不需要更多的比特的一个途径 | |
| 2:7 | BCRL2 420(6个比特) | 比特计数寄存器装入移位比特数减2:b“111110”=64个TCK脉冲(SSR移位63次)b“111101”=63个TCK脉冲(SSR移位62次)如此等等b“111111”=一个TCK脉冲(SSR将不移位)注意:0脉冲没有编码 |
| 8:71 | SSRL2(64个比特) | 单纯的扫描寄存器数据需移出TDI(如果TSRL2=1,也移出TMS)TDO=>(0)SSRL2(63)=>TDI/TMSTDO根据TCK的上升沿获取TDI/TMS在TCK的下降沿发送(SSR被移位) |
在BCR达到b“111111”时执行这个命令。ONECLKL2锁存器426返回到0,而TAPCMD状态机402复位,回到空闲状态。内部JTAG总线110待用。AND门430的CMDDONE信号输出反馈给I2C从控状态机102,作为可以启动一个新的原始命令的指示符。
在以下列出多路器(MUX A,MUX B,MUX C,MUX D,MUXE)404、406、408、410和412的MUX规定的表4中,x表示不需考虑,而/=表示不等于。
表4:MUX规定
| MUX A(0:63)404输出 | LoadCmd | SSR移位 | TSRL2 | BCRL2 | TAPCmdSM |
| SSRL2(0:63)TDO和SSRL2(0:62)TAPCMD(8:71) | 001 | 01x | xxx | xxx | xxx |
| MUX B(0:1)406输出 | |||||
| TSRL2和TTSRL2TAPCMD(0:1) | 01 | xx | xx | xx | xx |
| MUX C 408输出 | |||||
| SSRL2(63)0TTSRL2 | xxx | xxx | 011 | x/=111111=111111 | xxx |
| MUX D 410输出 | |||||
| 1ONE CLKL2ONE CLKL20 | 1000 | xxxx | xxxx | xx/=111111=111111 | x/=TCKF1TCKF1TCKF1 |
| MUX E 412输出 | |||||
| TDOTDOL2 | xx | xx | xx | xx | TCKR0/=TCKR0 |
图5示出了实现控制器206的从控控制逻辑。从控控制逻辑206包括I2C从控状态机逻辑(I2CSSML2(0:3))502,比较器(=)504,以及传送TAP CMD的MUX SMA 506、传送数据的MUX SMB 508和用于控制的MUX SMD 510这些多路器。从控控制逻辑206包括寄存器读/写(REGRW)总线同步逻辑512。REGRW总线同步逻辑512包括一对AND门514、516,一个SC空闲锁存器(SCIDLEL2)520,一个NOT门522,以及一个多路器MUX SMB 524。从控控制逻辑206执行多个基本功能如下。I2C从控状态机逻辑(I2CSSML2(0:3))502对物理接口106和IO缓存逻辑300之间的数据交换进行调步和对IO缓存逻辑300和JTAG扫描逻辑204之间的数据交换进行调步。传送TAP CMD的MUX SMA 506为寄存器读/写操作提供一个有序的命令序列。REGRW总线同步逻辑512对JTAG扫描逻辑204和入口114之间的数据交换进行调步。传送数据的MUX SMB 508使传送数据的I2C带宽要求最低。
表5、6、7和8分别列出了从控控制器206的MUX SMA 506、MUX SMB 524、MUX SMC 508和MUX SMD 510的多路器规定。
IOBUF 201和SSR 208数据并不始终是字节对等传送。如果I2C用一个原始命令序列访问一个短于或不是IOBUF/SSR寄存器宽度的同样倍数的TDR时,来自I2C总线106的数据在IOBUF 201内左对齐,使得在接收到所有的有效数据时能检测到上溢。在IOBUF 201数据装入SSR 208时,数据右对齐。从目标TDR扫描出的数据在SSR 208内左对齐,并且在再传送给IOBUF 201时保持左对齐,使得在合适时刻能检测到返回给I2C的数据的下溢。
REGRW总线同步逻辑512利用SCidle信号使寄存器读/写总线同步。在CHKADR状态,SCidle锁存器置为1(假设来自入口114的SCIDLE信号有效)。在一个寄存器R/W(读/写)操作启动时,SCIDLE变为低电平,复位SCidleL2 520。在寄存器读操作完成时,SCIDLE和非SCidleL2指示从寄存器读出的数据在入口114内可用。在表中的寄存器读时序存完成第三步后暂停,以利用这个逻辑与寄存器读总线同步。
图6示出了对IOBUF 201和物理接口104之间的数据传送进行调步所需的信号。这些信号的定义参照状态机的说明很容易理解。
图7示出了缓存器201对JTAG扫描逻辑204的数据调步情况。图中示出了对IOBUF 201和JTAG扫描逻辑204之间的数据传送进行调步所用的信号。这些信号的定义参照状态机的说明很容易理解。
表5:MUX规定
| MUX SMA 506输出 | CmdMuxSel | 注 |
| IOBUFL2(80:87)和TapDataBits(0:63) | 0000 | Tap命令 |
| x‘0800000000000000DF’x‘DE0000000014’和IOBUFL2(64:87)x‘000000000000000001’x‘010000000000000001’x‘FE 0000000000000000’x‘000000000000000001’x‘000000000000000000’ | 0001001000110100010101100111 | 寄存器读原始Tap命令时序:1.TAP=原始位置,shiftir2.TR=register RDiommed,SSR=status,TAP=exitlir3.TAP=RunTestIdle(在此等待RegisterRWDONE)4.TAP=shiftdr5.SSR=scscan(0:63),TAP=exitldr6.TMS=UpdateDR,Idle7.无操作(TMS=0,TCK=两个时钟脉冲),Idle |
| 不考虑 | 1000 | 不执行 |
表5续
| x‘0800000000000000DF’x‘DE 00000000OF000040’x‘020000000000000003’x‘FE’和IDBUFL2(0:63)x‘0800000000000000DF’x‘DE0000000018’和IOBUFL2(64:87)x‘000000000000000000’ | 1001101010111100110111101111 | 寄存器写原始Tap命令时序:1.TAP=原始位置,shiftir2.TR=scan,SSR=status,TAP=exitlir3.TAP=shiftDR4.scscan(0:63)=SSR,TAP=exitldr5.TAP=原始位置,shiftir6.IR=registerwtm,SSR=status,TAP=exitlir7.TAP=RunTestIdle(触发写操作) |
表6:MUX规定
| MUX SMB输出 | I2CSSML2 | 注 |
| 1 | =ChkAdr | |
| SCidle和SCidleL2 | 其他 |
表7:MUX规定
| MUX SMC输出 | IOBUFL2 | 注 |
| 如果ValidBytes=“0000”则TapDataBitis=“00000000000000”x和IOBUFL2(0:7);如果ValidBytes=“0001”则TapDataBits=“00000000000000”x和IOBUFL2(0:15)等ValidBytes输出:b“0000”如果有1<=(BCR+2)<=8;b“0001”如果有9<=(BCR+2)<=15;等b“0111”如果有57<=(BCR+2)<=64 | 原始地址 | TapDataBits输出:如下生成的64比特段:将IOBUFL2的有效数据字节(由IOBUFL2(82:87)确定)右对齐后,左侧填以不变的“00”x,从而形成一个64比特段(8个字节)ValidBytes输出:从“000”至“111”的值,取决于原始命令的传送容量(即来自用作一个指向IOBUFL2内有效数据的LSByte的指针的IOBUFL2(82:87)) |
| TapDataBits:IOBUFL2(0至63)ValidBytes:“1111” | 其他 | 如果不是一个原始Cmd,就不使用TapDataBits。对于非原始Cmd,LSByte始终为“1111”(使用所有8字节IOBUF数据 |
表8
| MUX SMD输出 | I2CSSML2 | IOCNTL2 | IOBUFL2 | 注 |
| b“0001” | ChkAdr | x | x | IOCNTL2用作一个在这点向上计数的计数器,用来对在一个寄存器读/写时序中的步骤进行计数 |
| ValidBytes | ChkStopWrtAck | xb“0111” | 原始地址原始地址 | 用在IOBUFL2内有效的LSByte的位置装入IOCNTL2 |
| b“1011” | 其他 | 指向IOBUFL2的最右字节,以开始填入12C地址字节 | ||
下面参见图8,图中示出了实现差错检测器203的差错处理逻辑。差错处理逻辑203包括一个循环冗余校验(CRC)逻辑802,对送至和来自I2C总线106的数据进行CRC校验。差错处理逻辑203包括一个ACK TYPE MUX 804,它的输入有:CRC_Good(CRC良好,Attention(注意),IOCNTL2,读或写,以及一个来自比较器808的原始命令。
I2C状态机102和差错处理逻辑203接收来自JTAG TAP控制器入口114的Attention输入。这个来自入口114的Attention输入可以是由于一个寄存器读/写总线差错或一些其他差错情况而激活的。读或写是一个来自物理接口104经I2C状态机缓存的输入。IOBUFL2是一个从IO缓存逻辑201加到比较器808的输入。加到比较器808上的TapCmdAdr是一个可作为内部常数或通过芯片IO插针配置的常数。IOCNTL2是一个从IO缓存逻辑201加到MUX 804的输入。CRC-Good是一个来自CRC逻辑802的信号,指出这个CRC字节传送正确。Is_slave_ack_type是一个从差错处理逻辑800送至物理接口104的输出。
I2C从控用确认脉冲处理差错。I2C要求数据的每个字节在Ack上有一个确认,或从控地址的第九比特上有一个第九时钟周期。在从控碰到一个差错时,它在试图执行一个读时序时将不再确认它的地址和数据。这样的软件可以确定有差错情况,并利用I2C总线106确定引起差错的原因和可以根据差错情况加以恢复。
有几种情况可能使从控对一个读或写时序不确认。如果已允许CRC校验,从控将不确认第13个字节,以防软件盖写数据。这13个字节包括从控地址、3个字节的寄存器读地址、8个数据字节和1个CRC字节。写将只在CRC正确计算和发送后才能发生。没有CRC校验,如果软件写多个8个字节的数据,数据就会被盖写。在Attention信号在入口114内升高并且没有在入口114内被堵塞,状态机在试图执行一个寄存器直读时序时将引起一个No_Ack。如果执行一个写时序而发送的3个字节的地址不是一个原始地址,从控就不确认通过I2C总线发送的数据字节。一旦允许了CRC校验,而在I2C总线上发送的CRC不正确,从控将对下个读尝试不确认。
表9:差错处理逻辑ACK型MUX 804规定
| 是从控确认型 | Attention,读或写,原始Cmd禁止Attention | 注 |
| 0 | 原始Cmd=1Attention=x读或写=x | 在内部IOBUFL2(64至79)指向TapCmdAdr时始终肯定确认 |
| 0 | 原始Cmd=0读或写=0并且IOCNTL2指向字节11,10,9或禁止Attention=1 | 在写地址字节或Attention被禁止时肯定确认 |
| ATTENTION | 原始Cmd=0读或写=1或者读或写=0并且IOCNTL2指向字节<=8 | 根据在读或写IOBUFL2具有非原始地址的数据字节时输入的ATTENTION,否定/肯定确认 |
下面参见图9、10A、10B、10C、10D、10E和10F,在图9中示出了状态机102的顺序状态。图10A和10B分别示出了I2C从控状态机102的原始写控制流程和原始读控制流程。图10C和10D分别示出了I2C从控状态机102的寄存器写控制流程和寄存器读控制流程。图10E和10F分别示出了I2C从控状态机102的控制写控制流程和控制读控制流程。
在I2C从控状态机102的IDLE状态902,没有I2C活动。用b“1011”装入IOcntL2,直指准备接收启动字节中IOBUFL2的LSByte(最低有效字节)。多个状态是一些I2C写状态,包括一个AMACH状态904、一个WBYTE状态906、一个CHKOVRFLW状态908和一个WRTACK状态910。在这些写I2C状态中,在I2C主控向从控写字节时,第一个字节始终是一个对从控寻址的启动字节。启动字节的第八个比特是一个读/写比特。下面三个字节可理解为一个寄存器地址、原始TAP命令或从控控制命令。其余的字节是数据。
在AMATCH(地址匹配)状态904,物理接口104识别出一个启动字节后,对一个消息的(下一个)字节进行汇编。AMATCH状态904在一个重复的启动或启动字节地址不匹配时返回IDLE状态,使从控回到IDLE。如果消息在接收到前四个字节(启动+地址字节)结束,从控就返回IDLE。如果允许CRC,但检测到一个CRC差错,AMATCH状态904就返回IDLE状态902。AMATCH状态904在物理接口104接收到8个或更多个比特时转到WBYTE状态906。物理接口104的一个具体实施是在启动字节期间在IsStartDetected前指示Is8times,要求将Is8times锁存(Is8timesL2),使它不致丢失。AMATCH状态904在物理接口104接收到一个或多个字节的数据后检测到一个停止比特时就转到CHKADR状态912。
在WBYTE(写字节)状态906,来自物理接口的Is_Byte_O写入IOBUFL2(第IOcntL2个字节),然后将IOcntL2减1。如果这是一个I2C写操作,WBYTE状态906就转到CHKOVRFLW状态908。数据流继续从主控/发起方流向从控。如果这是一个I2C读操作,WBYTE状态906就转到CHKADR状态。在启动字节后数据流反向。现在,主控接收来自从控的数据。
在CHKOVRFLW(检查IO缓存器的上(下)溢)状态908,没有行动。在这是一个写操作,而IOCntL2还没有从b“0000”覆盖到b“1111”,说明在IOBUFL2内尚有可容纳更多字节的空间时,CHKOVRFLW状态908就转到WRTACK状态910。在一个寄存器读或原始命令已经充满IOBUFL2而CHKOVRFLW状态908原是从I2C读状态的RBYTE状态932转入时,CHKOVRFLW状态908就转到WAITREAD状态910。读出一个或多个字节,但IOBUFL2还没有下溢。转到CHKADR:IOBUFL2是充满/排空,触发一个寄存器读/写或原始操作。
WRTACK(确认I2C字节刚写至从控)状态910提供一个好的Ack行动,如果在消息的前四个字节(启动+3个地址字节)内的话。如果寄存器读地址和Attention是来自入口114,WRTACK状态910就提供一个失败的Ack。IsDoRead(IOBUF读I2C主控写的字节)激活,送至物理接口104,指示已为IOBUF准备好了一个字节。NeedAckL2复位。如果这是第四个字节(刚写至IOBUF的最后的地址字节;IOcntL2现在=7)而地址指示一个原始命令,检查ValidBytes,它就根据这个原始命令的BCR段解码,以使IOcntL2在数据缓存器内前跳。例如,BCR=b“000000”,只有两个字节将发送给入口114,因此只需要一个数据字节。IOcntL2提前到b“0000”,使得在数据的第一个字节后将立即发生上溢。否则,I2C就会浪费时间发送没有意义的另7个比特数据。
WRTACK状态910根据NeedAckL2转到AMATCH状态904。物理接口104在发送/接收Ack后激活一个周期的IsAckSent。在从控状态机一直等待到Ack发送的情况下,NeedAckL2保持不变。
在CHKADR(校验地址)状态,对IOBUFL2的地址段进行检查,确定是否为采用I2C从控命令格式的一个寄存器读/写、原始或控制命令。对于原始和控制操作,原始信号有效。在这是一个寄存器读/写操作的情况下,SCidleL2置位。REGRW总线同步逻辑512将监视寄存器读写(结构寄存器r/w)总线,以使JTAG命令的各个步骤与寄存器读/写操作合拍不致过快。在这是一个读/写操作的情况下,IOcntL2寄存器设置为b“0001”。在这种情况下,IOCNT将逐步通过原始TAP命令的一个规定时序,以完成寄存器读/写操作。
如果Attention有效或CRC允许而校验没有通过,CHKADR状态912就转到IDLE状态902,寄存器读将有失败的确认(Fanil ACK)。CHKADR状态912在IOBUFL2地址与原始基本地址不一致时转到寄存器读/写命令状态之一,REGRWGO状态918。CHKADR状态912在IOBUFL2地址与基本r/w命令地址一致时转到基本命令状态之一,LDTAPCMD状态914。CHKADR状态912在IOBUFL2地址与控制命令地址之一一致时转到CHKSTOP状态924。这些命令在没有任何JTAG总线活动的情况下执行。
原始命令状态包括LDTAPCMD状态914和WAITTAPDONE状态916。IOBUFL2地址字节与为直接连到芯片上JTAG接口保留的地址一致。将发生TMS或TDI/TDO活动,但不是两者都发生。最多可达SSRL2寄存器宽度的任何数量的比特将按照装入IOBUFL2字节10的原始TAP命令传送。
在LDTAPCMD(装入TAP命令)状态914,TAP命令从IOBUFL2(字节10)装入JTAG接口204。LoadCmd和ValidBytes信号一起将有效字节对齐的数据装入SSRL2的最右边的一些字节。这意味着,数据必需由在数据段内右对齐的I2C发送。例如,如果BCR为b“000111”,将有9比特发送给入口114,来自I2C物理接口104的数据的LSByte就必需含有8个有效比特,而来自I2C物理接口104的下个字节含有一个有效比特,它必需作为这个字节内最右边的那个比特发送。
在WAITTAPDONE(等待TAP完成)状态916,没有行动。JTAG接口204忙于执行一个原始TAP命令。WAITTAPDONE状态916根据在硬件结束后来自JTAG接口204的CmdDone转到CHKSTOP状态924。
在CHKSTOP(检查I2C停止状况)状态924,寄存器读/写操作总是传送8个字节,但原始命令可以只以在SSRL2内有效的数据部分结束。IOcntL2 302用指示有效数据含有多少个左对齐字节的ValidBytes装入。例如,BCR 210以b“000111”开始,SSRL2 414初始保持右对齐的9个比特,因此只有字节6、7是有效的。原始命令完成后,获取的TDO数据在SSRL2 414内左对齐,因此只有字节0、1是有效的。
CHKSTOP状态924在检测到一个I2C停止比特后转到IDLE状态902,不需要进一步的行动。这是可能性不大的路径,除非寄存器读/写操作超时延迟很久。CHKSTOP状态924在SSR 208内有读出的数据需要返回给I2C物理接口104时转到LOADRESULTS状态926。CHKSTOP状态924在I2C物理接口104请求的写操作结束后I2C物理接口104等待从控确认最近传送的字节时转到WRTACK状态910。
I2C读状态包括LOADRESULTS状态926、READACK状态928、WAITREAD状态930和RBYTE状态932。
在I2C读状态,I2C物理接口104读取来自从控的字节。每次IO缓存器201放出数据就执行寄存器读、原始或控制操作后转到LOADRESULTS和READACK状态926和928。主控从从控那里收回所有定时权。主控可以读一个或多个字节,在Ack=1时终止I2C传送。由WAITREAD、RBYTE和CHKOVRFLW这些状态930、932和908形成的循环每传送一个字节执行一次。
在LOADRESULTS(将数据从SSR装入IOBUF)状态926,如果刚执行的JTAG操作是一个原始操作,则数据仍在SSRL2 414内,而且必需拷贝入IOBUFL2 308。否则,这是已在一个寄存器读/写操作的步骤6(见以下说明)中执行了的,因此SSR是无用的存储单元。
在READACK(等待对刚从从控读取的I2C字节的确认)状态928,物理接口104监视读定时,包括等待Ack比特。参见图6,物理接口104接收到Ack后,就通过激活IAckReady,使NeedAckL2置位,表示它需要IOBUF 201放出另一个字节。于是,IsWrtReady激活,向物理接口104表示下个字节已就绪,可以从IOBUF 201写到Is_Byte_I。同时,NeedAckL2复位。
READACK状态928转到WAITREAD状态930,如果物理接口104忙于向主控发回另一个数据字节,或如果Ack=1,等待停止比特,这是I2C协议允许终止一个读操作的喉一可能条件。
在WAITREAD(等待I2C从从控读一个字节)状态930,没有行动。物理接口104忙于向主控发回另一个数据字节,或者如果Ack=1,等待停止比特。
WAITREAD状态930在主控读取的第一个数据字节用一个“1”来确认时转到IDLE状态902,物理接口104一检测到停止比特就使状态进入IDLE。否则,NeedAck2指出物理接口104已完成将另一个字节发送给主控后接收到Ack=1,从而使状态进入IDEL状态902。IDLE状态902将激活IsWrtReady,允许物理接口104开始期待停止比特、复位NeedAckL2和使用停止比特。WAITREAD状态930在物理接口104接收到Ack=0(指示需要另一个数据字节)时转到RBYTE状态932。
在RBYTE(准备读另一个数据字节)状态932,IOcntL2 302减1,指向IOBUFL2 308内的下一个数据字节。
寄存器读/写(REGRW)命令状态包括REGRWGO状态918、WAITCMDDONE状态920和CMDSTEP状态922。IOBUFL2地址字节与为原始或控制命令保留的任何地址都不一致。这地址直接翻译成一个寄存器读/写地址。TMS和TDI/TDO活动都将在一个规定步骤序列内发生,以完成寄存器读/写操作。将传送的是刚好为SSRL2寄存器414的宽度的64个比特。
在REGRWGO(启动寄存器命令时序的(下一个)步骤)状态918,寄存器时序的(下一个)步骤加到激活的TapCmd总线和LoadCmd上,以启动JTAG接口204。如果IOcntL2=步骤6,寄存器读操作读取的数据是在SSRL2414内,需要在使入口114的TAP控制器回到RunTestIdle的清理步骤前保存到IOBUFL2 308,否则最终命令步骤会破坏SSR内的数据。这是通过激活BufLoad来实现的。
在WAITCMDDONE(等待TAP和/或寄存器读完成)状态920,没有行动。或者JTAG扫描逻辑忙于执行一个原始TAP命令,或者寄存器读操作已经开始但还没有结束。
WAITCMDDONE状态920在来自JTAG扫描逻辑的CmdDone信号指示最近的命令步骤完成而RegisterRWdone信号在来自入口的SCIDLE信号成为无效后返回到有效之后有效。RegisterRWdone信号只是在一个寄存器读操作的步骤3期间才有意义,此后寄存器读操作应立即发生。
在CMDSTEP(下个命令步骤前)状态922,IOcntL2加1,IOcntL2用来在CmdMuxSel中检索寄存器读/写命令的各个步骤。CMDSTEP状态922转到SCOMGO:寄存器读和写命令时序都刚好是7个步骤那样长。如果步骤7还没有执行,循环回来启动下个步骤。CMDSTEP状态922在第7步骤一完成就转到CHKSTOP状态924。
图11示出了生产测试接口和全局互联集成电路(I2C)总线互连装置100的入口114的测试接入口(TAP)和边界扫描体系结构的主要功能。入口114提供JTAG扫描功能1102和扫描通信功能1104。JTAG扫描功能1102使I2C从控状态机102可以通过在线路TAP/SP所示的测试接入口(TAP)接口(IEEE 1149.1)扫描芯片环。Attention(注意)输出和加电复位(POR)输出也加在线路TAP/SP所指处。Attention输出用来警告I2C从控状态机102需要观察或干预/恢复的各种情况。
扫描通信功能1104在一个芯片的功能逻辑和扫描功能之间提供一条并行数据通路。接入操作可以在各芯片时钟运行和系统工作时执行;扫描通信功能1104利用了这允许与一个正在工作的芯片或系统通信的优点。
时钟树1114接收来自入口114的TCK SCAN CLOCKS输入。时钟树1114也输出各个芯片时钟。半定制的LBIST/SCAN接口1116可选地用来将这些芯片扫描环组织成一些功能组,诸如对电平敏感的扫描设计(LSSD)环,以及BIST信道。接口1116接在入口114的JTAG扫描1102和功能芯片逻辑1118之间。
入口114的JTAG扫描控制器的设计所增添的这个优选实施例的新指令,扫描通信即读,有利于新的I2C与JTAG接口功能的设计。
在新指令扫描通信即读设计以前,读一个芯片寄存器需要两个步骤。步骤1:执行入口扫描控制器命令“扫描通信读”(十六进制代码“17”),取得目标芯片寄存器的内容,装入入口扫描通信数据寄存器1104。步骤2:执行入口扫描控制器命令“扫描出”(十六进制代码“12”),读出入口扫描通信数据寄存器1104的内容。这个两步处理设计成适合现有的软件和硬件。
采用这个新的扫描通信即读命令,步骤1和2可以合并成单个步骤:执行入口扫描控制器命令“扫描通信即读”(十六进制代码“14”),获取目标芯片寄存器1120的内容装入入口扫描通信数据寄存器1104,然后立即读出入口扫描通信数据寄存器1104的内容。
如果I2C与JTAG接口功能必需采用原来的两步骤处理,那么它就要在一个时钟周期(它本身的I2C时钟周期之一)内执行这两个步骤。由于这个I2C时钟周期可能相对于其他系统时钟有所不同,因此不能保证这两个步骤都能顺利完成。通过将这个处理合并成一个步骤,现在就能保证这操作将在一个时钟周期内完成。
互连装置100和I2C状态机102的工作情况从以下各例中可以看出。
一个64比特的寄存器读/写操作以启动字节地址(I2C从控基地址)开始,可选地后接最多为3个字节的寄存读/写地址(LSByte,高位比特在前)。一种实现方式规定是8字节对齐的寄存器读/写地址。一个写操作必需以寄存器读/写地址的全部3个字节启动,而一个读操作可以使用一个以前写的地址或修改重新启动/读字节前地址的一个、二个或全部三个字节(除非允许CRC检验)。I2C从控贯彻24比特的寄存器读/写地址(比特23至0,比特0=LSB)。入口/JTAG规定LSB为奇偶校验比特。其余23个比特(23至1)表示一个字节对齐的地址。寄存器读/写地址传送总是8字节宽,但每个芯片通常设计了一些具有改变的宽度的寄存器,可以不必按8字节边界对齐。I2C寄存器读/写数据段内数据的具体对齐与芯片实现有关。如果在这点接收到一个停止比特,那么所写的地址只有这部份将被改变,而不会引起其他行动。
对于一个写操作来说,从第四字节(LSByte,高位比特在前)起就是写操作的数据。一个或多个数据字节后的停止或溢出状况将中止寄存器读/写操作,寄存器读/写地址不自动递增。在写/读多于8个字节的数据时要发生上溢/下溢。作为这种设计的一个可选方案,寄存器读/写地址可以自动递增,为多于8个字节的写/读对相继的一些读/写地址进行写/读。写多于8个字节的数据将导致在相同的寄存器读/写地址的数据被盖写。写少于8个字节的数据将导致寄存器读/写地址写有满的8个字节,数据的一些最高有效字节写的将是寄存器读/写数据IO缓存器内上次操作留下的。在允许CRC检验的情况下,从控将不确认一个写操作期间的第9个(CRC)字节,以免将正确传送的数据盖写。
对于一个读操作来说,重新启动(停止后再启动)用R/W比特=“1”发至I2C接口。这触发了I2C硬件内中止的一个寄存器读操作。数据流于是反向,从控对每个确认回送一个数据字节(LSByte最先)。如果读多于8个字节,数据将从LSByte开始重复。
非寄存器TAP命令格式由保留的寄存器读/写地址(23:12)=x“524”(这个地址是可再定位的)标识。有8个操作模式,由TapCmd比特10:8选样。比特11保留他用。在原始TAP命令(TapCmd地址(11:8)=“0000”)格式中,寄存器读/写地址的LSByte被译为一个使一些比特移出通过TMS或TDI送至TAP口和获取TDO的TAP命令。这能使I2C接口104完成JTAG逻辑支持的任何动作。停止或溢出状况将断开BCR,使它保持读操作和溢出时的当前值。写或读多于“BCR值模8”(+1,如果余数非零的话)个字节的数据使一个BCR重装将这个数据流(即写/读扫描环内相继的字节)。在允许CRC检验的情况下,除非正确发送CRC字节,所有的读/写原语和寄存器读/写都将受到抑制。
Tap命令例:64比特+比特环
寄存器读/写输出(CRC禁止)
以下列出执行一个后接1比特扫描输出的内部扫描环的原始64比特扫描输出所需的I2C命令序列
1.装入原语命令
命令从控使Tap状态机首先进至测试逻辑复位再进至移位IR,在一个指令内扫描。
I2C写启动W/R/W比特=0,长度=5字节,停止
字节1:08x 10个TCK脉冲(Addr/Cmd字节后的数据是TMS
序列)
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:DFx TMS值序列(从最右的LSB向MSB取)
字节5:00x 继续的TMS值序列(将Tap SM送至移位IR)
2.装入原始命令和指令数据
命令从控将OF 80 00 41扫描入Tap控制器指令寄存器。这是内部环的一个扫描输出,然后取Tap S/M送至Exit1-IR。
I2C写启动w/R/W比特=0),长度=7字节,停止
字节1:DEx 32个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:41x 指令的LSB
字节5:00x 指令的下个字节
字节6:80x 指令的下个字节
字节7:OFx 指令的MSB(内部扫描环的扫描输出)
3.装入原始命令
命令从控安排Tap状态机至移位DR(从Exit1-IR)的时序。
I2C写启动w/R/W比特=0,长度=4字节,停止
字节1:02x 4个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:03x TMS值序列(从最右的LSB至MSB将Tap S/M
取至移位DR)
4.装入原始Cmd
命令从控引进64个TCK脉冲,对于所有这些脉冲TMS=0,以及将Tap S/M保持在移位DR内。
I2C写启动Cmd
命令从控引进64个TCK脉冲,对于所有这些脉冲TMS=0,以及将Tap S/M保持在移位DR内。
字节1:BEx 64个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
5.取得扫描输出命令的返回数据
TMS为0,将Tap S/M留在移位DR内。
I2C读重新启动w/R/W比特=1),长度=8字节,停止
字节1:FEx 数据的LSB
字节2:OFx 数据的下个字节
字节3:DCx 数据的下个字节
字节4:BAx 数据的下个字节
字节5:EFx 数据的下个字节
字节6:BEx 数据的下个字节
字节7:ADx 数据的下个字节
字节8:DEx 数据的MSB
6.装入下个原始命令
命令从控引进TMS=1的一个TCK脉冲,将Tap S/M在1比特的扫描后送至Exit1-DR。
I2C写启动w/R/W比特=0),长度=3,停止
字节1:FFx 1个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
7.取得扫描输出命令的返回数据(1比特)
将Tap S/M送至Exit1-DR。
I2C读重新启动w/R/W比特=1),长度=1字节,停止
字节1:FEx 数据的LSB(只有最右的那个比特有效)
8.装入下个原始命令
命令从控使Tap状态机进至测试逻辑复位状态。
I2C写启动w/R/W比特=0),长度=4字节,停止
字节1:03x 5个TCR脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:1Fx TMS值形式的最右比特至最右比特的序列(仅5个比特用于使Tap状态机返回复位)
Tap命令例:2.5字节寄存器写
以下列出将2.5字节(20比特)的数据扫描入内部扫描环所需的I2C命令序列(注意:得到的数据扫描将为A EF BA十六进制代码)。
1.装入原始命令
命令从控使Tap状态机进至测试逻辑复位,再进至移位IR,在一个指令内扫描。
I2C写启动w/R/W比特=0,长度=5字节,停止
字节1:08x 10个TCK脉冲(Addr/Cmd字节后的数据是TMS
序列)
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:DFx TMS值序列(从最右的LSB向MSB取)
字节5:00x 继续的TMS值序列(将Tap SM送至移位IR)
2.装入原始命令和指令数据
命令从控将OF 80 00 41扫描Tap控制器指令寄存器。这是内部环的一个扫描输出,然后取Tap S/N送至Exit1-IR。
I2C写启动w/R/W比特=0),长度=7字节,停止
字节1:DEx 32个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:41x 指令的LSB
字节5:00x 指令的下个字节
字节6:80x 指令的下个字节
字节7:OFx 指令的MSB(内部扫描环的扫描输出)
3.装入原始命令
命令从控安排Tap状态机进至移位DR(从Exit1-IR)的时序。
I2C写启动w/R/W比特=0,长度=4字节,停止
字节1:02x 4个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:03x TMS值序列(从最右的LSB至MSB将Tap S/M取至移位DR)
4.装入原始命令
命令从控启动一个2字节SCAN-IN(扫入),它包括两串各为8个的TCK脉冲,对于所有这些脉冲TMS=0,以及将S/M保留在移位DR内。
I2C写启动w/R/W比特=0),长度=5字节,停止
字节1:06x TCK脉冲(都是TMS=0,注意:由于有两个数
据字节,因此需要16个TCK脉冲,使得内部
从控逻辑将送出两个独立的8比特扫描结果)
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:BAx 数据的第一个字节(LSB)
字节5:EFx 数据的下个字节
5.装入原始Cmd
通过在最后4个比特内扫描结束2.5字节SCAN-IN。这4个TCK脉冲除了最后一个TCK都是TMS=0,TMS=1的最后一个TCK将使TAP S/M送至Exit1-DR。
I2C写启动w/R/W比特=0),长度=4字节,停止
字节1:C2x 4个TCK脉冲(前3个TMS为0,最后一个TMS
为1)
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:BAx SCAN-IN数据的4个最高有效比特(最右的这些
比特)
6.装入下个原始命令
命令从控使Tap状态机转到测试逻辑复位状态。
I2C写启动w/R/W比特=0),长度=4字节,停止
字节1:03x 5个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:1Fx 从最右到最左的TMS值序列(仅5个比特用于使
Tap状态机返回复位)
空TAP命令(TapCmd Addr(11:8)=“0001”)
JTAG对TCK/TMS/TDI的操作被压制。这个模式例如用来在一个将一个新命令扫描入IR的Tap Cmd序列后立即回读IR状态信息。
I2C写SSR数据(IO缓存器)操作没有影响。I2C读SSR数据操作将返回扫描出的最近JTAG/IDO数据。
Tap命令例:扫描入一个指令后立即读IR状态
1.装入原始命令
命令从控使Tap状态机进至测试逻辑复位再进至移位IR,扫描入一个指令。
I2C写启动w/R/W比特=0,长度=5字节,停止
字节1:08x 10个TCK脉冲(Addr/Cmd字节后的数据是TMS
序列)
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:DFx TMS值序列(从最右的LSB向MSB取)
字节5:00x 继续的TMS值序列(将Tap SM送至移位IR)
2.装入原始命令和指令数据
命令从控将OF 80 00 41扫描入Tap控制器指令寄存器。这是内部环的一个扫描输出,然后取Tap S/N送至Exit1-IR。
I2C写启动w/R/W比特=0),长度=7字节,停止
字节1:DEx 32个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:41x 指令的LSB
字节5:00x 指令的下个字节
字节6:80x 指令的下个字节
字节7:OFx 指令的MSB(内部扫描环的扫描输出)
3.装入原始命令
命令从控读扫描控制器的上次扫描输出(这将是IR状态,因为上次操作是指令寄存器扫描)。
I2C写启动w/R/W比特=0,长度=3字节,停止
字节1:--x 这个字节对于本命令不需考虑
字节2:41x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
4.取得原始读命令的返回数据---
返回扫描出的数据(下面用虚线表示)。
I2C读重新启动w/R/W比特=1),长度=4字节,停止
字节1:--x IR状态的LSB
字节2:--x IR状态的下个字节
字节3:--x IR状态的下个字节
字节4:--x IR状态的MSB
5.装入下个原始命令
命令从控使Tap状态机进至测试逻辑复位状态。
I2C写启动w/R/W比特=0),长度=4字节,停止
字节1:03x 5个TCK脉冲
字节2:40x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
字节4:1Fx 从最右至最左比特的TMS值序列(仅5个比特用
于使Tap状态机返回复位)
颁发I2C停止序列
启用Attention命令(TapCmd Addr(11:8)=“0010”),从入口触发启用Attention的I2C方法。
一个对SSR数据(IO缓存器)的I2C写操作启用由I2C从控执行的Attention检验。JTAG活动受到抑制。
注意:在写这个序列时,从控将只在Attention非有效时确认寄存器读/写操作。在Attention有效时,只有原始Tap命令才用标准的I2C确认脉冲确认。
Tap命令例:内部重新启用
Attention检验
1.I2C写启动w/R/W比特=0),长度=4字节,停止
2.字节1:--x
字节2:42x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
3.颁发I2C停止序列
禁止Attention命令(TapCmd Addr(11:8)=“0011”),从入口触发禁止Attention的I2C方法。
一个对SSR数据(IO)缓存器)的I2C写操作可以禁止由I2C从控执行的Attention检验。
注意:在写这个序列时,从控将确认原始命令和寄存器读/写序列,即使Attention有效。这个方法用来克服诸如机器检验有效之类会导致产生一个Attention的问题。这并不校正由于寄存器读/写差错而产生的Attention和在寄存器读/写差错不予考虑后接收的数据。在默认的情况下,Attention被屏蔽掉。
Tap命令例:内部屏蔽Attention
1.I2C写启动w/R/W比特=0),长度=4字节,停止
2.字节1:--x
字节2:43x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
3.颁发I2C停止序列
原始命令例:内部启动CRC校验
这个字节序列将启用CRC检验。
1.I2C写启动w/R/W比特=0),长度=3字节,停止
2.字节1:--x
字首2:45x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
3.颁发I2C停止序列
注意:现在将启用CRC检验,直至字节2:45x和字节3:52x发送给从控。
例:执行采用CRC的寄存器读
在本例中,CRC的实施方式采用8比特CRC累加器的实现方式:x8+x4+x3+x2+1。
写原始解码,启用CRC检验。
1.I2C写启动w/R/W比特=0),长度=3字节,停止
2.字节1:--x
字节2:45x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
3.颁发I2C停止序列
(现在CRC检验启用)
送入需读的地址和从控地址和3字节地址的CRC字节(在本例中为59x)。
1.I2C写启动w/R/W比特=0),长度=4字节,停止
2.字节1:03x 寄存器读/写地址的LSB
字节2:00x 寄存器读/写地址的中间字节
字节3:80x 寄存器读/写地址的MSB
字节4:59x 移入8个0后的CRC字节
3.颁发I2C停止序列
(寄存器读/写地址800003存储在从控内)
读如所希望读出的那样多的字节,而CRC字节只对发回到I2C总线上的数据计算。
1.I2C写启动w/R/W比特=1,长度=8字节,停止
在本例中读字节1-8(长度可变)
2.颁发I2C停止序列
为了获得根据上次读操作计算出的CRC字节,必需将原始解码“5247”x与作为CRC字节的“11”x(在不考虑命令部分时送入“03”x)一起发送。
1.I2C写启动w/R/W比特=0,长度=4字节,停止
2.字节1:--x 对于CRC读来说不用考虑(在本情况下使用03x)
字节2:47x 读CRC解码地址
字节3:52x 原始地址的MSB
字节4:11x 移入8个0后的CRC字节
3.颁发I2C停止序列
(寄存器读/写地址800003存储在从控内)
在下发CRC读的原始解码后可以执行一个读序列,以获得所执行的寄存器读的CRC。只有一个字节是有效的,因此应该只读一个字节或略去其余字节。主控应不确认(“1”b)这个字节,因此能执行这个操作而不会引起总线差错。
1.I2C写启动w/R/W比特=1),长度=1字节,停止对于这个例子是读字节#1(只有一个字节是有效的)
2.颁发I2C停止序列
注意:CRC字节应通过先前计算的字节发送,以对寄存器清零。
以下这个字节序列停止CRC检验。
1.I2C写启动w/R/W比特=0,长度=3字节,停止
2.字节1:--x TCK脉冲
字节2:46x 原始Cmd地址的LSB
字节3:52x 原始Cmd地址的MSB
3.颁发I2C停止序列
现在CRC检验禁用于下个程序。
虽然本发明结合各图所示的本发明实施例的详细情况作了说明,但这些详细情况并不构成对所附权利要求给定的本发明专利保护范围的限制。
Claims (37)
1.一种将一个生产测试接口接至一个全局串行总线的装置,所述装置包括:
输入/输出缓存器,用来缓存需传送给和来自所述全局串行总线的数据;
一个与所述输入/输出缓存器以及所述生产测试接口相连接的从控接口,用来在所述输入/输出缓存器和所述生产测试接口之间传送数据;以及
一个与所述输入/输出缓存器和所述从控接口连接的从控控制器,用来对与所述输入/输出缓存器的数据交换进行调步,所述从控控制器从所述全局串行总线接收控制命令。
2.如在权利要求1中所述的将一个生产测试接口接至一个全局串行总线的装置,所述装置还包括接在所述输入/输出缓存器和全局串行总线之间的差错处理逻辑部件,用来处理差错状况。
3.如在权利要求2中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述差错处理逻辑部件包括一个循环冗余检验计算逻辑部件。
4.如在权利要求1中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述全局串行总线为一个互联集成电路总线。
5.如在权利要求1中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述生产测试接口为一个联合测试动作组接口,而所述从控接口处理从所述联合测试动作组接口接收的和发送给所述联合测试动作组接口的联合测试动作组格式命令。
6.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,所述装置还包括接在所述输入/输出缓存器和全局串行总线之间的差错处理逻辑部件,用来处理差错情况,所述联合测试动作组接口向所述差错处理逻辑部件提供注意信号,所述注意信号指示出现差错。
7.如在权利要求6中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述差错处理逻辑部件包括一个循环冗余检验计算逻辑部件,用来实现循环冗余检验计算。
8.如在权利要求6中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控接口配置成根据所述注意信号允许和禁止差错检验。
9.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器对所述从控接口和所述联合测试动作组接口之间的数据交换进行调步。
10.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器为所述从控接口和所述联合测试动作组接口之间的数据交换提供数据导引和路由选择。
11.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器向所述从控接口提供用于通过生产测试接口与从控接口相连的寄存器的读和写操作的一个有序的命令序列。
12.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控接口处理联合测试动作组读和写操作,而所述从控控制器提供一个写操作,接着再提供一个读操作,用于所述生产测试接口的联合测试动作组指令寄存器的状态读操作。
13.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器为通过生产测试接口与从控接口相连的寄存器的读和写操作提供一个启动字节地址,接着再提供该寄存器的读/写地址。
14.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器向所述从控接口提供用于扫描通信读和写操作的一个有序的命令序列。
15.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述全局串行总线为一个互联集成电路总线,在所述互联集成电路总线和所述输入/输出缓存器之间有一个物理接口,而所述从控控制器对所述物理接口和所述输入/输出缓存器之间的数据交换进行调步。
16.如在权利要求15中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器为所述物理接口和所述输入/输出缓存器之间的数据交换提供数据导引。
17.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器向所述从控接口提供用于通过生产测试接口与从控接口相连的寄存器的读操作的命令。
18.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器向所述从控接口提供用于通过生产测试接口与从控接口相连的寄存器的写操作的命令。
19.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控接口包括一个测试时钟产生逻辑部件。
20.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控接口接收来自所述联合测试动作组接口的一个装入命令信号。
21.如在权利要求20中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述联合测试动作组接口和所述从控接口由一个内部联合测试动作组总线连接,而所述装入命令信号是为了启动所述内部联合测试动作组总线上的活动而激活的。
22.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述全局串行总线为一个互联集成电路总线,并且在全局串行总线和输入/输出缓存器之间利用确认信号进行差错处理。
23.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器向所述从控接口提供一个执行一个或多个原始操作的命令。
24.如在权利要求23中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述原始操作包括至少一个与所述联合测试动作组接口相关的控制、指令、数据或状态交换。
25.如在权利要求5中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述联合测试动作组接口包括一个扫描通信即读逻辑部件。
26.如在权利要求25中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述扫描通信即读逻辑部件执行一个步骤,取出一个目标寄存器的内容装入一个扫描通信数据寄存器,并立即读出所述扫描通信数据寄存器的所述内容。
27.如在权利要求1中所述的将一个生产测试接口接至一个全局串行总线的装置,其中所述从控控制器提供用于与所述输入/输出缓存器交换数据的数据导引和路由选择。
28.一种将一个生产测试接口接至一个全局串行总线的方法,所述方法包括下列步骤:
在一个物理接口和一个内部总线之间配置一个从控状态机,所述物理接口与所述全局串行总线连接,而所述内部总线与所述生产测试接口连接;以及
利用所述从控状态机执行下列步骤:
缓存所述全局串行总线和所述生产测试接口之间需传送的数据,
从所述全局串行总线接收控制命令,以及
对所述生产测试接口和所述全局串行总线之间的数据交换进行调步。
29.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机执行差错状况处理的步骤。
30.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为扫描通信读操作提供命令的步骤。
31.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为扫描通信写操作提供命令的步骤。
32.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为控制读操作提供命令的步骤。
33.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为控制写操作提供命令的步骤。
34.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为原始写操作提供命令的步骤。
35.如在权利要求28中所述的将一个生产测试接口接至一个全局串行总线的方法,其中还包括由所述从控状态机为原始读操作提供命令的步骤。
36.一种将一个生产测试接口接至一个全局串行总线的集成电路器件,所述集成电路器件包括:
输入/输出缓存器,用来缓存需传送给和来自所述全局串行总线的数据;
一个与所述输入/输出缓存器以及所述生产测试接口相连接的从控接口,用来在所述输入/输出缓存器和所述生产测试接口之间传送数据;以及
一个与所述输入/输出缓存器和所述从控接口连接的从控控制器,用来对与所述输入/输出缓存器的数据交换进行调步,所述从控控制器从所述全局串行总线接收控制命令。
37.如在权利要求36中所述的集成电路器件,所述集成电路器件还包括接在所述输入/输出缓存器和所述全局串行总线之间的差错处理逻辑部件。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/251,032 | 1999-02-18 | ||
| US09/251,032 US6684362B1 (en) | 1999-02-18 | 1999-02-18 | Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2 c bus |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1264081A CN1264081A (zh) | 2000-08-23 |
| CN1240005C true CN1240005C (zh) | 2006-02-01 |
Family
ID=22950201
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB991274415A Expired - Lifetime CN1240005C (zh) | 1999-02-18 | 1999-12-30 | 将生产测试接口接至全局串行总线的方法和装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US6684362B1 (zh) |
| JP (1) | JP4056191B2 (zh) |
| KR (1) | KR100337413B1 (zh) |
| CN (1) | CN1240005C (zh) |
| CA (1) | CA2290174A1 (zh) |
| TW (1) | TW463094B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109154925A (zh) * | 2016-05-18 | 2019-01-04 | 索尼公司 | 通信设备、通信方法、程序和通信系统 |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6799233B1 (en) * | 2001-06-29 | 2004-09-28 | Koninklijke Philips Electronics N.V. | Generalized I2C slave transmitter/receiver state machine |
| US20040225783A1 (en) * | 2001-07-30 | 2004-11-11 | Erickson Michael John | Bus to multiple jtag bus bridge |
| US6954929B2 (en) * | 2001-07-30 | 2005-10-11 | Hewlett-Packard Development Company, L.P. | Method for just-in-time updating of programming parts |
| US20040187049A1 (en) * | 2003-02-27 | 2004-09-23 | Nptest, Inc. | Very small pin count IC tester |
| US20050204222A1 (en) * | 2004-03-15 | 2005-09-15 | Swoboda Gary L. | Apparatus and method for eliminating the TMS connection in a JTAG procedure |
| TWI275932B (en) * | 2005-08-19 | 2007-03-11 | Wistron Corp | Methods and devices for detecting and isolating serial bus faults |
| US7627800B2 (en) * | 2006-05-22 | 2009-12-01 | International Business Machines Corporation | Communicating with error checking to a device capable of operating according to an address prefix serial bus protocol |
| US7818641B2 (en) | 2006-10-18 | 2010-10-19 | Texas Instruments Incorporated | Interface to full and reduce pin JTAG devices |
| US7802036B2 (en) | 2007-02-06 | 2010-09-21 | Seiko Epson Corporation | Serial communication system using an I2C bus as a serial bus |
| US8478917B2 (en) | 2010-09-22 | 2013-07-02 | Microsoft Corporation | Automatic addressing protocol for a shared bus |
| US20120324302A1 (en) * | 2011-06-17 | 2012-12-20 | Qualcomm Incorporated | Integrated circuit for testing using a high-speed input/output interface |
| CN102262572B (zh) * | 2011-07-19 | 2013-05-08 | 浙江大学 | 一种带crc校验功能的iic总线接口控制器 |
| JP5622878B2 (ja) * | 2012-04-05 | 2014-11-12 | 株式会社東芝 | 画像形成装置及び画像形成装置の制御方法 |
| TWI493401B (zh) * | 2013-01-07 | 2015-07-21 | Quanta Comp Inc | 電腦系統及其觸控及顯示資料傳輸裝置與方法 |
| CN104239169A (zh) * | 2013-06-14 | 2014-12-24 | 鸿富锦精密工业(深圳)有限公司 | 信号测试卡及方法 |
| TWI493206B (zh) | 2013-07-30 | 2015-07-21 | Ind Tech Res Inst | 積體電路裝置及串列式壓縮掃描訊號產生裝置之測試存取埠狀態機的控制方法 |
| US20160306006A1 (en) * | 2015-04-16 | 2016-10-20 | HGST, Inc. | Self-testing a storage device via system management bus interface |
| US10156606B2 (en) * | 2016-01-05 | 2018-12-18 | Test Research, Inc. | Multi-chassis test device and test signal transmission apparatus of the same |
| TWI606394B (zh) * | 2016-05-26 | 2017-11-21 | 鴻海精密工業股份有限公司 | 燒錄系統及燒錄方法 |
| IT201800005506A1 (it) * | 2018-05-18 | 2019-11-18 | Sistema di elaborazione, relativo circuito integrato e procedimento | |
| US11860801B2 (en) * | 2019-01-15 | 2024-01-02 | Christoph HELDEIS | Method for implicit addressing of electronic units and corresponding units |
| CN110096399B (zh) * | 2019-04-25 | 2023-07-07 | 湖南品腾电子科技有限公司 | 一种硬件接口的调试方法 |
| CN112463662B (zh) * | 2020-12-16 | 2024-04-05 | 福州创实讯联信息技术有限公司 | 一种用户态控制i2c设备的方法与终端 |
| TWI900117B (zh) * | 2023-09-21 | 2025-10-01 | 美商微晶片科技股份有限公司 | 串列資料匯流排上錯誤狀況之偵測 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728750A (ja) | 1993-07-13 | 1995-01-31 | Mitsubishi Electric Corp | インターフェース変換装置 |
| US5933614A (en) * | 1996-12-31 | 1999-08-03 | Compaq Computer Corporation | Isolation of PCI and EISA masters by masking control and interrupt lines |
| US6185641B1 (en) | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
| US6188381B1 (en) * | 1997-09-08 | 2001-02-13 | Sarnoff Corporation | Modular parallel-pipelined vision system for real-time video processing |
| US6553439B1 (en) * | 1999-08-30 | 2003-04-22 | Intel Corporation | Remote configuration access for integrated circuit devices |
-
1999
- 1999-02-18 US US09/251,032 patent/US6684362B1/en not_active Expired - Lifetime
- 1999-11-22 CA CA002290174A patent/CA2290174A1/en not_active Abandoned
- 1999-12-23 TW TW088122703A patent/TW463094B/zh not_active IP Right Cessation
- 1999-12-30 CN CNB991274415A patent/CN1240005C/zh not_active Expired - Lifetime
-
2000
- 2000-02-10 KR KR1020000006160A patent/KR100337413B1/ko not_active Expired - Fee Related
- 2000-02-17 JP JP2000039822A patent/JP4056191B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109154925A (zh) * | 2016-05-18 | 2019-01-04 | 索尼公司 | 通信设备、通信方法、程序和通信系统 |
| CN109154925B (zh) * | 2016-05-18 | 2022-07-19 | 索尼公司 | 通信设备、通信方法、程序和通信系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000242573A (ja) | 2000-09-08 |
| CA2290174A1 (en) | 2000-08-18 |
| CN1264081A (zh) | 2000-08-23 |
| US6684362B1 (en) | 2004-01-27 |
| JP4056191B2 (ja) | 2008-03-05 |
| KR20000071338A (ko) | 2000-11-25 |
| KR100337413B1 (ko) | 2002-05-22 |
| TW463094B (en) | 2001-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1240005C (zh) | 将生产测试接口接至全局串行总线的方法和装置 | |
| CN1122226C (zh) | 微处理器与调试系统 | |
| CN1107958C (zh) | 有能将测试方式可靠复位的电路的同步型半导体存储装置 | |
| CN1525187A (zh) | 半导体集成电路测试装置及半导体集成电路制造方法 | |
| CN1605058A (zh) | 关于嵌入式字段可编程门阵列核心的接口结构 | |
| CN1206657C (zh) | 快闪存储器 | |
| CN1021380C (zh) | 计算系统的命令传递 | |
| CN1707693A (zh) | 能够调节数据输出驱动器的阻抗的半导体存储器件 | |
| CN1436333A (zh) | 支持无线手持多媒体设备的集成处理器平台 | |
| CN1471787A (zh) | 接口装置 | |
| CN1186306A (zh) | 半导体存储装置 | |
| CN1140857A (zh) | 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置 | |
| CN1677570A (zh) | 写入多值数据的非易失性半导体存储装置 | |
| CN1564136A (zh) | 基于目标机上的ejtag部件的交叉调试器实现方法 | |
| CN1516199A (zh) | 带有测试功能和冗余功能的半导体存储装置 | |
| CN1070497A (zh) | 双向并行协议 | |
| CN1385796A (zh) | 信号接收电路、数据传送控制装置及电子设备 | |
| CN1820445A (zh) | 串行通信设备及其方法、和使用串行通信设备的通信系统 | |
| CN1581861A (zh) | 断线与短路检测电路 | |
| CN1469393A (zh) | 半导体存储器件 | |
| CN1137421C (zh) | 可编程控制器 | |
| CN1945741A (zh) | 半导体存储装置及具备该半导体存储装置的收发系统 | |
| CN1385793A (zh) | 数据传送控制装置、电子机器及数据传送控制方法 | |
| CN1516001A (zh) | 一种新型risc流水线微控制器构架及其操作方法 | |
| CN1181615C (zh) | 信号检测电路、数据传送控制装置和电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C06 | Publication | ||
| PB01 | Publication | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CX01 | Expiry of patent term |
Granted publication date: 20060201 |
|
| CX01 | Expiry of patent term |