多模式虚拟串口芯片、实现方法、固件下载系统及其方法转让专利
申请号 : CN202111316629.3
文献号 : CN113760806B
文献日 : 2022-02-15
发明人 : 王春华
申请人 : 南京沁恒微电子股份有限公司
摘要 :
权利要求 :
1.一种多模式虚拟串口芯片,其特征在于,包括:复用辅助信号脚,内置了弱上拉电阻或弱上拉电流,根据复用辅助信号脚外部是否连接下拉电阻判断进入多模式虚拟串口芯片的正常工作模式或增强工作模式,正常工作模式下为既定的辅助信号输出或者第一调制解调器信号输出功能;增强工作模式下还可在不输出与第一调制解调器信号输出功能之间切换,用于控制MCU的BootMode脚;
第二调制解调器输出引脚,用于第二调制解调器信号输出,在增强工作模式下还可用于控制MCU的复位;
存储器、处理器及存储在存储器上并可被处理器执行的软件程序,在芯片处于增强工作模式的情况下,当接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出高电平;
在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令、或接收到上位机发出的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序使复用辅助信号脚不输出高电平;
在芯片处于增强工作模式的情况下,由睡眠状态被唤醒时,执行该软件程序将复位辅助信号脚恢复为睡眠前的功能。
2.根据权利要求1所述的多模式虚拟串口芯片,其特征在于,在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令、或接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为不输出。
3.根据权利要求1所述的多模式虚拟串口芯片,其特征在于,在芯片处于增强工作模式的情况下,当进入睡眠状态、或接收到上位机发出的串口关闭命令时,处理器执行该软件程序将复用辅助信号脚切换为不输出;当接收到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出低电平。
4.根据权利要求1或2或3所述的多模式虚拟串口芯片,其特征在于,所述第二调制解调器输出引脚为引脚RTS,所述复用辅助信号脚在增强工作模式的调制解调器信号输出功能下为调制解调器引脚DTR。
5.一种多模式虚拟串口芯片的实现方法,其特征在于,包括以下步骤:步骤一、上电或复位后检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,执行步骤二;若有下拉电阻,芯片进入增强工作模式,执行步骤三;
步骤二、无论接受到上位机发送的打开串口命令还是关闭串口命令,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能,并按照其固有辅助功能规则或者按照上位机发送的设置调制解调器输出命令输出所需电平;
步骤三、当接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为高电平时,复用辅助信号脚切换为调制解调器信号输出功能且根据设置输出高电平,用于控制MCU进入BOOT模式;
当进入睡眠状态、或接收到上位机发送的串口关闭命令、或接收到上位机发送的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,复用辅助信号脚不输出高电平;
当虚拟串口芯片由睡眠状态被唤醒时,复用辅助信号脚恢复为睡眠前的功能。
6.一种固件下载系统,其特征在于,包括上位机、MCU及如权利要求1至4任一所述的多模式虚拟串口芯片,多模式虚拟串口芯片的复用辅助信号脚连接MCU的BootMode脚,且多模式虚拟串口芯片的复用辅助信号脚连接下拉电阻,多模式虚拟串口芯片的第二调制解调器输出引脚连接MCU的复位引脚;上位机与多模式虚拟串口芯片连接;所述MCU的BootMode脚常态是低电平、高电平时进入MCU的BOOT模式。
7.根据权利要求6所述的固件下载系统,其特征在于,还包括MCU的外围电路,MCU的外围电路中BootMode脚连接有下拉电阻,所述复用辅助信号脚连接的下拉电阻与MCU外围电路中的BootMode脚下拉电阻共用。
8.根据权利要求6或7所述的固件下载系统,其特征在于,多模式虚拟串口芯片的第二调制解调器输出引脚与MCU的复位引脚直接连接或者通过二级管连接,二极管正极连接MCU的复位引脚,二极管负极连接第二调制解调器输出引脚。
9.一种固件下载方法,其特征在于,包括以下步骤:步骤一、多模式虚拟串口芯片检测复用辅助信号脚是否连接有下拉电阻,若无下拉电阻,芯片进入正常工作模式,复用辅助信号脚始终为既定的辅助信号输出或者第一调制解调器信号输出功能;若有下拉电阻,芯片进入增强工作模式,执行步骤二;
步骤二、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,在调制解调器输出命令中指定第一调制解调器信号为高电平,使复用辅助信号脚切换为调制解调器信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;
步骤三、上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,设置第二调制解调器输出引脚输出与MCU有效复位信号相反的电平,MCU结束复位并自动执行固件下载程序;
步骤四、待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,使复用辅助信号脚不输出高电平,MCU因复位时BootMode脚为低电平启动用户程序模式。
10.根据权利要求9所述的固件下载方法,其特征在于,步骤四包括:待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚切换为不输出,MCU因复位时BootMode脚为低电平启动用户程序模式;
或者包括:待MCU固件下载完成,上位机向多模式虚拟串口芯片发送设置调制解调器输出命令,指定第一调制解调器信号为低电平,且指定第二调制解调器输出引脚输出MCU有效复位信号,复用辅助信号脚输出低电平,MCU因复位时BootMode脚为低电平启动用户程序模式;上位机向多模式虚拟串口芯片发送串口关闭命令或芯片断开与上位机的连接进入睡眠状态,复用辅助信号脚切换为不输出。
说明书 :
多模式虚拟串口芯片、实现方法、固件下载系统及其方法
技术领域
背景技术
本也更为关注,经济高效的固件下载方法变得尤为重要。
器输出信号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或者蓝牙进行物理连接扩展的串口通过驱动
程序模仿出上位机(即电脑、服务器或者手机)中原生串口的功能和效果,使得虚拟串口的
行为特性基本兼容原生串口。因为兼容,所以基于虚拟串口芯片实现MCU固件下载也会遇到
原生串口同样的问题。如何基于虚拟串口芯片实现MCU固件经济高效地下载是急需解决的
问题。
发明内容
现方法、固件下载系统及其方法。
解调器信号输出功能;增强工作模式下还可在不输出与第一调制解调器信号输出功能之间
切换,用于控制MCU的BootMode脚;
信号为高电平时,处理器执行该软件程序将复用辅助信号脚切换为第一调制解调器信号输
出功能且输出高电平;
为低电平时,处理器执行该软件程序使复用辅助信号脚不输出高电平;
信号为低电平时,处理器执行该软件程序将复用辅助信号脚切换为不输出。
到上位机的设置调制解调器输出命令且指定第一调制解调器信号为低电平时,处理器执行
该软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出低电平。
能规则或者按照上位机发送的设置调制解调器输出命令输出所需电平;
平,用于控制MCU进入BOOT模式;
高电平;
号脚连接下拉电阻,多模式虚拟串口芯片的第二调制解调器输出引脚连接MCU的复位引脚;
上位机与多模式虚拟串口芯片连接;所述MCU为BootMode脚常态是低电平、高电平进入BOOT
模式的MCU。
出引脚。
制解调器信号输出功能;若有下拉电阻,芯片进入增强工作模式,执行步骤二;
信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同
的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;
载程序;
效复位信号,使复用辅助信号脚不输出高电平,MCU因复位时BootMode脚为低电平启动用户
程序模式。
出引脚输出MCU有效复位信号,复用辅助信号脚切换为不输出,MCU因复位时BootMode脚为
低电平启动用户程序模式;
有效复位信号,复用辅助信号脚输出低电平,MCU因复位时BootMode脚为低电平启动用户程
序模式;上位机向多模式虚拟串口芯片发送串口关闭命令或芯片断开与上位机的连接进入
睡眠状态,复用辅助信号脚切换为不输出。
MCU固件一件下载,并且仍然只使用了与原生串口兼容的设置调制解调器输出命令,便于应
用程序兼容。
工作模式中可实现MCU固件一键自动下载。复用辅助信号脚无下拉电阻时,为正常应用环
境,虚拟串口芯片进入正常工作模式,辅助信号脚根据芯片封装形式或者子型号的不同,既
定为要么作为辅助信号输出例如TNOW、要么作为调制解调器信号输出引脚DTR,输出所需电
平,以兼容现有技术和习惯。当需要实现MCU固件一件下载功能时,在辅助信号脚连接下拉
电阻,为下载应用环境,虚拟串口芯片进入增强工作模式,在增强工作模式下,辅助信号脚
可以在需要时切换为调制解调器信号输出引脚,可实现MCU固件一键下载功能。对于下拉电
阻,可以直接使用MCU外围电路中所带的BootMode脚下拉电阻,不需要额外再增加下拉电
阻。该下拉电阻在电路中同时具有判断进入何种模式以及在增强工作模式下且串口未打开
时不进入BOOT模式的双重功能。
式,MCU启动方式自动切换,无需人工参与或电路辅助,产品稳定性更好;
品体积,降低了多个电阻导致的功耗,降低产品的故障率;
容的前提下,实现了更多功能。
附图说明
具体实施方式
下,无法实现固件一键自动下载,因为MCU可能会因自身及串口的上电、掉电、串口驱动未加
载、串口未打开等情况误进入错误的启动模式,若不想在辅助信号脚增加外围三极管等器
件,只能靠手动复位等操作维持正常工作。虚拟串口芯片之所以设置两种工作模式,可以根
据需要连接连接下拉电阻进一步选择进入何种模式,正常工作模式与现有技术兼容,增强
工作模式下可实现MCU固件一键自动下载,避免MCU进入错误的启动模式。
复用辅助信号脚在正常工作模式下为既定的辅助信号输出(图中的TNOW),也可以是第一调
制解调器信号(Modem)输出功能;增强工作模式下复用辅助信号脚可根据设置调制解调器
输出命令、关闭串口命令或进入睡眠状态等切换为调制解调器信号输出功能或不输出,用
于控制MCU的BootMode脚;
出高电平;
为低电平时,处理器执行该软件程序使复用辅助信号脚切换为不输出;
拉电阻在电路中同时具有判断进入何种模式以及在增强工作模式下且串口未打开时不进
入BOOT模式的双重功能。
或上位机发送的设置调制解调器输出命令输出所需电平;
平,用于控制MCU进入BOOT模式;
不输出;
复用辅助信号脚连接下拉电阻,多模式虚拟串口芯片的第二调制解调器输出引脚连接MCU
的复位引脚;上位机与多模式虚拟串口芯片连接;所述MCU为BootMode脚常态是低电平、高
电平进入BOOT模式的MCU。下拉电阻一般取值范围为1kΩ 20kΩ,本实施例中选用4.7kΩ。
~
辅助信号输出或者第一调制解调器信号输出功能,复用辅助信号脚按照上位机发送的设置
调试解调器输出命令输出所需电平,不实现MCU固件自动下载;若有下拉电阻,芯片进入增
强工作模式,执行步骤二;
信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同
的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;
载程序;
复位信号,复用辅助信号脚切换为不输出,MCU因复位时BootMode脚为低电平启动用户程序
模式。
以充分利用该下拉电阻作为多模式虚拟串口芯片进入增强工作模式的条件,无需再额外增
加下拉电阻。
软件程序将复用辅助信号脚切换为第一调制解调器信号输出功能且输出低电平。通过实施
例一,可知复用辅助信号脚不输出时,在外接的下拉电阻作用下,保证BootMode脚为低电
平。而本实施例复用辅助信号脚输出低电平具有相同的效果。除此之外,在增强工作模式
下,多模式虚拟串口芯片进入睡眠状态,或者接收到上位机发出的串口关闭命令时,复用辅
助信号脚也可输出低电平,只要不是高电平均可。
能规则或者按照上位机发送的设置调制解调器输出命令输出所需电平;
平,用于控制MCU进入BOOT模式;
低电平时,复用辅助信号脚输出低电平;
能,当上位机向虚拟串口芯片发送打开串口命令时,复用辅助信号脚按照固有辅助功能规
则或上位机发送的命令输出所需电平,不实现MCU固件自动下载;若有下拉电阻,芯片进入
增强工作模式,执行步骤二;
信号输出功能且输出高电平;设置第二调制解调器输出引脚输出与MCU有效复位信号相同
的电平,MCU因复位时BootMode脚为高电平启动固件下载模式;
载程序;
效复位信号,复用辅助信号脚输出低电平,MCU因复位时BootMode脚为低电平启动用户程序
模式;上位机向多模式虚拟串口芯片发送串口关闭命令或芯片断开与上位机的连接进入睡
眠状态,复用辅助信号脚切换为不输出。
连接MCU复位引脚,二极管负极连接调制解调器输出引脚RTS。目的是为了在兼容原复位信
号控制的基础上,增加虚拟串口芯片的RTS引脚直接作用NRST。