基于简化继电器矩阵的I/O端口映射方法转让专利

申请号 : CN201010168783.6

文献号 : CN101866154B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李红吕攀邓俊张翼罗端胡琦吴锋

申请人 : 浙江大学

摘要 :

一种基于简化继电器矩阵的I/O端口映射方法,相同功能的I/O端口采用同一个继电器开关;当用户要映射一个受控机时,计算机首先建立一张行信息表格,用户把受控机上未连接的测试点连接到矩阵上没有测试点连接的编号最小的列Z上;并且向计算机输入该测试点需要的I/O端口类型F;计算机得到用户的输入后,查找创建的行信息表格,找到所有I/O端口类型为F的行;按照编号从小到大扫描选择出来的行,如果当前行Y未被使用而且和Z列之间有继电器,则将矩阵中Y行Z列的继电器连通,将Y行标记为已使用;否则继续扫描下一行,直到所有测试点连接完毕。本发明有效提高继电器的利用率、适应于大规模场合、减小继电器矩阵体积。

权利要求 :

1.一种基于简化继电器矩阵的I/O端口映射方法,其特征在于:所述I/O端口映射方法包括如下步骤:A1.计算机总共有N个I/O端口,N为自然数,构造一个N×N的矩阵,行和列之间不相交;

A2.选择一个未配置的I/O端口,统计和当前I/O端口具有相同功能的I/O端口个数,设数量为P,P为自然数,将它们归为一组,将这组I/O端口连接到步骤A1构造的矩阵的第C行至第(C+P-1)行,C为自然数,C为当前未连接I/O端口的最小行;

A3.在第1行与第1,2,……(N-P+1)列的交叉点设置继电器,同理在第X行与第X,X+1,……(N-P+X)列的交叉点设置继电器,重复该步骤直到所有P行都配置完毕,将这P个端口标注为已配置;

A4.如果有未配置的端口,重复步骤A2到A3,直到所有的端口都已经配置,完成简化继电器矩阵的构造;

A5.当用户要映射一个受控机时,计算机首先建立一张行信息表格,行信息表格含有:行编号、I/O端口类型、是否已经使用和与该行有继电器连接的所有列,计算机将矩阵中的所有继电器断开,并将所有的行标记为未使用;

A6.用户把受控机上未连接的测试点连接到矩阵上没有测试点连接的编号最小的列Z上;并且向计算机输入该测试点需要的I/O端口类型F;

A7.计算机得到用户的输入后,查找由步骤A5创建的行信息表格,找到所有I/O端口类型为F的行;

A8.按照编号从小到大扫描由步骤A7选择出来的行,如果当前行Y未被使用而且和Z列之间有继电器,则将矩阵中Y行Z列的继电器连通,将Y行标记为已 使用,进入步骤A9;

否则继续扫描下一行;

A9.如果还有测试点没有连接,重复步骤A6到A8,直到所有测试点连接完毕。

说明书 :

基于简化继电器矩阵的I/O端口映射方法

技术领域

[0001] 本发明适合计算机领域,属于在需要I/O采集卡且有大量相同功能I/O端口的计算机测量、控制领域,尤其是一种继电器矩阵的I/O端口映射方法。

背景技术

[0002] 目前的数字化的测量、控制及仿真系统一般都以计算机为中心,将受控机上的测试点接到计算机的I/O板卡上。计算机通过I/O板卡采集受控机上需要监视的参数,然后在计算机上经过专业软件的复杂运算后将控制信号通过I/O板卡送到受控机上,从而达到对受控机测量、控制的目的。
[0003] 但是在一些复杂的应用中往往会涉及到数量巨大的I/O端口,比如汽车发动机控制系统有着上百个端口,如果采用人工连线的方式不仅非常麻烦,而且可能会出现连线错误从而导致系统失败甚至可能损坏器件。可以使用矩阵开关来实现这样的端口映射,但是由于测控系统往往有很高的电压和电流,所以不能使用一般的半导体矩阵开关,需要使用继电器矩阵开关。
[0004] 目前的继电器矩阵采用了全映射的方式,假设有M个I/O端口需要映射到N个测试点上,则需要构造一个M×N的继电器矩阵,利用每个节点上继电器的开/合来选择I/O端口和测试点的连接方式,采用这种方法继电器的利用率不高。由于继电器的体积比较大,所以全映射的继电器矩阵需要占用的空间比较大,要实现大规模的I/O端口映射存在困难。

发明内容

