串口优先级评价方法和调用方法、存储介质与流程

文档序号:14419003阅读:961来源:国知局
串口优先级评价方法和调用方法、存储介质与流程

本发明涉及一种优先级评价策略和串口调用策略。



背景技术:

在工业控制领域,串口通信是计算机与其他下位机/设备进行数据通讯的常用方法,具有使用灵活、数据传输可靠、编程简单等几个优点,特别是在实时监控系统中得到广泛应用。为系统设计方便,下位机的cpci、usb等总线也经常虚拟转换为串口通信。

由于工业控制领域多路数据通信的需要,上位机经常需要同时操作多路通信接口,多路通信接口操作的稳定性、易用性和效率显得尤为重要。

为满足需求,一般采用线程池来管理多串口通讯的多线程应用,用配置项来保存各路串口对应的硬件端口,从而可以保证通信时打开正确的端口。

多串口通信时,在操作系统设备列表里存在多个硬件接口。采用线程池的方式来管理多个串口时,若串口个数超过20个,操作系统在单一应用里管理轮询多个线程会对系统性能造成较大影响。此种情况下,通信的实时性无法保证,通信过程有失败的风险。

采用配置项来保存串口设定信息不能适应cpci总线转串口的通信方式。cpci设备启动时,板卡启动顺序存在改变的可能性,在系统内注册的串口地址和号码会变更。串口变更后,上位机不能检测串口变更,仍然根据设定的串口号发送数据,数据不能到达正确的下位机端口,通信过程难以完成。



技术实现要素:

本发明提供一种存储有提高多串口通信效率和灵活性的软件指令的存储设备,以解决现有技术存在的问题。

本发明采用以下技术方案:

一种多串口优先级评价方法,包括

(1)对串口分为以发送数据为主的串口和接收侦听数据为主的串口两类,每个分类均设定一个分值;

(2)对串口根据实时性的高低,划分为高实时性的串口和低实时性的串口两类;

多串口的优先级顺序由高到低依次为:接收数据为主、高实时性的串口,接收数据为主、低实时性的串口,发送数据为主、高实时性的串口,发送数据为主、低实时性的串口。

(3)动态计算前t时刻内的各串口通信数据量,对串口的通信数据量按照预设的高通信数据量与低通信数据量的控制比例化分为两部分;

进一步,多串口的优先级顺序由高到低依次为:接收数据为主、高实时性、低通信数据量的串口,接收数据为主、高实时性、高通信数据量的串口,接收数据为主、低实时性、低通信数据量的串口,接收数据为主、低实时性、高通信数据量的串口,发送数据为主、高实时性、低通信数据量的串口,发送数据为主、高实时性、高通信数据量的串口,发送数据为主、低实时性、低通信数据量的串口,发送数据为主、低实时性、高通信数据量的串口。

一种多串口调用方法,包括

(1)设定多串口通信中每个串口的优先级评价策略;建立串口通信线程池,线程池中线程个数与系统连接的串口个数相同;

(2)初始启动时所有线程的优先级均为最低级;

(3)将接收侦听数据为主的线程设为高优先级接收数据后,再通过优先级评价策略对各线程的优先级不断进行评价,并根据评价的优先级结果进行通信;

(4)设定休眠时间内处于零通信状态的线程进入休眠程度挂起;

(5)以发送数据为主的线程在空闲时进入休眠,需要再次发送命令时唤醒。

进一步,处于最高级优先级的线程数目不超过n个,n为正整数。

进一步,在多串口两侧的上位机和下位机进行通信的通信协议中设置设备类型会话环节和设备类型标识;

上位机启动后,轮询各串口,发出询问命令,下位机接收到查询命令后,返回设备类型标识;

上位机接收到回复的设备类型标识后,自动记录配置信息。

进一步,所述上位机每隔设定查询时间发出一轮查询命令,进行串口配置信息的更新。

所述设备类型标识包括设备类型和设备编号。

一种存储介质,所述存储介质上存储适用于处理器执行的计算机指令,且所述计算机指令被所述处理器执行时实施上述的方法。

本发明的有益效果:通过设定优先级评价策略,使得上位机的操作系统中,多串口操作效率更高,更加稳定,实时性能够得到保证,且设置的串口优先级调整策略设置灵活,可以根据设备类型进行灵活设定。串口配置更加自动化,不需要人工进行,同时可以预防设备重新上电造成的串口顺序变化。

附图说明

图1为本发明的多串口优先级评价流程图。

图2为本申请的自动串口匹配配置流程图。

具体实施方式

下面结合具体实施方式对本发明作进一步详细说明。

本发明针对目前通信系统中多串口同时通信,通信实时性无法保证,通信过程有可能失败的问题,提出一种多串口优先级评价策略,该策略对进行同时通信的多串口进行优先级分级,高优先级的优先通信,低优先级的滞后通信,提高系统通信的实时性和成功率。

该优先权评价策略能够应用于任何进行多串口通信的装置之间。

如图1所示,本发明的多串口优先级评价方法,包括以下内容:

(1)对串口根据通信特点划分为以发送数据为主的串口和接收侦听数据为主的串口两类;

(2)对串口根据实时性的高低,划分为高实时性的串口和低实时性的串口两类,其中高低实时性要求为主观设定,由设计人员根据串口连接的串口通信优先级要求进行提前设定;

根据上述两个分类方法对串口的优先级进行分类后,设定多串口的优先级顺序由高到低依次为:接收数据为主、高实时性的串口,接收数据为主、低实时性的串口,发送数据为主、高实时性的串口,发送数据为主、低实时性的串口。对于优先级相同的串口,分值高的

上述的分类方法还可包括:

(3)动态计算前t时刻通信时间内的各串口通信数据量,对串口的通信数据量按照预设的高通信数据量与低通信数据量的控制比例化分为两部分;t预先设定,可取值一分钟或者两分钟等;而控制比例根据具体需要设定,例如在本发明的一些实施例中,对个串口按照通信数据量从高到底排序后,可设定后80%的串口为低通信数据量的串口,前20%的串口为高通信数据量的串口。

上述进一步分类后,多串口的优先级顺序由高到低依次为:接收数据为主、高实时性、低通信数据量的串口,接收数据为主、高实时性、高通信数据量的串口,接收数据为主、低实时性、低通信数据量的串口,接收数据为主、低实时性、高通信数据量的串口,发送数据为主、高实时性、低通信数据量的串口,发送数据为主、高实时性、高通信数据量的串口,发送数据为主、低实时性、低通信数据量的串口,发送数据为主、低实时性、高通信数据量的串口。

本发明同时提供一种多串口调用方法,进行高效率高实时性的串口调用,该方法包括:

(1)设定多串口通信中每个串口的优先级评价策略,用于对个串口的通信优先级进行设定;该优先级评价策略可采用现有的评价方法,也可采用本发明的前述优先级评价策略。

然后在系统启动时建立串口通信线程池,线程池中线程个数与系统连接的串口个数相同。

(2)系统启动时,首先将所有线程的优先级均设为最低级;

(3)对已经根据通信特点划分为以发送数据为主的串口和接收侦听数据为主的串口,将接收侦听数据为主的线程设为高优先级并接收数据;

(4)判断接收数据量的大小,然后通过优先级评价策略对各线程的优先级不断进行评价,并根据评价的优先级结果进行通信;

(4)设定休眠时间内处于零通信状态的线程进入休眠程度挂起;

(5)以发送数据为主的线程在空闲时进入休眠状态,需要再次发送数据时唤醒。

处于最高级优先级的线程数目不超过n个,n为正整数,用于避免处于最高优先级的线程数目过多,达不到本发明实时性的要求,作为一种实施例,n可取值10。

在通信过程中,可能存在由于下位机重新启动或者下位机板卡重新插拔换为会造成的串口配置信息变更,进而导致通信错误,为应对该通信错误,本发明还设计一种串口设置的自适应策略,用于进行自动串口匹配配置。如图2所示,该方法包括:

在进行通信的串口两侧的上位机和下位机的通信协议中设置设备类型会话环节和设备类型标识,会话环节为常用的通信与应答,设备类型标识至少包括设备类型和设备编号。

当上位机启动后,回轮询各串口,发出询问命令,下位机接收到询问命令后,应答返回设备类型标识;

上位机接收到回复的设备类型标识后,自动记录串口的配置信息。

为防止板卡插拔造成的串口混乱,上位机每隔设定查询时间发出一轮查询命令,进行串口配置信息的更新。

本发明的方法在进行串口优先级评价时,各种参数可以根据实际需要或者实际情况进行设定,设置灵活,且串口配置更加的自动化,不需要进行人工配置,可预防设备重新上电或者热插拔导致的串口顺序混乱。

本发明还提供一种存储介质,该存储介质上存储适用于处理器执行的计算机指令,且计算机指令被处理器执行时实施上述本发明的串口优先级评价策略、串口调度策略、串口设置自适应策略。

该存储介质可以包括各种形式的计算机可读介质,例如易失性存储器、费易失性存储器、半导体存储器、磁性介质存储器等。

在存储介质上存储一个或者多个计算机程序指令,处理器可执行该指令,以实施上述本发明公开的至少一种方法进行多串口的通信。在所述的存储介质中还可存储多种数据,用于处理器直接调用实施本发明的方法。

以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的技术人员来说,在不脱离本发明整体构思前提下,还可以作出若干改变和改进,这些也应该视为本发明的保护范围。

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