多模式虚拟串口芯片、实现方法、固件下载系统及其方法

文档序号:1937200 发布日期:2021-12-07 浏览:21次 >En<

阅读说明:本技术 多模式虚拟串口芯片、实现方法、固件下载系统及其方法 (Multi-mode virtual serial port chip, implementation method, firmware downloading system and method ) 是由 王春华 于 2021-11-09 设计创作,主要内容包括:本发明公开了一种多模式虚拟串口芯片、实现方法、固件下载系统及其方法,多模式虚拟串口芯片包含正常工作模式和增强工作模式,复用辅助信号脚根据是否连接有下拉电阻选择进入何种模式,正常工作模式与现有技术和应用兼容,增强工作模式下还可实现MCU固件一键自动下载。本发明无需外围电路,MCU也不会误进入其他模式,实现固件自动下载、提高下载效率、降低成本、降低功耗、减小产品体积等效果。(The invention discloses a multi-mode virtual serial port chip, an implementation method, a firmware downloading system and a method thereof. The invention does not need peripheral circuits, and the MCU can not mistakenly enter other modes, thereby realizing the effects of automatically downloading the firmware, improving the downloading efficiency, reducing the cost, the power consumption, reducing the product volume and the like.)

多模式虚拟串口芯片、实现方法、固件下载系统及其方法

技术领域

本发明属于虚拟串口芯片设计领域,尤其涉及一种多模式虚拟串口芯片、实现方法、固件下载系统及其方法。

背景技术

串口(即UART)作为MCU固件(或称MCU内嵌软件)下载接口已很普及,MCU的启动模式也越来越多,随着MCU使用范围越来越广,行业对MCU固件下载效率和硬件电路的体积成本也更为关注,经济高效的固件下载方法变得尤为重要。

基于原生串口(通常是16C450/550型号)的要求,在通用的串口芯片的IO引脚类型的默认状态中,调制解调器(即MODEM)输入信号CTS/DSR/RI/DCD引脚为输入方向,调制解调器输出信号RTS/DTR引脚为输出方向且默认为高电平状态(对应于RS232电平逻辑0)。现有技术中,使用RTS/DTR作为模式选择引脚控制MCU的BootMode(或称引导模式、或称下载模式)脚,在MCU复位时根据模式选择引脚的高低电平状态判断进入何种启动模式。针对模式引脚常态为低电平、高电平进入BOOT模式的MCU,如STM32F、CH32F、GD32F等系列的MCU,若需使用串口进行固件下载,此引脚应为高电平;若需运行用户程序,此引脚应为低电平。由于串口默认是高,因此会导致MCU上电后直接进入BOOT模式,并且MCU启动模式会随着串口和MCU上电、掉电、串口驱动未加载、串口未打开时进入非预期模式,影响MCU的使用。如图1所示,以虚拟串口芯片CH340为例,为避免上述问题,现有技术普遍采用增加电阻、三极管等逻辑电路辅助串口输出脚RTS/DTR的电平互斥和电平保持,见图1中的三极管Q2、Q3、电阻R69、R70、R71以规避上电和复位后进入固件下载模式。

串口的应用非常广泛且便利,但当前电脑或者手机普遍不提供原生串口,一般是采用USB或BLE蓝牙等进行虚拟串口扩展,进而与MCU通讯或者进行固件下载。基于串口兼容的考虑,串口应用程序主要是支持原生串口的操作,例如串口收发、设置调制解调器输出、读取调制解调器输入。虚拟串口是指将以USB或者蓝牙进行物理连接扩展的串口通过驱动程序模仿出上位机(即电脑、服务器或者手机)中原生串口的功能和效果,使得虚拟串口的行为特性基本兼容原生串口。因为兼容,所以基于虚拟串口芯片实现MCU固件下载也会遇到原生串口同样的问题。如何基于虚拟串口芯片实现MCU固件经济高效地下载是急需解决的问题。

发明内容

发明目的:为了解决现有技术存在的问题,使虚拟串口芯片在不需要增加外围电路的情况下也可以解决MCU进入错误启动模式的问题,本发明提供多模式虚拟串口芯片、实现方法、固件下载系统及其方法。

技术方案:一种多模式虚拟串口芯片,包括:

复用辅助信号脚,内置了弱上拉电阻或弱上拉电流,根据是否连接下拉电阻判断进入正常工作模式或增强工作模式,正常工作模式下为既定的辅助信号输出或者第一调制解调器信号输出功能;增强工作模式下还可在不输出与第一调制解调器信号输出功能之间切换,用于控制MCU的BootMode脚;

第二调制解调器输出引脚,用于第二调制解调器信号输出,在增强工作模式下还可用于控制MCU的复位;

存储器、处理器及存储在存储器上并可被处理器执行的软件程序,在芯片处于增强工作模式的情况下,当接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出高电平;

在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令、或接收到上位机发出的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序使复用辅助信号脚不输出高电平;

在芯片处于增强工作模式的情况下,由睡眠状态被唤醒时,执行该软件程序将复位辅助信号脚恢复为睡眠前的功能。

进一步地,在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令、或接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为不输出。

进一步地,在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令时,处理器执行该软件程序将复用辅助信号脚切换为不输出;当接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出低电平。

进一步地,所述第二调制解调器输出引脚为引脚RTS,所述复用辅助信号脚在增强工作模式的调制解调器信号输出功能下为调制解调器引脚DTR。

一种多模式虚拟串口芯片的实现方法,包括以下步骤:

步骤一、上电或复位后检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,执行步骤二;若有下拉电阻,芯片进入增强工作模式,执行步骤三;

步骤二、无论接受到上位机发送的打开串口命令还是关闭串口命令,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能,并按照其固有辅助功能规则或者按照上位机发送的设置调制解调器输出命令输出所需电平;

步骤三、当接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,复用辅助信号脚切换为调制解调器信号输出功能且根据设置输出高电平,用于控制MCU进入BOOT模式;

当进入睡眠状态、或接收到上位机发送的串口关闭命令、或接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,复用辅助信号脚不输出高电平;

当多模式虚拟串口芯片由睡眠状态被唤醒时,复用辅助信号脚恢复为睡眠前的功能。

一种固件下载系统,包括上位机、MCU及上述的多模式虚拟串口芯片,多模式虚拟串口芯片的复用辅助信号脚连接MCU的BootMode脚,且多模式虚拟串口芯片的复用辅助信号脚连接下拉电阻,多模式虚拟串口芯片的第二调制解调器输出引脚连接MCU的复位引脚;上位机与多模式虚拟串口芯片连接;所述MCU为BootMode脚常态是低电平、高电平进入BOOT模式的MCU。

进一步地,还包括MCU的外围电路,MCU的外围电路中BootMode脚连接有下拉电阻,所述复用辅助信号脚连接的下拉电阻与MCU外围电路中的BootMode脚下拉电阻共用。

进一步地,虚拟串口芯片的第二调制解调器输出引脚与MCU的复位引脚直接连接或者通过二极管连接,二极管正极连接MCU的复位引脚,二极管负极连接第二调制解调器输出引脚。

一种固件下载方法,包括以下步骤:

步骤一、多模式虚拟串口芯片检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能;若有下拉电阻,芯片进入增强工作模式,执行步骤二;

步骤二、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,在调制解调器输出命令中指定第一调制解调器信号为高电平,使复用辅助信号脚切换为调制解调器信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;

步骤三、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,设置第二调制解调器输出引脚输出与MCU有效复位信号相反的电平,MCU结束复位并自动执行固件下载程序;

步骤四、待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,使复用辅助信号脚不输出高电平,MCU因复位时BootMode脚为低电平启动用户程序模式。

进一步地,步骤四包括:待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚切换为不输出,MCU因复位时BootMode脚为低电平启动用户程序模式;

或者包括:待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚输出低电平,MCU因复位时BootMode脚为低电平启动用户程序模式;上位机向多模式虚拟串口芯片发送串口关闭命令或芯片断开与上位机的连接进入睡眠状态,复用辅助信号脚切换为不输出。

本发明提供一种多模式虚拟串口芯片、实现方法、固件自动下载系统及其方法,相比较现有技术,具有以下有益效果:

(1)正常工作模式下,兼容现有虚拟串口和原生串口,兼容现有应用程序。而增强工作模式下,合用MCU外围电路中所带的BootMode脚下拉电阻,不增加任何器件就能实现MCU固件一件下载,并且仍然只使用了与原生串口兼容的设置调制解调器输出命令,便于应用程序兼容。

(2)增强工作模式可用于BootMode引脚常态为低电平、高电平进入BOOT模式的MCU。定义虚拟串口的两种应用环境:正常应用环境与现有技术兼容;下载应用环境即增强工作模式中可实现MCU固件一键自动下载。复用辅助信号脚无下拉电阻时,为正常应用环境,虚拟串口芯片进入正常工作模式,辅助信号脚根据芯片封装形式或者子型号的不同,既定为要么作为辅助信号输出例如TNOW、要么作为调制解调器信号输出引脚DTR,输出所需电平,以兼容现有技术和习惯。当需要实现MCU固件一件下载功能时,在辅助信号脚连接下拉电阻,为下载应用环境,虚拟串口芯片进入增强工作模式,在增强工作模式下,辅助信号脚可以在需要时切换为调制解调器信号输出引脚,可实现MCU固件一键下载功能。对于下拉电阻,可以直接使用MCU外围电路中所带的BootMode脚下拉电阻,不需要额外再增加下拉电阻。该下拉电阻在电路中同时具有判断进入何种模式以及在增强工作模式下且串口未打开时不进入BOOT模式的双重功能。

