一种微控制器单线编程调试接口装置以及调试方法与流程

文档序号:13532362阅读:220来源:国知局
一种微控制器单线编程调试接口装置以及调试方法与流程

本发明涉及调试接口以及软件调试领域,特别涉及一种微控制器单线编程调试接口装置以及调试方法。



背景技术:

jtag(jointtestactiongroup,联合测试工作组)接口技术,是一种国际标准测试协议(ieee1149.1兼容),主要用于芯片内部测试。其应用于微控制器的存储器的编程以及微控制器的调试较为广泛,jtag现在多数的高级器件都支持jtag协议,如dsp、fpga器件等。标准的jtag接口是4线:tms、tck、tdi、tdo,分别为模式选择、时钟、数据输入和数据输出线。jtag接口技术由于有专门的数据输入线和数据输出线,所以对数据的传输时效性和效率均比较的高,但其最主要的缺点在于:占用管脚比较多,在一些管脚资源比较紧张的微控制器使用是很浪费资源或者在开发者使用上带来一些不必要的麻烦。

芯片在进行二次开发的时候,为了更准确的使用芯片,常常需要对芯片运行状态进行实时查询,通过调试接口可准确了解到芯片内部运行情况,通过第三方平台进行可视化转换,快速查询芯片是否运行在开发者所期望的状态下运行,及时纠错,这样可以节省开发者的时间。现有技术中有一些解决方法,比如,中国专利申请cn200810016527.8一种芯片调试接口装置,包括:usb端口,用来连接信息处理设备;i2c端口,用来连接芯片;主处理装置,用来分别支持usb端口和i2c端口的数据传输,所述i2c端口、usb端口通过主处理装置互相控制;所述主处理装置包括第一通用控制接口,第二通用控制接口;所述i2c端口包括数据传送口,时钟控制口,所述第一通用控制接口连接数据传送口进行数据传送接收,所述第二通用控制接口连接时钟控制口进行时钟信息传送接收;所述usb端口包括差分信号接口,所述主处理装置还包括差分信号输出接口,所述差分信号接口连接差分信号输出接口,用来进行差分信号的传输和接收。虽然使用i2c端口进行连接芯片的优点在于时钟和数据分开,无需对时钟进行要求,均为调试器发起,缺点在于需要占用两个芯片管脚。又比如,中国专利申请cn201480013721.4单线编程及调试接口,其包括具有外部引脚的外壳及使用仅单一信号引脚的集成调试接口。在本申请中对接口的速度进行了严格的约定,要求使用固定的通信速率,在单线调试中为异步采样对目标芯片提出了较高的要求。另外该专利中明确需要mclr配合高压操作开启单线模式,故该装置在除了使用目标芯片vddvss单线接口还需提前使用一下mclr管脚,也并非严格的单线接口装置。

综上,有待提供一种使用管脚更加少,更加节省资源,通讯速率范围更宽且对通讯时钟无固定需求的单线编程调试接口装置。



技术实现要素:

本发明要解决的技术问题是,提供一种使用管脚更加少,更加节省资源的微控制器单线编程调试接口装置。

解决上述技术问题,本发明提供了一种微控制器单线编程调试接口装置,包括:控制芯片和目标芯片,所述控制芯片和所述目标芯片之间使用一个io管脚d_io用作调试。

更进一步,所述控制芯片通过uart通讯协议与目标芯片连接。

更进一步,所述目标芯片中电源管脚vdd,vss与所述控制芯片连接。

基于一种调试方法,使用所述的微控制器单线编程调试接口装置中,通过pc与控制芯片连接,具体包括如下的步骤:

上电,完成自检和初始化,

查询目标芯片,

配置目标芯片状态查询命令,

读取目标芯片数据,

上传可视化界面,监听新的查询命令,若无则完成。

更进一步,上述查询命令还包括:一同步命令帧,所述同步命令帧为标准uart协议,并按照如下要求进行配置:

将start配置为起始位,

将bit0配置为0,

将bit1配置为高电平,用以根据对低电平的时钟计数,得到start和/或bit0的通讯速率,

根据所述通讯速率正确识别出bit3~bit7的命令以及校验位。

更进一步,上述查询命令还包括:数据帧和/或回传数据帧,

所述数据帧和/或回传数据帧被配置在所述同步命令帧之后。

更进一步,方法还包括:多个格式帧,多个所述格式帧包括:

单数据写入帧:

{同步命令帧+数据帧}

单数据写入或读出帧:

{同步命令帧+数据帧+回传数据帧}

多数据写入或读出帧:

{同步命令帧+多个数据帧}。

更进一步,所述控制芯片包括但不限于,stm32系列芯片。

更进一步,通信协议的所述通讯速率范围为:1.2khz~1000khz。

更进一步,所述pc的运行环境为:windowsxp,windows7或者windows10。

本发明的有益效果:

本发明中的微控制器单线编程调试接口装置,由于包括:控制芯片和目标芯片,所述控制芯片和所述目标芯片之间使用一个io管脚d_io用作调试。通过用目标芯片的vdd,vss(通常指电路公共接地端电压gnd),d_io除电源管脚外,仅使用一个io管脚用作调试。此外,装置中还配置端口冲突检测机制,在受到异常干扰如出现外围调试器发送命令与目标芯片调试管脚发生冲突,检测管脚电平,则本装置会退出输出模式,避免冲突发生。

此外,本发明中的调试方法中,兼容标准的uart通讯协议,目标可自动适应通讯速率,通讯速率范围1.2khz~1000khz。与现有技术相比,本发明的方法使用管脚更少,更节省资源,且通讯速率范围更宽,管脚使用少,对通讯时钟无固定需求。

