專利名稱:同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)i2c接口的數(shù)據(jù)傳輸方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于核電處理領(lǐng)域,尤其涉及一種同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法及裝置。
背景技術(shù):
I2C (Inter 一 Integrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備,是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較 高等優(yōu)點(diǎn)。按照標(biāo)準(zhǔn)的I2C總線協(xié)議,I2C總線包括兩根傳輸線,分別是串行的數(shù)據(jù)線(SDA)和串行的時鐘線(SCL),各個設(shè)備掛載在I2C總線上進(jìn)設(shè)備件間的數(shù)據(jù)傳輸。但是在實(shí)際項(xiàng)目開發(fā)過程中,主機(jī)通常需要與多個設(shè)備進(jìn)行數(shù)據(jù)通訊,主機(jī)的I2C接口上掛載有多個設(shè)備,但其中可能會存在只有非標(biāo)準(zhǔn)I2C接口的設(shè)備,不支持標(biāo)準(zhǔn)時序的I2C接口協(xié)議,此時為了使得主機(jī)能夠與所有的設(shè)備進(jìn)行通訊,通常的解決方案為利用主機(jī)的GPIO (General Purpose Input Output,通用輸入輸出)接口模擬相應(yīng)的非標(biāo)準(zhǔn)I2C接口協(xié)議,來驅(qū)動所述不支持標(biāo)準(zhǔn)I2C接口協(xié)議的設(shè)備,實(shí)現(xiàn)數(shù)據(jù)通訊,當(dāng)主機(jī)沒有GPIO接口,或者GPIO接口數(shù)量相當(dāng)緊張時,就沒有足夠的GPIO接口資源來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議,這樣就無法實(shí)現(xiàn)驅(qū)動所述不支持標(biāo)準(zhǔn)I2C接口協(xié)議的設(shè)備。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明的目的在于提供一種同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法及裝置,旨在解決現(xiàn)有I2C通訊系統(tǒng)中,若GPIO接口資源緊張的情況下,無法實(shí)現(xiàn)驅(qū)動非標(biāo)準(zhǔn)I2C設(shè)備的技術(shù)問題。一方面,所述同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法包括下述步驟獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址;判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸;判斷否時,將主機(jī)12C接口配置成標(biāo)準(zhǔn)12C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。另一方面,所述同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置包括地址獲取單元,用于獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);地址判斷單元,用于判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址;通用輸入輸出配置單元,用于在地址判斷單元判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸;標(biāo)準(zhǔn)接口配置單元,用于在地址判斷單元判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)12C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。本發(fā)明的有益效果是本發(fā)明技術(shù)方案首先根據(jù)主機(jī)尋址所發(fā)出的地址數(shù)據(jù)判斷當(dāng)前主機(jī)需要進(jìn)行數(shù)據(jù)通訊的從機(jī)是標(biāo)準(zhǔn)I2C設(shè)備還是非標(biāo)準(zhǔn)I2C設(shè)備,若當(dāng)前地址數(shù)據(jù)是非標(biāo)準(zhǔn)I2C設(shè)備的地址時,將主機(jī)I2C接口配置成GPIO接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,否則直接將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸,因此從上述描述可以,本發(fā)明技術(shù)方案實(shí)現(xiàn)了主機(jī)通過一個I2C接口既可以與標(biāo)準(zhǔn)I2C設(shè)備進(jìn)行數(shù)據(jù)通訊,也可以與非標(biāo)準(zhǔn)I2C設(shè)備進(jìn)行數(shù)據(jù)通訊,無需使用額外的GPIO接口,在主機(jī)GPIO接口資源緊張的情況下提供了一個很好的數(shù)據(jù)傳輸解決方案。
圖I是一種I2C總線的數(shù)據(jù)通訊系統(tǒng)結(jié)構(gòu)圖;圖2是本發(fā)明第一實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法的流程圖;圖3是本發(fā)明第二實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法的流程圖; 圖4是本發(fā)明第三實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)方框圖;圖5是本發(fā)明第四實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)方框圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在實(shí)現(xiàn)本發(fā)明之間需要搭建好硬件結(jié)構(gòu),本發(fā)明提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法和裝置適用于采用I2C總線的數(shù)據(jù)通訊系統(tǒng),具體的如圖I所示,該數(shù)據(jù)通訊系統(tǒng)包括主機(jī)101以及若干從機(jī),所述從機(jī)中包括有標(biāo)準(zhǔn)I2C設(shè)備102和非標(biāo)準(zhǔn)I2C設(shè)備103,這里不限定所述標(biāo)準(zhǔn)I2C設(shè)備102和非標(biāo)準(zhǔn)I2C設(shè)備103的數(shù)量,所述主機(jī)101、標(biāo)準(zhǔn)I2C設(shè)備102和非標(biāo)準(zhǔn)I2C設(shè)備103的SDA接口和SCL接口分別對應(yīng)連接到I2C總線的串行數(shù)據(jù)線(SDA線)和串行時鐘線(SCL線)上,所述串行數(shù)據(jù)線和串行時鐘線通過上拉電阻連接到正的電源電壓上,為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。實(shí)施例一:圖2示出了本發(fā)明第一實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法的流程圖,為了便于說明僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。本實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法包括步驟S201、獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù)。在I2C總線協(xié)議里,每個從機(jī)(標(biāo)準(zhǔn)I2C設(shè)備102和非標(biāo)準(zhǔn)I2C設(shè)備103)中都保存有一個設(shè)備地址,該地址是主機(jī)101所知曉的,當(dāng)主機(jī)101要求與從機(jī)進(jìn)行一次數(shù)據(jù)傳輸時,首先主機(jī)根據(jù)協(xié)議標(biāo)準(zhǔn)在SCL線上發(fā)出時鐘信號,當(dāng)SCL線為高電平,SDA線由高電平跳變到低電平時,表明數(shù)據(jù)傳輸考開始,并以該時鐘信號為節(jié)拍在SDA線上發(fā)送需要尋址的從機(jī)的地址數(shù)據(jù),通常該地址數(shù)據(jù)位8位,前7為地址,后I位為讀寫標(biāo)記,用于表示向從機(jī)中寫入數(shù)據(jù)或是讀出數(shù)據(jù)。步驟S202、判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址。主機(jī)101發(fā)送起始信號(即SCL線為高電平,SDA線由高電平跳變到低電平)后,所有從機(jī)偵聽到起始信號后,開始接收主機(jī)101發(fā)送的地址數(shù)據(jù),并將該數(shù)據(jù)的前7位于自己的地址進(jìn)行比較,地址一致的從機(jī)為主機(jī)所要尋址的從機(jī)設(shè)備,這樣即可知曉當(dāng)前的地址數(shù)據(jù)是標(biāo)準(zhǔn)I2C設(shè)備102的地址還是非標(biāo)準(zhǔn)I2C設(shè)備103的地址。步驟S203、判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸。當(dāng)所述地址數(shù)據(jù)與其中的一個非標(biāo)準(zhǔn)I2C設(shè)備103的地址一致時,該非標(biāo)準(zhǔn)I2C設(shè)備103向主機(jī)返回一個響應(yīng)信號,表明準(zhǔn)備開始與所述主機(jī)101開始數(shù)據(jù)傳輸,主機(jī)接收·到該響應(yīng)信號后,將自己的I2C 口配置成GPIO接口,并按照當(dāng)前非標(biāo)準(zhǔn)I2C設(shè)備103所支持的非標(biāo)準(zhǔn)12C接口協(xié)議,控制所述GPIO接口輸出相應(yīng)的時序,此時由于主機(jī)IOI和非標(biāo)準(zhǔn)I2C設(shè)備103具有相同的接口協(xié)議認(rèn)識,因此兩者之間可以進(jìn)行數(shù)據(jù)傳輸。步驟S204、判斷否時,將主機(jī)12C接口配置成標(biāo)準(zhǔn)12C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。當(dāng)所述地址數(shù)據(jù)與其中的一個標(biāo)準(zhǔn)I2C設(shè)備102的地址一致時,該標(biāo)準(zhǔn)I2C設(shè)備102向主機(jī)返回一個響應(yīng)信號,表明準(zhǔn)備開始與所述主機(jī)101開始數(shù)據(jù)傳輸,主機(jī)接收到該響應(yīng)信號后,將I2C接口配置成標(biāo)準(zhǔn)I2C接口,此時主機(jī)101與標(biāo)準(zhǔn)I2C設(shè)備102之間即可按照標(biāo)準(zhǔn)I2C接口協(xié)議進(jìn)行數(shù)據(jù)傳輸。在本實(shí)施例中,由于具有一個地址判斷過程,當(dāng)為標(biāo)準(zhǔn)I2C設(shè)備的地址時,主機(jī)與標(biāo)準(zhǔn)I2C設(shè)備直接按照標(biāo)準(zhǔn)I2C接口協(xié)議進(jìn)行數(shù)據(jù)傳輸,當(dāng)為非標(biāo)準(zhǔn)I2C設(shè)備的地址時,主機(jī)將I2C接口配置成GPIO接口,并模擬所述非標(biāo)準(zhǔn)I2C設(shè)備所述支持的非標(biāo)準(zhǔn)I2C接口協(xié)議,來實(shí)現(xiàn)與非標(biāo)準(zhǔn)I2C設(shè)備進(jìn)行數(shù)據(jù)傳輸。本方法中,主機(jī)通過一個I2C接口即可與若干個標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C設(shè)備進(jìn)行數(shù)據(jù)傳輸,節(jié)約了主機(jī)寶貴的GPIO資源。實(shí)施例二 :圖3示出了本發(fā)明第二實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法的流程圖,為了便于說明僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。本實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法包括步驟S301、獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);步驟S302、判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址,上述步驟S301、S302與實(shí)施例一中步驟S201、S202相同,此處不再贅述。步驟S303、判斷是時,釋放主機(jī)I2C接口的數(shù)據(jù)線和時鐘線。當(dāng)前的地址數(shù)據(jù)為非標(biāo)準(zhǔn)I2C設(shè)備103的地址時,該非標(biāo)準(zhǔn)I2C設(shè)備103會返回一個響應(yīng)信號,此時主機(jī)101釋放掉I2C接口連接的SDA線和SCL線的控制權(quán),準(zhǔn)備進(jìn)行后續(xù)12C接口配置操作。步驟S304、將所述主機(jī)I2C接口的數(shù)據(jù)線和時鐘線配置為普通的通用輸入輸出接Π ;步驟S305、配置所述通用輸入輸出接口的接口時序,模擬出當(dāng)前非標(biāo)準(zhǔn)I2C接口協(xié)議來驅(qū)動所述地址數(shù)據(jù)對應(yīng)的非標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。
在釋放SDA線和SCL線的控制權(quán)后,首先將主機(jī)I2C接口的數(shù)據(jù)線和時鐘線配置為普通的GPIO接口,由于本實(shí)施例中,所述非標(biāo)準(zhǔn)I2C設(shè)備103的接口時序協(xié)議與標(biāo)準(zhǔn)協(xié)議不同,比如數(shù)據(jù)輸出格式定義不同、數(shù)據(jù)應(yīng)答方式不同等等,但無論如何,主機(jī)101先前是已經(jīng)知悉所述非標(biāo)準(zhǔn)I2C設(shè)備103的時序協(xié)議,因此主機(jī)101只需按照該時序協(xié)議的要求來配置所述GPIO接口的接口輸出時序,使得主機(jī)101與非標(biāo)準(zhǔn)I2C設(shè)備103之間具有相同通訊協(xié)議,此后兩者按照該協(xié)議要求實(shí)現(xiàn)數(shù)據(jù)傳輸即可。步驟S306、判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口 ;步驟S307、根據(jù)標(biāo)準(zhǔn)I2C接口時序驅(qū)動與所述地址數(shù)據(jù)對應(yīng)的標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。當(dāng)前的地址數(shù)據(jù)為標(biāo)準(zhǔn)I2C設(shè)備102的地址時,該標(biāo)準(zhǔn)I2C設(shè)備102會返回一個 響應(yīng)信號,此時主機(jī)101將自己的I2C接口配置成標(biāo)準(zhǔn)I2C接口,按照標(biāo)準(zhǔn)的I2C接口時序協(xié)議,主機(jī)101和標(biāo)準(zhǔn)I2C設(shè)備102進(jìn)行數(shù)據(jù)傳輸,具體傳輸過程與現(xiàn)有方法一致,此處不
再贅述。當(dāng)上述傳輸完畢后,主機(jī)101發(fā)出終止信號,所有從機(jī)繼續(xù)偵聽等待主機(jī)101發(fā)送起始信號進(jìn)行下一輪數(shù)據(jù)傳輸。本實(shí)施例中步驟S303-S305為實(shí)施例一中步驟S203的具體優(yōu)選的實(shí)施方式,步驟S306、S307為實(shí)施例一中步驟S204的具體優(yōu)選實(shí)施方式,通過本實(shí)施例,主機(jī)的I2C接口可以同時與支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的設(shè)備進(jìn)行數(shù)據(jù)傳輸。實(shí)施例三:圖4示出了本發(fā)明第三實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置的流程圖,為了便于說明僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。本實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置包括地址獲取單元401,用于獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);地址判斷單元402,用于判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址;通用輸入輸出配置單元403,用于在地址判斷單元402判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸;標(biāo)準(zhǔn)接口配置單元404,用于在地址判斷單元402判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。本實(shí)施例提供的各個功能單元401-404對應(yīng)實(shí)現(xiàn)了實(shí)施例一中的步驟S201-S204,具體的,當(dāng)主機(jī)需要與從機(jī)進(jìn)行數(shù)據(jù)通訊時,首先需要進(jìn)行尋址,地址獲取單元401獲取到主機(jī)發(fā)送的地址數(shù)據(jù)后,地址判斷單元402進(jìn)行地址比對判斷,當(dāng)該地址為非標(biāo)準(zhǔn)I2C設(shè)備的地址時,通用輸入輸出配置單元403將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,否則標(biāo)準(zhǔn)接口配置單元404將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。實(shí)施例四圖5示出了本發(fā)明第四實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置的流程圖,為了便于說明僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。本實(shí)施例提供的同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置包括地址獲取單元51,用于獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);
地址判斷單元52,用于判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址;通用輸入輸出配置單元53,用于在地址判斷單元52判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸;標(biāo)準(zhǔn)接口配置單元54,用于在地址判斷單元52判斷否時,將主機(jī)12C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。其中所述通用輸入輸出配置單元53包括接口釋放模塊531,用于在地址判斷單元判斷是時,釋放主機(jī)I2C接口的數(shù)據(jù)線和時鐘線;第一配置模塊532,用于將所述主機(jī)I2C接口的數(shù)據(jù)線和時鐘線配置為普通的通用輸入輸出接口;
通用輸入輸出接口配置模塊533,用于配置所述通用輸入輸出接口的接口時序,模擬出當(dāng)前非標(biāo)準(zhǔn)I2C接口協(xié)議來驅(qū)動所述地址數(shù)據(jù)對應(yīng)的非標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。其中所述標(biāo)準(zhǔn)接口配置單元54包括第二配置模塊541,用于在地址判斷單元判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)12(接口 ;標(biāo)準(zhǔn)接口配置模塊542,用于根據(jù)標(biāo)準(zhǔn)I2C接口時序驅(qū)動與所述地址數(shù)據(jù)對應(yīng)的標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。本實(shí)施例中功能單元51、52以及功能模塊531-533、541_542對應(yīng)實(shí)現(xiàn)了實(shí)施例二中的步驟S301-S307。本實(shí)施例中,所述通用輸入輸出配置單元53本質(zhì)為開發(fā)人員在主機(jī)內(nèi)寫入的一段執(zhí)行代碼,由于開發(fā)人員在搭建I2C總線系統(tǒng)時,已經(jīng)知悉所選取的非標(biāo)準(zhǔn)I2C設(shè)備的非標(biāo)準(zhǔn)I2C時序協(xié)議,因此開發(fā)人員通過程序?qū)⒅鳈C(jī)I2C接口配置成GPIO 口后,將所述I2C接口當(dāng)做GPIO 口使用,再配置GPIO相關(guān)寄存器參數(shù)及其他參數(shù),使得所述GPIO口能夠按照當(dāng)前非標(biāo)準(zhǔn)I2C時序協(xié)議輸出時序,這樣主機(jī)和非標(biāo)準(zhǔn)I2C設(shè)備具有相同的協(xié)議基礎(chǔ)后,即可按照協(xié)議要求完成數(shù)據(jù)傳輸。綜上,本發(fā)明實(shí)施例判斷主機(jī)發(fā)送的數(shù)據(jù)地址是標(biāo)準(zhǔn)I2C設(shè)備還是非標(biāo)準(zhǔn)I2C設(shè)備的地址,當(dāng)為非標(biāo)準(zhǔn)I2C設(shè)備的地址時,將主機(jī)I2C接口配置成GPIO接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,否則直接將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。因此主機(jī)的I2C接口既可驅(qū)動標(biāo)準(zhǔn)時序的I2C接口設(shè)備的同時,還可以驅(qū)動非標(biāo)準(zhǔn)時序的12C接口設(shè)備,省去了使用其他GPIO 口模擬12C來驅(qū)動非標(biāo)準(zhǔn)時序的12C接口設(shè)備的過程,從而達(dá)到了節(jié)省GPIO 口的目的。本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了較詳細(xì)的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改、或者對其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法,其特征在于,所述方法包括 獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù); 判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址; 判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸; 判斷否時,將主機(jī)12C接口配置成標(biāo)準(zhǔn)12C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。
2.如權(quán)利要求I所述方法,其特征在于,所述判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸步驟,具體包括 判斷是時,釋放主機(jī)I2C接口的數(shù)據(jù)線和時鐘線; 將所述主機(jī)I2C接口的數(shù)據(jù)線和時鐘線配置為普通的通用輸入輸出接口 ; 配置所述通用輸入輸出接口的接口時序,模擬出當(dāng)前非標(biāo)準(zhǔn)I2C接口協(xié)議來驅(qū)動所述地址數(shù)據(jù)對應(yīng)的非標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。
3.如權(quán)利要求I所述方法,其特征在于,所述判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸步驟,具體包括 判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口 ; 根據(jù)標(biāo)準(zhǔn)I2C接口時序驅(qū)動與所述地址數(shù)據(jù)對應(yīng)的標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。
4.一種同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸裝置,其特征在于,所述裝置包括 地址獲取單元,用于獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù); 地址判斷單元,用于判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址; 通用輸入輸出配置單元,用于在地址判斷單元判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸; 標(biāo)準(zhǔn)接口配置單元,用于在地址判斷單元判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。
5.如權(quán)利要求4所述裝置,其特征在于,所述通用輸入輸出配置單元包括 接口釋放模塊,用于在地址判斷單元判斷是時,釋放主機(jī)I2C接口的數(shù)據(jù)線和時鐘線;第一配置模塊,用于將所述主機(jī)I2C接口的數(shù)據(jù)線和時鐘線配置為普通的通用輸入輸出接口 ; 通用輸入輸出接口配置模塊,用于配置所述通用輸入輸出接口的接口時序,模擬出當(dāng)前非標(biāo)準(zhǔn)I2C接口協(xié)議來驅(qū)動所述地址數(shù)據(jù)對應(yīng)的非標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。
6.如權(quán)利要求4所述裝置,其特征在于,所述標(biāo)準(zhǔn)接口配置單元包括 第二配置模塊,用于在地址判斷單元判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口 ;標(biāo)準(zhǔn)接口配置模塊,用于根據(jù)標(biāo)準(zhǔn)I2C接口時序驅(qū)動與所述地址數(shù)據(jù)對應(yīng)的標(biāo)準(zhǔn)I2C設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳輸。
全文摘要
本發(fā)明適用于通訊接口領(lǐng)域,提供一種同時支持標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)I2C接口的數(shù)據(jù)傳輸方法及裝置,所述方法包括獲取I2C總線中數(shù)據(jù)線上的地址數(shù)據(jù);判斷所述地址數(shù)據(jù)是否為非標(biāo)準(zhǔn)I2C設(shè)備的地址;判斷是時,將主機(jī)I2C接口配置成通用輸入輸出接口來模擬非標(biāo)準(zhǔn)I2C接口協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸;判斷否時,將主機(jī)I2C接口配置成標(biāo)準(zhǔn)I2C接口實(shí)現(xiàn)數(shù)據(jù)傳輸。本發(fā)明技術(shù)方案中,主機(jī)I2C接口既可驅(qū)動標(biāo)準(zhǔn)時序的I2C接口設(shè)備的同時,還可以驅(qū)動非標(biāo)準(zhǔn)時序的I2C接口設(shè)備,省去了使用其他GPIO口模擬I2C來驅(qū)動非標(biāo)準(zhǔn)時序的I2C接口設(shè)備的過程,從而達(dá)到了節(jié)省GPIO口的目的。
文檔編號G06F13/40GK102929828SQ201210398780
公開日2013年2月13日 申請日期2012年10月18日 優(yōu)先權(quán)日2012年10月18日
發(fā)明者張強(qiáng), 周輝 申請人:廣東歐珀移動通信有限公司