嵌入式系统串口模块匹配方法、装置、介质和计算机设备与流程

文档序号:14676931发布日期:2018-06-12 21:37阅读:214来源:国知局
嵌入式系统串口模块匹配方法、装置、介质和计算机设备与流程

本发明涉及数据处理技术领域,特别是涉及一种嵌入式系统串口模块匹配方法、装置、介质和计算机设备。



背景技术:

随着嵌入式技术的快速发展,手机、ipad、刷卡器等嵌入式设备已经广泛应用于现实生活中,人们对嵌入式设备操作的流畅性和多功能的要求日益强烈。目前一种多功能嵌入式设备硬件一般由主控器和多个传感器模块组成,每一种传感器又区分多个不同的硬件厂家,不同的硬件模块的匹配方法又都不一样,为确保系统操作的流畅性与多功能的实现,必须克服对系统中多个不同类型模块的快速匹配问题。

传统的嵌入式系统模块匹配方法是依次轮询匹配,直到匹配成功;例如,手机可以支持多款摄像头,各个厂家的摄像头都具有各自的识别操作方法,手机开机时需要依次按不同厂家的识别方法来尝试识别当前手机具体的摄像头,直到找到为止,这样识别速度慢。传统的嵌入式系统模块匹配方法存在对多模块的匹配效率低的缺点。



技术实现要素:

基于此,有必要针对上述问题,提供一种可提高多模块匹配效率的嵌入式系统串口模块匹配方法、装置、介质和计算机设备。

一种嵌入式系统串口模块匹配方法,包括以下步骤:

以当前串口波特率发送身份识别命令至串口模块,所述身份识别命令用于所述串口模块进行身份命令处理生成应答信息;

接收所述串口模块返回的应答消息,并根据所述应答消息检测模块验证是否通过;

若模块验证通过,则根据所述应答消息得到对应串口模块的类型信息;

若模块验证未通过,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率,并返回所述以当前串口波特率发送身份识别命令至串口模块的步骤。

一种嵌入式系统串口模块匹配装置,包括:

命令发送模块,用于以当前串口波特率发送身份识别命令至串口模块,所述身份识别命令用于所述串口模块进行身份命令处理生成应答信息;

验证检测模块,用于接收所述串口模块返回的应答消息,并根据所述应答消息检测模块验证是否通过;

信息获取模块,用于当模块验证通过时,根据所述应答消息得到对应串口模块的类型信息;

通信设置模块,用于当模块验证未通过时,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率,并控制所述命令发送模块再次以当前串口波特率发送身份识别命令至串口模块。

一种可读存储介质,存储有计算机程序,存储的计算机程序被处理器执行时实现上述方法的步骤。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

上述嵌入式系统串口模块匹配方法、装置、介质和计算机设备,以当前串口波特率发送身份识别命令至串口模块,接收串口模块返回的应答消息,并根据应答消息检测模块验证是否通过。若模块验证通过,则根据应答消息得到对应串口模块的类型信息;若模块验证未通过,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率,再次以当前串口波特率发送身份识别命令至串口模块。通过串口通信的方式以不同串口波特率发送身份识别命令,进行各串口模块的匹配处理完成对挂载的串口模块的类型识别,能够同时对串口模块进行数据发送和接收,且可支持在每一种串口波特率下进行多个串口模块的匹配处理,提高了对多个串口模块的匹配效率。

附图说明

图1为一实施例中嵌入式系统串口模块匹配方法的流程图;

图2为一实施例中嵌入式系统串口模块结构示意图;

图3为一实施例中嵌入式系统串口模块匹配逻辑示意图;

图4为一实施例中嵌入式系统串口模块匹配程序流程图;

图5为一实施例中嵌入式系统串口模块匹配装置的结构图。

具体实施方式

在一个实施例中,一种嵌入式系统串口模块匹配方法,适用于对嵌入式系统中多串口模块的快速匹配。如图1所示,该方法包括以下步骤:

步骤S110:以当前串口波特率发送身份识别命令至串口模块。

身份识别命令用于串口模块进行身份命令处理生成应答信息,串口模块具体可以是摄像头等通过串口进行通信的外接设备,身份识别命令为嵌入式系统可识别的串口模块所对应的命令。具体地,可通过串口控制器以当前串口波特率发送身份识别命令至所有连接的串口模块,串口控制器支持多种串口波特率,各串口模块支持的串口波特率、识别ID(identity,身份)和匹配应答互不相同。串口控制器选取一个支持的串口波特率作为当前串口波特率,在该串口波特率中将嵌入式系统支持的所有串口模块对应的识别ID分别作为身份识别命令发送至串口模块。

发送身份识别命令至串口模块的具体方式并不唯一,在一个实施例中,步骤S110包括:根据当前串口波特率将预设模块命令列表中的身份识别命令发送至串口模块。具体地,预设模块命令列表中存储嵌入式系统支持的所有串口模块对应的身份识别命令,在每一种串口波特率下将预设模块命令列表中的身份识别命令发送至所有串口模块,进行各个串口模块的匹配处理。

步骤S120:接收串口模块返回的应答消息,并根据应答消息检测模块验证是否通过。

串口模块在接收到身份识别命令后进行身份命令处理,并生成应答信息返回给串口控制器。若串口模块在支持的串口波特率下接收到匹配的识别ID,则在应答消息中携带对应的匹配应答返回至串口控制器,以告知串口控制器匹配成功;反之则不会在应答消息中携带匹配应答。串口控制器若从串口模块返回的应答消息中检测到匹配应答,则说明模块验证通过,对串口模块的匹配成功。

步骤S130:若模块验证通过,则根据应答消息得到对应串口模块的类型信息。对应地,若模块验证通过,串口控制器可直接结合当前串口波特率和应答消息中携带的匹配应答,得知发送该应答消息的串口模块的类型。

步骤S140:若模块验证未通过,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率。

根据预设的波特率列表获取下一串口波特率作为当前串口波特率,返回步骤S110,再次发送身份识别命令至串口模块。具体地,串口控制器可预先将支持的多种串口波特率存入波特率列表中,每当在一种串口波特率中未能完成对串口模块的匹配时,则换另一种串口波特率进行匹配操作。根据预设的波特率列表获取下一串口波特率作为当前串口波特率的具体方式并不唯一,例如,如果是从波特率列表随机选取串口波特率,则每次选取时检测波特率列表中是否存在没有测试的串口波特率,选择其中一种没有测试过的串口波特率进行匹配操作;如果是从波特率列表中按排列顺序进行选取,则每次选取时根据排列顺序将下一个串口波特率作为新的当前串口波特率进行模块匹配操作。其中,波特率列表中串口波特率的排列顺序并不唯一,在一个实施例中,波特率列表中串口波特率按从小到大的顺序进行排序。按串口波特率从小到大的顺序进行模块匹配操作,避免发生遗漏,操作简便可靠。

此外,根据串口控制器支持的串口波特率的不同,波特率列表中存储的串口波特率的类型也对应不同,本实施例中,波特率列表中的串口波特率包括115200bits/s、57600bits/s、38400bits/s、19200bits/s、9600bits/s、4800bits/s、2400bits/s、230400bits/s和60800bits/s。

在一个实施例中,若模块验证未通过,进行步骤S140之前,嵌入式系统串口模块匹配方法还包括以下步骤:

根据预设的波特率列表检测是否存在未测试的串口波特率;若是,则进行步骤S140。对应地,以从波特率列表中按排列顺序选取串口波特率为例,在当前串口波特率下完成匹配操作之后,串口控制器根据排列顺序检测波特率列表中是否还存在下一个串口波特率,若存在则将下一个串口波特率作为新的当前串口波特率再次进行模块匹配操作。可以理解,如果不存在未测试的串口波特率,则说明在所有支持的串口波特率下对串口模块的匹配操作均失败,该串口模块属于存储嵌入式系统不支持的串口模块,串口控制器可输出匹配失败信息,以便操作人员知晓。

在一个实施例中,步骤S130之后,嵌入式系统串口模块匹配方法还包括将对应串口模块的类型信息上传至主控制器的步骤。主控制器具体可以是CPU(Central Processing Unit,中央处理器)控制器等,在获取串口模块的类型后,还将类型信息上传至主控制器,以便主控制器对匹配成功的串口模块进行相应控制,提高了操作便利性。

此外,在一个实施例中,步骤S110之前,嵌入式系统串口模块匹配方法还包括以下步骤:

检测是否接收到串口识别指令;若是,则进行步骤S110;若否,则返回检测是否接收到串口识别指令的步骤。

具体地,串口控制器检测是否接收到主控制器发送的串口识别指令,若是,则执行在每一种波特率下对各个串口模块进行匹配处理的操作,若否,则串口控制器再次检测是否接收到主控制器。将接收到串口识别指令作为启动串口模块匹配处理的启动条件,操作人员可根据实际需求控制匹配操作启动,提高了操作便利性。

为便于更好地理解上述嵌入式系统串口模块匹配方法,下面结合具体实施例进行详细的解释说明。

上述嵌入式系统串口模块匹配方法,基于串口通信技术通过CPU串口与外设模块进行数据传输,集成各个模块的匹配方法快速匹配出当前系统中实际具体的模块。如图2所示为嵌入式系统串口模块结构图,嵌入式系统通过串口控制器与串口模块进行通信,一个串口控制器(如串口控制器1或串口控制器2)可以支持多种串口模块(串口模块1、串口模块2、串口模块3、…)。串口控制器支持多种串口波特率(115200bits/s,57600bits/s,38400bits/s,19200bits/s,9600bits/s,4800bits/s,2400bits/s,230400bits/s,460800bits/s等),而每一种串口模块可支持的串口波特率又不一定相同,例如串口模块1支持115200bits/s,57600bits/s和38400bits/s,串口模块2支持19200bits/s,9600bits/s和4800bits/s。每种串口模块的匹配命令与方法又不相同,例如串口模块1的识别ID为ID1,匹配应答为ACK_ID1,串口模块2的识别ID为ID2,匹配应答为ACK_ID2。

如图3所示,为解决一个串口控制器如何能快速精准的识别到实际挂载的是哪种模块(模块1或者模块2),CPU通过标号1的串口控制器与串口模块完成通信。标号1的串口控制器在每一种波特率中进行标号2的模块ID命令处理,对模块1、模块2进行匹配操作,标号2的模块ID处理涵盖了当前嵌入式系统中所有支持的模块列表。在完成标号2的模块ID处理后,进入标号3的应答处理,收到模块的应答信息,进而判断是否检验通过,如果通过则匹配模块成功,否则,依次进行下一个波特率的匹配操作(115200bits/s->标号1->标号2->标号3->19200bits/s->标号1->标号2->标号3->38400bits/s->标号1->标号2->标号3)。

如图3和图4所示,标号1的串口控制器的控制方法采用SerialConf(Speed)函数,其中输入参数Speed为具体的波特率值。标号2的模块ID处理方法采用ModuleProcess(ID_CMD)函数,其中输入参数ID_CMD为具体模块的命令ID。标号3的模块应答处理方法采用ModuleAck(Current_ID)函数,其中输出参数Current_ID为当前模块的ID应答返回值。SerialConf(Speed)更改波特率后,调用ModuleProcess(ID_CMD)进行各个模块的命令ID匹配处理,最后调用ModuleAck(Current_ID),如果成功,则整个识别过程结束,否则继续下一种波特率的处理。

上述嵌入式系统串口模块匹配方法,通过串口通信的方式以不同串口波特率发送身份识别命令,进行各串口模块的匹配处理完成对挂载的串口模块的类型识别,能够同时对串口模块进行数据发送和接收,且可支持在每一种串口波特率下进行多个串口模块的匹配处理,提高了对多个串口模块的匹配效率。

在一个实施例中,一种嵌入式系统串口模块匹配装置,适用于对嵌入式系统中多串口模块的快速匹配。如图5所示,该装置包括命令发送模块110、验证检测模块120、信息获取模块130和通信设置模块140。

命令发送模块110用于以当前串口波特率发送身份识别命令至串口模块。

身份识别命令用于串口模块进行身份命令处理生成应答信息,串口模块具体可以是摄像头等通过串口进行通信的外接设备,身份识别命令为嵌入式系统可识别的串口模块所对应的命令。发送身份识别命令至串口模块的具体方式并不唯一,在一个实施例中,命令发送模块110根据当前串口波特率将预设模块命令列表中的身份识别命令发送至串口模块。具体地,预设模块命令列表中存储嵌入式系统支持的所有串口模块对应的身份识别命令,在每一种串口波特率下将预设模块命令列表中的身份识别命令发送至所有串口模块,进行各个串口模块的匹配处理。

