基于ISP的多处理器程序烧写及调试方法

(整期优先)网络出版时间:2023-07-26
/ 2

基于ISP的多处理器程序烧写及调试方法

张丽蓉,曹姣,刘欣,史贵林

北方自动控制技术研究所,山西太原  030006

摘要:针对密闭产品中多个嵌入式处理器进行程序烧写及调试时引线过多等问题,提供了一种使用6+n(n为产品内部需要调试的处理器个数)条线进行处理的解决方法。通过为多个串行接口引入仲裁机制,提高了ISP所占用的串行接口的使用效率。更进一步地,由于ISP采用了串行接口,还可实现通过无线方式对多处理器进行程序烧写及调试。

关键词:嵌入式;程序烧写;JTAG;ISP

引言

随着嵌入式处理器的性价比越来越高,其应用也越来越广泛。嵌入式处理器以其品类丰富、集成度高、运算速度快、厂商不断创新等特点,必将产生非常重要的影响。

当前,嵌入式处理器的程序烧写及调试主要是使用JTAG方式进行。JTAG主要用于产品开发初期,其特点是支持程序的在线烧写和在线调试,但在产品开发后期,嵌入式处理器被封闭于产品内部时,使用JTAG存在以下问题:

1)JTAG接口管脚较多,常用的有10线制、20线制接口,对产品外观及密闭性影响较大;

2)JTAG接口的抗干扰性较差,如将其接口线延长并外扩,需在产品内部引出较多的导线,此时JTAG信号易被干扰,且容易烧坏芯片;

3)1 个JTAG仅支持1个处理器,当产品采用多个处理器时,所需引线数亦成比例增加。

ISP方式接口简单,非常适用于产品中后期程序的烧写。ISP的使用需配合ISP状态管脚,并利用特定串行接口进行程序的烧写。然而,使用ISP也存在以下问题:

1)1个ISP接口仅支持1个处理器,如产品内部有多个处理器时,所需引线数亦成比例增加。

2)ISP所使用的串行接口利用率较低,尤其是当多个处理器被封闭于产品内部时,各处理器相应串行接口的功能被固化。

1 程序烧写实现

以NXP公司的LPC1788系列ARM处理器为例,如果需要通过ISP对处理器进行程序更新,则需执行以下步骤:

1)将芯片的UART0与计算机串口相连,并将ISP状态管脚接低电平;

2)重新给系统上电或复位系统;

3)使用ISP软件对处理器进行程序更新;

4)将ISP状态管脚接高电平,重新给系统上电或复位系统,则系统正常工作。

需要指出的是,处理器在ISP模式下,各功能管脚为高阻状态,无确定电平。

本文提供了一种方法,通过将ISP程序烧写常用的RS232驱动芯片更改为RS422/RS485芯片,从而实现利用封闭产品对外扩展的6+n(n为产品内部需要调试的处理器个数)条线对产品内部多个处理器进行程序烧写。其中,6+n的6是指RS422对外扩展的数据接收差分线、数据发送差分线、电源地、电源高电平管脚等,n指的是处理器个数为n,因为每个处理器都有1个ISP状态管脚。

单个处理器ISP程序烧写具体实现如图1所示。

图1  单个处理器ISP程序烧写实现图

图1中,RS422芯片与处理器系统有4条连线,分别为串行数据接收线RXD、串行数据发送线TXD、串行数据发送使能线TXD_EN、串行数据接收使能线RXD_EN。其中,RXD_EN为高电平有效,通过上拉电阻将其上拉到高电平。

上述4条线经RS422芯片成为4条线,分别为接收信号差分对和发送信号差分对。

处理器上电后,与处理器相连的RS422芯片发送数据使能管脚即TXD_EN被程序设置为输出且输出低电平。

采用ISP方式对多个处理器进行程序烧写的步骤为:

1)将处理器的ISP串行接口与计算机的串行接口通过RS422进行交叉连接,即将产品内部所有处理器端的串行接口的接收端接在一起后与计算机的串行接口的发送端相连,所有处理器端的串行接口的发送端接在一起后与计算机串行接口的接收端相连。

