CN114740775A - 通用车机的控制方法、存储介质 - Google Patents
通用车机的控制方法、存储介质 Download PDFInfo
- Publication number
- CN114740775A CN114740775A CN202210376907.2A CN202210376907A CN114740775A CN 114740775 A CN114740775 A CN 114740775A CN 202210376907 A CN202210376907 A CN 202210376907A CN 114740775 A CN114740775 A CN 114740775A
- Authority
- CN
- China
- Prior art keywords
- mcu
- arm
- heartbeat
- state
- enters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种通用车机的控制方法、存储介质。其中通用车机的控制方法,包括:MCU上电开机后,进行相应的检查操作;所述MCU控制ARM上电开机,与ARM建立串口通信机制,并开始心跳流程;在所述心跳流程中,所述MCU通过采集与ARM连接的通用输入输出接口的信号,判断ARM的上层控制状态,并对一判断标志位进行赋值,以便准确标识ARM的状态;所述MCU根据ARM的状态进行相应的心跳流程操作。本发明优化了通用车机的整体流程,使得整机运行十分稳定。
Description
技术领域
本发明涉及车机控制的技术领域,尤其涉及一种通用车机的控制方法。
背景技术
随着计算机与互联网的发展,车机控制的完善度以及智能化程度也越来越高。车机系统的MCU负责底层逻辑的实现,同时MCU也会同ARM之间进行数据交互,ARM负责车机的智能处理,包括但不限于显示、音视频等、以及与MCU之间的数据交互等。
现有的MCU与ARM之间的心跳流程过程不够稳定,如果MCU在与ARM之间进行协同工作时不稳定,在极端情况下可能造成车机死机,且车机无法自动恢复,会导致用户在驾驶过程中出现车机长时间无法使用的情况,从而导致用户体验较差。
因此,如何提供一种稳定性较好的通用车机的控制方法是业界亟待解决的技术问题。
发明内容
为了解决现有技术中通用车机的控制系统不够稳定的技术问题,本发明提出了通用车机的控制方法、存储介质。
本发明提出的通用车机的控制方法,包括:
MCU上电开机后,进行相应的检查操作;
所述MCU控制ARM上电开机,与ARM建立串口通信机制,并开始心跳流程;
在所述心跳流程中,所述MCU通过采集与ARM连接的通用输入输出接口的信号,判断ARM的上层控制状态,并对一判断标志位进行赋值,以便准确标识ARM的状态;
所述MCU根据ARM的状态进行相应的心跳流程操作。
进一步,当所述MCU首次进入到心跳流程时,采集与ARM连接的通用输入输出接口的信号为高电平,对所述判断标志位进行赋值,使其表示Debug状态,此时MCU不判断ARM的心跳信号。
进一步,当ARM进入上层控制状态且上层控制ARM IO为高电平,所述MCU采集到与ARM连接的通用输入输出接口的信号为低电平,判断是否有与ARM握手并建立心跳,如果建立心跳,则对所述判断标志位进行赋值,使其表示MCU接收到ARM心跳的状态,此时MCU进入心跳检测流程;如果未建立心跳,则对所述判断标志位进行赋值,使其表示等待握手心跳状态,进入未建立心跳流程。
进一步,当ARM进入上层控制状态且上层控制ARM IO为低电平,所述MCU采集到与ARM连接的通用输入输出接口的信号为高电平,进入Debug模式,并置位对应的标志变量,在本发明中标志变量命名为Par.User.HeartBeatStart_FLAG。
进一步,所述MCU与ARM建立串口通信机制为串口通信重发机制。
进一步,所述检查操作包括依次执行的MCU自检固件操作、判断电源电压是否正常操作、ACC的连接状态操作;
当所述MCU自检固件操作的结果为固件不正常时,则暂停之后的检查操作,进入固件强制升级流程;
当判断电源电压是否正常操作的结果为电源电压不正常时,则暂停之后的检查操作,等待电源电压正常;
当判断ACC的连接状态操作的结果为ACC的连接状态为断开时,则所述MCU进入休眠,等待ACC的连接状态为连接。
进一步,在所述心跳流程过程中,所述MCU进行相应的循环检查操作,基于循环检查操作的不同,进入相应的处理流程。
进一步,所述循环检查操作包括依次执行的ACC的连接状态操作、方控件与旋钮的信息接收确认操作、USART2或者USART3的信息接收确认操作、判断电源电压是否正常操作、其他信息接收确认操作。
本发明提出的计算机可读存储介质,用于存储计算机程序,所述计算机程序运行时执行上述技术方案所述的通用车机的控制方法。
本发明通过优化MCU与ARM之间的流程,使得系统的稳定性更高,可适配性更强。辅助MCU的固件自检功能,让系统的可靠性更好。
附图说明
下面结合实施例和附图对本发明进行详细说明,其中:
图1是本发明的整体流程图。
图2是本发明的MCU的主要状态切换示意图。
图3是本发明的串口协议解析流程图。
图4是本发明的MCU与ARM之间的串口重发机制处理流程图。
图5是本发明的心跳流程图。
图6是本发明的MCU的休眠控制流程图。
图7是本发明的MCU的按键检测流程图。
图8是本发明的MCU的电源电压检测流程图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
本发明的通用车机的控制方法所采用的MCU使用的外部设备(简称外设)包括:与ARM连接的通用输入输出接口(GPIO)、EXIT、ADC(模拟/数字转换器)、TIMER、通用同步/异步串行收发模块(本发明包括USART1-USART3)、FLASH、RTC等。本发明的以下各个功能都基于一个或多个外设结合实现。具体外设在具体功能中进行说明。
在MCU上电开机后,先进行相应的检查操作,如果检查操作的结果均正常,则MCU控制ARM上电开机,MCU与ARM建立串口通信机制,并开始心跳流程。
在心跳流程中,MCU通过采集与ARM连接的通用输入输出接口的信号,判断ARM的上层控制状态,并对一判断标志位进行赋值,以便准确标识ARM的状态。接着MCU根据ARM的状态进行相应的心跳流程操作。
在心跳流程过程中,MCU还会进行相应的循环检查操作,MCU基于循环检查操作的不同,进入相应的处理流程。
图1是本发明的整体流程图。在上电开机时,MCU最先执行。MCU的检查操作包括依次执行的MCU自检固件操作、判断电源电压是否正常操作、ACC的连接状态操作。
如果MCU自检固件操作的结果为固件不正常时,则暂停之后的检查操作,进入固件强制升级流程。如果MCU自检固件操作的结果为固件正常后,对电源电压进行判断。如果电源电压位于10~16V之间,则表示电压正常,MCU往下执行其他检查操作。如果电源电压低于10V或者高于16V,则一直等待电压正常检查操作。上电开机时,MCU会检测ACC的连接状态。如果ACC ON(线束ACC接到12V),则MCU往下执行其他步骤,并开机ARM。如果ACC OFF(线束ACC未接到12V),则MCU将ARM断电,MCU再进入休眠状态。直到ACC ON。
MCU在通用车机上需要在各个时间做各个事情,因此需要增加时基的配置,让MCU在指定某个时间处理某个事情,不会与其他时间干扰。本发明给MCU增加了一个时间单元,该时间单元定期触发MCU在对应的时间处理对应的事情,从而使得MCU在处理各个功能时不会出现交叉错乱,比如,心跳的各个状态检测时间点是不同的,同时系统的电压检测,旋钮检测等功能的轮询时间点也是不同的。而实现时基础原则是通过定时器每1ms产生一个定时器中断,在中断中进行计数,实现1ms,2ms,5ms……4s,5s各个时间段的处理。通过使用这种方式,诸如每2s发送一次数据/每1s检测ADC等都可以很轻松实现。在通用车机MCU中通过TIMER4来处理上述逻辑,TIMER4是芯片自带的定时单元,MCU工作时将会调用该定时单元。
由于在车机运行中ARM会出现升级、重启、休眠、关机等操作,MCU也会存在正常运行、休眠等不同状态。因而本发明的MCU有多种状态,在一个具体实施例中,MCU可以具有六种状态,通过类似状态机的MCU STATUS状态切换来实现不同情况下的MCU操作。
在通用车机的MCU软件中,为MCU设置了如下表的6个状态以供切换:
表1 MCU的6种状态
本发明的MCU的主要四种状态切换如图2所示。其中Start表示的是开始,MainLoop表示的是MCU的循环检查操作,Need Shut ARM表示关闭ARM。这三个均不属于MCU的状态。在本发明的一个具体实施例中,循环检查操作包括依次执行的ACC的连接状态操作、方控件与旋钮的信息接收确认操作、USART2或者USART3的信息接收确认操作、判断电源电压是否正常操作、其他信息接收确认操作。
如图2所示,MCU上电检测电源电压与ACC OK后会上电ARM。所以直接跳转到STATUS_PWRON状态往下执行,在STATUS_SELF_LEARNING状态中当需要断电重启ARM(如电源电压过低断电ARM等)时就会跳转到STATUS_INIT_ARM状态下。
MCU与ARM之间的串口通信采用通用同步/异步串行收发模块,具体为USART1,串口包括TX与RX,帧配置为常规的8位数据位,1位停止位,无校验位,全双工。通用车机MCU配置RX、TX两者收发方式都为中断模式,其中中断接收模式通过MCU对其芯片内部的寄存器的自动置位来实现,可以通过寄存器的IDLE标志位进行判断数据是否接收完成。
MCU与ARM之间的串口协议的解析也是通过类似状态切换进行处理。如图3所示,MCU会在STATUS_SELF_LEARNING状态中循环协议解析的操作。先判断USART1是否中断接收完数据,如果接收完数据,判断当前是否有协议在解析种,如果有,则等待当前上一条协议解析完成,否则开始解析当前条协议的数据,判断当前条协议的数据是否符合协议头,如果不符合,则解析为错误协议,不进行处理,否则判断当前条协议的协议类型,接着对协议数据进行校验,判断校验结果是否正确,如果正确写执行协议操作并返回应答,否则解析为错误协议,不进行处理。在一个具体实施例中,可以采用校验和的方式对协议数据进行校验。
本发明为了防止MCU与ARM之间协议传输错误,MCU上报出错。增加了MCU与ARM串口重发机制,即MCU与ARM之间建立的串口通信机制为串口通信重发机制。如图4所示,MCU上报数据,进入等待ACK流程,每2ms检测串口RX。当USART1接收到ACK时,则退出检测,如果没有收到ACK,判断是否接收到NACK(ACK与nACK是串口的应答协议,由ARM发给MCU),如果是,则重发上报信息,重发上报信息的时候,判断重发上报信息是否超过预设次数,如果超过,则退出等待ACK流程,如果没有超过则继续等待ACK流程,如果没有接收到ACK,则不执行动作,继续等待ACK流程,如果也没有接收到NACK(即在既未收到ACK也未收到nACK时),检测次数加1,且检测重发次数是否超过预设次数,例如是否超过10次,如果是,再判断是不是10次检测都没有收到ACK或者NACK,如果是的话,则重发上报信息1次,接着退出等待ACK流程。如果收到NACK,则重发上报信息,并判断当前重发次数是否超过10次。如果重发超过10次,则退出重发检测。如果重发未超过10次,则重新进入重发检测。
MCU的USART2和USART3串口通信是两个独立的通道,但由于这两者都用作信息传输,软件处理方式基本一致,所以在此将两者合并说明。USART2和USART3串口外设配置与MCU与ARM之间的串口配置相同。MCU接收到ARM传输给USART2或者USART3的数据,将数据直接通过USART2或USART3传输出去,不进行任何处理。MCU接收到USART2或USART3的数据,将数据按照MCU与ARM之间的通信协议进行封装后再传送给ARM。因为USART2与USART3外接的设备存在不同,所以通信的波特率也一定是不同的。针对这个情况,增加了配置USART2、USART3波特率的协议,可由ARM配置MCU的USARTx的波特率。同时MCU也会将配置值保存至FLASH中。
如图5所示,通用车机MCU的心跳功能是基于MCU-ARM的串口通讯的前提下进行的。所谓心跳,即如同心脏跳动般指定时间间隔发送指定数据。本发明在通用车机中定义为每隔1s由ARM向MCU发送心跳协议,以通知MCU此时ARM存活。
由于心跳涉及ARM是否存活的判断,所以对心跳的处理需要完备且合理。结合ARM可能存在的诸多场景;如:运行中、休眠、软件升级等。如果只是单单通过串口数据判断ARM是否存活会有很多漏洞。于是本发明增加了ARM_STATUS的标志GPIO来同步ARM-MCU的状态,即MCU采集与ARM连接的通用输入输出接口的信号来参与ARM与MCU的状态。
MCU读取ARM_STATUS的GPIO的电平,如果读取到高电平,则表示上层没有控制ARM状态或主动设置ARM状态为低。此时MCU不会进行断电重启ARM的操作。即可理解为此时为Debug状态。
如果读取到ARM_STATUS电平为低,表示上层有控制状态,表示此时是ARM在运行中,MCU此时也会进入到心跳检测流程。
为了实现Debug、运行中等状态的切换,MCU增加了Is_Have_HB_For_ARM的判断标志位,标志位定义如下:
0 | 初始状态,MCU上电ARM,等待握手心跳 |
1 | MCU接收到ARM心跳 |
2 | ARM升级中,未使用 |
3 | ARM重启中,未使用 |
4 | Debug状态,MCU不判断心跳 |
5 | ARM休眠 |
当MCU首次进入到心跳流程时,采集与ARM连接的通用输入输出接口的信号为高电平,对对应的判断标志位进行赋值,使其表示Debug状态,此时MCU不判断ARM的心跳信号。具体实施时,MCU首次进入到心跳检测流程代码,这时上层没有控制ARM_STATUS,ARM IO口为低,MCU检测到ARM_STATUS为高。设置Is_Have_HB_For_ARM为4,进入到Debugmode,不检测心跳。
当ARM进入上层控制状态且上层控制ARM IO为高电平,MCU采集到与ARM连接的通用输入输出接口的信号为低电平,判断是否有与ARM握手并建立心跳,如果建立心跳,则对对应的判断标志位进行赋值,使其表示MCU接收到ARM心跳的状态,此时MCU进入心跳检测流程;如果未建立心跳,则对对应判断标志位进行赋值,使其表示等待握手心跳状态,进入未建立心跳流程。具体实施时,开机后进入主屏幕,此时上层运行并控制ARM IO口为高,MCU检测到ARM_STATUS为低,判断当前是否有与ARM握手并建立心跳,如果建立心跳,设置Is_Have_HB_For_ARM为1,进入心跳检测流程。如果未建立心跳,设置Is_Have_HB_For_ARM为0,进入未建立心跳流程。
当ARM进入上层控制状态且上层控制ARM IO为低电平,MCU采集到与ARM连接的通用输入输出接口的信号为高电平,进入Debug模式,并置位Par.User.HeartBeatStart_FLAG标志位。具体实施时,运行过程中如果上层需要处理不定时间的事件。上层控制ARM IO口为低,MCU检测到ARM_STATUS为高,进入Debugmode。置位Par.User.HeartBeatStart_FLAG。当上层处理完成事件后控制ARM IO口为高,MCU检测到ARM_STATUS为低,继续进入到心跳检测流程。
MCU升级包括正常升级与强制升级。当MCU处于升级状态时,会自动跳转到MCUbootloader分区,在这段时间内MCU是不检测心跳的。同时ARM也应该停止心跳的发送防止串口数据错乱。MCU升级完成后会自动重启,同步也会带动ARM的重启。重新进入上电开机的情况中。
当前在开机后MCU有部分需要ARM进行配置的内容,可理解为“初始化MCU”。比如:握手,设置方控上拉,初始化方控等。这些配置内容在系统开机后只发一次。心跳应该在这些“初始化”配置完成后再进行发送,同时结合串口重发机制,防止出现错误。
当机器ACC OFF时,即通用车机熄火后需要休眠,ARM会通过串口告知MCU休眠。这个情况下,ARM应该先切换ARM_STATUS,即从低电平切换到高电平,再停止心跳发送,最后告知MCU进入休眠。
在MCU中要实现休眠且能够通过外部或内部进行唤醒的需求,要使用到Active-Halt的模块功能(即活跃停机模式)。Active-Halt可以配置外部GPIO中断唤醒或者内部RTC计时唤醒两种。在通用车机中,这两种唤醒方式都有使用到。
如图6所示,MCU会在STATUS_SELF_LEARNING状态中循环检测ACC的IO口电平,当ACC的IO电平变化了,则准备开始休眠操作。MCU检测到ACC OFF,收到ARM发来休眠信息,并且ARM_STATUS为高电平,等待一端时间进入ACC OFF状态流程,如等待30秒进入。接着MCU配置外设状态,例如设置频率1M,关闭串口、定时器、ADC外设,配置GPIO电平状态,设置ACC引脚为中断输入,配置RTC每20s唤醒一次等。之后MCU进入到Active-Halt模式(活跃停机模式),判断是否有ACC ON中断信号,如果有,判断电源电压是否正常等,MCU根据图1的流程退出低功耗模式,并等待ARM的心跳。如果没有,则每隔一段时间唤醒,如每隔20秒唤醒一次,唤醒后判断电源电压是否低于10V,如果是,则切断ARM电源,强制关机,MCU不再进行唤醒,如果电源电压大于10V,则判断用户是否设置了休眠自动关机且设定时间到达,如果是,也是切断ARM电源,强制关机,MCU不再进行唤醒,否则重新进入到Active-Halt模式(活跃停机模式)。
如图7所示,按键通过ADC读取电压值进行处理,不同按键的分压电阻不同,按下后MCU检测的电压也不同。MCU每间隔一段时间读取按键的ADC,如果有按键按下,则先进行消抖,接着再判断是否有按键按下,如果有,则串口发送对应按键ADC给ARM,如果检测到没有按键按下,判断按键是否已经按下并松开,如果是的话,此时串口发送按键抬起给ARM。
按键包括了方控与面板,两者的区别是:面板的上拉电阻固定,方控的上拉电阻可配置1K/10/100K。方控的上拉电阻设置成可配是为了适配不同的外部物理按键。例如:外部方控按键的下拉电阻阻值在1K、2K范围内,这时就可以配置方控上拉为1K,从而让不同分压电阻的ADC值可以分散开。如果错误的配置了上拉100K。就可能会出现两个按键识别的ADC值很接近,导致按键错乱的情况。
通用车机的旋钮是将旋钮编码器AB相信号连接一起,接到MCU的GPIO口,MCU通过ADC检测GPIO口的电平变化来解析旋钮当前是正转还是反转。
通用车机的电源是由汽车的电瓶提供,MCU需要检测供电并在供电过高/过低时静音并关闭ARM。待电压恢复正常后重新上电ARM。
在MCU中,电源电压检测共包括三个部分:开机电源电压检测,正常运行中电源电压检测,ACC OFF休眠时的电源电压检测。其中开机电源电压检测与ACC OFF休眠时的电源电压检测已在上面描述,在此说明正常运行中电源电压检测。
MCU在循环检查操作过程中,每隔一段时间查询电源电压,例如每1秒查询一次电源电压,如果电源电压正常,则判断是不是从异常电压状态恢复过来的,如果是则MCU向ARM发送电压恢复正常协议。如果电源电压不正常,则判断是不是对应连续预设时间高于预设最大值,对应预设时间和预设最大值可以根据情况来设定,例如连续10秒高于16V,如果没有则判断是不是对应连续预设时间低于预设最小值,这个对应预设时间和预设最小值也可以根据情况来设置,例如连续10秒低于9V。如果不是则判断电源电压是否对应预设时间低于第二最小值,这个对应预设时间和第二最小值也可以根据情况来设置,例如连续10秒低于10V,如果是的话,则MCU向ARM发送两次低电压警告,接着MCU MUTE PA,MCU MUTE PA代表MCU对车机进行静音处理,即下文例子中的MCU静音功放。在低电压的时候降低车机的功耗。如果电源电压连续对应预设时间大于预设最大值,则MCU向ARM发送电压异常关机倒计时,接着MCU强制关机ARM,等待电压恢复正常之后,MCU再继续循环检查操作过程。
在一个实施例中,当电源电压在9~10V之间,判定为低电压状态,此时为减小电池消耗,MCU会静音功放。
通用车机MCU红外功能包括了红外接收与红外发送,(红外收发都是使用标准的NEC协议)其中红外发送又分为了红外载波发送与红外直连发送。红外载波发送是车机设备接上红外发射器进行无线红外传输,红外直连发送是省略发射器,直接将从设备的红外接收信号接到车机上,通过信号线有线直连传输。
在解码中当识别到4.5ms高电平后对地址码进行判断,如果接收到的地址码与地址反码的确存在互补关系,则开始判断数据码。如果接收到的数据码与数据反码的确存在互补关系,则判定接收协议接收正确。MCU将数据码打包到MCU与ARM之间的通信协议中,通知ARM当前遥控器按下的是哪个键。一般遥控器都存在按键长按的功能,长按时会遥控器会持续发送长按码,MCU会在检测完成NEC协议后会继续检测长按码,直到检测超时(超过200ms未检测到长按码)后,MCU通知ARM遥控器的按键释放。
红外载波发送与红外直连发送的区别为载波发送的协议高电平用38KHz载波替代。两者逻辑基本相同,在此统一说明。按照NEC协议,MCU需要ARM提供地址码,地址反码,数据码,数据反码4个内容,再将这4个内容按照协议整合,增加9ms、4.5ms与结束波形后发出。目前MCU的红外发送只做了NEC协议发送,暂未做长按码发送。
在使用过程中,MCU会需要对一些数据进行保存,当下次开机的时候能够直接读出并配置。就需要使用到内部数据保存的功能。MCU在断电后依旧会保存数据的空间有EEPROM和FLASH,两者的始末地址分别为:EEPROM:0x1000~0x10FF,FLASH:0x8000~0x17FFF。不同MCU型号,地址不同。
RGB三色灯即一个LED里面包含了红绿蓝三个发光体,通过三个IO口分别控制红、绿、蓝三个发光体,三个IO口的不同PWM配置可以实现最终LED显示多种颜色的效果。
本发明的MCU通过模拟PWM的方式来实现三个IO口的不同占空比配置。首先,设定定时器基准时间100us。在每个计时时间到后进行计数并与设定的占空比进行比较。
本发明的MCU有两个硬件PWM输出的配置,分别用以配置显示屏的AVDD与VCOM。MCU通过调用TIMER配置成PWM OUT进行实现,配置同常规配置类似。本发明的MCU固件升级包括了正常升级流程与固件损坏强制升级流程。
本发明的上层指的是车机的系统应用层。
本发明还保护对应的计算机可读存储介质,该计算机存储介质用来存储计算机程序,计算机程序运行时执行本发明上述技术方案的通用车机的控制方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种通用车机的控制方法,其特征在于,包括:
MCU上电开机后,进行相应的检查操作;
所述MCU控制ARM上电开机,与ARM建立串口通信机制,并开始心跳流程;
在所述心跳流程中,所述MCU通过采集与ARM连接的通用输入输出接口的信号,判断ARM的上层控制状态,并对一判断标志位进行赋值,以便准确标识ARM的状态;
所述MCU根据ARM的状态进行相应的心跳流程操作。
2.如权利要求1所述的通用车机的控制方法,其特征在于,当所述MCU首次进入到心跳流程时,采集与ARM连接的通用输入输出接口的信号为高电平,对所述判断标志位进行赋值,使其表示Debug状态,此时MCU不判断ARM的心跳信号。
3.如权利要求1所述的通用车机的控制方法,其特征在于,当ARM进入上层控制状态且上层控制ARM IO为高电平,所述MCU采集到与ARM连接的通用输入输出接口的信号为低电平,判断是否有与ARM握手并建立心跳,如果建立心跳,则对所述判断标志位进行赋值,使其表示MCU接收到ARM心跳的状态,此时MCU进入心跳检测流程;如果未建立心跳,则对所述判断标志位进行赋值,使其表示等待握手心跳状态,进入未建立心跳流程。
4.如权利要求1所述的通用车机的控制方法,其特征在于,当ARM进入上层控制状态且上层控制ARM IO为低电平,所述MCU采集到与ARM连接的通用输入输出接口的信号为高电平,进入Debug模式,并置位对应的标志变量。
5.如权利要求1至4任意一项所述的通用车机的控制方法,其特征在于,所述MCU与ARM建立串口通信机制为串口通信重发机制。
6.如权利要求1至4任意一项所述的通用车机的控制方法,其特征在于,所述检查操作包括依次执行的MCU自检固件操作、判断电源电压是否正常操作、ACC的连接状态操作;
当所述MCU自检固件操作的结果为固件不正常时,则暂停之后的检查操作,进入固件强制升级流程;
当判断电源电压是否正常操作的结果为电源电压不正常时,则暂停之后的检查操作,等待电源电压正常;
当判断ACC的连接状态操作的结果为ACC的连接状态为断开时,则所述MCU进入休眠,等待ACC的连接状态为连接。
7.如权利要求1至4任意一项所述的通用车机的控制方法,其特征在于,在所述心跳流程过程中,所述MCU进行相应的循环检查操作,基于循环检查操作的不同,进入相应的处理流程。
8.如权利要求7所述的通用车机的控制方法,其特征在于,所述循环检查操作包括依次执行的ACC的连接状态操作、方控件与旋钮的信息接收确认操作、USART2或者USART3的信息接收确认操作、判断电源电压是否正常操作、其他信息接收确认操作。
9.计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序运行时执行如权利要求1至8任意一项所述的通用车机的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376907.2A CN114740775A (zh) | 2022-04-11 | 2022-04-11 | 通用车机的控制方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376907.2A CN114740775A (zh) | 2022-04-11 | 2022-04-11 | 通用车机的控制方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114740775A true CN114740775A (zh) | 2022-07-12 |
Family
ID=82281891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210376907.2A Pending CN114740775A (zh) | 2022-04-11 | 2022-04-11 | 通用车机的控制方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114740775A (zh) |
-
2022
- 2022-04-11 CN CN202210376907.2A patent/CN114740775A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120297217A1 (en) | Power controller, power controlling device and power-saving method for power controlling device | |
CN203366017U (zh) | 一种楼宇对讲智能终端及其死机重启系统 | |
CN107589824B (zh) | 一种降低仅支持io唤醒mcu功耗的方法 | |
CN103793306A (zh) | 电子产品自动开关机测试方法及其装置 | |
WO2000063764A1 (en) | Portable computer with differentiated time-out feature | |
JP2012501014A (ja) | Usbリモートウェイクアップ | |
CN107817869A (zh) | 一种蓝牙芯片构架以及基于低功耗蓝牙芯片的时钟控制方法 | |
WO2015085796A1 (zh) | 一种终端节能方法及终端、系统 | |
US20180338206A1 (en) | Control method and control system for audio device | |
CN101420775A (zh) | 一种通信装置及信号传递方法 | |
CN114740775A (zh) | 通用车机的控制方法、存储介质 | |
CN101252733A (zh) | 一种移动终端及模块间的通讯电路及其通讯方法 | |
JP6251363B1 (ja) | 電池駆動型無線通信システムおよび通信方法 | |
JP4510255B2 (ja) | バッテリ駆動式の電子機器における節電方法および装置 | |
US8412146B2 (en) | Mutual awakening system and method thereof between a handheld device and a wireless communication module | |
JP6473494B1 (ja) | 電池駆動型無線通信システムおよび同期補正方式 | |
CN201853126U (zh) | 一种新型的安防系统控制设备 | |
CN115882891A (zh) | 一种射频收发方法及相关组件 | |
WO2022100374A1 (zh) | 一种终端设备分级管理方法及系统 | |
CN205119359U (zh) | 一种基于手机终端的遥控系统 | |
CN211061874U (zh) | 键值动态自显示的可编程usb键盘控制器 | |
CN108923715B (zh) | 振动马达控制系统及电子设备 | |
CN107168924B (zh) | 功能芯片的控制方法和装置 | |
CN114076963A (zh) | 北斗设备的控制装置及控制系统 | |
CN113573389A (zh) | 一种设备低功耗状态下的交互方法、系统及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |