发明内容
针对上述问题,本发明的主要目的是一种使用一个CAN总线网络对多个终端设备进行控制的CAN总线扩展方法。
为了实现上述的主要目的,本发明提供的CAN总线的扩展方法应用的CAN总线网络包括总线控制器及通过总线通道连接的一组终端设备;与多个总线控制器连接的服务器;与多个服务器连接的设备管理终端;每一服务器中设置有一级扩展器,该方法包括:
设备管理终端向某一终端设备发出含有第一类识别码的下行通信帧,该含有第一类识别码的下行通信帧传送到一级扩展器上时,一级扩展器将下行通信帧中的第一类识别码删除。第一类设备码包括服务器识别码、连接插槽识别码以及总线通道识别码。其中,服务器识别码用于识别通信帧经过哪一服务器,连接插槽识别码用于识别通信帧将经过哪一连接插槽,总线通道识别码用于识别接收或发出该通信帧的终端设备在哪一总线通道上。
终端设备向设备管理终端发出上行通信帧,该上行通信帧传送到一级扩展器上时,一级扩展器将第一类识别码添加到上行通信帧中。
传送到一级控制器上的通信帧包含第一类识别码,设备管理终端即可识别每一上行通信帧是由哪一终端设备发出的,确保了设备管理终端与终端设备之间的通信,从而实现在一个CAN网络中对多条总线通道上的终端设备进行有效控制。
当然,本发明提供的CAN总线扩展方法还可以是设备管理终端向某一特定终端设备发出含有第一类识别码和第二类识别码的下行通信帧,该含有第一类识别码和第二类识别码的下行通信帧传送到二级扩展器上时,数据存储区保存一份该下行通信帧。同时,二级扩展器将下行通信帧中的第二类识别码删除,形成包含第一类识别码的下行通信帧,并传向一级扩展器。
含有第一类识别码的下行通信帧传送到一级扩展器时,一级扩展器将下行通信帧中的第一类识别码删除,并经总线控制器将该下行通信帧传送到特定终端设备上。
当某一终端设备向设备管理终端发出上行通信帧,该上行通信帧经过总线控制器到达一级扩展器,一级扩展器将第一类识别码添加到该上行通信帧之后再传送到二级扩展器,二级扩展器将第二类识别码添加到上行通信帧中,并将含有第一类识别码和第二类识别码的上行通信帧传送到设备管理终端。
由于CAN总线网络上传送的上行通信帧和下行通信帧添加了第一类识别码和第二类识别码,使每一下行通信帧均可准确传动到对应的终端设备上,并让每一上行通信帧也准确的传送到对应的设备管理终端的用户上,确保通信无误。这样,即使在CAN总线网络上连接更多的终端设备,设备管理终端也可以准确的对每一终端设备进行有效的管理和控制。
具体实施方式
第一实施例:
参见图3,图3是本发明第一实施例的连接结构示意图。由图中可见,本实施例共有四个总线控制器13,每一总线控制器13均与四条总线通道11连接,在每一条总线通道11上均连接有多个设备终端12。终端设备12与总线通道11的连接、总线通道11与总线控制器13的连接与现有的CAN总线相同,在此不再赘述。
本实施例中,每一总线控制器13均通过一PCI插槽14与服务器15连接,其中,PCI插槽14为本实施例的连接插槽。在每一服务器15中均设有一级扩展器,一级扩展器是一个设置在服务器中的数据处理设备,可对传送到其中的通信帧进行处理,即向通信帧添加相应的识别信息或将识别信息去除,使通信帧能被正确传送到终端设备12并能够正确识别。
设置有一级扩展器的服务器15还通过网络16与一个设备管理终端连接。本实施例中,设备管理终端为计算机17。计算机17是CAN总线网络的总控制设备,用户通过计算机17对各个终端设备12发出控制信息,以实现对多个终端设备12的控制。
本实施例中,CAN总线网络具有两台服务器15,每一服务器15中均设置有一级扩展器,并且每一服务器15均与两个总线控制器13连接,而每一总线控制器13均与多条总线通道11连接,每一总线通道11上均可连接120台终端设备12,这样可使一个CAN总线网络中连接有上千个终端设备12,大大扩展了CAN总线的容量,只要使用一台计算机17即可对所有终端设备12进行控制。
但由于现有的CAN总线的通信帧只能被一条总线通道上的终端设备设备,在扩展后,必须在通信帧中添加PCI插槽、服务器和总线通道的识别信息,以让通信帧可被正确的传送到终端设备上。
参见图4,图4是本发明第一实施例通信帧的结构示意图。本实施例的通信帧,是在现有的通信帧的基础上添加了第一类识别码,第一类识别码包括服务器识别码4、PCI识别码5和总线通道识别码6。服务器识别码4用于识别通信帧经过哪一服务器,PCI识别码5用于识别通信帧将经过哪一PCI插槽,总线通道识别码6用于识别接收或发出该通信帧的终端设备在哪一总线通道上。第一类识别码均是在通信帧传送到一级扩展器上时,由一级扩展器添加到通信帧上。
当用户需要通过计算机向某一终端设备发送信息时,计算机将根据现有CAN总线通信帧的格式形成一下行通信帧,即计算机向终端设备发出的通信帧,该下行通信帧只包括帧信息、识别信息以及数据信息。然后,用户将指定该下行通信帧传送的终端设备,计算机即获取下行通信帧传送到该终端设备时需要经过的服务器、PCI插槽以及该终端设备所在的总线通道信息,并将这些信息形成对应的第一类识别码,即服务器识别码、PCI识别码和总线通道识别码,然后将第一类识别码添加到下行通信帧中。本实施例中,服务器识别码、PCI识别码分别添加在帧信息前,而总线通道识别码则添加在数据信息之后。
显然,若将各个识别码的排列顺序调换,也可以实现本发明的目的。
然后,计算机将包含第一类识别码的下行通信帧通过网络传送到相应的服务器。
服务器的一级扩展器接收到下行通信帧后,根据下行通信帧中的第一类识别码获知该下行通信帧的传送路径,并将下行通信帧中的第一类识别码去掉,使其形成只包含帧信息、识别信息以及数据信息的下行通信帧。然后根据原下行通信帧的PCI识别码获知该下行通信帧需要传送的PCI插槽,并将下行通信帧传送到对应的PCI插槽上,这样下行通信帧即被传送到总线控制器上。同时,总线控制器也可以从一级扩展器中获知下行通信帧需要传送的总线通道,并将下行通信帧传送到对应的总线通道上。
由于传送到总线控制器上的下行通信帧的格式与现有的通信帧格式是一致的,所以总线控制器可识别该下行通信帧。总线控制器根据下行通信帧的识别信息判断通信帧需要传送的终端设备,并将下行通信帧传送到对应的终端设备上。终端设备接收到该下行通信帧后,根据该下行通信帧的数据信息进行相应的操作。
终端设备进行相应操作后,若需要向计算机返回信息,也是以通信帧的形式将信息传送回计算机中。首先,终端设备按照现有通信帧的格式形成一上行通信帧,即终端设备向计算机发出的通信帧,并将该上行通信帧传送到总线控制器上。总线控制器通过PCI插槽将上行通信帧传送到服务器中,一级扩展器即可接收到终端设备上传的上行通信帧。由于一级扩展器会频繁的扫描各个PCI插槽以及总线通道上传的上行通信帧,一旦发现有终端设备向计算机发送上行通信帧,即在该上行通信帧传送到一级扩展器上时,在上行通信帧中添加第一类识别码,并再通过网络将上行通信帧传送到计算机中。这样,计算机即可识别上行通信帧是由哪一终端设备发出的。
本实施例中,由于总线通道的数量、PCI插槽的数量、服务器的数量均可根据实际情况增减,虽然每一总线通道仍只能连接120个以内的终端设备,这还是可使在一个CAN总线网络上连接数量庞大的终端设备。即使在CAN总线网络投入使用后,仍可通过添加新的总线通道或新的总线控制器或新的PCI插槽或新的服务器的方式在CAN总线网络上添加新的终端设备,大大降低购买CAN总线设备的成本。同时,采用现有技术实现本实施例的同样工作时,需要16个总线控制器13及16个设备管理终端(计算机17),而本实施例只是使用一台计算机即可对所有的终端设备进行控制,使得各个终端设备工作的同步性更好,更有利于大规模的集约化生产。
第二实施例:
但是,当今的工业生产中,仅使用一台计算机对所有的终端设备进行控制往往是不够的,通常需要多台计算机同时进行操作,这就需要对CAN总线网络进行第二次扩展,以使CAN总线网络可由多台计算机同时进行操作。
参见图6,图6是本发明第二实施例的连接结构示意图。与第一实施例相比,本实施例的CAN总线网络也是包括两个服务器15,每一服务器15均通过PCI插槽14与总线控制器13连接,并且每一总线控制器13连接有多条总线通道11,120个以下的终端设备12连接在总线通道上。本实施例中,每一服务器15中除了设置有一级扩展器,还设置有二级扩展器,同一服务器15中的二级扩展器与一级扩展器之间可以进行通信。与一级扩展器的工作相似,二级扩展器也是一个数据处理设备,并在传送到其中的通信帧上添加或删除部分识别信息。服务器15还通过网络16与多个设备管理终端连接,本实施例中,设备管理终端为二个,即是两台支持多用户登陆的计算机17。
经过第二次扩展后,CAN总线网络上的终端设备可以同时由多台计算机控制,并且每一台计算机17均可由多个用户登陆,即可由多个用户对终端设备进行控制和管理。在本实施例中,若使用第一实施例采用的通信帧进行通信,则会出现通信帧无法识别是由哪一计算机发出,也无法识别是哪一用户发出的,因此,还需要在通信帧中添加第二类识别码。
参见图5,图5是本发明第二实施例通信帧的结构示意图。本实施例的通信帧与第一实施例的通信帧相比,添加了用户名7、计算机识别码8以及不重复号9。计算机识别码8是本实施例的设备管理终端识别码,用于识别通信帧由哪一计算机发出或需要传送到哪一计算机,用户名7用于识别发出或接收通信帧的用户,不重复号9用于识别同一计算机上的同一用户不同时刻发出的通信帧。用户名7、计算机识别码8以及不重复号9组成了第二类识别码,均在通信帧被传送到二级扩展器上时被添加或删除。
当某一计算机的某一用户需要对某一终端设备进行通信时,除了按照上一实施例通信帧格式形成通信帧外,还需要将所在计算机的识别码、用户名以及不重复号添加到通信帧中。然后,计算机将该通信帧通过网络传送到服务器的二级扩展器上。二级扩展器接收到该通信帧后,获知该通信帧为一下行通信帧,即由计算机向终端设备发出的通信帧,并从第二类识别码中获知发出该通信帧的计算机及用户。然后,二级扩展器将第二类识别码删除,再将通信帧传送到一级扩展器。一级扩展器处理通信帧以及将通信帧传送到终端设备的过程与第一实施例一致,在此不再赘述。
当终端设备需要向某一计算机返回一上行通信帧,即终端设备向某一计算机发出的通信帧,上行通信帧经过总线控制器、PCI插槽、一级扩展器传送到二级扩展器。二级扩展器需要将第二类识别码添加到上行通信帧中,才可以识别该通信帧需要传送到哪一计算机的哪一用户中。但二级扩展器并不能从一级扩展器传送过来的上行通信帧中获取这些信息,因此,需要在二级扩展器中设置一数据存储区,用于存储上行通信帧和下行通信帧。
当下行通信帧传送到二级扩展器时,二级扩展器将下行通信帧保存一份到数据存储区中,即将通信帧中的用户名、计算机识别码、不重复号、服务器识别码、PCI识别码、总线通道识别码、数据信息保存下来。当有上行的通信帧传送到二级扩展器时,二级扩展器将该上行通信帧的信息与已保存的下行通信帧的信息进行对比。首先,二级扩展器从上行通信帧的服务器识别码、PCI识别码、总线通道识别码和数据信息中的终端设备编号,获知该上行通信帧是由哪一终端设备发出,并从数据存储区中找出相对应的下行通信帧。然后,根据对应下行通信帧的第二类识别码可获知是哪一计算机的哪一用户向该终端设备发出了下行通信帧,从而确定该上行通信帧需要传送到哪一计算机的用户中,并将对应的计算机识别码、用户名和不重复号添加到上行通信帧中。上行通信帧即可通过网络传送到相应的计算机和用户中,完成一次通信。
经过第二次扩展后,可以使用多台计算机对CAN总线网络上的多个终端设备进行控制,可大大提高终端设备的工作效率,同时也提高了CAN总线网络的利用率。
对CAN总线网络进行两次扩展后,CAN总线网络可对更多终端设备进行控制,并且通信有序,所有的通信帧均可准确地在相应的终端设备和计算机之间进行传送,不但大大减少购买多条CAN总线设备的费用,还减少CAN总线开发的成本,有利于大规模生产应用。
当然,上述实施例只是本发明的部分实施方式,本发明的实际应用中,还可以有更多的变化,若在一台支持多任务的计算机上安装有多个设备管理软件,并且每一设备管理软件均可由多用户登陆,则任一操作人员只需要在一台计算机上同时运行多个设备管理软件,即可同时对多个终端设备进行控制,减少购买计算机的成本和人力资源。
同时,若将一级扩展器和二级扩展器分别设置在两个不同的服务器中,并通过网络将两个服务器连接通信,也可以实现本发明的目的。另外,连接服务器与计算机的网络可以是有线网络,也可以是无线网络;可以使用TCP/IP协议通信,也可以使用OSI协议通信,这些都可以实现本发明的目的。同样,连接总线控制器与服务器的连接插槽,不但可以是PCI插槽,其它的插槽,如AGP插槽,VESA插槽等,也可以实现同样的功能。
最后,需要强调的是,本发明不仅限于上述实施方式,诸如第一类识别码和第二类识别码在通信帧中排列顺序的改变、设备管理终端数量的改变等微小变化也应该包括在本发明的保护范围内。