[0005] 为了克服已有的继电器矩阵的I/O端口全映射方法的继电器利用率低、不能适应于大规模场合的不足,本发明提供一种有效提高继电器的利用率、适应于大规模场合、减小继电器矩阵体积的基于简化继电器矩阵的I/O端口映射方法。
[0006] 本发明解决其技术问题所采用的技术方案是:
[0007] 一种基于简化继电器矩阵的I/O端口映射方法,所述I/O端口映射方法包括如下步骤:
[0008] A1.计算机总共有N个I/O端口,N为自然数,构造一个N×N的矩阵,行和列之间不相交;
[0009] A2.选择一个未配置的I/O端口,统计和当前I/O端口具有相同功能的I/O端口个数,设数量为P,P为自然数,将它们归为一组,将这组I/O端口连接到步骤1构造的矩阵的第C行至第(C+P-1)行,C为自然数,C为当前未连接I/O端口的最小行;
[0010] A3.在第1行与第1,2,……(N-P+1)列的交叉点设置继电器,同理在第X行与第X,X+1,……(N-P+X)列的交叉点设置继电器,重复该步骤直到所有P行都配置完毕,将这P个端口标注为已配置;
[0011] A4.如果有未配置的端口,重复步骤A2到A3,直到所有的端口都已经配置,完成简化继电器矩阵的构造;
[0012] A5.当用户要映射一个受控机时,计算机首先建立一张行信息表格,行信息表格含有:行编号、I/O端口类型、是否已经使用和与该行有继电器连接的所有列,计算机将矩阵中的所有继电器断开,并将所有的行标记为未使用;
[0013] A6.用户把受控机上未连接的测试点连接到矩阵上没有测试点连接的编号最小的列Z上;并且向计算机输入该测试点需要的I/O端口类型F;
[0014] A7.计算机得到用户的输入后,查找由步骤A5创建的行信息表格,找到所有I/O端口类型为F的行;
[0015] A8.按照编号从小到大扫描由步骤A7选择出来的行,如果当前行Y未被使用而且和Z列之间有继电器,则将矩阵中Y行Z列的继电器连通,将Y行标记为已使用,进入步骤A9;否则继续扫描下一行;
[0016] A9.如果还有测试点没有连接,重复步骤A6到A8,直到所有测试点连接完毕。
[0017] 本发明的技术构思为:简化的继电器矩阵主要利用了在测量、控制系统中存在着具有大量相同功能的I/O端口,比如在一般的通用I/O板卡中基本可以分为四类:数字量输出Digital Output、数字量输入Digital Input、模拟量输出AnalogOutput、模拟量输入Analog Input,由于有大量端口具有相同功能,所以无需采用全映射的方式。有P个相同功P能的I/O端口要映射到N个测试点上去,只要有一种连接方式可以保证产生所有CN 种组合
3
即可。表1按照字典序将C5 的所有组合都罗列出来,可以发现第X列的数据范围是X到P
5-3+X。考虑一般的情况,要罗列出所有CN 的组合只要保证每一列的选择范围是X到N-P+X,可以利用这个特性来简化继电器矩阵。
[0018]1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
[0019] 表1
[0020] 本发明的有益效果主要表现在:1、使用了简化继电器矩阵的I/O映射的方法,简化了配置大规模I/O端口的工作;2、采用了继电器来进行线路连接,使得线路适用于高电压、高电流的应用场合,而且具有良好的阻抗特性;3、采用了简化的继电器矩阵,对于有P个相同功能的I/O端口组而言需要P×(N-P+1)个继电器,而全映射的继电器矩阵需要P×N个继电器,本方法节省了P×(P-1)个继电器。当P值较大的时候所需要的继电器数量可以大大减少,从而减小了矩阵的密度,使得在相同面积电路板上可以容纳更大规模的继电器矩阵。

附图说明

[0021] 图1是I/O端口和测试点到N×N矩阵连接方法示意图,其中,在矩阵行方向上,N个I/O端口按照类型分组连接到矩阵的N行上,在矩阵列方向,M个测试点任意连接到矩阵的M列上。
[0022] 图2是简化的继电器矩阵的构造方法示意图,其中,在矩阵行方向,P个功能相同的I/O端口,在矩阵列方向有N列。
[0023] 图3是本发明所述方法实现的一个流程图。
[0024] 图4是本发明所述方法实现的一个具体例子示意图。

具体实施方式

