CN115033444B - 基于8051core在线调试电路控制装置 - Google Patents
基于8051core在线调试电路控制装置 Download PDFInfo
- Publication number
- CN115033444B CN115033444B CN202210958109.0A CN202210958109A CN115033444B CN 115033444 B CN115033444 B CN 115033444B CN 202210958109 A CN202210958109 A CN 202210958109A CN 115033444 B CN115033444 B CN 115033444B
- Authority
- CN
- China
- Prior art keywords
- serial port
- online debugging
- data
- command
- debugging
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
- G01R31/2886—Features relating to contacting the IC under test, e.g. probe heads; chucks
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31724—Test controller, e.g. BIST state machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0042—Universal serial bus [USB]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了基于8051core在线调试电路控制装置,涉及在线调试电路技术领域,本发明包括软件配套模块、在线调试模块以及数据处理模块;包括S1、串口主机获取用户点击事件S2、在线调试控制寄存器解析USB命令并执行;S3、单片机控制在线调试控制器对调试命令进行处理;S4、串口主机收到返回结果;S5、串口主机回到初始状态继续等待下一条用户事件五个步骤。本发明为基于8051core在线调试电路控制装置,使用软件工具对待测电路进行线上调试,从而实现在线调试的目标,减少了对接口的消耗,通过I2C协议可以仅使用时钟信号线/双向数据线两根线,减少数据传输过程中外界环境对其产生的干扰,提高了数据传输的稳定性,避免造成数据传输错误。
Description
技术领域
本发明涉及在线调试电路技术领域,特别涉及一种基于8051core在线调试电路控制装置。
背景技术
在线调试电路是指通过一些硬件电路和软件驱动配合,在MCU运行过程中实现对CPU的控制,包括单步运行,全速运行,断点设置,断点清除,程序下载,寄存器的读写等功能。
由于在线调试电路只应用于芯片的测试过程,而不包含任何芯片的基本功能,因此对于一颗芯片产品来说:在线调试电路消耗的硬件资源越少(GPIO个数),占用面积越小(门电路数目),功能越稳定(数据传输协议稳定性),传输速度越快,则该方案越优秀。
传统的方案使用JTAG(Joint Test Action Group)作为在线调试接口,Jtag接口至少需要四个GPIO口分别传输tck/tms/tdi/tdo 4个控制信号(普通JTAG协议一般至少还有一个trst信号,用来复位,只是有些用户把trst信号通过内部逻辑产生,或和芯片复位信号复用,所以我们前面提到至少4个控制信号,此处不包括trst信号。),对于接口的消耗比较大;其次,用户在测试时需要使用四条杜邦线连接,而连接线越多,越容易受到外界环境干扰,稳定性越差,容易造成数据传输错误,因此,有必要提供一种基于8051core在线调试电路控制装置。
发明内容
本发明的主要目的在于提供基于8051core在线调试电路控制装置,可以有效解决背景技术传统的方案使用JTAG(Joint Test Action Group)作为在线调试接口,Jtag接口至少需要四个GPIO口分别传输tck/tms/tdi/tdo 4个控制信号(普通JTAG协议一般至少还有一个trst信号,用来复位,只是有些用户把trst信号通过内部逻辑产生,或和芯片复位信号复用,所以我们前面提到至少4个控制信号,此处不包括trst信号。),对于接口的消耗比较大;其次,用户在测试时需要使用四条杜邦线连接,而连接线越多,越容易受到外界环境干扰,稳定性越差,容易造成数据传输错误的问题。
为实现上述目的,本发明采取的技术方案为:基于8051core在线调试电路控制装置,包括软件配套模块、在线调试模块以及数据处理模块,所述软件配套模块包括软件工具、驱动程序以及串口主机,所述软件工具与所述驱动程序以及所述串口主机通信连接,所述在线调试模块包括串口从机、在线调试调制寄存器、在线调试控制器以及存储器控制,所述串口从机与所述在线调试调制寄存器、所述在线调试控制器以及所述存储器控制通信连接,所述数据处理模块包括中央处理器以及内部存储,所述软件配套模块、所述在线调试模块以及所述数据处理模块之间均建立通信连接;
所述串口主机通过I2C总线调试命令,对待发送的一些命令的数据格式转换成串行数据,并发送到总线上,所述串口主机是带有I2C 主机功能的单片机或电路板,数据发送流程参考附图2的时序要求;
所述串口从机通过串口与所述串口主机相连接,所述串口从机用于接收主机的指令和数据,并回复状态或数据;
所述在线调试控制寄存器用于配置控制信号,比如模块的使能,断点地址,断点数目等;
所述在线调试控制器用于控制对CPU读取指令和读取数据的处理;
所述存储器控制单元用于协调在线调试控制器数据的存入和取出;
所述在线调试控制器和存储器控制单元与8051 CPU和内部存储相连接,共同控制CPU的指令和数据的读取,CPU的每一笔取指令和取数据控制信号会送到在线调试控制器和存储器控制单元,并代替原先CPU的地位将经过主机控制后的取指令和取数据控制信号送到内部存储单元,读取到对应的指令和数据,同时,在线调试控制器和存储器控制单元还会根据主机的控制,选择是否替换掉原先的指令和数据,将主机发出的指令和数据送往CPU进行执行,从而实现调试控制中的指令替换,存储数据修改等一系列功能;
所述基于8051core在线调试电路控制装置的控制方法包括以下步骤:
S1、首先串口主机获取用户点击信号,根据不同信号解析成相应的驱动命令并调用,串口主机通过其内部USB端将相应的驱动命令传输至在线调试控制器中带在线调试功能的开发板;
S2、其次带在线调试功能的开发板解析USB命令并执行调试命令相应的命令,转换成在线调试控制命令的数据包,在线调试控制器接收到命令后进行对应的操作,并通过I2C总线传输至单片机;
S3、然后单片机对调试命令进行处理,并将执行结果返回给串口主机;
S4、然后串口主机收到返回结果后进行处理并显示在相应的界面上;
S5、最后串口主机回到初始状态继续等待下一条用户事件,重复上述步骤。
优选地,所述串口主机将驱动程序安装至所述软件工具上,并通过所述软件工具对待测电路进行线上调试,实现在线调试的目标,其中驱动程序控制方法包括如下步骤:首先开始后串口主机通过软件工具获取用户点击事件;其次串口主机根据不同的事件、解析成相应的驱动命令;然后串口主机通过接口传输至PC端驱动层,对数据进行分析;然后通过USB驱动将软件工具端命令传输到在线调试控制寄存器;然后在线调试控制寄存器解析USB命令并执行调试命令相应的命令通过JTAG接口到MCU;然后等待在线调试控制寄存器处理完调试命令;然后执行完成后将执行结果返回给PC端的软件工具;然后PC端的软件工具收到返回结果后处理并显示在相应的界面上。具体驱动程序控制方法流程图参考附图11。
优选地,所述串口主机通过连接USB转I2C的电路板与串口从机相连接,所述串口从机主要输入信号有双向数据信号和时钟信号。
优选地,所述串口主机通过I2C总线调试命令时,所有配置全部针对数据缓冲寄存器。数据寄存器表如下:
当串口主机想要去配置某个数据寄存器时,可以按照图4的时序要求,在发送CMD的时候带上地址,然后再根据读或写需求分别进行不同的操作即可。
优选地,所述S2中的I2C总线传输包括以下步骤:
S21、串口主机配置数据缓冲寄存器的地址,参考上表,配置每个寄存器的DRaddress即可:如配置OCDSMEMREG寄存器,则配置地址为ID1;
S22、串口主机向数据缓冲寄存器写入数据值,参考上表,按照对每个寄存器的描述配置即可:如配置OCDSBPAS1寄存器,即可写入想设置断点的地址;
S23、串口主机回收数据缓冲寄存器的返回值,参考上表,按照每个寄存器的描述就知道返回数据,如读OCDSID寄存器,即可知道当前MCU的ID号信息。
优选地,所述S3中单片机控制在线调试控制器对调试命令进行处理包括以下步骤:
S31、开始时在线调制控制器进入空闲模式;
S32、判断在线调试控制器是否打开在线调试模式,打开在线调试模式跳转步骤S33,否则跳转步骤S31;
S33、通过在单片机中输入调试命令,串口主机中产生对应的I2C主机时序;
S34、内部I2C从机通过串口对串口主机中调试命令进行接收,并通过在线调试控制器电路自动解析指令后将执行结果返回给串口主机。
电路自动解析指令原理:内部状态机按照固有的通信方式跳转,在指令解码状态时,会获取到当前帧数据的传输指令,并放在对应的寄存器中。寄存器中每位都有其特定的功能,当传输指令更新后,在线调试电路会按照新的指令控制着接下来是进行读或写操作。例如,指令寄存器最高位用于使能在线调试电路(默认为0表示关闭),在接收到此位为1之前,调试功能不会开启。
优选地,所述S31中在线调制控制器进入空闲模式时,发出解码指令,并判断是单字节指令或者是多字节指令,如果是单字节指令,解码指令直接向单片微型计算机中读取单字节数据或向单片微型计算机中写单字节数据;如果发出解码指令是多字节指令,首先在指令解码中添加起始地址,然后发出指令解码向单片微型计算机中读取多字节数据或向单片微型计算机中写多字节数据。
优选地,所述串口主机通过USB转I2C电路板对软件工具进行操作,并通过驱动程序对命令进行捕获并将其转换成各种命令语句,通过I2C主机发送到I2C总线上,所述串口主机控制在线调试数据,并将命令转换成一帧一帧的数据,按照标准的串口通信主机时序协议,插入start位、stop位,标准的串口通信主机时序协议参考图2。
优选地,所述双向数据信号在所述时钟信号由高电平被拉低时会产生起始信号,所述双向数据信号在所述时钟信号由高电平被拉高时会产生结束信号。
与现有技术相比,本发明具有如下有益效果:
1、本发明基于8051core在线调试电路控制装置,通过I2C总线与串口从机相连接,串口主机安装配合本设计中给出的指令对应的驱动程式到软件工具上,使用软件对待测电路进行线上调试,从而实现在线调试的目标,减少了对接口的消耗;
2、通过用简单的双线I2C协议代替JTAG协议,实现在线调试的功能;JTAG协议在每个tck上升沿,通过tms 控制着TAP状态机的跳转,来控制主机操作对从机的读/写操作。当TAP状态机跳转到SHIFT_DR(通过TDI和TDO进行数据传输的状态)状态时,会通过移位寄存器,将输入数据移入,同时将输出数据移出;当TAP状态机跳转到SHIFT_IR状态时,会根据移位寄存器,将输入指令移入,同时将输出指令移出。按照上述的描述,至少需要到tck/tms/tdi/tdo;而I2C在数据交换过程中,仅需要双向数据线和时钟信号线,就可以完成主机对从机的读/写操作,双向数据线在时钟信号线高电平时拉低会产生起始信号,双向数据线在时钟信号线高电平时拉高会产生结束信号,通过JTAG协议和I2C协议的对比,可知,I2C协议可以仅使用时钟信号线/双向数据线两根线,完成JTAG协议的TMS/TDI/TDO/TCK(/TRST)至少四根线才能完成的数据传输任务,减少数据传输过程中外界环境对其产生的干扰,提高了数据传输的稳定性,避免造成数据传输错误。
附图说明
图1为本发明基于8051core在线调试电路控制装置的结构示意图;
图2为本发明基于8051core在线调试电路控制装置的I2C传输时序图;
图3为JTAG协议串行输入输出控制图;
图4为现有技术的I2C协议数据传输控制图与本发明I2C协议数据传输控制图;
图5为本发明状态机跳转控制图;
图6为本发明串口主机配置数据寄存器的地址控制流程图;
图7为本发明串口主机向数据寄存器写入数据值控制流程图;
图8为本发明串口主机回收数据寄存器的返回值控制流程图;
图9为本发明基于8051core在线调试电路控制装置的控制流程图;
图10为本发明基于8051core在线调试电路控制装置I2C总线传输流程图;
图11为本发明基于8051core在线调试电路控制装置的在线调试控制器控制流程图;
图12为本发明基于8051core在线调试电路控制装置驱动程序控制方法流程图;
图13为本发明基于8051core在线调试电路控制装置图12中A处放大图;
图14为本发明基于8051core在线调试电路控制装置图12中B处放大图;
图15为本发明基于8051core在线调试电路控制装置图12中C处放大图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
在本发明的描述中,需要说明的是,术语“上”、“下”、“内”、“外”“前端”、“后端”、“两端”、“一端”、“另一端”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,本说明书中的某些图式是用于例示方法的流程图。应了解,这些流程图中的每一个方块及这些流程图中方块的组合可通过计算机程序指令来实施。这些计算机程序指令可加载至计算机或其他可编程的设备上来形成机器,以使在所述计算机或其他可编程设备上执行的指令形成用于实施在所述流程图方块中所规定功能的结构。这些计算机程序指令也可储存于计算机可读存储器中,所述计算机可读存储器可指令计算机或其他可编程设备以特定方式工作,以使储存于所述计算机可读存储器中的指令形成包含用于实施在所述流程图方块中所规定功能的指令结构的制品。所述计算机程序指令也可加载至计算机或其他可编程设备上,以便在所述计算机或其他可编程设备上执行一系列操作步骤来形成由计算机实施的过程,从而使在所述计算机或其他可编程设备上执行的指令提供用于实施在所述流程图方块中所规定功能的步骤。
相应地,各流程图中的方块支持用于执行所规定功能的结构的组合及用于执行所规定功能的步骤的组合。还应了解,所述流程图中的每一个方块及所述流程图中方块的组合可由执行所规定功能或步骤的基于专用硬件的计算机系统,或者专用硬件与计算机指令的组合来实施。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例
本发明采取的技术方案为:基于8051core在线调试电路控制装置,包括软件配套模块、在线调试模块以及数据处理模块,软件配套模块包括软件工具、驱动程序以及串口主机,软件工具与驱动程序以及串口主机通信连接,在线调试模块包括串口从机、在线调试调制寄存器、在线调试控制器以及存储器控制,串口从机与在线调试调制寄存器、在线调试控制器以及存储器控制通信连接,数据处理模块包括中央处理器以及内部存储,软件配套模块、在线调试模块以及数据处理模块之间均建立通信连接;
串口主机通过I2C总线调试命令,对待发送的一些命令的数据格式转换成串行数据,并发送到总线上,串口主机是带有I2C 主机功能的单片机或电路板,数据发送流程参考附图2的时序要求;
串口从机通过串口与串口主机相连接,串口从机用于接收主机的指令和数据,并回复状态或数据;
在线调试控制寄存器用于配置控制信号,比如模块的使能,断点地址,断点数目等;
在线调试控制器用于控制对CPU读取指令和读取数据的处理;
存储器控制单元用于协调在线调试控制器数据的存入和取出;
在线调试控制器和存储器控制单元与8051 CPU和内部存储相连接,共同控制CPU的指令和数据的读取,CPU的每一笔取指令和取数据控制信号会送到在线调试控制器和存储器控制单元,并代替原先CPU的地位将经过主机控制后的取指令和取数据控制信号送到内部存储单元,读取到对应的指令和数据,同时,在线调试控制器和存储器控制单元还会根据主机的控制,选择是否替换掉原先的指令和数据,将主机发出的指令和数据送往CPU进行执行,从而实现调试控制中的指令替换,存储数据修改等一系列功能。
基于8051core在线调试电路控制装置的控制方法包括以下步骤:
S1、首先串口主机获取用户点击信号,根据不同信号解析成相应的驱动命令并调用,串口主机通过其内部USB端将相应的驱动命令传输至在线调试控制器中带在线调试功能的开发板;
S2、其次带在线调试功能的开发板解析USB命令并执行调试命令相应的命令,转换成在线调试控制命令的数据包,在线调试控制器接收到命令后进行对应的操作,并通过I2C总线传输至单片机;
S3、然后单片机对调试命令进行处理,并将执行结果返回给串口主机;
S4、然后串口主机收到返回结果后进行处理并显示在相应的界面上;
S5、最后串口主机回到初始状态继续等待下一条用户事件,重复上述步骤。
串口主机将驱动程序安装至软件工具上,并通过软件工具对待测电路进行线上调试,实现在线调试的目标,其中驱动程序控制方法包括如下步骤:首先开始后串口主机通过软件工具获取用户点击事件;其次串口主机根据不同的事件、解析成相应的驱动命令;然后串口主机通过接口传输至PC端驱动层,对数据进行分析;然后通过USB驱动将软件工具端命令传输到在线调试控制寄存器;然后在线调试控制寄存器解析USB命令并执行调试命令相应的命令通过JTAG接口到MCU;然后等待在线调试控制寄存器处理完调试命令;然后执行完成后将执行结果返回给PC端的软件工具;然后PC端的软件工具收到返回结果后处理并显示在相应的界面上。具体驱动程序控制方法流程图参考附图11。
串口主机通过连接USB转I2C的电路板与串口从机相连接,串口从机主要输入信号有双向数据信号和时钟信号。
串口主机通过I2C总线调试命令时,所有配置全部针对数据缓冲寄存器。数据寄存器表如下:
Register | DR address | length | Read/write | description |
OCDSMEMREG | Id0 | 8 | RW | 当主机需要从存储器读取数据的时候,OCDS会将准备好的数据存放在此寄存器中 |
OCDSID | Id1 | 32 | RO | 芯片的标识信息 |
OCDSCTRL | Id2 | 11 | RS/W | 包括各个模块控制使能,单步调试等 |
OCDSACC | Id3 | 8 | RO | 可读当前加法器值 |
OCDSPC | Id4 | 16 | RO | 可读当前指针值 |
OCDSINSTR | Id5 | 24 | RW | 当主机需要进行指令替换时,待替换指令放在此寄存器中 |
OCDSMC | Id6 | 8 | RW | 控制对存储器的读/写操作 |
OCDSBPAS1 | Id7 | 23 | RW | 断点1起始地址 |
OCDSBPAE1 | Id8 | 23 | RW | 断点1结束地址 |
OCDSBPC1 | Id9 | 8 | RW | 断点1控制,包括是否使能该断点 |
OCDSBPAS2 | id10 | 23 | RW | 断点2起始地址 |
OCDSBPAE2 | Id11 | 23 | RW | 断点2结束地址 |
OCDSBPC2 | Id12 | 8 | RW | 断点2控制,包括是否使能该断点 |
OCDSBPAS3 | Id13 | 23 | RW | 断点3起始地址 |
OCDSBPAE3 | Id14 | 23 | RW | 断点3结束地址 |
OCDSBPC3 | Id15 | 8 | RW | 断点3控制,包括是否使能该断点 |
OCDSBPAS3 | Id16 | 23 | RW | 断点4起始地址 |
OCDSBPAE4 | Id17 | 23 | RW | 断点4结束地址 |
OCDSBPC4 | Id18 | 8 | RW | 断点4控制,包括是否使能该断点 |
当串口主机想要去配置某个数据寄存器时,可以按照图4的时序要求,在发送CMD的时候带上地址,然后再根据读或写需求分别进行不同的操作即可。
S2中的I2C总线传输包括以下步骤:
S21、串口主机配置数据缓冲寄存器的地址,参考上表,配置每个寄存器的DRaddress即可:如配置OCDSMEMREG寄存器,则配置地址为ID1;
S22、串口主机向数据缓冲寄存器写入数据值,参考上表,按照对每个寄存器的描述配置即可:如配置OCDSBPAS1寄存器,即可写入想设置断点的地址;
S23、串口主机回收数据缓冲寄存器的返回值,参考上表,按照每个寄存器的描述就知道返回数据,如读OCDSID寄存器,即可知道当前MCU的ID号信息。
S3中单片机控制在线调试控制器对调试命令进行处理包括以下步骤:
S31、开始时在线调制控制器进入空闲模式;
S32、判断在线调试控制器是否打开在线调试模式,打开在线调试模式跳转步骤S33,否则跳转步骤S31;
S33、通过在单片机中输入调试命令,串口主机中产生对应的I2C主机时序;
S34、内部I2C从机通过串口对串口主机中调试命令进行接收,并通过在线调试控制器电路自动解析指令后将执行结果返回给串口主机。
电路自动解析指令原理:内部状态机按照固有的通信方式跳转,在指令解码状态时,会获取到当前帧数据的传输指令,并放在对应的寄存器中。寄存器中每位都有其特定的功能,当传输指令更新后,在线调试电路会按照新的指令控制着接下来是进行读或写操作。例如,指令寄存器最高位用于使能在线调试电路(默认为0表示关闭),在接收到此位为1之前,调试功能不会开启。
S31中在线调制控制器进入空闲模式时,发出解码指令,并判断是单字节指令或者是多字节指令,如果是单字节指令,解码指令直接向单片微型计算机中读取单字节数据或向单片微型计算机中写单字节数据;如果发出解码指令是多字节指令,首先在指令解码中添加起始地址,然后发出指令解码向单片微型计算机中读取多字节数据或向单片微型计算机中写多字节数据。
串口主机通过USB转I2C电路板对软件工具进行操作,并通过驱动程序对命令进行捕获并将其转换成各种命令语句,通过I2C主机发送到I2C总线上,串口主机控制在线调试数据,并将命令转换成一帧一帧的数据,按照标准的串口通信主机时序协议,插入start位、stop位,标准的串口通信主机时序协议参考图2。
双向数据信号在时钟信号由高电平被拉低时会产生起始信号,双向数据信号在时钟信号由高电平被拉高时会产生结束信号。
本发明基于8051core在线调试电路控制装置,通过I2C总线与串口从机相连接,串口主机安装配合本设计中给出的指令对应的驱动程式到软件工具上,使用软件工具对待测电路进行线上调试,从而实现在线调试的目标,减少了对接口的消耗。本流程使用基于图7的配套解码器,图7是基于图5状态机的一个写流程,根据图5,当状态机在空闲状态下时,会接收到主机发送的调试命令(见下面注释),解析命令后发现WR命令拉起,主机想进行写操作。那么从机就会根据DR ADDRESS来选定对应的寄存器,并且将下面即将接收的数据存放到该寄存器中,从而完成写数据的过程;
注:本发明调试命令格式如下:
START | DR ADDRESS | DATA(WR) | DATA | Stop |
调试工作过程如下:
1、PC端连接一个USB转I2C的电路板,然后再将I2C连接到使用本电路结构的芯片中;
2、安装配合本设计中给出的指令对应的驱动程式到软件工具上;
3、正常使用软件工具对待测电路进行线上调试。
对于多字节的读写,按照上面的状态机,只需在中间插入一段写起始地址,再回到空闲状态即可;
通过用简单的双线I2C协议代替JTAG协议,实现在线调试的功能;JTAG协议在每个tck上升沿,通过tms 控制着TAP状态机的跳转,来控制主机操作对从机的读/写操作。当TAP状态机跳转到SHIFT_DR(通过TDI和TDO进行数据传输的状态)状态时,会通过移位寄存器,将输入数据移入,同时将输出数据移出;当TAP状态机跳转到SHIFT_IR状态时,会根据移位寄存器,将输入指令移入,同时将输出指令移出。按照上述的描述,至少需要到tck/tms/tdi/tdo;而I2C在数据交换过程中,仅需要双向数据线和时钟信号线,就可以完成主机对从机的读/写操作,双向数据线在时钟信号线高电平时拉低会产生起始信号,双向数据线在时钟信号线高电平时拉高会产生结束信号,通过JTAG协议和I2C协议的对比,可知,I2C协议可以仅使用时钟信号线/双向数据线两根线,完成JTAG协议的TMS/TDI/TDO/TCK(/TRST)至少四根线才能完成的数据传输任务,减少数据传输过程中外界环境对其产生的干扰,提高了数据传输的稳定性,避免造成数据传输错误。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (9)
1.基于8051core在线调试电路控制装置,其特征在于:包括软件配套模块、在线调试模块以及数据处理模块,所述软件配套模块包括软件工具、驱动程序以及串口主机,所述软件工具与所述驱动程序以及所述串口主机通信连接,所述在线调试模块包括串口从机、在线调试调制寄存器、在线调试控制器以及存储器控制,所述串口从机与所述在线调试调制寄存器、所述在线调试控制器以及所述存储器控制通信连接,所述数据处理模块包括中央处理器以及内部存储,所述软件配套模块、所述在线调试模块以及所述数据处理模块之间均建立通信连接;
所述串口主机通过I2C总线调试命令,对待发送的一些命令的数据格式转换成串行数据,并发送到总线上;
所述串口从机通过串口与所述串口主机相连接,所述串口从机用于接收主机的指令和数据,并回复状态或数据;
所述在线调试控制寄存器用于配置控制信号;
所述在线调试控制器用于控制对CPU读取指令和读取数据的处理;
所述存储器控制单元用于协调在线调试控制器数据的存入和取出;
所述在线调试控制器和存储器控制单元与8051 CPU和内部存储相连接,共同控制CPU的指令和数据的读取;
所述基于8051core在线调试电路控制装置的控制方法包括以下步骤:
S1、首先串口主机获取用户点击信号,根据不同信号解析成相应的驱动命令并调用,串口主机通过其内部USB端将相应的驱动命令传输至在线调试控制器中带在线调试功能的开发板;
S2、其次带在线调试功能的开发板解析USB命令并执行调试命令相应的命令,转换成在线调试控制命令的数据包,在线调试控制器接收到命令后进行对应的操作,并通过I2C总线传输至单片机;
S3、然后单片机对调试命令进行处理,并将执行结果返回给串口主机;
S4、然后串口主机收到返回结果后进行处理并显示在相应的界面上;
S5、最后串口主机回到初始状态继续等待下一条用户事件,重复上述步骤。
2.根据权利要求1所述的基于8051core在线调试电路控制装置,其特征在于:所述串口主机将驱动程序安装至所述软件工具上,并通过所述软件工具对待测电路进行线上调试。
3.根据权利要求2所述的基于8051core在线调试电路控制装置,其特征在于:所述串口主机通过连接USB转I2C的电路板与串口从机相连接,所述串口从机主要输入信号有双向数据信号和时钟信号。
4.根据权利要求3所述的基于8051core在线调试电路控制装置,其特征在于:所述串口主机通过I2C总线调试命令时,所有配置全部针对数据缓冲寄存器。
5.根据权利要求4所述的基于8051core在线调试电路控制装置,其特征在于:所述S2中的I2C总线传输包括以下步骤:
S21、串口主机配置数据缓冲寄存器的地址;
S22、串口主机向数据缓冲寄存器写入数据值;
S23、串口主机回收数据缓冲寄存器的返回值。
6.根据权利要求5所述的基于8051core在线调试电路控制装置,其特征在于:所述S3中单片机控制在线调试控制器对调试命令进行处理包括以下步骤:
S31、开始时在线调制控制器进入空闲模式;
S32、判断在线调试控制器是否打开在线调试模式,打开在线调试模式跳转步骤S33,否则跳转步骤S31;
S33、通过在单片机中输入调试命令,串口主机中产生对应的I2C主机时序;
S34、内部I2C从机通过串口对串口主机中调试命令进行接收,并通过在线调试控制器电路自动解析指令后将执行结果返回给串口主机。
7.根据权利要求6所述的基于8051core在线调试电路控制装置,其特征在于:所述S31中在线调制控制器进入空闲模式时,发出解码指令,并判断是单字节指令或者是多字节指令,如果是单字节指令,解码指令直接向单片微型计算机中读取单字节数据或向单片微型计算机中写单字节数据;如果发出解码指令是多字节指令,首先在指令解码中添加起始地址,然后发出指令解码向单片微型计算机中读取多字节数据或向单片微型计算机中写多字节数据。
8.根据权利要求7所述的基于8051core在线调试电路控制装置,其特征在于:所述串口主机通过USB转I2C电路板对软件工具进行操作,并通过驱动程序对命令进行捕获并将其转换成各种命令语句,通过I2C主机发送到I2C总线上,所述串口主机控制在线调试数据,并将命令转换成一帧一帧的数据,按照标准的串口通信主机时序协议,插入start位、stop位。
9.根据权利要求3所述的基于8051core在线调试电路控制装置,其特征在于:所述双向数据信号在所述时钟信号由高电平被拉低时会产生起始信号,所述双向数据信号在所述时钟信号由高电平被拉高时会产生结束信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958109.0A CN115033444B (zh) | 2022-08-10 | 2022-08-10 | 基于8051core在线调试电路控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958109.0A CN115033444B (zh) | 2022-08-10 | 2022-08-10 | 基于8051core在线调试电路控制装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033444A CN115033444A (zh) | 2022-09-09 |
CN115033444B true CN115033444B (zh) | 2022-11-15 |
Family
ID=83130861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210958109.0A Active CN115033444B (zh) | 2022-08-10 | 2022-08-10 | 基于8051core在线调试电路控制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033444B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860656A (zh) * | 2023-08-30 | 2023-10-10 | 深圳市瑞之辰科技有限公司 | 基于KeilC的MCU调试方法及系统 |
CN117014919A (zh) * | 2023-10-07 | 2023-11-07 | 成都天成电科科技有限公司 | 一种无线通信调试电路及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042815A (zh) * | 2007-01-19 | 2007-09-26 | 华南理工大学 | 基于在线可编程逻辑器件的单片机教学实验装置 |
CN103440216A (zh) * | 2013-08-22 | 2013-12-11 | 深圳市汇顶科技股份有限公司 | 一种通过i2c从设备调试mcu的芯片及方法 |
CN104407956A (zh) * | 2014-12-03 | 2015-03-11 | 天津大学 | 通过串口调试的iic总线实验装置 |
CN204215266U (zh) * | 2014-12-05 | 2015-03-18 | 国家电网公司 | 用于远程调试系统的远程调试器 |
CN204270290U (zh) * | 2014-12-03 | 2015-04-15 | 天津大学 | 通过串口调试的iic总线实验装置 |
CN105091817A (zh) * | 2014-05-21 | 2015-11-25 | 空中客车集团有限公司 | 用于处理局部信息的方法 |
CN205862322U (zh) * | 2016-06-21 | 2017-01-04 | 浪潮集团有限公司 | 一种基于fpga的spi/i2c接口转换器 |
CN107577635A (zh) * | 2017-08-29 | 2018-01-12 | 西安微电子技术研究所 | 一种兼容ahb协议的非握手式jtag调试链路及其调试方法 |
CN109189619A (zh) * | 2018-08-13 | 2019-01-11 | 光梓信息科技(上海)有限公司 | I2c总线兼容性测试方法、系统、存储介质及设备 |
CN109582571A (zh) * | 2018-11-16 | 2019-04-05 | 深圳和而泰小家电智能科技有限公司 | 在线调试方法、装置、调试从机、调试主机和系统 |
CN112631851A (zh) * | 2021-01-08 | 2021-04-09 | 北京集睿致远科技有限公司 | 一种芯片调试代理装置及芯片调试方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754436A (en) * | 1994-12-22 | 1998-05-19 | Texas Instruments Incorporated | Adaptive power management processes, circuits and systems |
CN1770883A (zh) * | 2005-09-16 | 2006-05-10 | 深圳创维-Rgb电子有限公司 | 一种实现对i2c器件特性参数进行调试的方法及装置 |
KR101641108B1 (ko) * | 2010-04-30 | 2016-07-20 | 삼성전자주식회사 | 디버깅 기능을 지원하는 타겟 장치 및 그것을 포함하는 테스트 시스템 |
US9836372B1 (en) * | 2014-02-14 | 2017-12-05 | Maxim Integrated Products, Inc. | Device verification system with firmware universal verification component |
CN104239175B (zh) * | 2014-09-05 | 2016-08-24 | 硅谷数模半导体(北京)有限公司 | 芯片的调试系统、调试方法和调试装置 |
CN104834619B (zh) * | 2015-04-29 | 2018-12-18 | 北京小鸟看看科技有限公司 | 一种i2c总线电路、实现方法以及电子设备 |
US10078568B1 (en) * | 2015-11-30 | 2018-09-18 | Amazon Technologies, Inc. | Debugging a computing device |
CN112100016B (zh) * | 2020-07-27 | 2023-07-14 | 珠海亿智电子科技有限公司 | 一种系统异常场景下的soc诊断方法及系统 |
CN114816448A (zh) * | 2022-03-17 | 2022-07-29 | 广州市星翼电子科技有限公司 | 一种多功能脱机下载器 |
-
2022
- 2022-08-10 CN CN202210958109.0A patent/CN115033444B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042815A (zh) * | 2007-01-19 | 2007-09-26 | 华南理工大学 | 基于在线可编程逻辑器件的单片机教学实验装置 |
CN103440216A (zh) * | 2013-08-22 | 2013-12-11 | 深圳市汇顶科技股份有限公司 | 一种通过i2c从设备调试mcu的芯片及方法 |
CN105091817A (zh) * | 2014-05-21 | 2015-11-25 | 空中客车集团有限公司 | 用于处理局部信息的方法 |
CN104407956A (zh) * | 2014-12-03 | 2015-03-11 | 天津大学 | 通过串口调试的iic总线实验装置 |
CN204270290U (zh) * | 2014-12-03 | 2015-04-15 | 天津大学 | 通过串口调试的iic总线实验装置 |
CN204215266U (zh) * | 2014-12-05 | 2015-03-18 | 国家电网公司 | 用于远程调试系统的远程调试器 |
CN205862322U (zh) * | 2016-06-21 | 2017-01-04 | 浪潮集团有限公司 | 一种基于fpga的spi/i2c接口转换器 |
CN107577635A (zh) * | 2017-08-29 | 2018-01-12 | 西安微电子技术研究所 | 一种兼容ahb协议的非握手式jtag调试链路及其调试方法 |
CN109189619A (zh) * | 2018-08-13 | 2019-01-11 | 光梓信息科技(上海)有限公司 | I2c总线兼容性测试方法、系统、存储介质及设备 |
CN109582571A (zh) * | 2018-11-16 | 2019-04-05 | 深圳和而泰小家电智能科技有限公司 | 在线调试方法、装置、调试从机、调试主机和系统 |
CN112631851A (zh) * | 2021-01-08 | 2021-04-09 | 北京集睿致远科技有限公司 | 一种芯片调试代理装置及芯片调试方法 |
Non-Patent Citations (2)
Title |
---|
Ramtron推出USB接口的Versa 8051 MCU开发套件;《电子与电脑》;20070308(第03期);全文 * |
基于Proteus的单片机仿真设计;吴凌燕;《仪表技术》;20110715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115033444A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115033444B (zh) | 基于8051core在线调试电路控制装置 | |
CN107907814B (zh) | 一种提高芯片量产测试效率的方法 | |
CN111897749A (zh) | 基于Quad-SPI控制器与外扩FLASH通信控制系统及方法 | |
CN112564882B (zh) | 一种基于ahb总线的单线数字通讯接口 | |
JPH11282720A (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
CN113849433B (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
JP2006500679A (ja) | Usb接続のためのインタフェース集積回路デバイス | |
CN109669729A (zh) | 一种处理器的启动引导方法 | |
CN102122156B (zh) | 一种新型i/o总线 | |
CN116450552B (zh) | 基于i2c总线异步批量读写寄存器的方法及系统 | |
JP2008521080A5 (zh) | ||
CN107526614B (zh) | Fpga开发板的通信方法 | |
JP2008521080A (ja) | マルチメディア・カード・インターフェース方法、コンピュータ・プログラム及び装置 | |
US8015448B2 (en) | System and method for conducting BIST operations | |
WO2016184170A1 (zh) | Smi接口器件的调试装置及方法、存储介质 | |
CN113824741A (zh) | 一种iic设备的通信方法、装置、设备、系统及介质 | |
CN111597137B (zh) | 一种基于spi协议的动态调试方法、装置及系统 | |
CN113722261A (zh) | Spi扩展片选数目和增强读写响应时间灵活性的方法 | |
CN110737552B (zh) | 一种基于fpga的sfc接口测试设备与方法 | |
CN102193860A (zh) | 微控制器在线调试电路及方法、微控制器 | |
CN107704417A (zh) | 与被测设备通信的方法及其通信系统 | |
CN101354634B (zh) | Ata端口接多路sata端口存储设备系统及控制方法 | |
CN114660383A (zh) | 一种通用载荷管理器地检测试板卡 | |
CN107436776A (zh) | 烧录系统及烧录方法 | |
CN113326220A (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 |