附图说明

图1是本发明一实施例中的微控制器单线编程调试接口装置的结构示意图;

图2是同步命令帧示意图;

图3是数据帧或者回传数据帧示意图;

图4是同步命令帧示意图;

图5是单数据写入示意图;

图6是单数据写入读出示意图;

图7是多数据写入或者读出示意图;

图8是本发明中的调试方法整体流程示意图;

图9是图8中对芯片运行状态进行实时查询的流程示意图。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以

图1是本发明一实施例中的微控制器单线编程调试接口装置的结构示意图,本实施例中的一种微控制器单线编程调试接口装置,包括:控制芯片和目标芯片,所述控制芯片和所述目标芯片之间使用一个io管脚d_io用作调试。在一些实施例中,所述控制芯片通过uart通讯协议与目标芯片连接。在一些实施例中,所述目标芯片中电源管脚vdd,vss与所述控制芯片连接。

如图1所示,调试环境中还包括pc1、下载调试控制机2、控制芯片21、目标芯片3、下载调试装置31,具体调试方式,请参考图8是本发明中的调试方法整体流程示意图,具体包括如下的步骤:

步骤s1上电,

步骤s2完成自检和初始化,

步骤s3查询目标芯片,

步骤s4配置目标芯片状态查询命令,重新配置不超过三次,

步骤s6读取目标芯片数据,

步骤s7上传可视化界面,

步骤s8监听新的查询命令,若无进入步骤s9一次运行完成。

上述查询命令无死循环,查询超出时间则进行重查询。

本实施例的调试方法中,兼容标准的uart通讯协议,目标可自动适应通讯速率,通讯速率范围1.2khz~1000khz。与现有技术相比,本发明的方法使用管脚更少,更节省资源,且通讯速率范围更宽,管脚使用少,对通讯时钟无固定需求。

请参考图2,上述查询命令还包括:一同步命令帧,所述同步命令帧为标准uart协议,并按照如下要求进行配置:

将start配置为起始位,

将bit0配置为0,

将bit1配置为高电平,用以根据对低电平的时钟计数,得到start和/或bit0的通讯速率,

根据所述通讯速率正确识别出bit3~bit7的命令以及校验位。

图3中为同步命令帧,为标准uart协议,要求start为其实位,常为低电平,bit0要求配置为0,bit1要求为高电平,这样通过对低电平的时钟计数,得出start和bit0的通讯速率,得到正确的通讯频率后,后续可正确识别出bit3~bit7的命令,以及校验位,这样命令可正确进行执行。因为每个同步命令帧均有同步机制,时钟变化也不会影响下一帧通讯。

请参考图2、图3,上述查询命令还包括:数据帧和/或回传数据帧,

所述数据帧和/或回传数据帧被配置在所述同步命令帧之后。

为数据帧和回传数据帧,要求该数据帧跟在同步命令帧后面,通讯速率由命令帧已经同步,故数据帧可准确通讯。

本实施例中的方法还包括:多个格式帧,多个所述格式帧包括:

单数据写入帧:

{同步命令帧+数据帧}

单数据写入或读出帧:

{同步命令帧+数据帧+回传数据帧}

多数据写入或读出帧:

{同步命令帧+多个数据帧}。

具体地,请参考图4~图6为常用帧格式,图4和图5通过同步命令帧bit2的高低进行区分,如果为低电平则执行图5,这样可进行一组数据的输入;如果bit2为高电平,则执行图6仅对一个数据写入和读出。

具体地,请参考图7:为多数字帧格式,该命令为特殊命令,第一个数据帧对后续数据写入或者读出的长度进行标示,最后跟一个8bit的crc校验帧,读出写入通过同步命令帧的bit2进行区分,bit2为低为写入,bit2为高则为读出。

作为本实施例中的优选,通信协议的所述通讯速率范围为:1.2khz~1000khz。

作为本实施例中的优选,所述pc的运行环境为:windowsxp,windows7或者windows10。

图9是图8中对芯片运行状态进行实时查询的流程示意图,方法具体包括:

步骤s100同步命令帧,检测通讯速率,

所述同步命令帧为标准uart协议,并按照如下要求进行配置:

将start配置为起始位,

将bit0配置为0,

将bit1配置为高电平,用以根据对低电平的时钟计数,得到start和/或bit0的通讯速率,

根据所述通讯速率正确识别出bit3~bit7的命令以及校验位。

步骤s101内部计数器,识别通讯速率,

通信协议的所述通讯速率范围为:1.2khz~1000khz。

步骤s102命令执行,仅部分命令帧直接执行命令,

步骤s103单数据帧,

步骤s104识别仅写入或者是写入读出,

步骤s105完成数据通讯,

单数据写入帧:{同步命令帧+数据帧},{同步命令帧}是指通过内部识别机制,只需要输入命令即可。{同步命令帧+数据帧+回传数据帧}则主要通过同步命令帧bit2的高低进行区分,如果为低电平则执行{同步命令帧+数据帧},这样可进行一组数据的输入;如果bit2为高电平,则执行{同步命令帧+数据帧+回传数据帧}仅对一个数据写入和读出。

步骤s106多数据帧,

步骤s107识别数据写入还是读出,

步骤s108识别数据长度,

步骤s109完成数据校验和通讯。

多数据写入或读出帧:

{同步命令帧+多个数据帧}

{同步命令帧+多个数据帧},为多数字帧格式,该命令为特殊命令,第一个数据帧对后续数据写入或者读出的长度进行标示,最后跟一个8bit的crc校验帧,读出写入通过同步命令帧的bit2进行区分,bit2为低为写入,bit2为高则为读出。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。

此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1