2)通过拨码开关或其他方式将程序烧写对象的处理器相应ISP状态管脚接电源地,其他接电源高电平;

3)重新给系统上电或复位系统;

4)利用计算机的ISP烧写程序对相应的处理器进行编程;

5)将相应ISP管脚接高电平,重新给系统上电或复位系统,则系统开始工作。

6)针对产品中其他的处理器,重复上述步骤,即可完成对产品多个处理器进行程序的烧写。

2 测试系统实现

针对处理器,如果ISP状态管脚接高电平,则处理器在上电后可正常工作,此时,ISP烧写程序的串口可当作正常串口使用。当使用多个处理器进行工作时,各处理器RS422的输入输出差分对接在一起,通过一定的协调机制,可使多个处理器分时进行数据的发送。可以采取有条件的使能各处理器中ISP所使用的RS422的数据发送使能管脚的策略,使得计算机可作为主站分时与产品内部各处理器进行数据通信,从而提高了ISP所占用串行接口的使用效率。

使用ISP串口进行数据传输的步骤为:

1)程序在上电瞬间,将ISP使用的RS422的数据发送使能管脚禁止;

2)当处理器通过此串口收到特定数据帧时,表示此时允许此处理器发送数据,则处理器将ISP使用的RS422的数据发送使能管脚使能,并将要发送的数据按照一定的帧格式发送出去;

3)数据按照约定的格式发送完成后,将ISP使用的RS422的数据发送使能管脚禁止。

上位机(即调试PC机)发送的数据格式为:

表1 上位机发送数据格式

下一帧发送数据的处理器ID号

广播数据

表1中,下一帧发送数据的处理器ID号是指在为每一个处理器编程时,都使用软件为其规定一个唯一的ID号,当处理器收到上位机发送的上述数据时,将此数据格式中包含的ID号与自身ID号作比较,若ID号相同,则接收该数据,否则不接收。

表1中,广播数据是指PC机发送给所有处理器的数据,此数据可被所有处理器接收。PC机可将此数据用作广播或与ID号相对应从而实现单播。

处理器在收到与自身ID对应的来自上位机的数据后,将自身的数据打包,数据格式为:

表2 处理器数据打包格式

自身ID

上报数据长度

数据

表2中,自身ID是指标识当前处理器的ID号,以便上位机作校验;上报数据长度是指将此帧中“数据”段的长度上报,从而方便上位机做出判断,如用户使用固定的数据长度,则此字段无意义。

上位机通过不断轮询相应处理器,从而获取相应处理器测试参数并对此参数进行处理,即可组成测试系统。

3 结束语

利用本文提供的方法,还可以通过无线的方式进行程序的远程烧写,在产品外扩的测试接口端和计算机串行接口端连接无线串口收发器,即可利用ISP软件进行程序的远程烧写及调试。

本文通过利用RS422发送数据使能管脚,用6+n条线实现对密闭产品中多个处理器程序的更新,并通过制订一定的协议使得ISP所用的串口作为程序测试接口,从而减少了产品后期程序更新所使用的外扩线,并提高了相应串行接口的使用效率,最终使得产品更加紧凑美观。同时,通过外接无线串口收发器,还可以利用无线的方式进行程序的调试,为调试一些机动性较强的产品提供了极大的便利。

参考文献

[1] 周立功,等.深入浅出Conex-M3—1700下册[z].广州:广州致远电子有限公司,2010.274—342.

[2] 魏霞.基于Cortex-A9的智能家居控制模块的设计与实现[D].西安,西安电子科技大学,2016.

[3] 龚智,赵翠,徐林杰,范月霞.基于LPC1788微处理器USB驱动和应用程序设计[J] .软件研发与应用,2017,23(1),13-15.

[4] 龙小民,王维.一种基于DSP的二次加载程序方法[J].数据采集与处理,2012,27:393-395.

[5] 高磊,孙成富.采集终端在线动态修改IP地址研究与应用[J],单片机与嵌入式系统应用,2018,18(5),10-12.

1