C設(shè)備控制方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,更具體地說是涉及一種I2C設(shè)備控制方法及 系統(tǒng)。
【背景技術(shù)】
[0002] I2C(Inter_IntegratedCircuit,內(nèi)部集成電路)總線是由PHILIPS公司開發(fā)的 一種兩線式串行總線,即I2C的串行時(shí)鐘線(SCL)和I2C的串行數(shù)據(jù)線(SDA)兩根線,用于 連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。
[0003] 在實(shí)際應(yīng)用中,I2C總線上通常會(huì)掛載多個(gè)I2C設(shè)備,這些I2C設(shè)備將通過該I2C 總線實(shí)現(xiàn)數(shù)據(jù)交互,然而,由于現(xiàn)有廠家生產(chǎn)的同一類型的I2c設(shè)備的從地址相同,這樣,當(dāng) I2c總線上掛載多個(gè)同一類型的I2C設(shè)備后,系統(tǒng)將無法根據(jù)地址區(qū)分開這些同一類型的 I2c設(shè)備,從而也就無法實(shí)現(xiàn)對指定I2C設(shè)備的控制以及指定I2C設(shè)備之間的數(shù)據(jù)交互。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供了一種I2C設(shè)備控制方法及系統(tǒng),通過重新為I2C總線掛載 的I2c設(shè)備分配唯一的從地址,使得I2C總線掛載多個(gè)相同類型I2C設(shè)備時(shí),系統(tǒng)也能夠準(zhǔn) 確識(shí)別指定I2c設(shè)備,從而實(shí)現(xiàn)對指定I2C設(shè)備的控制以及指定I2C設(shè)備之間的數(shù)據(jù)交互。
[0005] 為了實(shí)現(xiàn)上述目的,本申請?zhí)峁┝艘韵录夹g(shù)方案:
[0006] 一種I2c設(shè)備控制方法,所述方法包括:
[0007] 控制I2C總線當(dāng)前連接的多個(gè)I2C設(shè)備逐個(gè)通電;
[0008] 在所述多個(gè)I2c設(shè)備中的任意一個(gè)I2C設(shè)備通電時(shí),訪問所述多個(gè)I2C設(shè)備的預(yù)置 從地址;
[0009] 當(dāng)接收到所述預(yù)置從地址反饋的第一信號(hào)時(shí),按照預(yù)設(shè)規(guī)則為當(dāng)前具有預(yù)置從地 址且處于通電狀態(tài)的I2C設(shè)備重新分配一一對應(yīng)的從地址。
[0010] 優(yōu)選的,所述方法還包括:
[0011] 控制所述I2c總線上的所有I2C設(shè)備供電端口通電;
[0012] 當(dāng)檢測到處于空閑狀態(tài)的任意一個(gè)I2C設(shè)備供電端口上插入I2C設(shè)備時(shí),進(jìn)入所述 訪問所述多個(gè)I2c設(shè)備的預(yù)置從地址步驟。
[0013] 優(yōu)選的,所述方法還包括:
[0014] 在第一預(yù)設(shè)時(shí)間內(nèi),檢測到處于空閑狀態(tài)的至少兩個(gè)I2C設(shè)備供電端口上均插入 I2c設(shè)備時(shí),選擇其中的任意一個(gè)I2C設(shè)備處于通電狀態(tài),并返回所述訪問所述多個(gè)I2C設(shè)備 的預(yù)置從地址步驟,直至為插入的所有I2c設(shè)備均重新分配一一對應(yīng)的從地址。
[0015] 優(yōu)選的,檢測處于空閑狀態(tài)的I2C設(shè)備供電端口上是否插入I2C設(shè)備的過程具體 為:
[0016] 檢測電源管理芯片是否產(chǎn)生中斷信號(hào),其中,所述中斷信號(hào)是在檢測到所述I2C設(shè) 備供電端口的電流消耗量大于第一閾值時(shí)產(chǎn)生的。
[0017] 優(yōu)選的,所述按照預(yù)設(shè)規(guī)則為當(dāng)前具有預(yù)置從地址且處于通電狀態(tài)的I2c設(shè)備重 新分配一一對應(yīng)的從地址具體為:
[0018] 從預(yù)設(shè)I2C地址池中任意選擇一個(gè)地址作為從地址發(fā)送至當(dāng)前具有預(yù)置從地址且 處于通電狀態(tài)的I2c設(shè)備,以使所述多個(gè)I2C設(shè)備具有一一對應(yīng)的從地址。
[0019] 一種I2C設(shè)備控制系統(tǒng),所述系統(tǒng)包括:
[0020] 第一控制器,用于控制I2c總線當(dāng)前連接的多個(gè)I2C設(shè)備逐個(gè)通電;
[0021] 與所述多個(gè)I2c設(shè)備一一對應(yīng)的可編程控制器;
[0022] I2C控制器,用于在所述多個(gè)I2C設(shè)備中的任意一個(gè)I2C設(shè)備通電時(shí),訪問該I2C設(shè) 備一一對應(yīng)的可編程控制器的預(yù)置從地址,當(dāng)接收到所述預(yù)置從地址反饋的第一信號(hào)時(shí), 按照預(yù)設(shè)規(guī)則為當(dāng)前具有預(yù)置從地址且處于通電狀態(tài)的I2c設(shè)備重新分配一一對應(yīng)的從地 址,并發(fā)至所述當(dāng)前具有預(yù)置從地址且處于通電狀態(tài)的I2c設(shè)備一一對應(yīng)的可編程控制器。
[0023] 優(yōu)選的,
[0024] 所述第一控制器還用于控制所述I2C總線上的所有I2C設(shè)備供電端口通電;
[0025] 則所述I2C控制器還用于檢測處于空閑狀態(tài)的I2C設(shè)備供電端口上是否插入I2C設(shè) 備,當(dāng)檢測到任意一個(gè)I2c設(shè)備供電端口上插入I2C設(shè)備時(shí),進(jìn)入所述訪問所述多個(gè)I2C設(shè) 備的預(yù)置從地址步驟;當(dāng)在第一預(yù)設(shè)時(shí)間內(nèi),檢測到處于空閑狀態(tài)的至少兩個(gè)I2c設(shè)備供電 端口上均插入I2c設(shè)備時(shí),選擇其中的任意一個(gè)I2C設(shè)備處于通電狀態(tài),并返回所述訪問所 述多個(gè)I2C設(shè)備的預(yù)置從地址步驟,直至為插入的所有I2C設(shè)備均重新分配一一對應(yīng)的從地 址。
[0026] 優(yōu)選的,所述系統(tǒng)還包括:
[0027] 電源管理芯片,用于在檢測到所述I2C設(shè)備供電端口的電流消耗量大于第一閾值 時(shí)產(chǎn)生中斷信號(hào);
[0028] 則所述I2C控制器檢測處于空閑狀態(tài)的I2C設(shè)備供電端口上是否插入I2C設(shè)備的 過程具體為:檢測所述電源管理芯片是否產(chǎn)生中斷信號(hào)。
[0029] 優(yōu)選的,所述系統(tǒng)還包括:
[0030] 存儲(chǔ)器,用于存儲(chǔ)預(yù)設(shè)I2C地址池,以使所述I2C控制器在所述多個(gè)I2C設(shè)備中的 每一個(gè)I2C設(shè)備通電時(shí),從所述預(yù)設(shè)I2C地址池中任意選擇一個(gè)地址作為從地址發(fā)送至當(dāng)前 具有預(yù)置從地址且處于通電狀態(tài)的I2c設(shè)備。
[0031] 優(yōu)選的,所述可編程控制器具體為單片機(jī)。
[0032] 由此可見,與現(xiàn)有技術(shù)相比,本申請?zhí)峁┝艘环NI2C設(shè)備控制方法及裝置,控制I2C 總線當(dāng)前連接的多個(gè)I2c設(shè)備逐個(gè)通電,在這多個(gè)I2C設(shè)備中任意一I2C設(shè)備通電時(shí),通過 訪問這多個(gè)I2c設(shè)備的預(yù)置從地址,當(dāng)接收到所述預(yù)置從地址反饋的第一信號(hào)時(shí),說明當(dāng)前 通電的I2c設(shè)備具有該預(yù)置從地址,是所需的目標(biāo)I2C設(shè)備,為了使系統(tǒng)能夠在具有相同地 址的I2c設(shè)備中準(zhǔn)確識(shí)別出該目標(biāo)I2C設(shè)備,本申請?jiān)诖藭r(shí)按照預(yù)設(shè)規(guī)則為該目標(biāo)I2C設(shè)備 重新分配一一對應(yīng)的從地址,從而使得I2c總線連接的多個(gè)I2C設(shè)備都具有唯一的從地址, 以便系統(tǒng)根據(jù)該從地址準(zhǔn)確識(shí)別出所需的目標(biāo)I2c設(shè)備,進(jìn)而實(shí)現(xiàn)對指定I2C設(shè)備的控制以 及指定I2c設(shè)備之間的數(shù)據(jù)交互。
【附圖說明】
[0033] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0034] 圖1為本發(fā)明提供的一種I2C設(shè)備控制方法實(shí)施例一的流程示意圖;
[0035] 圖2為一種I2C總線工作系統(tǒng)結(jié)構(gòu)框圖;
[0036] 圖3為本發(fā)明提供的一種I2C設(shè)備控制方法實(shí)施例二的部分流程示意圖;
[0037] 圖4為本發(fā)明提供的一種I2C設(shè)備控制方法實(shí)施例三的部分流程示意圖;
[0038] 圖5為本發(fā)明提供的一種I2C設(shè)備控制裝置實(shí)施例四的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040] 本申請?zhí)峁┝艘环NI2c設(shè)備控制方法及裝置,控制I2C總線當(dāng)前連接的多個(gè)I2C設(shè) 備逐個(gè)通電,在這多個(gè)I2C設(shè)備中任意一個(gè)I2C設(shè)備通電時(shí),通過訪問這多個(gè)I2C設(shè)備的預(yù) 置從地址,當(dāng)接收到所述預(yù)置從地址反饋的第一信號(hào)時(shí),說明當(dāng)前通電的I2C設(shè)備具有該預(yù) 置從地址,是所需的目標(biāo)I2c設(shè)備,為了使系統(tǒng)能夠在具有相同地址的I2C設(shè)備中準(zhǔn)確識(shí)別 出該目標(biāo)I2C設(shè)備,本申請?jiān)诖藭r(shí)按照預(yù)設(shè)規(guī)則為該目標(biāo)I2C設(shè)備重新分配一一對應(yīng)的從地 址,從而使得I2c總線連接的多個(gè)I2C設(shè)備都具有唯一的從地址,以便系統(tǒng)根據(jù)該從地址準(zhǔn) 確識(shí)別出所需的目標(biāo)I2c設(shè)備,進(jìn)而實(shí)現(xiàn)對指定I2C設(shè)備的控制以及指定I2C設(shè)備之間的數(shù) 據(jù)交互。
[0041] 為使本發(fā)明提供的上述技術(shù)方案的目的、