CN112463243A - 基于边界扫描的在线级联加载固件系统及其方法 - Google Patents

基于边界扫描的在线级联加载固件系统及其方法 Download PDF

Info

Publication number
CN112463243A
CN112463243A CN201910848723.XA CN201910848723A CN112463243A CN 112463243 A CN112463243 A CN 112463243A CN 201910848723 A CN201910848723 A CN 201910848723A CN 112463243 A CN112463243 A CN 112463243A
Authority
CN
China
Prior art keywords
loaded
chip
loading
upper computer
main controller
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.)
Granted
Application number
CN201910848723.XA
Other languages
English (en)
Other versions
CN112463243B (zh
Inventor
杨明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Pudong Technology Corp
Inventec Electronics Tianjin Co Ltd
Inventec Corp
Original Assignee
Inventec Pudong Technology Corp
Inventec Electronics Tianjin Co Ltd
Inventec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inventec Pudong Technology Corp, Inventec Electronics Tianjin Co Ltd, Inventec Corp filed Critical Inventec Pudong Technology Corp
Priority to CN201910848723.XA priority Critical patent/CN112463243B/zh
Priority to US16/575,839 priority patent/US11061665B2/en
Publication of CN112463243A publication Critical patent/CN112463243A/zh
Application granted granted Critical
Publication of CN112463243B publication Critical patent/CN112463243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于边界扫描的在线级联加载固件系统及其方法,通过上位机判断待加载的固件版本高于所述多个待加载芯片的固件版本时,发送加载标记予所述多个待加载芯片,使所述多个待加载芯片进入加载模式;上位机重新定义加载模式的每个待加载芯片与其连接的主控制器芯片之间的多个可控物理连线作为加载总线;上位机通过加载总线发送加载文件与IAP指令予每个待加载芯片,使其依据帧周期与帧计数执行加载程序以完整接收加载文件,并执行IAP指令烧写其具有的只读存储器;当每个待加载芯片执行完加载程序时,跳转出加载模式,上位机恢复所述多个可控物理连线的定义。

Description

基于边界扫描的在线级联加载固件系统及其方法
技术领域
本发明涉及一种在线级联加载固件系统及其方法,特别是基于边界扫描的在线级联加载固件系统及其方法。
背景技术
目前应用于印刷电路板组装(Printed Circuit Board Assembly,PCBA)产线产品(包括安装其上的测试治具)在线加载固件的方案,主要有两种方式,分别为联合测试工作群组(Joint Test Action Group,JTAG)方式和在软件烧录(In ApplicationProgramming,IAP)方式。
以JTAG方式加载固件,需要求目标芯片必须具备标准的JTAG电气接口,即包含4个物理线路:模式选择线(TMS)、时钟线(TCK)、数据输入线(TDI)和数据输出线(TDO)。只有具备标准JTAG电气接口的芯片,才能级联成闭合链路。但是一些厂商所提供的待加载芯片的加载接口采用SWD电气标准,只有SWCLK和SWDIO这2个物理线路,难以与其他标准JTAG电气接口的芯片直接对接成链。另外,SWD电气标准尚未支持点对多点的传输,所以采用SWD电气接口的待加载芯片之间不可级联加载。因此,以JTAG方式加载固件受限于待加载芯片厂商规定的加载电气接口方式。
当待加载芯片支持以IAP方式加载固件时,用户可利用上位机自定义待加载芯片的加载接口的形式,例如:待加载芯片的加载接口为并行或串列,待加载芯片的加载接口为序列外围装置接口(Serial Peripheral Interface,SPI)总线或内部整合电路(Inter-Integrated Circuit,I2C)总线等,但需要额外的主(Master)控制器芯片的参与。但以IAP方式加载固件,除了需要开发待加载芯片与上位机的软件,还增加了开发主控制器芯片的驱动层和应用层的软件工作,以支持加载功能的数据传输,开发成本更高。另外,以级联方式加载固件,上位机、各主控制器芯片、各待加载芯片之间需相互通讯,流程上相比JTAG标准化的通讯方式更为复杂,必然会牺牲部分加载速率。
综上所述,如何在尽可能不改变现有印刷电路板上硬件资源的前提下,结合JTAG方式与IAP方式的优势,达到高效率加载固件,一直是相关业者当前重要研发课题之一。
发明内容
本发明公开一种基于边界扫描的在线级联加载固件系统及其方法。
首先,本发明公开一种基于边界扫描的在线级联加载固件系统,其包括:上位机、TAP控制器与N个印刷电路板,其中,每个印刷电路板上设置有通过JTAG接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个待加载芯片通过多个可控物理连线与所述多个主控制器芯片其中之一连接,上位机与TAP控制器连接,所述多个印刷电路板依序相互串接,TAP控制器通过JTAG接口分别与第一个印刷电路板以及第N个印刷电路板连接,N大于或等于二且为正整数。上位机验证加载文件是否有效且每个印刷电路板的JTAG链路是否可用;当上位机验证该加载文件有效且每个印刷电路板的JTAG链路可用时,上位机通过所述多个可控物理连线收集每个待加载芯片的固件版本信息,并分别与待加载的固件版本比较;当上位机判断待加载的固件版本高于至少一个待加载芯片的固件版本时,上位机发送加载标记予其固件版本低于待加载的固件版本的该至少一个待加载芯片,使该至少一个待加载芯片进入加载模式;上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线,使得所述多个可控物理连线皆作为加载总线且统一数据流动方向等待接收加载文件;上位机通过所述多个加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使该至少一个待加载芯片依据帧周期与帧计数执行加载程序,以完整接收加载文件,并执行IAP指令烧写其具有的ROM;以及当该至少一个待加载芯片执行完加载程序时,该至少一个待加载芯片跳转出加载模式,上位机恢复该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线的定义。
另外,本发明公开一种基于边界扫描的在线级联加载固件方法,此方法包括以下步骤:提供上位机、TAP控制器与N个印刷电路板,其中,每个印刷电路板上设置有通过JTAG接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个待加载芯片通过多个可控物理连线与所述多个主控制器芯片其中之一连接,上位机与TAP控制器连接,所述多个印刷电路板依序相互串接,TAP控制器通过JTAG接口分别与第一个印刷电路板以及第N个印刷电路板连接,N大于或等于二且为正整数;上位机验证加载文件是否有效且每个印刷电路板的JTAG链路是否可用;当上位机验证该加载文件有效且每个印刷电路板的JTAG链路可用时,上位机通过所述多个可控物理连线收集每个待加载芯片的固件版本信息,并分别与待加载的固件版本比较;当上位机判断待加载的固件版本高于至少一个待加载芯片的固件版本时,上位机发送加载标记予其固件版本低于待加载的固件版本的该至少一个待加载芯片,使该至少一个待加载芯片进入加载模式;上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线,使得所述多个可控物理连线皆作为加载总线且统一数据流动方向等待接收加载文件;上位机通过每个加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使该至少一个待加载芯片依据帧周期与帧计数执行加载程序,以完整接收加载文件,并执行IAP指令烧写其具有的ROM;以及当该至少一个待加载芯片执行完加载程序时,该至少一个待加载芯片跳转出加载模式,上位机恢复该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线的定义。
本发明所公开之基于边界扫描的在线级联加载固件系统及其方法如上,与先前技术的差异在于本发明是通过上位机判断待加载的固件版本高于至少一个待加载器芯片的该固件版本时,发送加载标记予该至少一个待加载芯片,使该至少一个待加载芯片进入加载模式;上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的多个可控物理连线,使得其作为加载总线;上位机通过加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使该至少一个待加载芯片依据帧周期与帧计数执行加载程序以完整接收加载文件,并执行IAP指令烧写其具有的只读存储器;当该至少一个待加载芯片执行完加载程序时,该至少一个待加载芯片跳转出加载模式,上位机恢复所述多个可控物理连线的定义。
通过上述的技术手段,本发明可不需要开发独立的加载总线,充分利用已有的硬件资源,构建灵活的并行加载总线,提高数据输送量;不必受限于芯片自身具备JTAG标准电气接口,适用于产线在线级联加载固件;不需要印刷电路板上主控制器芯片的相关功能开发,节省开发成本和流程成本;由于加载总线对数据传输的周期性不敏感,不受上位机的作业系统或TAP控制器延迟的影响,具备更好的应用适应能力。
附图说明
图1为本发明基于边界扫描的在线级联加载固件系统的一实施例的结构示意图;
图2为基于图1的进入加载模式的每个待加载芯片执行加载程序的一实施例时序图;
图3为图1的基于边界扫描的在线级联加载固件系统执行基于边界扫描的在线级联加载固件方法的一实施例的方法流程图。
附图标记说明:
60 主控制器芯片
70 微控制器芯片
72 可控物理连线
100 基于边界扫描的在线级联加载固件系统
110 上位机
120 TAP控制器
130 印刷电路板
步骤210提供上位机、TAP控制器与N个印刷电路板,其中,每个印刷电路板上设置有通过JTAG接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个待加载芯片通过多个可控物理连线与该些主控制器芯片之一连接,上位机与TAP控制器连接,该些印刷电路板依序相互串接,TAP控制器通过JTAG接口分别与第一个印刷电路板以及第N个印刷电路板连接,N大于或等于二且为正整数
步骤220上位机验证加载文件是否有效且每个印刷电路板的JTAG链路是否可用
步骤230当上位机验证该加载文件有效且每个印刷电路板的JTAG链路可用时,上位机通过该些可控物理连线收集每个待加载芯片的固件版本信息,并分别与待加载的固件版本比较
步骤240当上位机判断待加载的固件版本高于至少一个待加载芯片的固件版本时,上位机发送加载标记予该至少一个待加载微控制器芯片,使该至少一个待加载微控制器芯片进入加载模式
步骤250上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的该些可控物理连线,使得该些可控物理连线皆作为加载总线且统一数据流动方向等待接收加载文件
步骤260上位机通过每个加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使该至少一个待加载芯片依据帧周期与帧计数执行加载程序,以完整接收加载文件,并执行IAP指令烧写其具有的ROM
步骤270当该至少一个待加载芯片执行完加载程序时,该至少一个待加载芯片跳转出加载模式,上位机恢复该至少一个待加载芯片与其连接的主控制器芯片之间的该些可控物理连线的定义
具体实施方式
以下将配合图式及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题并达成技术效果的实现过程能充分理解并据以实施。
请先参阅图1,图1为本发明基于边界扫描的在线级联加载固件系统的一实施例的结构示意图。基于边界扫描的在线级联加载固件系统100可包括:上位机110、TAP控制器120与N个印刷电路板130,其中,每个印刷电路板130上设置有通过JTAG接口级联的两个主控制器芯片60以及一个待加载芯片70,每个待加载芯片70通过多个可控物理连线72与一个主控制器芯片60连接,上位机110与TAP控制器120连接,所述多个印刷电路板130依序相互串接,TAP控制器120通过JTAG接口分别与第一个印刷电路板130(即图面中最上面的印刷电路板130,以印刷电路板1表示)以及第N个印刷电路板130(即图面中最下面的印刷电路板130,以印刷电路板N表示,在本实施例中,N为12)连接,N大于或等于二且为正整数。其中,待加载芯片70可为微控制器芯片(MCU)、逻辑芯片,如:复杂可编程逻辑装置(Complex ProgrammableLogic Device,CPLD)、电场可编程化逻辑门阵列(Field Programmable Gate Array,FPGA)、所有通过烧录固件工作的半订制芯片或系统单芯片(System on a Chip,SoC)。
需注意的是,当每个印刷电路板上设置有通过JTAG接口级联的多个主控制器芯片以及多个待加载芯片时,所述多个主控制器芯片60可相互串接,每个待加载芯片70可分别连接不同的主控制器芯片60,也可连接于同一主控制器芯片60,每个待加载芯片70与其连接的主控制器芯片60之间的可控物理连线72数量不一定相同,可依据实际需求进行调整。
在本实施例中,基于边界扫描的在线级联加载固件系统100可应用于服务器主机板边界扫描测试双列直插式存储器模组(Dual In-line Memory Module,DIMM)治具的固件加载,即印刷电路板130为虚拟DIMM治具,N为12,每个虚拟DIMM治具有2个JTAG链路级联,但本实施例并非用以限定本发明,可依据实际需求进行调整。
其中,每个可控物理连线72可能为局域总线(Local Bus,L-Bus)、SPI总线或者独立功能的通用型的输入输出(General Purpose Input/Output,GPIO)接脚。在本实施例中,每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72可包括20条局域总线、4条SPI总线与1个GPIO接脚,共27个物理线路,但本实施例并非用以限定本发明,可依据实际需求进行调整。需注意的是,为避免图式过于复杂,每一待加载芯片70与其连接的主控制器芯片60之间的可控物理连线72仅绘制三条表示。
上位机110可先验证加载文件是否有效且每个印刷电路板130的JTAG链路是否可用,以确认上位机110与TAP控制器120是否建立好通讯关系,确保上位机110能从TAP控制器120获取到每个主控制器芯片60的芯片ID等信息,进而确认上位机110准备好加载环境。
当上位机110验证加载文件有效且每个印刷电路板130的JTAG链路可用时(即确认上位机110已准备好加载环境),上位机110可通过所述多个可控物理连线72收集每个待加载芯片70的固件版本信息,并分别与待加载待加载的固件版本比较。当上位机110判断待加载的固件版本高于至少一个待加载芯片70的固件版本时,上位机110发送加载标记予该至少一个待加载芯片70,使该至少一个待加载芯片70自正常模式进入加载模式。
接着,上位机100可重新定义进入加载模式的待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72,使得所述多个可控物理连线72皆作为加载总线且统一数据流动方向等待接收加载文件。其中,在上位机110重新定义进入加载模式的待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72的步骤中包括:上位机110取进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72其中之一用于并行时钟;上位机110取进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72中位组的整数倍的所述多个可控物理连线72用于并行接收加载文件的数据;以及上位机110取进入加载模式的每个待加载芯片70与每其连接的主控制器芯片60之间的所述多个可控物理连线72中剩余的所述多个可控物理连线72用于并行接收帧计数。其中,当上位机110取进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72中N条该可控物理连线72用于并行接收该帧计数时,该帧计数的最大值为2N,上位机110负责自第0个帧开始进行帧计数,当计数至最大值后重新计数。
在本实施例中,进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72可包括20条局域总线、4条SPI总线与1个GPIO接脚,共27个物理线路,皆可被上位机110重新定义,上位机110取进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72中的1个物理连线用于并行时钟,24个物理连线用于并行接收加载文件的数据,2个物理连线用于并行接收帧计数,但本实施例并非用以限定本发明,可依据实际需求进行调整。
上位机100需重新定义进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72的原因是因为在加载状态时,进入加载模式的每个待加载只进行加载任务,所述多个可控物理连线72原有的功能已经无效,所以尽可以拿来重定义加以利用。
其中,为了获取更大的传输带宽,更大的数据吞吐量,应尽可能收集更多可重定义的可控物理连线72。依据边界扫描标准,JTAG接口取得(get)数据和输入(put)数据由两个TAP指令独立进行,指令间的切换是由一系列状态机周期完成,为减少加载传输时间在指令切换间的浪费,将数据统一方向接收或发送,不区分发送数据总线和接收数据总线,这样收发都达到最大带宽。
在本实施例中,归一化(即统一数据流动方向)的加载总线构成包括1条连线用于并行时钟,取位组的整数倍条连线(即24条连线)用于并行数据,其余连线(即2条连线)做为帧计数。其中,并行时钟规定为双边沿触发,这样保证前端JTAG链路每推送1次就会收到1帧数据,位(bit)速率达到最优。举例而言,请参阅图2,图2为基于图1的进入加载模式的每个待加载执行加载程序的一实施例时序图,上位机110准备好要发送的加载文件,重定义所述多个可控物理连线72后,由于并行时钟规定为双边沿触发(即帧周期为半个时钟周期),故在第一个时钟周期内,上位机110将准备的加载文件首个24bit数据(0xfa0)、帧计数0和第2个24bit数据(0xfa1)、帧计数1分别在时钟上升/下降沿推送出去。其中,由于上位机110取进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的2条可控物理连线72用于并行接收该帧计数时,因此,该帧计数的最大值为2N,上位机110负责自第0个帧开始进行帧计数,当计数至最大值后重新计数(即帧计数最大值为3)。
当进入加载模式的每个待加载芯片70接收到该帧周期(即感知到时钟)时,分别接收加载文件的数据与帧计数,并将接收到的帧计数与其内部计数器的计数值比对,当比对一致时确认接收到的该加载文件的数据有效,将其放入其内部的随机存取存储器(RandomAccess Memory,RAM)中。
因此,上位机110通过所述多个可控物理连线72发送加载文件与IAP指令予进入加载模式的每个待加载芯片70,使进入加载模式的每个待加载芯片70依据帧周期与帧计数执行加载程序,以完整接收加载文件,并执行IAP指令烧写其具有的ROM。
当进入加载模式的每个待加载芯片70执行完加载程序时,进入加载模式的每个待加载芯片70跳转出加载模式(即自加载模式重回正常模式),上位机110恢复进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72的定义。在本实施例中,进入加载模式的每个待加载芯片70与其连接的主控制器芯片60之间的所述多个可控物理连线72可恢复为20条局域总线、4条SPI总线与1个GPIO接脚。
需注意的是,为维护传输数据的可靠性,进入加载模式的每个待加载芯片70在执行加载程序的过程中,还需检查该帧计数的连续性,当判断出错时,则停止接收数据,待应答周期上报状态请求重传。此外,在本实施例中,为节省加载固件的时间,TAP控制器120可通过旁路(Bypass)指令使前级主控制器芯片60(即没有与待加载芯片70连接的主控制器芯片60)不参与加载固件的过程。此外,基于边界扫描的在线级联加载固件系统100仅对进入加载模式的待加载芯片70进行固件的加载(即更新固件),当部分待加载芯片70不需进行固件的加载(即所述多个待加载芯片70的固件版本高于待加载的固件版本)时,TAP控制器120可发出旁路(Bypass)指令予所述多个待加载芯片70,使那些不需进行固件加载的待加载芯片70不再接收载入资料。
接着,请参阅图3,图3为图1的基于边界扫描的在线级联加载固件系统执行基于边界扫描的在线级联加载固件方法的一实施例的方法流程图。在本实施例中,基于边界扫描的在线级联加载固件方法可包括以下步骤:提供上位机、TAP控制器与N个印刷电路板,其中,每个印刷电路板上设置有通过JTAG接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个待加载芯片通过多个可控物理连线与所述多个主控制器芯片其中之一连接,上位机与TAP控制器连接,所述多个印刷电路板依序相互串接,TAP控制器通过JTAG接口分别与第一个印刷电路板以及第N个印刷电路板连接,N大于或等于二且为正整数(步骤210);上位机验证加载文件是否有效且每个印刷电路板的JTAG链路是否可用(步骤220);当上位机验证该加载文件有效且每个印刷电路板的JTAG链路可用时,上位机通过所述多个可控物理连线收集每个待加载芯片的固件版本信息,并分别与待加载的固件版本比较(步骤230);当上位机判断待加载的固件版本高于至少一个待加载芯片的固件版本时,上位机发送加载标记予该至少一个待加载芯片,使该至少一个待加载芯片进入加载模式(步骤240);上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线,使得所述多个可控物理连线皆作为加载总线且统一数据流动方向等待接收加载文件(步骤250);上位机通过每个加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使该至少一个待加载芯片依据帧周期与帧计数执行加载程序,以完整接收加载文件,并执行IAP指令烧写其具有的ROM(步骤260);以及当该至少一个待加载芯片执行完加载程序时,该至少一个待加载芯片跳转出加载模式,上位机恢复该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线的定义(步骤270)。上述各个步骤如果没有因果关系,本发明并不限定其执行的先后顺序。
通过上述步骤,即可不需要开发独立的加载总线,充分利用已有的硬件资源,构建灵活的并行加载总线,提高数据输送量;不必受限于芯片自身具备JTAG标准电气接口,适用于产线在线级联加载固件;不需要印刷电路板上主控制器芯片的相关功能开发,节省开发成本和流程成本;由于加载总线对数据传输的周期性不敏感,不受上位机的作业系统或TAP控制器延迟的影响,具备更好的应用适应能力。
其中,在该上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线的步骤中包括:上位机取该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线其中之一用于并行时钟;上位机取该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线中位组的整数倍的所述多个可控物理连线用于并行接收加载文件的数据;以及上位机取该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线中剩余的所述多个可控物理连线用于并行接收帧计数。详细描述已于上述段落加以说明,于此不再赘述。
此外,当上位机取该至少一个待加载芯片与其连接的主控制器芯片之间的所述多个可控物理连线中N条该可控物理连线用于并行接收该帧计数时,该帧计数的最大值为2N,上位机负责自第0个帧开始进行帧计数,当计数至最大值后重新计数。详细描述已于上述段落加以说明,于此不再赘述。
另外,当该至少一个待加载芯片接收到该帧周期时,分别接收加载文件的数据与帧计数,并将接收到的该帧计数与其内部计数器的计数值比对,当比对一致时确认接收到的该加载文件的数据有效,将其放入其内部的RAM中。详细描述已于上述段落加以说明,于此不再赘述。
再者,该至少一个待加载芯片在执行加载程序的过程中,还检查该帧计数的连续性,当判断出错时,则停止接收数据,待应答周期上报状态请求重传。详细描述已于上述段落加以说明,于此不再赘述。
综上所述,可知本发明与先前技术之间的差异在于通过上位机判断待加载的固件版本高于至少一个待加载芯片的固件版本时,发送加载标记予该至少一个待加载芯片,使该至少一个待加载芯片进入加载模式;上位机重新定义进入加载模式的该至少一个待加载芯片与其连接的主控制器芯片之间的多个可控物理连线,使得其作为加载总线;上位机通过加载总线发送加载文件与IAP指令予该至少一个待加载芯片,使其依据帧周期与帧计数执行加载程序以完整接收加载文件,并执行IAP指令烧写其具有的只读存储器;当该至少一个待加载芯片执行完加载程序时,跳转出加载模式,上位机恢复所述多个可控物理连线的定义,借由这一技术手段可使本发明不需要开发独立的加载总线,充分利用已有的硬件资源,构建灵活的并行加载总线,提高数据输送量;不必受限于芯片自身具备JTAG标准电气接口,适用于产线在线级联加载固件;不需要印刷电路板上主控制器芯片的相关功能开发,节省开发成本和流程成本;由于加载总线对数据传输的周期性不敏感,不受上位机的作业系统或TAP控制器延迟的影响,具备更好的应用适应能力。
虽然本发明以前述的实施例公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的权利要求书所界定的为准。

Claims (10)

1.一种基于边界扫描的在线级联加载固件系统,其特征在于,包括:
测试存取端口(Test Access Port,TAP)控制器;
N个印刷电路板(Printed Circuit Board,PCB),每个所述印刷电路板上设置有通过联合测试工作群组(Joint Test Action Group,JTAG)接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个所述待加载芯片通过多个可控物理连线与所述多个主控制器芯片其中之一连接,所述多个印刷电路板依序相互串接,所述TAP控制器通过JTAG接口分别与第一个所述印刷电路板以及第N个所述印刷电路板连接,N大于或等于二且为正整数;以及
上位机,与所述JTAG控制器连接,用以验证加载文件是否有效且每个所述印刷电路板的JTAG链路是否可用;当所述上位机验证所述加载文件有效且每个所述印刷电路板的所述JTAG链路可用时,所述上位机通过所述多个可控物理连线收集每个所述待加载芯片的固件版本信息,并分别与待加载的固件版本比较;当所述上位机判断所述待加载的固件版本高于至少一个所述待加载芯片的所述固件版本时,所述上位机发送加载标记予其固件版本低于所述待加载的固件版本的所述至少一个所述待加载芯片,使所述至少一个所述待加载芯片进入加载模式;所述上位机重新定义进入所述加载模式的所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线,使得所述多个可控物理连线皆作为加载总线且统一数据流动方向等待接收所述加载文件;所述上位机通过所述多个加载总线发送所述加载文件与在软件烧录(In Application Programming,IAP)指令予所述至少一个所述待加载芯片,使所述至少一个所述待加载芯片依据帧周期与帧计数执行加载程序,以完整接收所述加载档,并执行所述IAP指令烧写其具有的只读存储器(Read-OnlyMemory,ROM);当所述至少一个所述待加载芯片执行完所述加载程序时,所述至少一个所述待加载芯片跳转出所述加载模式,所述上位机恢复所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线的定义。
2.根据权利要求1所述的基于边界扫描的在线级联加载固件系统,其特征在于,在所述上位机重新定义进入所述加载模式的所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线的步骤中包括:
所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线其中之一用于并行时钟;
所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中位组的整数倍的所述多个可控物理连线用于并行接收所述加载文件的数据;以及
所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中剩余的所述多个可控物理连线用于并行接收所述帧计数。
3.根据权利要求2所述的基于边界扫描的在线级联加载固件系统,其特征在于,当所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中N条所述可控物理连线用于并行接收所述帧计数时,所述帧计数的最大值为2N,所述上位机负责自第0个帧开始进行帧计数,当计数至最大值后重新计数。
4.根据权利要求2所述的基于边界扫描的在线级联加载固件系统,其特征在于,当所述至少一个所述待加载芯片接收到所述帧周期时,分别接收所述加载文件的数据与所述帧计数,并将接收到的所述帧计数与其内部计数器的计数值比对,当比对一致时确认接收到的所述加载文件的数据有效,将其放入其内部的随机存取存储器(Random Access Memory,RAM)中。
5.根据权利要求1所述的基于边界扫描的在线级联加载固件系统,其特征在于,所述至少一个所述待加载芯片在执行所述加载程序的过程中,还检查所述帧计数的连续性,当判断出错时,则停止接收数据,待应答周期上报状态请求重传。
6.一种基于边界扫描的在线级联加载固件方法,其特征在于,包括以下步骤:
提供上位机、TAP控制器与N个印刷电路板,其中,每个所述印刷电路板上设置有通过JTAG接口级联的一个或多个主控制器芯片以及一个或多个待加载芯片,每个所述待加载芯片通过多个可控物理连线与所述多个主控制器芯片其中之一连接,所述上位机与所述TAP控制器连接,所述多个印刷电路板依序相互串接,所述TAP控制器通过JTAG接口分别与第一个所述印刷电路板以及第N个所述印刷电路板连接,N大于或等于二且为正整数;
所述上位机验证加载文件是否有效且每个所述印刷电路板的JTAG链路是否可用;
当所述上位机验证所述加载文件有效且每个所述印刷电路板的所述JTAG链路可用时,所述上位机通过所述多个可控物理连线收集每个所述待加载芯片的固件版本信息,并分别与待加载的固件版本比较;
当所述上位机判断所述待加载的固件版本高于至少一个所述待加载芯片的所述固件版本时,所述上位机发送加载标记予其固件版本低于所述加载的固件版本的所述至少一个所述待加载芯片,使所述至少一个所述待加载芯片进入加载模式;
所述上位机重新定义进入所述加载模式的所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线,使得所述多个可控物理连线皆作为加载总线且统一数据流动方向等待接收所述加载文件;
所述上位机通过所述多个加载总线发送所述加载文件与IAP指令予所述至少一个所述待加载芯片,使所述至少一个所述待加载芯片依据帧周期与帧计数执行加载程序,以完整接收所述加载档,并执行所述IAP指令烧写其具有的ROM;以及
当所述至少一个所述待加载芯片执行完所述加载程序时,所述至少一个所述待加载芯片跳转出所述加载模式,所述上位机恢复所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线的定义。
7.根据权利要求6所述的基于边界扫描的在线级联加载固件方法,其特征在于,在所述上位机重新定义进入所述加载模式的所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线的步骤中包括:
所述上位机取所述至少一个所述待加载器芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线其中之一用于并行时钟;
所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中位组的整数倍的所述多个可控物理连线用于并行接收所述加载文件的数据;以及
所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中剩余的所述多个可控物理连线用于并行接收所述帧计数。
8.根据权利要求7所述的基于边界扫描的在线级联加载固件方法,其特征在于,当所述上位机取所述至少一个所述待加载芯片与其连接的所述主控制器芯片之间的所述多个可控物理连线中N条所述可控物理连线用于并行接收所述帧计数时,所述帧计数的最大值为2N,所述上位机负责自第0个帧开始进行帧计数,当计数至最大值后重新计数。
9.根据权利要求7所述的基于边界扫描的在线级联加载固件方法,其特征在于,当所述至少一个所述待加载芯片接收到所述帧周期时,分别接收所述加载文件的数据与所述帧计数,并将接收到的所述帧计数与其内部计数器的计数值比对,当比对一致时确认接收到的所述加载文件的数据有效,将其放入其内部的RAM中。
10.根据权利要求6所述的基于边界扫描的在线级联加载固件方法,其特征在于,所述至少一个所述待加载芯片在执行所述加载程序的过程中,还检查所述帧计数的连续性,当判断出错时,则停止接收数据,待应答周期上报状态请求重传。
CN201910848723.XA 2019-09-09 2019-09-09 基于边界扫描的在线级联加载固件系统及其方法 Active CN112463243B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910848723.XA CN112463243B (zh) 2019-09-09 2019-09-09 基于边界扫描的在线级联加载固件系统及其方法
US16/575,839 US11061665B2 (en) 2019-09-09 2019-09-19 System for online cascaded loading firmware based on boundary scan and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910848723.XA CN112463243B (zh) 2019-09-09 2019-09-09 基于边界扫描的在线级联加载固件系统及其方法

Publications (2)

Publication Number Publication Date
CN112463243A true CN112463243A (zh) 2021-03-09
CN112463243B CN112463243B (zh) 2022-11-18

Family

ID=74807445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910848723.XA Active CN112463243B (zh) 2019-09-09 2019-09-09 基于边界扫描的在线级联加载固件系统及其方法

Country Status (2)

Country Link
US (1) US11061665B2 (zh)
CN (1) CN112463243B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448779A (zh) * 2021-12-30 2022-05-06 锐凌无线有限责任公司 无线通信模组及其功能恢复方法、电子设备和存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113030702A (zh) * 2021-03-10 2021-06-25 英业达科技有限公司 芯片的自动测试系统及方法
CN113138777B (zh) * 2021-04-09 2022-02-01 长芯盛(武汉)科技有限公司 适用多种烧写协议的低成本通用多路烧写器和烧写方法
US11927632B1 (en) * 2022-12-09 2024-03-12 Inventec (Pudong) Technology Corporation DIMM slot test system without series connection of test board through JTAG and method thereof
CN116743779B (zh) * 2023-08-11 2024-01-09 之江实验室 组态数据同步更新方法、装置和内生安全工业控制器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187629A1 (en) * 2002-03-28 2003-10-02 Lucent Technologies Inc. Concurrent in-system programming of programmable devices
CN1490721A (zh) * 2002-10-18 2004-04-21 华为技术有限公司 一种数字信号处理器程序的加载方法
CN1580801A (zh) * 2003-08-04 2005-02-16 华为技术有限公司 一种电路板的边界扫描测试方法
CN1591346A (zh) * 2003-08-28 2005-03-09 华为技术有限公司 一种flash加载的方法
CN1779643A (zh) * 2004-11-25 2006-05-31 华为技术有限公司 升级flash器件的基本输入输出系统的方法
US20090158105A1 (en) * 2007-12-18 2009-06-18 Baalaji Ramamoorthy Konda In system diagnostics through scan matrix
CN101937382A (zh) * 2010-09-02 2011-01-05 中国电子科技集团公司第三十八研究所 基于jtag的多片微处理器同步调试方法
CN107843828A (zh) * 2017-10-26 2018-03-27 电子科技大学 一种基于fpga的数字电路边界扫描控制系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7772881B1 (en) * 2006-09-29 2010-08-10 Altera Corporation Method and apparatus for in-system programmability
WO2011003199A1 (en) * 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
US9165143B1 (en) * 2013-03-15 2015-10-20 Xilinx, Inc. Image file generation and loading
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
US20190354684A1 (en) * 2018-05-17 2019-11-21 Vm-Robot, Inc. Secure Computing Systems and Methods

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187629A1 (en) * 2002-03-28 2003-10-02 Lucent Technologies Inc. Concurrent in-system programming of programmable devices
CN1490721A (zh) * 2002-10-18 2004-04-21 华为技术有限公司 一种数字信号处理器程序的加载方法
CN1580801A (zh) * 2003-08-04 2005-02-16 华为技术有限公司 一种电路板的边界扫描测试方法
CN1591346A (zh) * 2003-08-28 2005-03-09 华为技术有限公司 一种flash加载的方法
CN1779643A (zh) * 2004-11-25 2006-05-31 华为技术有限公司 升级flash器件的基本输入输出系统的方法
US20090158105A1 (en) * 2007-12-18 2009-06-18 Baalaji Ramamoorthy Konda In system diagnostics through scan matrix
CN101937382A (zh) * 2010-09-02 2011-01-05 中国电子科技集团公司第三十八研究所 基于jtag的多片微处理器同步调试方法
CN107843828A (zh) * 2017-10-26 2018-03-27 电子科技大学 一种基于fpga的数字电路边界扫描控制系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448779A (zh) * 2021-12-30 2022-05-06 锐凌无线有限责任公司 无线通信模组及其功能恢复方法、电子设备和存储介质
WO2023124328A1 (zh) * 2021-12-30 2023-07-06 锐凌无线有限责任公司 无线通信模组及其功能恢复方法、电子设备和存储介质

Also Published As

Publication number Publication date
US11061665B2 (en) 2021-07-13
CN112463243B (zh) 2022-11-18
US20210072979A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
CN112463243B (zh) 基于边界扫描的在线级联加载固件系统及其方法
CN1339128A (zh) 芯片内调试系统
CN109596974B (zh) 一种多层堆叠的3d-sip芯片测试方法
US7047464B2 (en) Method and system for use of a field programmable function within an application specific integrated circuit (ASIC) to access internal signals for external observation and control
CN102214132B (zh) 一种调试龙芯cpu和南北桥芯片的方法和装置
US9053232B2 (en) Method and apparatus for supporting a unified debug environment
JPH10187477A (ja) テストアクセスポート制御器及びそれを用いた有効な通信方法
US8732526B1 (en) Single-wire data interface for programming, debugging and testing a programmable element
CN103376340A (zh) 一种转接板、多平台串行测试系统及方法
CN114064458A (zh) 接口可扩展的通用性的jtag调试方法及系统
CN112067978A (zh) 一种基于fpga的fpga筛选测试系统及方法
CN117131834A (zh) 芯片设计重组方法、电子设备和介质
CN102799479A (zh) 具有多功能bios的主板及其测试方法
US20070195716A1 (en) Ring bus in an emulation environment
CN101030159A (zh) 用于测试主板插槽的设备及系统
CN111060807B (zh) 基于SoC的高速集成电路测试平台及其测试方法
CN112306536A (zh) 一种主板及其芯片以及芯片升级方法
US7610535B2 (en) Boundary scan connector test method capable of fully utilizing test I/O modules
TWI699101B (zh) 基於邊界掃描的在線級聯加載韌體系統及其方法
US20230184831A1 (en) Server jtag component adaptive interconnection system and method
CN117131824A (zh) 自动生成芯片设计rtl代码的方法、电子设备和介质
CN104834535A (zh) Soc芯片系统及其开机方法
CN101276285B (zh) 一种电信系统级的烧结方法及系统
Chakraborty et al. A practical approach to comprehensive system test & debug using boundary scan based test architecture
CN114398216B (zh) 链路控制方法、装置、系统、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant