公开/公告号CN102811152A
专利类型发明专利
公开/公告日2012-12-05
原文格式PDF
申请/专利权人 南京鑫三强科技实业有限公司;
申请/专利号CN201210315912.9
申请日2012-08-31
分类号H04L12/40(20060101);
代理机构32207 南京知识律师事务所;
代理人张苏沛
地址 210005 江苏省南京市管家桥85号
入库时间 2023-12-18 07:36:17
法律状态公告日
法律状态信息
法律状态
2019-08-16
未缴年费专利权终止 IPC(主分类):H04L12/40 授权公告日:20141008 终止日期:20180831 申请日:20120831
专利权的终止
2018-07-03
专利权的转移 IPC(主分类):H04L12/40 登记生效日:20180613 变更前: 变更后: 申请日:20120831
专利申请权、专利权的转移
2014-10-08
授权
授权
2013-01-30
实质审查的生效 IPC(主分类):H04L12/40 申请日:20120831
实质审查的生效
2012-12-05
公开
公开
技术领域
本发明涉及智慧校园、数字校园的一卡通领域的物联网终端为多主方式的实时交易数据交换处理的应用。
背景技术
近年来,随着物联网终端与一卡通信息化建设的进一步加快,智慧城市、智慧校园和数字化校园一卡通得到了广泛的应用。但是在物联网终端遍及的当今,各厂商对于物联网终端总线方式通讯类的设备,均采用RS485或RS422,但是由于RS485或RS422总线自身控制的限制,其通信方式只能以主站轮询的方式进行,数据传输只能采用异步上传,使得此类的物联网终端在交易或身份认证时不能实时到数据中心认证,导致系统的实时性、可靠性较差。因此各厂商只能通过增加中间网络控制前置的方式。但是即使增加了网络控制前置,只是增加了总线方式下可连接的网联终端的数量,但是数据传输要通过网络控制前置机中转,还是异步方式,不能实时到数据中心认证。另外,RS485或RS422总线同络,还会因个别节点出现问题,使得总线处于“死锁”状态。其主要技术瓶颈如下:
1、 数据交换采用异步交换,导致系统实时性、可靠性差。
2、 网络中个别节点出现问题,容易使得总线处于“死锁”状态,导致系统可靠性差。
发明内容
为了概括本发明的目的,在这里描述了本发明的某些方面、优点和新颖特征。应了解,无需所有这些方面、优点和特征包含在任一特殊的实施例中。
为了弥补现有技术的不足,本发明提出了一种多主总线网络通讯实时交易数据交换实现方法。从根本上改变传统RS485或RS422总线以主站轮询的方式。改由终端设备多主方式上送服务请求,提高网络数据交互的速度,使交易或身份认证直接到数据中心认证。达到数据实时处理、白名单实时自动更新的目的。
为了达到上述目的,本发明提出了一种多主总线网络通讯实时交易数据交换实现方法:
1、在硬件设计上,选用CAN总线技术替换原RS485或RS422总线网传输数据,CAN(Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
2、数据采集服务采用高效率的网络I/O模型-IOCP,这是处理大量客户端并发访问服务器常用的一种windows平台下的架构。IOCP是应用程序使用线程池处理异步I/O请求的一种机制,事先开好N个线程(N=CPU个数*2+2),存储在线程池中。然后将所有的用户请求都投递到I/O端口上,然后N个工作线程逐一地从端口中取得用户消息并加以处理。这样既减少了线程的资源,又提高了线程的利用率。加速了上位机数据处理能力。保证数据实时交换处理。
3、将数据采集服务架构分成两部分处理,分别为控制流和数据流,增加数据采集与交换的速度。
所述控制流是负责网络IO部分,也就是从网络读取和发送数据。所述数据流是处理业务逻辑。通常情况下他们是分离的,网络IO部分不需要管理业务逻辑具体做什么工作,而后者也不关心数据怎么得来,怎么送到网络上。两者就是一个生产者消费者关系。本着一个原则,让生产者尽量的生产数据(即快速的收发数据),减少消费者的消费时间(业务处理时间缩短),即通信和业务的分离机制。
通过将网络IO收发数据用到的线程池和业务逻辑中用到的线程池分离,就是上面所说的通信和业务的分离。通信建立特定线程用来收发数据,业务逻辑线程将收到的数据进行业务层面的分析处理,各自处理各自的业务,就像工厂流水线上的工人,以使系统的产能最大化。增加数据采集与交换的速度。
4、数据动态访问采用连接池技术。
对于一个复杂的数据库(动态库)访问的应用,由于通信的每一次建立都需要一次完整的“握手”过程,其中就包含了大量的相应等待时间,因此,对于连接的不当使用会成为系统性能的巨大瓶颈。
本发明采用连接池技术,可以解决资源频繁分配、释放所造成的大量性能开销。在减少系统消耗的基础上,可以增进系统运行环境的平稳性(减少内存碎片及临时进程或线程的数量)。可以使数据库(动态库)连接得到复用。
所述连接池是在初始化的过程中,已经创建了若干个数据库连接在池中备用。此时连接的初始化工作在系统初始化时已经完成,这种事前预备机制能很好的将系统的性能开销“前移”,对于数据请求业务而言,直接利用现有的可用空闲连接,避免了连接数据库连接的初始化和释放过程的时间开销,从而缩短了系统整体相应的时间。增加数据采集与交换的速度。
5、在数据空间的管理上引用内存池技术,来管理系统内存的获取和释放,防止大量客户端并发访问服务器造成系统资源不足,降低内存泄漏的风险。
IOCP 的服务器,其稳定和高性能的基础在于内存的应用,因为服务器需要频繁申请释放内存用于接收数据和数据的处理。因此在数据空间的管理上,我们引入了“内存池”的机制。所述内存池,就是申请一大块内存,避免重复申请释放。需要时从池中取出一块内存,用完后在放回池里。所以,在线程的安全问题上,基于原子操做的SLIST系列函数刚好适用,因为是先进后出的原则,所以可以尽可能的避免换页。
本发明的有益效果:本发明创造的一种多主总线网络通讯实时交易数据交换实现方法从硬件设计到软件设计上采用多种创新,与业界485总线数据采集处理相比有以下明显优点:
(1) 用CAN总线技术替换原RS485或RS422总线网传输数据。
CAN(Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前RS-485基于线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
第一:CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。
第二:CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
第三:CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现,从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。具体如下:
(2)、数据采集服务采用高效率的网络I/O模型-IOCP,这是处理大量客户端并发访问服务器常用的一种windows平台下的架构。IOCP是应用程序使用线程池处理异步I/O请求的一种机制,事先开好N个线程(N=CPU个数*2+2),存储在线程池中。然后将所有的用户请求都投递到I/O端口上,然后N个工作线程逐一地从端口中取得用户消息并加以处理。这样既减少了线程的资源,又提高了线程的利用率。加速了上位机数据处理能力。保证数据实时交换处理。
(3)、将数据采集服务架构分成两部分处理,分别为控制流和数据流,增加数据采集与交换的速度。
所述控制流是负责网络IO部分,也就是从网络读取和发送数据。 所述数据流是处理业务逻辑。通常情况下他们是分离的,网络IO部分不需要管理业务逻辑具体做什么工作,而后者也不关心数据怎么得来,怎么送到网络上。两者就是一个生产者消费者关系。本着一个原则,让生产者尽量的生产数据(即快速的收发数据),减少消费者的消费时间(业务处理时间缩短),即通信和业务的分离机制。
通过将网络IO收发数据用到的线程池和业务逻辑中用到的线程池分离,就是上面所说的通信和业务的分离。通信建立特定线程用来收发数据,业务逻辑线程将收到的数据进行业务层面的分析处理,各自处理各自的业务,就像工厂流水线上的工人,以使系统的产能最大化。增加数据采集与交换的速度。
(4)、数据动态访问采用连接池技术。
对于一个复杂的数据库(动态库)访问的应用,由于通信的每一次建立都需要一次完整的“握手”过程,其中就包含了大量的相应等待时间,因此,对于连接的不当使用会成为系统性能的巨大瓶颈。
本发明采用连接池技术,可以解决资源频繁分配、释放所造成的大量性能开销。在减少系统消耗的基础上,可以增进系统运行环境的平稳性(减少内存碎片及临时进程或线程的数量)。可以使数据库(动态库)连接得到复用。
所述连接池是在初始化的过程中,已经创建了若干个数据库连接在池中备用。此时连接的初始化工作在系统初始化时已经完成,这种事前预备机制能很好的将系统的性能开销“前移”,对于数据请求业务而言,直接利用现有的可用空闲连接,避免了连接数据库连接的初始化和释放过程的时间开销,从而缩短了系统整体相应的时间。增加数据采集与交换的速度。
(5)、在数据空间的管理上引用内存池技术,来管理系统内存的获取和释放,防止大量客户端并发访问服务器造成系统资源不足,降低内存泄漏的风险。
IOCP 的服务器,其稳定和高性能的基础在于内存的应用,因为服务器需要频繁申请释放内存用于接收数据和数据的处理。因此在数据空间的管理上,我们引入了“内存池”的机制。所述内存池,就是申请一大块内存,避免重复申请释放。需要时从池中取出一块内存,用完后在放回池里。所以,在线程的安全问题上,基于原子操做的SLIST系列函数刚好适用,因为是先进后出的原则,所以可以尽可能的避免换页。
附图说明
图1为本发明实施例中数据采集服务与CAN总线的网络结构图。
图2为本发明实施例中数据采集服务结构图。
图3为本发明实施例中IOCP模型图。
图4为本发明实施例中内存池结构图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。
本发明提出了一种多主总线网络通讯实时交易数据交换实现方法。
图1所示,是一种多主总线网络通讯实时交易数据交换实现方法的网络图,它是以多个物联网终端设备为主组成的CAN总线,通过CAN转以态网,向上位机发送服务请求。
图2所示,是一种多主总线网络通讯实时交易数据采集服务的技术架构图。通过将本发明的数据采集服务分为两部分进行处理,来增加数据采集与交换的速度。这两部分分别为:控制流和数据流,
所述控制流是负责网络IO部分,也就是从网络读取和发送数据。
所述数据流是处理业务逻辑。通常情况下控制流和数据流是分离的,网络IO部分不需要管理业务逻辑具体做什么工作,而后者也不关心数据怎么得来,怎么送到网络上。两者就是一个生产者消费者关系。本着一个原则,让生产者尽量的生产数据(即快速的收发数据),减少消费者的消费时间(业务处理时间缩短),即通信和业务的分离机制。
通过将网络IO收发数据用到的线程池和业务逻辑中用到的线程池分离,就是上面所说的通信和业务的分离。通信建立特定线程用来收发数据,业务逻辑线程将收到的数据进行业务层面的分析处理,各自处理各自的业务,就像工厂流水线上的工人,以使系统的产能最大化。增加数据采集与交换的速度。
图3所示,是一种多主总线网络通讯实时交易数据交换实现方法中的IOCP模型图,它是处理大量客户端并发访问服务器常用的一种windows平台下的架构。IOCP是应用程序使用线程池处理异步I/O请求的一种机制,事先开好N个线程(N=CPU个数*2+2),存储在线程池中。然后将所有的用户请求都投递到I/O端口上,然后N个工作线程逐一地从端口中取得用户消息并加以处理。这样既减少了线程的资源,又提高了线程的利用率。加速了上位机数据处理能力。保证数据实时交换处理。
图4所示,是一种多主总线网络通讯实时交易数据交换实现方法中的内存池结构图,它是来管理系统内存的获取和释放,防止大量客户端并发访问服务器造成系统资源不足,降低内存泄漏的风险。
IOCP 的服务器,其稳定和高性能的基础在于内存的应用,因为服务器需要频繁申请释放内存用于接收数据和数据的处理。因此在数据空间的管理上,我们引入了“内存池”的机制。所述内存池,就是申请一大块内存,避免重复申请释放。需要时从池中取出一块内存,用完后在放回池里。所以,在线程的安全问题上,基于原子操做的SLIST系列函数刚好适用,因为是先进后出的原则,所以可以尽可能的避免换页。
图4所示的结构中主要包含block、list和pool三个结构体,所述block结构包含指向实际内存空间的指针,向前和向后指针让block能够组成双向链表;所述list结构中free指针指向空闲内存组成的链表,used指针指向程序使用中的内存块组成的链表,size值为内存块的大小;所述pool结构记录list链表的头尾。
虽然本发明专利通过实施例和附图进行了描述,但实施例和附图并非用来限定本发明。本领域技术人员可在本发明的精神的范围内,做出各种变形和改进,但同样在发明的保护范围之内。因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。
机译: 一种防止主/从总线系统和主/从总线系统外部干扰的方法。
机译: 一种实现实时工业互联网现场宽带总线的方法
机译: 一种实现实时工业互联网现场宽带总线的方法