(3)增强工作模式下,只要上位机软件不操作,默认不影响MCU用户程序运行。MCU不会因自身及串口的上电、掉电、串口驱动未加载、串口未打开等情况误进入错误的启动模式,MCU启动方式自动切换,无需人工参与或电路辅助,产品稳定性更好;

(4)多模式虚拟串口芯片与MCU相关引脚直连,无需增加电阻、三极管等逻辑控制电路,免去调试和生产的难度;无外围电路,节省了器件成本、制造成本,大幅度地减小了产品体积,降低了多个电阻导致的功耗,降低产品的故障率;

(5)本技术方案仍然只利用了原生串口的操作命令,对于上位机操作用户而言无感知,正常工作模式下仍兼容现有上位机用户程序,无需更改用户应用程序。在保持向前兼容的前提下,实现了更多功能。

附图说明

图1为现有技术虚拟串口芯片CH340与MCU连接的电路原理图;

图2为实施例一多模式虚拟串口芯片与MCU连接的电路原理图;

图3为实施例四多模式虚拟串口芯片与MCU连接的电路原理图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步解释说明。

实施例一:

本实施例针对BootMode脚常态为低电平的MCU,当BootMode脚为高电平时,MCU复位进入固件下载模式,即BootMode脚进入BOOT模式的有效电平为高电平。

一种多模式虚拟串口芯片,定义两种工作模式:正常工作模式和增强工作模式,正常工作模式即为现有技术所使用的工作模式,以兼容现有的虚拟串口芯片。但是在此模式下,无法实现固件一键自动下载,因为MCU可能会因自身及串口的上电、掉电、串口驱动未加载、串口未打开等情况误进入错误的启动模式,若不想在辅助信号脚增加外围三极管等器件,只能靠手动复位等操作维持正常工作。虚拟串口芯片之所以设置两种工作模式,可以根据需要连接连接下拉电阻进一步选择进入何种模式,正常工作模式与现有技术兼容,增强工作模式下可实现MCU固件一键自动下载,避免MCU进入错误的启动模式。

一种多模式虚拟串口芯片包括:

复用辅助信号脚,如图2中的TNOW/DTR,复用辅助信号脚内部带弱上拉电阻或弱上拉电流,根据外部是否连接下拉电阻判断进入正常工作模式或增强工作模式。本实施例该复用辅助信号脚在正常工作模式下为既定的辅助信号输出(图中的TNOW),也可以是第一调制解调器信号(Modem)输出功能;增强工作模式下复用辅助信号脚可根据设置调制解调器输出命令、关闭串口命令或进入睡眠状态等切换为调制解调器信号输出功能或不输出,用于控制MCU的BootMode脚;

第二调制解调器输出引脚(Modem输出引脚),如图2中的引脚RTS,用于第二调制解调器信号输出,在增强工作模式下还可用于控制MCU的复位;

存储器、处理器及存储在存储器上并可被处理器执行的软件程序,

在芯片处于增强工作模式的情况下,

当接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出高电平;

在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令、或接收到上位机发出的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序使复用辅助信号脚切换为不输出;

在芯片处于增强工作模式的情况下,由睡眠状态被唤醒时,执行该软件程序将复位辅助信号脚恢复为睡眠前的功能。

因为复用辅助信号脚接有下拉电阻,所以当其为不输出功能时,MCU的BootMode脚在下拉电阻的作用下为低电平,维持用户程序模式,不会进入BOOT固件下载模式。所以,下拉电阻在电路中同时具有判断进入何种模式以及在增强工作模式下且串口未打开时不进入BOOT模式的双重功能。

一种多模式虚拟串口芯片的实现方法,包括以下步骤:

步骤一、上电或复位后检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,执行步骤二;若有下拉电阻,芯片进入增强工作模式,执行步骤三;

步骤二、无论接受到上位机发送的打开串口命令还是关闭串口命令,复用辅助信号脚始终为既定的辅助信号输出或者调制解调器信号输出功能,并按照固有辅助功能规则或上位机发送的设置调制解调器输出命令输出所需电平;

步骤三、当接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,复用辅助信号脚切换为调制解调器信号输出功能且根据设置输出高电平,用于控制MCU进入BOOT模式;

当进入睡眠状态、或接收到上位机发送的串口关闭命令、或接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,复用辅助信号脚切换为不输出;

当多模式虚拟串口芯片由睡眠状态被唤醒时,复用辅助信号脚恢复为睡眠前的功能。

一种固件下载系统,包括上位机、MCU及上述的多模式虚拟串口芯片,如图2所示,多模式虚拟串口芯片的复用辅助信号脚连接MCU的BootMode脚,且多模式虚拟串口芯片的复用辅助信号脚连接下拉电阻,多模式虚拟串口芯片的第二调制解调器输出引脚连接MCU的复位引脚;上位机与多模式虚拟串口芯片连接;所述MCU为BootMode脚常态是低电平、高电平进入BOOT模式的MCU。下拉电阻一般取值范围为1kΩ~20kΩ,本实施例中选用4.7kΩ。

一种固件下载方法,包括以下步骤:

步骤一、先判断进入何种工作模式:多模式虚拟串口芯片检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能,复用辅助信号脚按照上位机发送的设置调试解调器输出命令输出所需电平,不实现MCU固件自动下载;若有下拉电阻,芯片进入增强工作模式,执行步骤二;

步骤二、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,在调制解调器输出命令中指定第一调制解调器信号为高电平,使复用辅助信号脚切换为调制解调器信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;

步骤三、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,设置第二调制解调器输出引脚输出与MCU有效复位信号相反的电平,MCU结束复位并自动执行固件下载程序;

步骤四、待固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚切换为不输出,MCU因复位时BootMode脚为低电平启动用户程序模式。

实施例二:

实施例二与实施例一相比,区别在于,复用辅助信号脚连接的下拉电阻可以与MCU外围电路中所带的下拉电阻共用,当MCU的外围电路中BootMode脚连接有下拉电阻时,就可以充分利用该下拉电阻作为多模式虚拟串口芯片进入增强工作模式的条件,无需再额外增加下拉电阻。

实施例三:

实施例三与实施例一或实施例二相比,区别在于,多模式虚拟串口芯片在接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出低电平。通过实施例一,可知复用辅助信号脚不输出时,在外接的下拉电阻作用下,保证BootMode脚为低电平。而本实施例复用辅助信号脚输出低电平具有相同的效果。除此之外,在增强工作模式下,多模式虚拟串口芯片进入睡眠状态,或者接收到上位机发出的串口关闭命令时,复用辅助信号脚也可输出低电平,只要不是高电平均可。

对应的,多模式虚拟串口芯片的实现方法,包括以下步骤:

步骤一、上电或复位后检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,执行步骤二;若有下拉电阻,芯片进入增强工作模式,执行步骤三;

步骤二、无论接受到上位机发送的打开串口命令还是关闭串口命令,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能,并按照其固有辅助功能规则或者按照上位机发送的设置调制解调器输出命令输出所需电平;

步骤三、当接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,复用辅助信号脚切换为调制解调器信号输出功能且根据设置输出高电平,用于控制MCU进入BOOT模式;

当进入睡眠状态、或接收到上位机发送的串口关闭命令时,复用辅助信号脚切换为不输出;当接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,复用辅助信号脚输出低电平;

当多模式虚拟串口芯片由睡眠状态被唤醒时,复用辅助信号脚恢复为睡眠前的功能。

固件下载方法包括以下步骤:

步骤一、先判断进入何种工作模式:多模式虚拟串口芯片检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,复用辅助信号脚始终为输出功能,当上位机向虚拟串口芯片发送打开串口命令时,复用辅助信号脚按照固有辅助功能规则或上位机发送的命令输出所需电平,不实现MCU固件自动下载;若有下拉电阻,芯片进入增强工作模式,执行步骤二;

步骤二、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,在调制解调器输出命令中指定第一调制解调器信号为高电平,使复用辅助信号脚切换为调制解调器信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;

步骤三、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,设置第二调制解调器输出引脚输出与MCU有效复位信号相反的电平,MCU结束复位并自动执行固件下载程序;

步骤四、待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚输出低电平,MCU因复位时BootMode脚为低电平启动用户程序模式;上位机向多模式虚拟串口芯片发送串口关闭命令或芯片断开与上位机的连接进入睡眠状态,复用辅助信号脚切换为不输出。

实施例四:

实施例四与实施例一或实施例二或实施例三相比,区别在于,如图3所示,多模式虚拟串口芯片的调制解调器输出引脚RTS与MCU的复位引脚之间连接有二极管,二极管正极连接MCU复位引脚,二极管负极连接调制解调器输出引脚RTS。目的是为了在兼容原复位信号控制的基础上,增加虚拟串口芯片的RTS引脚直接作用NRST。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:SerDes控制方法、装置及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!