在一个实施例中,命令发送模块110以当前串口波特率发送身份识别命令至串口模块之前,还检测是否接收到串口识别指令;若是,则以当前串口波特率发送身份识别命令至串口模块;若否,则再次检测是否接收到串口识别指令。将接收到串口识别指令作为启动串口模块匹配处理的启动条件,操作人员可根据实际需求控制匹配操作启动,提高了操作便利性。

验证检测模块120用于接收串口模块返回的应答消息,并根据应答消息检测模块验证是否通过。

串口模块在接收到身份识别命令后进行身份命令处理,并生成应答信息返回给串口控制器。若串口模块在支持的串口波特率下接收到匹配的识别ID,则在应答消息中携带对应的匹配应答,反之则不会在应答消息中携带匹配应答。若从串口模块返回的应答消息中检测到匹配应答,则说明模块验证通过,对串口模块的匹配成功。

信息获取模块130用于当模块验证通过时,根据应答消息得到对应串口模块的类型信息。对应地,若模块验证通过,可直接结合当前串口波特率和应答消息中携带的匹配应答,得知发送该应答消息的串口模块的类型。

在一个实施例中,信息获取模块130根据应答消息得到对应串口模块的类型信息之后,还将对应串口模块的类型信息上传至主控制器。在获取串口模块的类型后,还将类型信息上传至主控制器,以便主控制器对匹配成功的串口模块进行相应控制,提高了操作便利性。

通信设置模块140用于当模块验证未通过时,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率,并控制命令发送模块110再次以当前串口波特率发送身份识别命令至串口模块。

根据预设的波特率列表获取下一串口波特率作为当前串口波特率,再次发送身份识别命令至串口模块。具体地,可预先将支持的多种串口波特率存入波特率列表中,每当在一种串口波特率中未能完成对串口模块的匹配时,则换另一种串口波特率进行匹配操作。根据预设的波特率列表获取下一串口波特率作为当前串口波特率的具体方式并不唯一,在一个实施例中,波特率列表中串口波特率按从小到大的顺序进行排序。按串口波特率从小到大的顺序进行模块匹配操作,避免发生遗漏,操作简便可靠。

根据串口控制器支持的串口波特率的不同,波特率列表中存储的串口波特率的类型也对应不同,本实施例中,波特率列表中的串口波特率包括115200bits/s、57600bits/s、38400bits/s、19200bits/s、9600bits/s、4800bits/s、2400bits/s、230400bits/s和60800bits/s。

在一个实施例中,通信设置模块140在模块验证未通过时,还根据预设的波特率列表检测是否存在未测试的串口波特率;若是,则根据预设的波特率列表获取下一串口波特率作为当前串口波特率,并控制命令发送模块110再次以当前串口波特率发送身份识别命令至串口模块。对应地,以从波特率列表中按排列顺序选取串口波特率为例,在当前串口波特率下完成匹配操作之后,串口控制器根据排列顺序检测波特率列表中是否还存在下一个串口波特率,若存在则将下一个串口波特率作为新的当前串口波特率再次进行模块匹配操作。

上述嵌入式系统串口模块匹配装置,通过串口通信的方式以不同串口波特率发送身份识别命令,进行各串口模块的匹配处理完成对挂载的串口模块的类型识别,能够同时对串口模块进行数据发送和接收,且可支持在每一种串口波特率下进行多个串口模块的匹配处理,提高了对多个串口模块的匹配效率。

在一个实施例中,一种可读存储介质,存储有计算机程序,存储的计算机程序被处理器执行时实现上述方法的步骤。

在一个实施例中,一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。

上述可读存储介质和计算机设备,通过串口通信的方式以不同串口波特率发送身份识别命令,进行各串口模块的匹配处理完成对挂载的串口模块的类型识别,能够同时对串口模块进行数据发送和接收,且可支持在每一种串口波特率下进行多个串口模块的匹配处理,提高了对多个串口模块的匹配效率。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1