CN111625489A - 一种串口数据分发方法、装置、设备、介质 - Google Patents
一种串口数据分发方法、装置、设备、介质 Download PDFInfo
- Publication number
- CN111625489A CN111625489A CN202010460922.6A CN202010460922A CN111625489A CN 111625489 A CN111625489 A CN 111625489A CN 202010460922 A CN202010460922 A CN 202010460922A CN 111625489 A CN111625489 A CN 111625489A
- Authority
- CN
- China
- Prior art keywords
- serial port
- port data
- data
- application program
- function number
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种串口数据分发方法、装置、设备、介质,该方法包括:获取待分发的串口数据;对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;根据所述功能号将所述串口数据分发到对应的应用程序。由此可见,本申请在对获取到的串口数据进行处理,得到所述串口数据的功能号之后,便可以按照所述串口数据的功能号将所述串口数据分发到对应的应用程序,这样能够减小程序之间的耦合性,便于移植,且串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性,直接按照串口数据的功能号将串口数据分发给相应的应用程序,减小了系统开销,提高了数据分发效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种串口数据分发方法、装置、设备、介质。
背景技术
计算机系统会将一些对实时性要求较高的设备挂在MCU(Microcontroller Unit,微控制单元)上,由MCU控制这些外设,并将各个外设的数据通过串口发送给主CPU(CentralProcessing Unit,中央处理器),通常是跑LINUX系统的ARM CPU,由Linux系统进行处理,并将对外设的控制命令,通过串口发送给MCU,由MCU的实际去控制外设。
针对这种架构,通常的做法是,在Linux应用层设置一个串口解析模块作为一个服务进程或者线程,负责解析串口数据,并将数据分发给各个功能模块处理。在这种情况下,程序的耦合性大,每一个功能模块都必须依赖串口解析模块,如果串口解析模块不工作,则每一个功能模块都无法工作;且串口解析模块工作在应用层,可靠性和优先级肯定低于驱动层,当系统资源紧张时,通常会导致串口解析模块先被系统kill掉,从而导致其他功能模块不工作;此外在串口解析模块分发数据的时候,必然导致进程或者线程间的切换,系统开销大,效率低。
发明内容
有鉴于此,本申请的目的在于提供一种串口数据分发方法、装置、设备、介质,能够减小程序之间的耦合性,便于移植,且提高了系统的可靠性,减小了系统开销,提高了数据分发效率。其具体方案如下:
第一方面,本申请公开了一种串口数据分发方法,包括:
获取待分发的串口数据;
对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;
根据所述功能号将所述串口数据分发到对应的应用程序。
可选地,所述对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,包括:
利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
可选地,所述利用驱动层的线路规程对所述串口数据进行处理之前,还包括:
在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU为运行系统的CPU。
可选地,所述串口数据分发方法,还包括:
通过所述应用程序对串口进行访问操作。
可选地,所述通过所述应用程序对串口进行访问操作,包括:
通过应用程序对所述串口进行开启操作;
和/或,通过应用程序对所述串口进行数据写入操作;
和/或,通过应用程序对所述串口进行数据读取操作;
和/或,通过应用程序对所述串口进行关闭操作;
和/或,通过应用程序对所述串口进行poll操作。
可选地,所述通过应用程序对所述串口进行开启操作的过程中,包括:
在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。
可选地,所述获取待分发的串口数据之前,还包括:
为各个所述应用程序注册对应的功能号,以便根据所述功能号确定所述串口数据是否属于对应的所述应用程序。
第二方面,本申请公开了一种串口数据分发装置,包括:
数据获取模块,用于获取待分发的串口数据;
数据处理模块,用于对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;
数据分发模块,用于根据所述功能号将所述串口数据分发到对应的应用程序。
可选地,所述数据处理模块,具体用于利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
可选地,所述串口数据分发方法,还包括:
驱动部署模块,用于在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU为运行系统的CPU。
可选地,所述串口数据分发装置,还包括:
访问模块,用于通过所述应用程序对串口进行访问操作。
可选地,所述访问模块,具体用于:
通过应用程序对所述串口进行开启操作;
和/或,通过应用程序对所述串口进行数据写入操作;
和/或,通过应用程序对所述串口进行数据读取操作;
和/或,通过应用程序对所述串口进行关闭操作;
和/或,通过应用程序对所述串口进行poll操作。
可选地,所述串口数据分发装置,还包括:
数据结构分配模块,用于在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。
可选地,所述串口数据分发装置,还包括:
功能号注册模块,用于为各个所述应用程序注册对应的功能号,以便根据所述功能号确定所述串口数据是否属于对应的所述应。
第三方面,本申请公开了一种串口数据分发设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的串口数据分发方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的串口数据分发方法。
可见,本申请先获取待分发的串口数据,然后对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,再根据所述功能号将所述串口数据分发到对应的应用程序。由此可见,本申请在对获取到的串口数据进行处理,得到所述串口数据的功能号之后,便可以按照所述串口数据的功能号将所述串口数据分发到对应的应用程序,这样能够减小程序之间的耦合性,便于移植,且串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性,直接按照串口数据的功能号将串口数据分发给相应的应用程序,减小了系统开销,提高了数据分发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种串口数据分发方法流程图;
图2为本申请公开的一种具体的串口数据分发方法流程图;
图3为本申请公开的一种串口数据分发原理示意图;
图4为本申请公开的一种串口数据分发装置结构示意图;
图5为本申请公开的一种串口数据分发设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本申请实施例公开了一种串口数据分发方法,该方法包括:
步骤S11:获取待分发的串口数据。
在具体的实施过程中,需要先获取待分发给应用程序的串口数据,以便将所述串口数据分发给相应的应用程序进行处理,其中,所述应用程序为串口对应的应用程序。
步骤S12:对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
可以理解的是,在获取到所述串口数据之后,还需要对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,其中,一个功能号对应一个应用程序。通过所述功能号可以匹配到一个具体的应用程序。
步骤S13:根据所述功能号将所述串口数据分发到对应的应用程序。
在得到所述功能号之后,便可以根据所述功能号将所述串口数据分发到对应的应用程序。在确定出所述功能号之后,便可以根据所述功能号确定出所述串口数据需要发送到的应用程序,便可以直接将所述串口数据分发到对应的应用程序。
可见,本申请先获取待分发的串口数据,然后对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,再根据所述功能号将所述串口数据分发到对应的应用程序。由此可见,本申请在对获取到的串口数据进行处理,得到所述串口数据的功能号之后,便可以按照所述串口数据的功能号将所述串口数据分发到对应的应用程序,这样能够减小程序之间的耦合性,便于移植,且串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性,直接按照串口数据的功能号将串口数据分发给相应的应用程序,减小了系统开销,提高了数据分发效率。
参见图2所示,本申请实施例公开了一种具体的串口数据分发方法,该方法包括:
步骤S21:为各个应用程序注册对应的功能号,以便根据所述功能号确定串口数据是否属于对应的所述应用程序。
在实际应用中,需要先为各个应用程序注册对应的功能号,以便根据所述功能号确定串口数据是否属于对应的所述应用程序。具体的,就是需要先为各个应用程序注册对应的功能号,这样可以方便根据所述功能号确定需要分发的串口数据是属于哪一个应用程序的,直接将串口数据分发到对应的应用程序即可。所述为各个应用程序注册对应的功能号,包括:在获取到应用程序上线之后,为所述应用程序分配对应的功能号。在为所述应用程序分配对应的功能号之后,可以将所述功能号与对应的应用程序ID(identity,身份标识码)存储到内存中,以便之后分发数据使用。
步骤S22:获取待分发的串口数据。
步骤S23:利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
可以理解的是,在获取到所述串口数据之后,还需要对所述串口数据进行处理。具体的,就是利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。这样串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性。
步骤S24:根据所述功能号将所述串口数据分发到对应的应用程序。
参见图3所示,为一种串口数据分发原理示意图。一个功能模块对应一个应用程序,串口驱动连接着不同的功能模块,在接收到串口数据之后,串口驱动的串口数据中的功能号进行识别,并根据识别到的功能号将串口数据分发到对应的功能模块。
在具体的实施过程中,在利用驱动层的线路规程对所述串口数据进行处理之前,还包括:在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU可以为运行系统的CPU,所述系统包括但不限于Linux系统、Windows系统等。
在实际应用中,在形成驱动层的线路规程之后,还可以通过所述应用程序对串口进行访问操作。具体的,所述通过所述应用程序对所述串口进行访问操作,包括:通过应用程序对所述串口进行开启操作;和/或,通过应用程序对所述串口进行数据写入操作;和/或,通过应用程序对所述串口进行数据读取操作;和/或,通过应用程序对所述串口进行关闭操作;和/或,通过应用程序对所述串口进行poll操作,具体的,就是通过应用程序对所述串口进行poll函数调用操作,poll是Linux中的字符设备驱动中的一个函数。
串口接收到的数据可以遵循以下数据结构,其中,在Linux系统中,串口协议数据结构如下:
也即,接收到的串口数据包括但不限于消息头、功能号、消息长度、消息内容以及校验和,其中,功能号为串口数据中必须包括的内容。
其中,所述通过应用程序对所述串口进行开启操作的过程中,包括:在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。具体的,所述控制数据结构如下:
具体的,串口驱动会为每一个注册的功能动态分配一个messagectrl,所有的messagectrl结构将以链表的方式存储,相应的,所述通过应用程序对所述串口进行开启操作,包括:调用分配kmalloc函数,动态分配messagectrl结构;初始化messagectrl结构;将messagectrl结构赋值给tty->disc_data指针;将messagectrl结构加入链表。
进一步的,所述为各个应用程序注册对应的功能号,包括:设置当前messagectrl结构为链表的首元素;如果当前messagectrl的function_id等于ioctl arg参数(这个参数传入的是要注册的function_id)的值则返回错误,流程结束;将当前messagectrl设置为链表的下一个元素;如果当前messagectrl为NULL(空),执行将tty->disc_data指针保存的messagectrl结构的function_id赋值为arg的步骤,否则执行设置当前messagectrl结构为链表的首元素的步骤;将tty->disc_data指针保存的messagectrl结构的function_id赋值为arg。
其中,所述通过应用程序对所述串口进行数据读取操作,包括:设置messagectrl结构tty->disc_data指针保存的结构;如果messagectrl结构的readptr等于writeptr指针(缓冲区没有数据),执行如果设置O_NONBLOCK属性,返回错误码,流程结束的步骤,否则执行调用copy_to_use r函数拷贝缓冲区的数据的步骤;如果设置O_NONBLOCK属性,返回错误码,流程结束;调用wait_event_interruptible函数,进行阻塞;调用copy_to_user函数拷贝缓冲区的数据;更新readptr指针。
其中,所述通过应用程序对所述串口进行数据写入操作,包括:采用标准的操作调用tty->ops->write函数发送数据。
其中,所述通过应用程序对所述串口进行关闭操作,包括:设置messagectrl结构tty->disc_data指针保存的结构;将messagectrl结构从链表中移除;释放messagectrl结构分配的内存。
在实际应用中,串口驱动还可以进行receive_buf操作(数据缓存操作)。具体的,所述串口驱动还可以进行receive_buf操作,包括:接收到一包完整的数据;设置当前messagectrl结构为链表的首元素;如果当前messagectrl的function_id等于接收到串口数据的function_id,执行如果当前messagectrl为NULL,丢弃本报数据,流程结束的步骤;将当前messagectrl设置为链表的下一个元素;如果当前messagectrl为NULL,执行如果当前messagectrl为NULL,丢弃本报数据,流程结束的步骤,否则执行设置当前messagectrl结构为链表的首元素的步骤;如果当前messagectrl为NULL,丢弃本报数据,流程结束;拷贝接收的包到当前messagectrl结构的缓冲区;更新writeptr;调用wake_up_interruptible指针唤醒等待队列。
在实际应用中,目标串口可以先获取与自身相连接的MCU发送的待分发的串口数据,其中,所述待分发的串口数据满足所述目标串口对应的串口协议数据结构;然后对所述串口数据进行解析,找到所述串口数据中function_id字段对应的数据,得到所述串口数据对应的功能号,根据所述串口数据对应的功能号和预先保存的功能号与应用程序ID映射关系表,确定所述串口数据对应的应用程序ID,将所述串口数据分发到所述串口数据对应的应用程序ID对应的应用程序中。其中,所述功能号与应用程序ID映射关系表为应用程序申请功能号时保存的功能号与应用程序ID之间的映射关系表。
参见图4所示,本申请实施例公开了一种串口数据分发装置,包括:
数据获取模块11,用于获取待分发的串口数据;
数据处理模块12,用于对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;
数据分发模块13,用于根据所述功能号将所述串口数据分发到对应的应用程序。
可见,本申请先获取待分发的串口数据,然后对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,再根据所述功能号将所述串口数据分发到对应的应用程序。由此可见,本申请在对获取到的串口数据进行处理,得到所述串口数据的功能号之后,便可以按照所述串口数据的功能号将所述串口数据分发到对应的应用程序,这样能够减小程序之间的耦合性,便于移植,且串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性,直接按照串口数据的功能号将串口数据分发给相应的应用程序,减小了系统开销,提高了数据分发效率。
进一步的,所述数据处理模块,具体用于利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
在具体的实施过程中,所述串口数据分发方法,还包括:
驱动部署模块,用于在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU为运行系统的CPU。
在实际应用中,所述串口数据分发装置,还包括:
访问模块,用于通过所述应用程序对串口进行访问操作。
进一步的,所述访问模块,具体用于:
通过应用程序对所述串口进行开启操作;
和/或,通过应用程序对所述串口进行数据写入操作;
和/或,通过应用程序对所述串口进行数据读取操作;
和/或,通过应用程序对所述串口进行关闭操作;
和/或,通过应用程序对所述串口进行poll操作。
具体的,所述串口数据分发装置,还包括:
数据结构分配模块,用于在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。
进一步的,所述串口数据分发装置,还包括:
功能号注册模块,用于为各个所述应用程序注册对应的功能号,以便根据所述功能号确定所述串口数据是否属于对应的所述应。
进一步的,参见图5所示,本申请实施例还公开了一种串口数据分发设备,包括:处理器21和存储器22。
其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的串口数据分发方法。
其中,关于上述串口数据分发方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
获取待分发的串口数据;对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;根据所述功能号将所述串口数据分发到对应的应用程序。
可见,本申请先获取待分发的串口数据,然后对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,再根据所述功能号将所述串口数据分发到对应的应用程序。由此可见,本申请在对获取到的串口数据进行处理,得到所述串口数据的功能号之后,便可以按照所述串口数据的功能号将所述串口数据分发到对应的应用程序,这样能够减小程序之间的耦合性,便于移植,且串口数据的分发工作在驱动层完成,即使系统资源紧张,也不会把驱动Kill掉,提高了系统的可靠性,直接按照串口数据的功能号将串口数据分发给相应的应用程序,减小了系统开销,提高了数据分发效率。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU为运行系统的CPU。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:通过所述应用程序对串口进行访问操作。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:通过应用程序对所述串口进行开启操作;和/或,通过应用程序对所述串口进行数据写入操作;和/或,通过应用程序对所述串口进行数据读取操作;和/或,通过应用程序对所述串口进行关闭操作;和/或,通过应用程序对所述串口进行poll操作。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:为各个所述应用程序注册对应的功能号,以便根据所述功能号确定所述串口数据是否属于对应的所述应用程序。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种串口数据分发方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种串口数据分发方法,其特征在于,包括:
获取待分发的串口数据;
对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;
根据所述功能号将所述串口数据分发到对应的应用程序。
2.根据权利要求1所述的串口数据分发方法,其特征在于,所述对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号,包括:
利用驱动层的线路规程对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号。
3.根据权利要求2所述的串口数据分发方法,其特征在于,所述利用驱动层的线路规程对所述串口数据进行处理之前,还包括:
在主CPU的驱动层上部署串口驱动,以便形成所述线路规程,其中,所述主CPU为运行系统的CPU。
4.根据权利要求1所述的串口数据分发方法,其特征在于,还包括:
通过所述应用程序对串口进行访问操作。
5.根据权利要求4所述的串口数据分发方法,其特征在于,所述通过所述应用程序对串口进行访问操作,包括:
通过应用程序对所述串口进行开启操作;
和/或,通过应用程序对所述串口进行数据写入操作;
和/或,通过应用程序对所述串口进行数据读取操作;
和/或,通过应用程序对所述串口进行关闭操作;
和/或,通过应用程序对所述串口进行poll操作。
6.根据权利要求5所述的串口数据分发方法,其特征在于,所述通过应用程序对所述串口进行开启操作的过程中,包括:
在检测到有新应用程序开启所述串口时,调用预设分配函数为所述新应用程序分配控制数据结构,以便利用所述控制数据结构对所述新应用程序对应的串口数据进行处理。
7.根据权利要求1至6任一项所述的串口数据分发方法,其特征在于,所述获取待分发的串口数据之前,还包括:
为各个所述应用程序注册对应的功能号,以便根据所述功能号确定所述串口数据是否属于对应的所述应用程序。
8.一种串口数据分发装置,其特征在于,包括:
数据获取模块,用于获取待分发的串口数据;
数据处理模块,用于对所述串口数据进行处理,以便从所述串口数据中确定出所述串口数据对应的功能号;
数据分发模块,用于根据所述功能号将所述串口数据分发到对应的应用程序。
9.一种串口数据分发设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的串口数据分发方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的串口数据分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010460922.6A CN111625489B (zh) | 2020-05-27 | 2020-05-27 | 一种串口数据分发方法、装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010460922.6A CN111625489B (zh) | 2020-05-27 | 2020-05-27 | 一种串口数据分发方法、装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625489A true CN111625489A (zh) | 2020-09-04 |
CN111625489B CN111625489B (zh) | 2022-06-14 |
Family
ID=72271364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010460922.6A Active CN111625489B (zh) | 2020-05-27 | 2020-05-27 | 一种串口数据分发方法、装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625489B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888703A (zh) * | 2009-05-12 | 2010-11-17 | 中兴通讯股份有限公司 | 一种接入分组数据服务节点的方法、系统和终端 |
CN102546347A (zh) * | 2010-12-17 | 2012-07-04 | 中兴通讯股份有限公司 | 基于proc技术的虚拟串口热插拔的实现方法及系统 |
CN102866976A (zh) * | 2012-09-17 | 2013-01-09 | 山东神戎电子股份有限公司 | 一种嵌入式系统中串口分时复用方法 |
CN105068947A (zh) * | 2015-08-20 | 2015-11-18 | 浪潮软件集团有限公司 | 一种基于驱动层处理串口通信的方法 |
US20170132084A1 (en) * | 2012-10-01 | 2017-05-11 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
CN108830596A (zh) * | 2018-05-28 | 2018-11-16 | 银盒达信息技术(深圳)有限公司 | 一种信息的获取方法、信息的获取装置及终端设备 |
-
2020
- 2020-05-27 CN CN202010460922.6A patent/CN111625489B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888703A (zh) * | 2009-05-12 | 2010-11-17 | 中兴通讯股份有限公司 | 一种接入分组数据服务节点的方法、系统和终端 |
CN102546347A (zh) * | 2010-12-17 | 2012-07-04 | 中兴通讯股份有限公司 | 基于proc技术的虚拟串口热插拔的实现方法及系统 |
CN102866976A (zh) * | 2012-09-17 | 2013-01-09 | 山东神戎电子股份有限公司 | 一种嵌入式系统中串口分时复用方法 |
US20170132084A1 (en) * | 2012-10-01 | 2017-05-11 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
CN105068947A (zh) * | 2015-08-20 | 2015-11-18 | 浪潮软件集团有限公司 | 一种基于驱动层处理串口通信的方法 |
CN108830596A (zh) * | 2018-05-28 | 2018-11-16 | 银盒达信息技术(深圳)有限公司 | 一种信息的获取方法、信息的获取装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111625489B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182317B2 (en) | Dual-driver interface | |
US6886164B2 (en) | Selection of a resource in a distributed computer system | |
US7386619B1 (en) | System and method for allocating communications to processors in a multiprocessor system | |
US7219121B2 (en) | Symmetrical multiprocessing in multiprocessor systems | |
EP0889622B1 (en) | Apparatus and method for remote buffer allocation and management for message passing between network nodes | |
WO2022095348A1 (zh) | 一种计算资源的远程映射方法、装置、设备及存储介质 | |
CA2279382A1 (en) | Web request broker controlling multiple processes | |
CN110659131B (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN108874549B (zh) | 资源复用方法、装置、终端和计算机可读存储介质 | |
EP4177763A1 (en) | Data access method and related device | |
CN112732501A (zh) | 一种测试方法及多处理器soc芯片 | |
CN111625489B (zh) | 一种串口数据分发方法、装置、设备、介质 | |
CN111177032A (zh) | 缓存空间申请方法、系统、装置及计算机可读存储介质 | |
CN110851091A (zh) | 基于vdi的打印方法、装置、设备及存储介质 | |
CN113326104A (zh) | 一种虚拟机内部配置的修改方法、系统及装置 | |
US8793423B2 (en) | Servicing interrupt requests in a computer system | |
CN112118327A (zh) | 一种公有云下方便快捷的修改弹性网卡ip的方法及系统 | |
CN108595270B (zh) | 一种内存资源的回收方法及装置 | |
CN111724262B (zh) | 一种应用服务器后续包查询系统及其工作方法 | |
CN109117278A (zh) | 一种移动终端及其进程间通信的限制方法、存储介质 | |
CN115454896A (zh) | 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质 | |
CN111131078B (zh) | 报文散列方法、装置、fpga模组及处理器模组 | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
US20020083209A1 (en) | Method and system for registering binary data | |
CN113312592B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |