專利名稱:基于簡化繼電器矩陣的i/o端口映射方法
技術(shù)領(lǐng)域:
本發(fā)明適合計算機(jī)領(lǐng)域,屬于在需要I/O采集卡且有大量相同功能I/O端口的計 算機(jī)測量、控制領(lǐng)域,尤其是一種繼電器矩陣的I/O端口映射方法。
背景技術(shù):
目前的數(shù)字化的測量、控制及仿真系統(tǒng)一般都以計算機(jī)為中心,將受控機(jī)上的測 試點(diǎn)接到計算機(jī)的I/O板卡上。計算機(jī)通過I/O板卡采集受控機(jī)上需要監(jiān)視的參數(shù),然后 在計算機(jī)上經(jīng)過專業(yè)軟件的復(fù)雜運(yùn)算后將控制信號通過I/O板卡送到受控機(jī)上,從而達(dá)到 對受控機(jī)測量、控制的目的。但是在一些復(fù)雜的應(yīng)用中往往會涉及到數(shù)量巨大的I/O端口,比如汽車發(fā)動機(jī)控 制系統(tǒng)有著上百個端口,如果采用人工連線的方式不僅非常麻煩,而且可能會出現(xiàn)連線錯 誤從而導(dǎo)致系統(tǒng)失敗甚至可能損壞器件??梢允褂镁仃囬_關(guān)來實(shí)現(xiàn)這樣的端口映射,但是 由于測控系統(tǒng)往往有很高的電壓和電流,所以不能使用一般的半導(dǎo)體矩陣開關(guān),需要使用 繼電器矩陣開關(guān)。目前的繼電器矩陣采用了全映射的方式,假設(shè)有M個I/O端口需要映射到N個測 試點(diǎn)上,則需要構(gòu)造一個MXN的繼電器矩陣,利用每個節(jié)點(diǎn)上繼電器的開/合來選擇1/ 0端口和測試點(diǎn)的連接方式,采用這種方法繼電器的利用率不高。由于繼電器的體積比較 大,所以全映射的繼電器矩陣需要占用的空間比較大,要實(shí)現(xiàn)大規(guī)模的I/O端口映射存在 困難。
發(fā)明內(nèi)容
為了克服已有的繼電器矩陣的I/O端口全映射方法的繼電器利用率低、不能適應(yīng) 于大規(guī)模場合的不足,本發(fā)明提供一種有效提高繼電器的利用率、適應(yīng)于大規(guī)模場合、減小 繼電器矩陣體積的基于簡化繼電器矩陣的I/O端口映射方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種基于簡化繼電器矩陣的I/O端口映射方法,所述I/O端口映射方法包括如下 步驟A1.計算機(jī)總共有N個I/O端口,N為自然數(shù),構(gòu)造一個NXN的矩陣,行和列之間 不相交;A2.選擇一個未配置的I/O端口,統(tǒng)計和當(dāng)前I/O端口具有相同功能的I/O端口個 數(shù),設(shè)數(shù)量為P,P為自然數(shù),將它們歸為一組,將這組I/O端口連接到步驟1構(gòu)造的矩陣的 第C行至第(C+P)行,C為自然數(shù),C為當(dāng)前未連接I/O端口的最小行;A3.在第1行與第1,2,……(N-P+1)列的交叉點(diǎn)設(shè)置繼電器,同理在第X行與第 X,X+1,……(N-P+X)列的交叉點(diǎn)設(shè)置繼電器,重復(fù)該步驟直到所有P行都配置完畢,將這 P個端口標(biāo)注為已配置;A4.如果有未配置的端口,重復(fù)步驟A2到A3,直到所有的端口都已經(jīng)配置,完成簡化繼電器矩陣的構(gòu)造;A5.當(dāng)用戶要映射一個受控機(jī)時,計算機(jī)首先建立一張行信息表格,行信息表格含 有行編號、I/O端口類型、是否已經(jīng)使用和與該行有繼電器連接的所有列,計算機(jī)將矩陣 中的所有繼電器斷開,并將所有的行標(biāo)記為未使用;A6.用戶把受控機(jī)上未連接的測試點(diǎn)連接到矩陣上沒有測試點(diǎn)連接的編號最小的 列z上;并且向計算機(jī)輸入該測試點(diǎn)需要的I/O端口類型F ;A7.計算機(jī)得到用戶的輸入后,查找由步驟A5創(chuàng)建的行信息表格,找到所有I/O端 口類型為F的行;A8.按照編號從小到大掃描由步驟A7選擇出來的行,如果當(dāng)前行Y未被使用而且 和Z列之間有繼電器,則將矩陣中Y行Z列的繼電器連通,將Y行標(biāo)記為已使用,進(jìn)入步驟 A9 ;否則繼續(xù)掃描下一行。A9.如果還有測試點(diǎn)沒有連接,重復(fù)步驟A6到A8,直到所有測試點(diǎn)連接完畢。本發(fā)明的技術(shù)構(gòu)思為簡化的繼電器矩陣主要利用了在測量、控制系統(tǒng)中存在著 具有大量相同功能的I/O端口,比如在一般的通用I/O板卡中基本可以分為四類數(shù)字量 輸出Digital Output、數(shù)字量輸入Digital Input、模擬量輸出AnalogOutput、模擬量輸入 Analog Input,由于有大量端口具有相同功能,所以無需采用全映射的方式。有P個相同功 能的I/O端口要映射到N個測試點(diǎn)上去,只要有一種連接方式可以保證產(chǎn)生所有CNP種組合 即可。表1按照字典序?qū)53的所有組合都羅列出來,可以發(fā)現(xiàn)第X列的數(shù)據(jù)范圍是X到 5-3+X??紤]一般的情況,要羅列出所有C;的組合只要保證每一列的選擇范圍是X到N-P+X, 可以利用這個特性來簡化繼電器矩陣。 表 1本發(fā)明的有益效果主要表現(xiàn)在1、使用了簡化繼電器矩陣的I/O映射的方法,簡 化了配置大規(guī)模I/O端口的工作;2、采用了繼電器來進(jìn)行線路連接,使得線路適用于高電 壓、高電流的應(yīng)用場合,而且具有良好的阻抗特性;3、采用了簡化的繼電器矩陣,對于有P 個相同功能的I/O端口組而言需要PX (N-P+1)個繼電器,而全映射的繼電器矩陣需要PXN 個繼電器,本方法節(jié)省了 PX (P-1)個繼電器。當(dāng)P值較大的時候所需要的繼電器數(shù)量可以 大大減少,從而減小了矩陣的密度,使得在相同面積電路板上可以容納更大規(guī)模的繼電器 矩陣。
圖1是I/O端口和測試點(diǎn)到NXN矩陣連接方法示意圖,其中,在矩陣行方向上,N 個I/O端口按照類型分組連接到矩陣的N行上,在矩陣列方向,M個測試點(diǎn)任意連接到矩陣 的M列上。圖2是簡化的繼電器矩陣的構(gòu)造方法示意圖,其中,在矩陣行方向,P個功能相同 的I/O端口,在矩陣列方向有N列。圖3是本發(fā)明所述方法實(shí)現(xiàn)的一個流程圖。圖4是本發(fā)明所述方法實(shí)現(xiàn)的一個具體例子示意圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。參照圖1 圖4,一種基于簡化繼電器矩陣的I/O端口映射方法,構(gòu)造一個矩陣, 將所有的計算機(jī)I/O端口按照功能進(jìn)行分組,把每一組I/O端口連接到矩陣的行上。構(gòu)造 一個簡化的繼電器連接方案,使得相同功能組的I/O端口可以產(chǎn)生到列連接的所有組合方 式。用戶把受控機(jī)的測量點(diǎn)連接到矩陣的列上并且輸入測量點(diǎn)所需的I/O端口類型,計算 機(jī)根據(jù)簡化的繼電器矩陣把測量點(diǎn)映射到I/O端口上;主要包括如下步驟A1.假設(shè)總共有N個I/O端口,如圖1所示構(gòu)造一個NXN的矩陣,行和列之間不相 交,N為自然數(shù);A2.選擇一個未配置的I/O端口,統(tǒng)計和當(dāng)前I/O端口具有相同功能的I/O端口個 數(shù),假設(shè)數(shù)量為P,P為自然數(shù),將它們歸為一組,將這組I/O端口連接到步驟1構(gòu)造的矩陣 的第C行至第(C+P)行,C為自然數(shù),C為當(dāng)前未連接I/O端口的最小行;A3.按照如圖2所示的方法,在第1行與第1,2,……(N-P+1)列的交叉點(diǎn)設(shè)置繼 電器,同理在第X行與第X,X+1,……(N-P+X)列的交叉點(diǎn)設(shè)置繼電器,重復(fù)該步驟直到所 有P行都配置完畢,將這P個端口標(biāo)注為已配置;A4.如果有未配置的端口,重復(fù)步驟A2到A3,如果所有的端口都已經(jīng)配置就完成 了簡化繼電器矩陣的構(gòu)造;A5.當(dāng)用戶要映射一個受控機(jī)時,計算機(jī)首先建立一張表格,表格含有以下幾項 行編號;I/O端口類型;是否已經(jīng)使用;與該行有繼電器連接的所有列;計算機(jī)將矩陣中的 所有繼電器斷開,并將所有的行標(biāo)記為未使用;
A6.用戶把受控機(jī)上未連接的測試點(diǎn)連接到矩陣上沒有測試點(diǎn)連接的編號最小的 列上(假設(shè)為Z),并且向計算機(jī)輸入該測試點(diǎn)需要的I/O端口類型(假定為F);A7.計算機(jī)得到用戶的輸入后,查找由步驟A5創(chuàng)建的表格,找到所有I/O端口類型 為F的行;A8.計算機(jī)按照編號從小到大掃描由步驟A7選擇出來的行,如果當(dāng)前行Y未被使 用而且和Z列之間有繼電器,則將矩陣中Y行Z列的繼電器連通,將Y行標(biāo)記為已使用,進(jìn) 入步驟A9 ;否則繼續(xù)掃描下一行。A9.如果還有測試點(diǎn)沒有連接,重復(fù)步驟A6到A8,直到所有測試點(diǎn)連接完畢。這樣,只要在第一次使用的時候根據(jù)步驟A1到A4構(gòu)造一個簡化的繼電器矩陣,以 后用戶在更換受控機(jī)的時候,只要根據(jù)步驟A5到A9將受控機(jī)的測試點(diǎn)按照任意次序連接 到矩陣的列上,然后輸入每個測試點(diǎn)的類型,計算機(jī)就會為這些測試點(diǎn)自動映射I/O端口。參照圖4 一個計算機(jī)的測控系統(tǒng),它有六個I/O端口,作用分別為4個數(shù)字信號 采集端口 Digital Input,簡稱DI ;2個數(shù)字信號輸出端口 Digital Output,簡稱DO。首先 構(gòu)造一個6X6的電路,行列之間不連通。先處理4個DI端口,把它們接到矩陣的1 4行 上,然后分別按照編號在第X行與第X列到第(6-4+X)列的交叉處設(shè)置繼電器。每行需要 設(shè)置繼電器的列分別為第1行第1、2、3列;第2行第2、3、4列;第3行第3、4、5列;第4行第4、5、 6列。這樣就完成了所有DI端口的繼電器設(shè)置,然后將兩個DO接到DI之后的5、6行上, 在第X行與第X列到第(6-2+X)列的交叉處配置繼電器,每行需要設(shè)置繼電器的列分別為第5 行第 1、2、3、4、5 列;第 6 行第 2、3、4、5、6 列。此時用戶需要連接受控機(jī)A,計算機(jī)首先建立如表2所示的一張表,表示行信息, 并且將所有的繼電器斷開。 表2受控機(jī)A有6個測試點(diǎn),用戶首先將一個DO測試點(diǎn)連接到矩陣的第1列上,并向 計算機(jī)輸入第1列的類型為DO。計算機(jī)掃描表2,列出所有類型為D0的行,結(jié)果為5、6行。
6從小到大掃描5、6行,發(fā)現(xiàn)第5行未被使用而且和第1列有繼電器連接。計算機(jī)把第5行 與第1列交叉點(diǎn)的繼電器連通,把表2中的第5行標(biāo)記為已使用。用戶繼續(xù)連接測試點(diǎn),最 終結(jié)果如下測試點(diǎn)1D0到端口 5,測試點(diǎn)2DI到端口 1,測試點(diǎn)3DI到端口 2測試點(diǎn)4DI到端口 3,測試點(diǎn)5D0到端口 6,測試點(diǎn)6DI到端口 4如果用戶需要更換受控機(jī),只要重復(fù)步驟5到步驟9就可以實(shí)現(xiàn)端口的自動映射。 可以驗證使用這種方式的矩陣可以產(chǎn)生所有測試點(diǎn)映射的方式,從而達(dá)到和全映射一樣的 效果。采用了簡化的繼電器矩陣共需要22個繼電器,而采用全映射的繼電器矩陣則需要36 個繼電器,簡化的方案少使用了 14個繼電器,可以節(jié)省38. 9%的空間。
權(quán)利要求
一種基于簡化繼電器矩陣的I/O端口映射方法,其特征在于所述I/O端口映射方法包括如下步驟A1.計算機(jī)總共有N個I/O端口,N為自然數(shù),構(gòu)造一個N×N的矩陣,行和列之間不相交;A2.選擇一個未配置的I/O端口,統(tǒng)計和當(dāng)前I/O端口具有相同功能的I/O端口個數(shù),設(shè)數(shù)量為P,P為自然數(shù),將它們歸為一組,將這組I/O端口連接到步驟1構(gòu)造的矩陣的第C行至第(C+P)行,C為自然數(shù),C為當(dāng)前未連接I/O端口的最小行;A3.在第1行與第1,2,……(N-P+1)列的交叉點(diǎn)設(shè)置繼電器,同理在第X行與第X,X+1,……(N-P+X)列的交叉點(diǎn)設(shè)置繼電器,重復(fù)該步驟直到所有P行都配置完畢,將這P個端口標(biāo)注為已配置;A4.如果有未配置的端口,重復(fù)步驟A2到A3,直到所有的端口都已經(jīng)配置,完成簡化繼電器矩陣的構(gòu)造;A5.當(dāng)用戶要映射一個受控機(jī)時,計算機(jī)首先建立一張行信息表格,行信息表格含有行編號、I/O端口類型、是否已經(jīng)使用和與該行有繼電器連接的所有列,計算機(jī)將矩陣中的所有繼電器斷開,并將所有的行標(biāo)記為未使用;A6.用戶把受控機(jī)上未連接的測試點(diǎn)連接到矩陣上沒有測試點(diǎn)連接的編號最小的列Z上;并且向計算機(jī)輸入該測試點(diǎn)需要的I/O端口類型F;A7.計算機(jī)得到用戶的輸入后,查找由步驟A5創(chuàng)建的行信息表格,找到所有I/O端口類型為F的行;A8.按照編號從小到大掃描由步驟A7選擇出來的行,如果當(dāng)前行Y未被使用而且和Z列之間有繼電器,則將矩陣中Y行Z列的繼電器連通,將Y行標(biāo)記為已使用,進(jìn)入步驟A9;否則繼續(xù)掃描下一行。A9.如果還有測試點(diǎn)沒有連接,重復(fù)步驟A6到A8,直到所有測試點(diǎn)連接完畢。
全文摘要
一種基于簡化繼電器矩陣的I/O端口映射方法,相同功能的I/O端口采用同一個繼電器開關(guān);當(dāng)用戶要映射一個受控機(jī)時,計算機(jī)首先建立一張行信息表格,用戶把受控機(jī)上未連接的測試點(diǎn)連接到矩陣上沒有測試點(diǎn)連接的編號最小的列Z上;并且向計算機(jī)輸入該測試點(diǎn)需要的I/O端口類型F;計算機(jī)得到用戶的輸入后,查找創(chuàng)建的行信息表格,找到所有I/O端口類型為F的行;按照編號從小到大掃描選擇出來的行,如果當(dāng)前行Y未被使用而且和Z列之間有繼電器,則將矩陣中Y行Z列的繼電器連通,將Y行標(biāo)記為已使用;否則繼續(xù)掃描下一行,直到所有測試點(diǎn)連接完畢。本發(fā)明有效提高繼電器的利用率、適應(yīng)于大規(guī)模場合、減小繼電器矩陣體積。
文檔編號G05B19/042GK101866154SQ20101016878
公開日2010年10月20日 申請日期2010年5月11日 優(yōu)先權(quán)日2010年5月11日
發(fā)明者呂攀, 吳鋒, 張翼, 李紅, 羅端, 胡琦, 鄧俊 申請人:浙江大學(xué)