CN101908025A - 一种串口使用权控制装置及控制方法 - Google Patents
一种串口使用权控制装置及控制方法 Download PDFInfo
- Publication number
- CN101908025A CN101908025A CN2009101120090A CN200910112009A CN101908025A CN 101908025 A CN101908025 A CN 101908025A CN 2009101120090 A CN2009101120090 A CN 2009101120090A CN 200910112009 A CN200910112009 A CN 200910112009A CN 101908025 A CN101908025 A CN 101908025A
- Authority
- CN
- China
- Prior art keywords
- application
- module
- application module
- serial ports
- administrative mechanism
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种串口使用权控制装置及控制方法。该控制装置包括一硬件驱动模块、一应用模块接口及一管理机制模块。该硬件驱动模块连接所述的硬件串口。该应用模块接口连接所述的多个串口外设应用模块。该管理机制模块连接硬件驱动模块和应用模块接口。该管理机制模块之内设置一参数设置表,该参数设置表具有一按应用模块优先级高低排列的优先级队列,该管理机制模块用于按优先级队列对各应用模块的使用申请、退出申请和等候申请进行调度。该应用模块接口应答管理机制模块的调度。发明人巧妙地在串口使用权控制方法中引入管理机制,通过管理机制有序管理各个应用模块之间的使用申请、等候申请、退出申请,以克服背景技术中所存在的不足。
Description
所属技术领域
本发明涉及一种串口使用权控制装置及控制方法。
背景技术
嵌入式软件开发过程中,常碰到硬件串口较少(甚至只有1个),而串口外设较多,需要分时复用的情况。现有的分时复用采用如下二种控制方式。第一种是采用电子开关做硬件通道切换,例如CN200510030862,在程序中由中断、查询或者MMI触发进入各应用模块,并在各应用模块中直接调用驱动接口函数、通道切换函数、通讯参数设置函数等。由于未建立有效的管理机制来降低各应用模块间的耦合,因此这种简单的调用机制使各应用模块间的耦合性很强,很容易导致其它正在使用的应用模块中断进程并无法自动恢复,只能通过重载该应用模块的初始化代码来解决;另外,当前正在使用的应用模块名称、应用模式、通讯参数等信息也很难在各个应用模块中得到同步,优先级控制混乱,维护困难。第二种是通过软件控制串口数据在多个内核线程间进行切换,其复用机制并非建立在如何管理硬件驱动模块之上,所以未能解决如何管理各应用模块的各种申请及使用条件,例如:CN200710108666。
发明内容
本发明提供一种串口使用权控制装置及控制方法,其克服了背景技术的串口使用权控制方法所存在的应用模块间的耦合性强、程序混乱、维护困难的不足。
本发明解决其技术问题所采用的技术方案之一是:
一种串口使用权控制装置,它连接至少一个硬件串口和多个串口外设应用模块,该控制装置,它包括:
一硬件驱动模块,它连接所述的硬件串口;
一应用模块接口,它连接所述的多个串口外设应用模块;及
一管理机制模块,它连接硬件驱动模块和应用模块接口;
其中:
该管理机制模块之内设置一参数设置表,该参数设置表具有一按应用模块优先级高低排列的优先级队列,该管理机制模块用于按参数设置表的优先级队列对各应用模块的使用申请、退出申请和等候申请进行调度;
该应用模块接口应答管理机制模块的调度。
一较佳实施例中,该控制装置,它还包括:
一设备初始化模块,它连接管理机制模块和硬件驱动模块,用于初始化硬件驱动模块;
一管理机制初始化模块,它连接管理机制模块,用于初始化管理机制模块。
一较佳实施例中,该管理机制模块的调度包括发出切换通知和内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置的应用模块,并同时发出状态改变的信号通知。
一较佳实施例中,该应用模块接口之内封装有应用模块驱动、外设通道切换、应用模式切换及通讯参数切换,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
本发明解决其技术问题所采用的技术方案之一是:一种串口使用权控制方法,它连接至少一个硬件串口和多个串口外设应用模块,该控制方法,它包括:
步骤1,申请应用模块通过应用模块接口向管理机制模块发出使用申请、退出申请和等候申请的指令;
步骤2,管理机制模块接收指令,并按应用模块优先级高低排列对各应用模块的使用申请、退出申请和等候申请进行调度;及
步骤3,应用模块接口接收管理机制模块的调度,并应答调度。
一较佳实施例中,该步骤1,申请应用模块通过应用模块接口向管理机制模块发出使用申请指令;
该步骤2,管理机制模块接收使用申请指令,并按应用模块优先级高低排列判断申请的应用模块的优先级是否高于串口正在使用的应用模块的优先级,如果是则让正在使用的应用模块执行退出中断回调函数,并发出切换通知,然后执行步骤3,否则表示申请失败,退出申请;
该步骤3,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
一较佳实施例中,该控制方法,它还包括:
步骤4,该管理机制模块的调度包括内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置应用模块,并同时发出状态改变的信号通知;
步骤5,正在使用的应用模块与串口之间进行数据传输。
一较佳实施例中,该步骤1,申请应用模块通过应用模块接口向管理机制模块发出等候申请指令;
该步骤2,管理机制模块接收等候申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则表示申请失败,退出申请,否则执行步骤3;
该步骤3,将申请的应用模块的状态设置为等候状态,并将等候的应用模块列入等候队列。
一较佳实施例中,该步骤1,申请应用模块通过应用模块接口向管理机制模块发出退出申请指令;
该步骤2,管理机制模块接收退出申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则执行步骤21,否则表示申请失败,退出申请;
步骤21,管理机制模块判断等候队列是否为空,如果是则执行步骤22,否则执行步骤23;
步骤22,将正在使用的应用模块设置为空闲的应用模块,然后执行步骤25;
步骤23,管理机制模块将等候队列中优先级最高的应用模块设置为正在使用的应用模块,将原来的正在使用的应用模块设置为空闲的应用模块,然后发出切换通知;
步骤24,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换;
步骤25,发出状态改变通知;
步骤26,申请成功。
本技术方案与背景技术相比:本申请人巧妙地在串口使用权控制方法中引入管理机制,通过管理机制有序管理各个应用模块之间的使用申请、等候申请、退出申请,以克服背景技术中所存在的不足,并具有如下优点:1、从有效降低应用模块间的耦合性;2、简化开发与维护流程。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明一较佳实施例的控制装置的方框示意图。
图2是本发明的一较佳实施例的控制方法的使用申请的流程图。
图3是本发明的一较佳实施例的控制方法的等候申请的流程图。
图4是本发明的一较佳实施例的控制方法的退出申请的流程图。
具体实施方式
请查阅图1,一种串口使用权控制装置,它连接至少一个硬件串口和多个串口外设应用模块(每个应用模块之内都设置有一中断函数),该控制装置,它包括一硬件驱动模块、一应用模块接口、一管理机制模块、一设备初始化模块和一管理机制初始化模块。该硬件驱动模块,它连接所述的硬件串口,例如,它提供IO控制接口、远程IO扩展接口(包含如:I2C扩展远程IO等)、
通道译码等;该应用模块接口,它连接所述的多个串口外设应用模块;该管理机制模块,它连接硬件驱动模块和应用模块接口;该设备初始化模块,它连接管理机制模块和硬件驱动模块,用于初始化硬件驱动模块,用于提供必要的设备初始化操作(比如:需要使用I2C扩展远程IO时必须对I2C芯片的寄存器进行配置);该管理机制初始化模块,它连接管理机制模块,用于初始化管理机制模块。
该管理机制模块之内设置一参数设置表,该参数设置表具有一按应用模块优先级高低排列的优先级队列,该管理机制模块用于按参数设置表的优先级队列对各应用模块的使用申请、退出申请和等候申请进行调度。该管理机制模块的调度包括发出切换通知和内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置的应用模块,并同时发出状态改变的信号通知。
该应用模块接口应答管理机制模块的调度。该应用模块接口之内封装有应用模块驱动、外设通道切换、应用模式切换及通讯参数切换。其中:应用模块驱动:按照协议对硬件设备进行控制并提供给应用模块经过封装的接口,比如:当电子开关通过远程IO扩展芯片CAT9554来控制时,就需要实现CAT9554的I2C接口驱动等;外设通道切换:通过对电子开关的控制来实现串口线RXD、TXD、CTS、RTS、DTR、DSR等与各硬件模块的连接关系;应用模式切换:处理串口数据的分流模式,比如:可能是通过参数设置将接收到的数据发送到不同的进程,也可能是通过参数设置使串口数据发送到不同的缓冲池或者解析模块,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
请查阅图2,一种串口使用权的使用申请的控制方法,它包括:
步骤1,申请应用模块通过应用模块接口向管理机制模块发出使用申请指令;
步骤2,管理机制模块接收使用申请指令,并按应用模块优先级高低排列判断申请的应用模块的优先级是否高于串口正在使用的应用模块的优先级,如果是则让正在使用的应用模块执行退出中断回调函数(调用应用模块的中断函数并执行),并发出切换通知,然后执行步骤3,否则表示申请失败,退出申请;
步骤3,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
步骤4,该管理机制模块的调度包括内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置应用模块,并同时发出状态改变的信号通知;
步骤5,正在使用的应用模块与串口之间进行数据传输。
请查阅图3,一种串口使用权的等候申请的控制方法,它包括:
步骤1,申请应用模块通过应用模块接口向管理机制模块发出等候申请指令;
步骤2,管理机制模块接收等候申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则表示申请失败,退出申请,否则执行步骤3;
步骤3,将申请的应用模块的状态设置为等候状态,并将等候的应用模块列入等候队列。
例如:当前正在手写状态,此时系统需要打印,则打印模块先提出申请,管理机制模块判断打印模块的优先级比手写模块的优先级要高,则会调用手写模块的中断函数;在此中断函数中,可以通过设置标志或者发送信号的方法来通知手写模块需要被中断,待手写模块处理完这些收尾工作后即进行切换:根据打印模块的硬件结构调用相应驱动接口并做电子开关切换、通讯参数设定、应用模式设定等工作。
请查阅图4,一种串口使用权的退出申请的控制方法,它包括:
步骤1,申请应用模块通过应用模块接口向管理机制模块发出退出申请指令;
步骤2,管理机制模块接收退出申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则执行步骤21,否则表示申请失败,退出申请;
步骤21,管理机制模块判断等候队列是否为空,如果是则执行步骤22,否则执行步骤23;
步骤22,将正在使用的应用模块设置为空闲的应用模块,然后执行步骤25;
步骤23,管理机制模块将等候队列中优先级最高的应用模块设置为正在使用的应用模块,将原来的正在使用的应用模块设置为空闲的应用模块,然后发出切换通知;
步骤24,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换;
步骤25,发出状态改变通知;
步骤26,申请成功。
任何一个应用模块都具备三种可能的状态:空闲状态、等候状态、正在使用状态,并且任意时刻仅对应唯一的一种状态。正在使用状态被中断成功后进入空闲状态;空闲状态可以申请进入等状态;当正在使用的应用模块主动退出后如果无新应用模块发出申请,则在等候队列中优先级最高的模块将被切换到正在使用状态。
以上所述,仅为本发明较佳实施例而已,故不能以此限定本发明实施的范围,即依本发明申请专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明专利涵盖的范围内。
Claims (9)
1.一种串口使用权控制装置,它连接至少一个硬件串口和多个串口外设应用模块,其特征是:该控制装置,它包括:
一硬件驱动模块,它连接所述的硬件串口;
一应用模块接口,它连接所述的多个串口外设应用模块;及
一管理机制模块,它连接硬件驱动模块和应用模块接口;
其中:
该管理机制模块之内设置一参数设置表,该参数设置表具有一按应用模块优先级高低排列的优先级队列,该管理机制模块用于按参数设置表的优先级队列对各应用模块的使用申请、退出申请和等候申请进行调度;
该应用模块接口应答管理机制模块的调度。
2.根据权利要求1所述的一种串口使用权控制装置,其特征在于:该控制装置,它还包括:
一设备初始化模块,它连接管理机制模块和硬件驱动模块,用于初始化硬件驱动模块;
一管理机制初始化模块,它连接管理机制模块,用于初始化管理机制模块。
3.根据权利要求1或2所述的一种串口使用权控制装置,其特征在于:该管理机制模块的调度包括发出切换通知和内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置的应用模块,并同时发出状态改变的信号通知。
4.根据权利要求3所述的一种串口使用权控制装置,其特征在于:该应用模块接口之内封装有应用模块驱动、外设通道切换、应用模式切换及通讯参数切换,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
5.一种串口使用权控制方法,它连接至少一个硬件串口和多个串口外设应用模块,其特征是:该控制方法,它包括:
步骤1,申请应用模块通过应用模块接口向管理机制模块发出使用申请、退出申请和等候申请的指令;
步骤2,管理机制模块接收指令,并按应用模块优先级高低排列对各应用模块的使用申请、退出申请和等候申请进行调度;及
步骤3,应用模块接口接收管理机制模块的调度,并应答调度。
6.根据权利要求5所述的一种串口使用权控制方法,其特征在于:
该步骤1,申请应用模块通过应用模块接口向管理机制模块发出使用申请指令;
该步骤2,管理机制模块接收使用申请指令,并按应用模块优先级高低排列判断申请的应用模块的优先级是否高于串口正在使用的应用模块的优先级,如果是则让正在使用的应用模块执行退出中断回调函数,并发出切换通知,然后执行步骤3,否则表示申请失败,退出申请;
该步骤3,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换。
7.根据权利要求6所述的一种串口使用权控制方法,其特征在于:该控制方法,它还包括:
步骤4,该管理机制模块的调度包括内建状态机对使用令牌进行适时传递,该使用令牌传递是指:将申请的应用模块的状态设置为正在使用的应用模块,并将原来正在使用的应用模块设置为闲置应用模块,并同时发出状态改变的信号通知;
步骤5,正在使用的应用模块与串口之间进行数据传输。
8.根据权利要求5所述的一种串口使用权控制方法,其特征在于:
该步骤1,申请应用模块通过应用模块接口向管理机制模块发出等候申请指令;
该步骤2,管理机制模块接收等候申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则表示申请失败,退出申请,否则执行步骤3;
该步骤3,将申请的应用模块的状态设置为等候状态,并将等候的应用模块列入等候队列。
9.根据权利要求5所述的一种串口使用权控制方法,其特征在于:
该步骤1,申请应用模块通过应用模块接口向管理机制模块发出退出申请指令;
该步骤2,管理机制模块接收退出申请指令,并判断申请的应用模块是否为正在使用的应用模块,如果是则执行步骤21,否则表示申请失败,退出申请;
步骤21,管理机制模块判断等候队列是否为空,如果是则执行步骤22,否则执行步骤23;
步骤22,将正在使用的应用模块设置为空闲的应用模块,然后执行步骤25;
步骤23,管理机制模块将等候队列中优先级最高的应用模块设置为正在使用的应用模块,将原来的正在使用的应用模块设置为空闲的应用模块,然后发出切换通知;
步骤24,该应用模块接口接收到切换通知后进行应用模块驱动、外设通道切换、应用模式切换和通讯参数切换;
步骤25,发出状态改变通知;
步骤26,申请成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101120090A CN101908025A (zh) | 2009-06-05 | 2009-06-05 | 一种串口使用权控制装置及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101120090A CN101908025A (zh) | 2009-06-05 | 2009-06-05 | 一种串口使用权控制装置及控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101908025A true CN101908025A (zh) | 2010-12-08 |
Family
ID=43263489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101120090A Pending CN101908025A (zh) | 2009-06-05 | 2009-06-05 | 一种串口使用权控制装置及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101908025A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102482A (zh) * | 2013-04-12 | 2014-10-15 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统的控制台串口与应用串口复用方法及应用 |
CN104570881A (zh) * | 2015-01-21 | 2015-04-29 | 张丽 | 适用于单串口设备与多上位机的即时通讯方法及设备 |
CN106445855A (zh) * | 2016-09-05 | 2017-02-22 | 深圳震有科技股份有限公司 | 一种非对称处理系统下多核共用串口的方法及系统 |
CN108715173A (zh) * | 2018-08-06 | 2018-10-30 | 河南思维轨道交通技术研究院有限公司 | 交互自动控制装置及系统 |
-
2009
- 2009-06-05 CN CN2009101120090A patent/CN101908025A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102482A (zh) * | 2013-04-12 | 2014-10-15 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统的控制台串口与应用串口复用方法及应用 |
CN104102482B (zh) * | 2013-04-12 | 2018-09-07 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统的控制台串口与应用串口复用方法及应用 |
CN104570881A (zh) * | 2015-01-21 | 2015-04-29 | 张丽 | 适用于单串口设备与多上位机的即时通讯方法及设备 |
CN106445855A (zh) * | 2016-09-05 | 2017-02-22 | 深圳震有科技股份有限公司 | 一种非对称处理系统下多核共用串口的方法及系统 |
CN106445855B (zh) * | 2016-09-05 | 2019-02-01 | 深圳震有科技股份有限公司 | 一种非对称处理系统下多核共用串口的方法及系统 |
CN108715173A (zh) * | 2018-08-06 | 2018-10-30 | 河南思维轨道交通技术研究院有限公司 | 交互自动控制装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100365589C (zh) | 帮助多端口主机适配器的端口测试的装置、系统和方法 | |
CN103294630B (zh) | 一种嵌入式linux系统中实现串口多路复用的方法 | |
CN102455940B (zh) | 一种定时器和异步事件的处理方法及系统 | |
CN103532823A (zh) | 物联网消息处理方法、装置及系统 | |
CN101493786B (zh) | 一种计算机的虚拟机系统及设备访问方法 | |
CN101894088A (zh) | 一种解决i2c总线上多主机冲突的方法及装置 | |
KR20090005078A (ko) | 스마트카드 임베디드 조작 시스템 및 작업처리 방법 | |
CN101484873A (zh) | 接口的同时运行 | |
CN103166821A (zh) | 实现串口通信的方法、设备及系统 | |
CN105786674A (zh) | 一种调度方法及电子设备 | |
CN101908025A (zh) | 一种串口使用权控制装置及控制方法 | |
CN103164355B (zh) | 一种切换方法和电子设备 | |
CN102446144A (zh) | 一种串口资源调度方法及装置、系统 | |
CN101650694A (zh) | Usb设备、计算机及实现usb设备的虚拟设备配置的方法 | |
CN101567873B (zh) | 一种多任务并行处理方法及系统 | |
CN101699416B (zh) | 主机与多卡座读卡器的通信方法和系统 | |
CN111722944A (zh) | 一种基于nio的airt-ros通信方法及系统 | |
CN101645051B (zh) | 一种gpio中断控制装置、芯片及一种gpio中断控制方法 | |
CN106489137A (zh) | 通用串行总线(usb)通信系统和方法 | |
CN113658351B (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN102200770B (zh) | 一种基于pci的信息交互系统及方法、上位机 | |
CN101582057B (zh) | 一种控制人机接口设备通信传输的方法、设备和系统 | |
CN107229591B (zh) | 多串口通信方法及装置 | |
CN1277224C (zh) | 嵌入式系统中主从式多处理器的引导方法 | |
CN1300661C (zh) | 计算机系统及电源管理状态切换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101208 |