[0025] 下面结合附图对本发明作进一步描述。
[0026] 参照图1~图4,一种基于简化继电器矩阵的I/O端口映射方法,构造一个矩阵,将所有的计算机I/O端口按照功能进行分组,把每一组I/O端口连接到矩阵的行上。构造一个简化的继电器连接方案,使得相同功能组的I/O端口可以产生到列连接的所有组合方式。用户把受控机的测量点连接到矩阵的列上并且输入测量点所需的I/O端口类型,计算机根据简化的继电器矩阵把测量点映射到I/O端口上;
[0027] 主要包括如下步骤:
[0028] A1.假设总共有N个I/O端口,如图1所示构造一个N×N的矩阵,行和列之间不相交,N为自然数;
[0029] A2.选择一个未配置的I/O端口,统计和当前I/O端口具有相同功能的I/O端口个数,假设数量为P,P为自然数,将它们归为一组,将这组I/O端口连接到步骤1构造的矩阵的第C行至第(C+P-1)行,C为自然数,C为当前未连接I/O端口的最小行;
[0030] A3.按照如图2所示的方法,在第1行与第1,2,……(N-P+1)列的交叉点设置继电器,同理在第X行与第X,X+1,……(N-P+X)列的交叉点设置继电器,重复该步骤直到所有P行都配置完毕,将这P个端口标注为已配置;
[0031] A4.如果有未配置的端口,重复步骤A2到A3,如果所有的端口都已经配置就完成了简化继电器矩阵的构造;
[0032] A5.当用户要映射一个受控机时,计算机首先建立一张表格,表格含有以下几项:行编号;I/O端口类型;是否已经使用;与该行有继电器连接的所有列;计算机将矩阵中的所有继电器断开,并将所有的行标记为未使用;
[0033] A6.用户把受控机上未连接的测试点连接到矩阵上没有测试点连接的编号最小的列上(假设为Z),并且向计算机输入该测试点需要的I/O端口类型(假定为F);
[0034] A7.计算机得到用户的输入后,查找由步骤A5创建的表格,找到所有I/O端口类型为F的行;
[0035] A8.计算机按照编号从小到大扫描由步骤A7选择出来的行,如果当前行Y未被使用而且和Z列之间有继电器,则将矩阵中Y行Z列的继电器连通,将Y行标记为已使用,进入步骤A9;否则继续扫描下一行;
[0036] A9.如果还有测试点没有连接,重复步骤A6到A8,直到所有测试点连接完毕。
[0037] 这样,只要在第一次使用的时候根据步骤A1到A4构造一个简化的继电器矩阵,以后用户在更换受控机的时候,只要根据步骤A5到A9将受控机的测试点按照任意次序连接到矩阵的列上,然后输入每个测试点的类型,计算机就会为这些测试点自动映射I/O端口。
[0038] 参照图4一个计算机的测控系统,它有六个I/O端口,作用分别为:4个数字信号采集端口Digital Input,简称DI;2个数字信号输出端口Digital Output,简称DO。首先构造一个6×6的电路,行列之间不连通。先处理4个DI端口,把它们接到矩阵的1~4行上,然后分别按照编号在第X行与第X列到第(6-4+X)列的交叉处设置继电器。每行需要设置继电器的列分别为:
[0039] 第1行:第1、2、3列;第2行:第2、3、4列;第3行:第3、4、5列;第4行:第4、5、6列。
[0040] 这样就完成了所有DI端口的继电器设置,然后将两个DO接到DI之后的5、6行上,在第X行与第X列到第(6-2+X)列的交叉处配置继电器,每行需要设置继电器的列分别为:
[0041] 第5行:第1、2、3、4、5列;第6行:第2、3、4、5、6列。
[0042] 此时用户需要连接受控机A,计算机首先建立如表2所示的一张表,表示行信息,并且将所有的继电器断开。
[0043]行编号 类型 是否已使用 有继电器连接的列
1 DI 否 1、2、3
2 DI 否 2、3、4
3 DI 否 3、4、5
4 DI 否 4、5、6
5 DO 否 1、2、3、4、5
6 DO 否 2、3、4、5、6
[0044] 表2
[0045] 受控机A有6个测试点,用户首先将一个DO测试点连接到矩阵的第1列上,并向计算机输入第1列的类型为DO。计算机扫描表2,列出所有类型为DO的行,结果为5、6行。从小到大扫描5、6行,发现第5行未被使用而且和第1列有继电器连接。计算机把第5行与第1列交叉点的继电器连通,把表2中的第5行标记为已使用。用户继续连接测试点,最终结果如下:
[0046] 测试点1DO到端口5,测试点2DI到端口1,测试点3DI到端口2
[0047] 测试点4DI到端口3,测试点5DO到端口6,测试点6DI到端口4
[0048] 如果用户需要更换受控机,只要重复步骤5到步骤9就可以实现端口的自动映射。可以验证使用这种方式的矩阵可以产生所有测试点映射的方式,从而达到和全映射一样的效果。采用了简化的继电器矩阵共需要22个继电器,而采用全映射的继电器矩阵则需要36个继电器,简化的方案少使用了14个继电器,可以节省38.9%的空间。