本发明涉及单片机在线编程,尤其涉及一种基于单片机调试和isp在线编程的多功能仿真器及编程方法。
背景技术:
1、单片机mcu(microcontroller unit)的在线编程isp(in system program)就是使用者不需要将单片机从装配的印刷电路板pcba(printed circuit board assembly)上取下,放在特定的烧录器进行程序的烧录;它可以直接由编程器pgm(programmer)经单片机的通信端口,在印刷电路板上完成。单片机的通信端口通常为通用异步收发器串口uart(universal asynchronous receiver/transmitter)。
2、单片机的型号多种多样,部分型号的单片机,因应用需求,其设计的编程方式较为特殊——既可以通过通信端口(uart)编程又支持单线(tool0)模式编程,并且该类单片机上电时需要指定引脚输入特定时序才能进入boot模式,实现isp在线编程。因此通过普通串口设备,不能进行isp在线编程。
3、目前针对此类单片机烧录固件时,必须联合使用编程器和信号转换装置:固件烧录前,需先将固件拷贝到编程器,再通过离线编程器和信号转换装置实现固件操作。固件开发调试时,需要单独另外连接仿真器。
4、目前市面上没有一种既满足调试,又满足isp在线编程的装置。因而此类特定单片机的开发调试和烧录固件,需要准备三套装置(仿真器、编程器和信号转换装置),增加成本。
技术实现思路
1、为解决现有技术中的上述问题中的至少一部分问题,本发明的任务是提供一种基于单片机调试和isp在线编程的多功能仿真器,包括:
2、多功能仿真器,其被配置为调试或编程目标芯片,所述多功能仿真器包括:
3、上位机连接端口,所述上位机连接端口与上位机相连;
4、目标芯片连接端口,其与需要调试或在线编程的目标芯片相连。
5、进一步地,所述上位机包括:
6、集成开发环境ide,其被配置为通过所述多功能仿真器对目标芯片进行调试;
7、isp在线编程软件,其被配置为通过所述多功能仿真器对目标芯片进行编程。
8、进一步地,所述多功能仿真器的目标芯片连接端口包括串行线调试端口swd和双线通用异步收发器端口uart,其中串行线调试端口swd包括串行线时钟端口swclk和串行线数据端口swdio/单线端口tool0;
9、所述目标芯片具有与所述目标芯片连接端口相连的引脚包括串行线调试引脚swd和双线通用异步收发器引脚uart,其中串行线调试引脚swd包括串行线时钟引脚swclk和串行线数据引脚swdio/单线引脚tool0。
10、进一步地,所述目标芯片编程时仅支持所述双线通用异步收发器引脚uart通信,且所述双线通用异步收发器引脚uart和所述串行线调试引脚swd不同,则所述多功能仿真器的双线通用异步收发器端口uart与所述目标芯片的双线通用异步收发器引脚uart相连,其中所述双线通用异步收发器端口uart包括数据发送端口txd和数据接收端口rxd。
11、进一步地,所述目标芯片编程时支持单线引脚tool0和双线通用异步收发器引脚uart通信,且双线通用异步收发器引脚uart和串行线调试引脚swd不同,则所述多功能仿真器的通用异步收发器端口uart与对应的所述目标芯片的通用异步收发器uart引脚相连,所述多功能仿真器的串行线数据端口swdio/单线端口tool0与所述目标芯片的单线引脚tool0相连。
12、进一步地,所述目标芯片编程时支持单线引脚tool0和双线通用异步收发器引脚uart通信,且双线通用异步收发器引脚uart和串行线调试引脚swd相同,则所述多功能仿真器复用串行线调试端口swd,所述多功能仿真器的串行线调试端口swd与所述目标芯片的串行线调试引脚swd及单线引脚tool0相连。
13、进一步地,其中所述多功能仿真器的串行线调试端口swd与所述目标芯片的串行线调试引脚swd及单线引脚tool0相连包括:
14、所述串行线时钟端口swclk与所述目标芯片的串行线时钟端口swclk/数据接收引脚rxd相连,所述多功能仿真器的串行线数据端口swdio/单线端口tool0与目标芯片的串行线数据引脚swdio/数据发送引脚txd及单线引脚tool0相连。
15、本发明还提供一种使用上述多功能仿真器的编程方法
16、所述多功能仿真器等待所述上位机的isp在线编程软件下发的握手命令,所述多功能仿真器根据握手命令识别触发所述目标芯片进入boot模式的方式、所述目标芯片的isp握手通信引脚、所述目标芯片的isp非握手通信引脚和通信波特率;
17、所述多功能仿真器根据识别的目标芯片进入boot模式的方式,使用固化的时序算法控制指定的目标芯片的引脚产生特定的时序,使目标芯片进入boot模式;
18、所述多功能仿真器根据识别的所述目标芯片的isp握手通信引脚使用对应的端口与目标芯片通信,发送握手命令至目标芯片,若收到目标芯片确认应答,表示通信成功,则执行下一步,否则执行多功能仿真器等待所述上位机的isp在线编程软件下发的握手命令步骤;
19、多功能仿真器根据识别的所述目标芯片的isp非握手通信引脚使用对应的端口与目标芯片通信,转发上位机的isp在线编程软件的命令和数据至目标芯片,若收到设置目标芯片波特率命令,则所述多功能仿真器转发确认应答后,修改通信波特率。
20、进一步地,若isp握手通信引脚为单线通信,则所述多功能仿真器通过串行线数据端口swdio/单线端口tool0转发握手命令至所述目标芯片;
21、若isp握手通信引脚为双线通信,则所述多功能仿真器使用数据发送端口txd和数据接收端口rxd作为双线通信端口与目标芯片300进行通信。
22、进一步地,若isp非握手通信引脚为单线通信,则所述多功能仿真器通过串行线数据端口swdio/单线端口tool0转发命令和数据至所述目标芯片;
23、若isp非握手命令通信引脚为双线通信,所述多功能仿真器使用数据发送端口txd和数据接收端口rxd作为双线通信端口与所述目标芯片进行通信,若收到目标芯片确认应答,表示通信成功,否则所述多功能仿真器使用串行线时钟端口swclk和串行线数据端口swdio/单线端口tool0作为双线通信端口与目标芯片通信。
24、本发明至少具有下列有益效果:本发明公开的一种基于单片机调试和isp在线编程的多功能仿真器,集成了调试器功能和isp在线编程器功能,复用同一个硬件电路,简化设计,节约工具成本,仅使用一套装置就可以实现调试和编程,使用该多功能仿真器编程时不需要额外的信号转换装置。
1.一种基于单片机调试和isp在线编程的多功能仿真器,其特征在于,包括:
2.根据权利要求1所述的多功能仿真器,其特征在于,所述上位机包括:
3.根据权利要求2所述的多功能仿真器,其特征在于,所述多功能仿真器的目标芯片连接端口包括串行线调试端口swd和双线通用异步收发器端口uart,其中串行线调试端口swd包括串行线时钟端口swclk以及串行线数据端口swdio/单线端口tool0;
4.根据权利要求3所述的多功能仿真器,其特征在于,所述目标芯片编程时仅支持所述双线通用异步收发器引脚uart通信,且所述双线通用异步收发器引脚uart和所述串行线调试引脚swd不同,则所述多功能仿真器的双线通用异步收发器端口uart与所述目标芯片的双线通用异步收发器引脚uart相连,其中所述双线通用异步收发器端口uart包括数据发送端口txd和数据接收端口rxd。
5.根据权利要求3所述的多功能仿真器,其特征在于,所述目标芯片编程时支持单线引脚tool0和双线通用异步收发器引脚uart通信,且双线通用异步收发器引脚uart和串行线调试引脚swd不同,则所述多功能仿真器的通用异步收发器端口uart与对应的所述目标芯片的通用异步收发器uart引脚相连,所述多功能仿真器的串行线数据端口swdio/单线端口tool0与所述目标芯片的单线引脚tool0相连。
6.根据权利要求3所述的多功能仿真器,其特征在于,所述目标芯片编程时支持单线引脚tool0和双线通用异步收发器引脚uart通信,且双线通用异步收发器引脚uart和串行线调试引脚swd相同,则所述多功能仿真器复用串行线调试端口swd,所述多功能仿真器的串行线调试端口swd与所述目标芯片的串行线调试引脚swd及单线引脚tool0相连。
7.根据权利要求6所述的多功能仿真器,其特征在于,其中所述多功能仿真器的串行线调试端口swd与所述目标芯片的串行线调试引脚swd及单线引脚tool0相连包括:
8.使用权利要求1至7之一所述的多功能仿真器的编程方法,所述多功能仿真器等待所述上位机的isp在线编程软件下发的握手命令,所述多功能仿真器根据握手命令识别触发所述目标芯片进入boot模式的方式、所述目标芯片的isp握手通信引脚、所述目标芯片的isp非握手通信引脚和通信波特率;
9.根据权利要求8所述的编程方法,其特征在于,若isp握手通信引脚为单线通信,则所述多功能仿真器通过串行线数据端口swdio/单线端口tool0转发握手命令至所述目标芯片;
10.根据权利要求9所述的编程方法,其特征在于,若isp非握手通信引脚为单线通信,则所述多功能仿真器通过串行线数据端口swdio/单线端口tool0转发命令和数据至所述目标芯片;