專利名稱:一種利用總線進(jìn)行通訊的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備間的數(shù)據(jù)傳輸領(lǐng)域,特別是涉及一種利用總線進(jìn)行通訊的方法和
>J-U ρ α裝直。
背景技術(shù):
I2C(Inter-1ntegrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式總線,用于連接微控制器及外圍設(shè)備。由于它具有較少的連接,故常用于結(jié)構(gòu)緊湊的設(shè)計(jì)中實(shí)現(xiàn)短距離的傳輸。由于I2C總線采用串行的數(shù)據(jù)傳輸方式進(jìn)行通訊,位速率一般lOOkbit/s到 3.4Mbit/s,所以它訪問外設(shè)的速率較慢,并且被I2C總線所訪問到的從設(shè)備中采用8比特?cái)?shù)據(jù)位寬格式進(jìn)行地址和數(shù)據(jù)的編碼,因此它所能訪問的從設(shè)備中寄存器地址也非常少;在常見的應(yīng)用中,I2C傳輸?shù)臄?shù)據(jù),首先MCU主機(jī)發(fā)送一個(gè)從設(shè)備地址,這個(gè)地址共7位,緊接著發(fā)送的第八位為讀寫控制位,然后從設(shè)備返回應(yīng)答。接下來的8個(gè)SCL時(shí)鐘周期主機(jī)發(fā)送需要訪問的從設(shè)備寄存器地址位(datal,8比特?cái)?shù)據(jù)),從設(shè)備接收到需要訪問的寄存器地址后,將8比特的SDA串行數(shù)據(jù)譯碼為8比特的寄存器地址,主機(jī)將需要寫入的寄存器數(shù)據(jù)data2寫入譯碼后對(duì)應(yīng)的地址中。當(dāng)主機(jī)MCU尋址到需要訪問的從設(shè)備后,對(duì)從設(shè)備的寄存器進(jìn)行操作時(shí),由于從設(shè)備寄存器地址采用datal的8比特?cái)?shù)據(jù)譯碼,所以主機(jī)能訪問從設(shè)備的地址段最多256個(gè)寄存器地址。如果從設(shè)備進(jìn)行一些復(fù)雜的操作和控制,需要與MCU主設(shè)備進(jìn)行頻繁復(fù)雜的通訊,那256個(gè)寄存器地址往往是不夠使用的。況且在從設(shè)備方,內(nèi)部控制一般涉及到多個(gè)模塊,如果在寄存器地址緊張的情況下對(duì)每個(gè)模塊進(jìn)行寄存器地址劃分,那每個(gè)模塊得到的寄存器地址將是有限的,并且模塊之間寄存器地址的定義將是連續(xù)的,不方便記憶每個(gè)模塊所占用的地址段無規(guī)律可循,況且緊張的寄存器地址資源將不能給每個(gè)模塊預(yù)留一定的保留地址,這樣不利于從設(shè)備第二次或者多次開發(fā),降低了開發(fā)工作的效率,所以如何有效的將寄存器地址擴(kuò)展一直是開發(fā)人員關(guān)注的焦點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種總線通訊方法和裝置,可以解決利用總線訪問設(shè)備內(nèi)部地址空間受限的問題,提高開發(fā)工作的效率。采用的方案是一種利用總線進(jìn)行通訊的方法,包括步驟在各個(gè)寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;所述段地址與另一寄存器的地址相對(duì)應(yīng);從總線信息中獲取訪問目的設(shè)備的地址信息;當(dāng)所述地址信息屬于全局地址時(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器。
以及,一種利用總線進(jìn)行通訊的裝置,包括保存單元,用于在各個(gè)寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;所述段地址與另一寄存器的地址相對(duì)應(yīng);地址獲取單元,用于從總線信息中獲取訪問目的設(shè)備的地址信息;訪問單元,用于當(dāng)所述地址信息屬于全局地址時(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器。本發(fā)明先在目的設(shè)備中的各個(gè)寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址對(duì)各個(gè)寄存器的地址進(jìn)行擴(kuò)展,可以提高總線訪問目的設(shè)備寄存器的地址比特寬度;可以將目的設(shè)備寄存器的地址寬度提高到16比特或者更高的比特,相比傳統(tǒng)的8比特地址而言,提高了總線訪問設(shè)備內(nèi)部地址空間數(shù);然后從總線信息中獲取地址信息;根據(jù)獲取的地址信息和擴(kuò)展后的寄存器地址進(jìn)行訪問目的設(shè)備;因此,可以解決利用總線訪問設(shè)備內(nèi)部地址空間受限的問題,提高開發(fā)工作的效率。
圖1為本發(fā)明方法的一個(gè)實(shí)施例流程圖;圖2為本發(fā)明裝置的一個(gè)結(jié)構(gòu)示意圖;圖3為本發(fā)明的一個(gè)具體實(shí)施例示意圖。
具體實(shí)施例方式本發(fā)明提出一種利用總線進(jìn)行通訊方法,具體步驟,請(qǐng)參見圖1,包括101、在各個(gè)寄存器中保存全局控制寄存器地址段,其中,全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;段地址與另一寄存器的地址相對(duì)應(yīng);具體的,可在各個(gè)寄存器中保存全局控制寄存器地址的步驟前,進(jìn)行如下步驟在第一寄存器中開辟出全局控制寄存器地址段;將其中一部分全局控制寄存器地址段作為段地址,其余部分作為全局地址;全局地址用于全局控制和用于頻繁訪問的接口,如復(fù)位,監(jiān)控,中斷等。這樣既保證了全局控制的速度與原I2C總線訪問速度的一致,也能很好的利用它進(jìn)行段地址的擴(kuò)展。該段地址用于后續(xù)寄存器地址的擴(kuò)展;建立第二寄存器的地址與段地址的對(duì)應(yīng)關(guān)系;其中,第一寄存器和第二寄存器屬于目的設(shè)備。關(guān)于第二寄存器的地址與段地址的對(duì)應(yīng)關(guān)系,其中一種表現(xiàn)形式是地址映射;例如其中一個(gè)目的設(shè)備中的寄存器地址Al、A2、A3,另一目的設(shè)備的寄存器地址為B1、B2以及B3 ;若將地址Al作為段地址,其他地址作為全局地址;則,可將Al與B1、B2以及B3映射,由此建立第二寄存器的地址與段地址的對(duì)應(yīng)關(guān)系;如需要,還可以在另一寄存器的地址中將其中的某些地址作為段地址,再將該段地址與第三個(gè)目的設(shè)備的寄存器地址進(jìn)行映射;由此循環(huán)進(jìn)行映射,可以建立多重映射關(guān)系,從而可以訪問更多的寄存器。由于一個(gè)寄存器的地址有限的,通過這種地址擴(kuò)展方法,可以增加利用總線訪問從設(shè)備的地址數(shù)目;也即是說可以提高總線訪問目的設(shè)備寄存器的地址寬度。傳統(tǒng)的總線訪問目的設(shè)備寄存器的地址寬度可以達(dá)到8比特;而經(jīng)過本發(fā)明的地址擴(kuò)展后,可以將這個(gè)地址寬度提高到16比特或者更高的比特。若在第一寄存器中開辟出的全局控制寄存器地址段為O至255共256個(gè)地址,將其中的N地址作為段地址;則可擴(kuò)展的寄存器地址可達(dá)到(256-N) X 256個(gè)。還可以將其中另一部分全局控制寄存器地址段作為另一個(gè)段地址,進(jìn)行地址擴(kuò)展。S102、從總線信息中獲取訪問目的設(shè)備的地址信息;本發(fā)明適用各種總線,以I2C總線為例,當(dāng)主設(shè)備通過I2C總線訪問從設(shè)備時(shí),由于I2C協(xié)議采用串行的方式發(fā)送地址和數(shù)據(jù)到從設(shè)備。所以先經(jīng)過地址譯碼單元進(jìn)行協(xié)議的解碼,將一次完整的讀操作或者寫操作解析為并行總線訪問方式,采用這種方式在大型的工程項(xiàng)目中能使各個(gè)接口開發(fā)人員省去研究具體的I2C協(xié)議數(shù)據(jù)格式,只需采用常見的并口訪問方式操作各自負(fù)責(zé)開發(fā)的模塊。解析出的并行總線信息包括以下的I個(gè)或者多個(gè)信息讀信號(hào)、寫信號(hào)、控制信號(hào)、寫入的數(shù)據(jù)、地址信息以及讀取的數(shù)據(jù)。S103、當(dāng)?shù)刂沸畔儆谌值刂窌r(shí),根據(jù)地址信息訪問當(dāng)前寄存器;當(dāng)?shù)刂沸畔儆诙蔚刂窌r(shí),根據(jù)地址信息訪問另一寄存器。具體的,訪問目的設(shè)備時(shí),根據(jù)地址信息進(jìn)行選擇;可以將地址信息與第一寄存器的地址進(jìn)行比對(duì);當(dāng)?shù)刂沸畔儆谌值刂窌r(shí),則按照地址信息訪問當(dāng)前寄存器;當(dāng)?shù)刂沸畔儆诙蔚刂窌r(shí),進(jìn)行地址仲裁,根據(jù)映射關(guān)系查找具體的地址,根據(jù)查找到的地址訪問另一寄存器。本發(fā)明先在目的設(shè)備中的各個(gè)寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址對(duì)各個(gè)寄存器的地址進(jìn)行擴(kuò)展,可以提高總線訪問目的設(shè)備寄存器的地址比特寬度;可以將目的設(shè)備寄存器的地址寬度提高到16比特或者更高的比特,相比傳統(tǒng)的8比特地址而言,提高了總線訪問設(shè)備內(nèi)部地址空間數(shù);然后從總線信息中獲取地址信息;根據(jù)獲取的地址信息和擴(kuò)展后的寄存器地址進(jìn)行訪問目的設(shè)備;因此,可以解決利用總線訪問設(shè)備內(nèi)部地址空間受限的問題,提高開發(fā)工作的效率。本發(fā)明提出一種利用總線進(jìn)行通訊的裝置,參考圖2,包括保存單元、獲取單元以及訪問單元;其中,保存單元,用于在各個(gè)寄存器中保存全局控制寄存器地址段,其中,全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;段地址與另一寄存器的地址相對(duì)應(yīng);地址獲取單元,用于從總線信息中獲取訪問目的設(shè)備的地址信息;訪問單元,用于當(dāng)?shù)刂沸畔儆谌值刂窌r(shí),根據(jù)地址信息訪問當(dāng)前寄存器;當(dāng)?shù)刂沸畔儆诙蔚刂窌r(shí),根據(jù)地址信息訪問另一寄存器。具體地,訪問單元將地址信息與當(dāng)前寄存器中保存的全局控制寄存器地址段進(jìn)行比對(duì);當(dāng)?shù)刂沸畔儆诋?dāng)前寄存器的全局地址時(shí),則按照地址信息訪問當(dāng)前寄存器;當(dāng)?shù)刂沸畔儆诋?dāng)前寄存器的段地址時(shí),根據(jù)映射關(guān)系訪問另一寄存器。
本發(fā)明先在目的設(shè)備中的各個(gè)寄存器中保存全局控制寄存器地址段,利用全局控制地址中的段地址對(duì)各個(gè)寄存器的地址進(jìn)行擴(kuò)展,可以提高總線訪問目的設(shè)備寄存器的地址比特寬度;可以將目的設(shè)備寄存器的地址寬度提高到16比特或者更高的比特,相比傳統(tǒng)的8比特地址而言,提高了總線訪問設(shè)備內(nèi)部地址空間數(shù);然后從總線信息中獲取地址信息;根據(jù)獲取的地址信息和擴(kuò)展后的寄存器地址進(jìn)行訪問目的設(shè)備;因此,可以解決利用總線訪問設(shè)備內(nèi)部地址空間受限的問題,提高開發(fā)工作的效率。在其中一個(gè)實(shí)施方式中,請(qǐng)參考圖3,本發(fā)明裝置還包括建立單元;其中,建立單元在第一寄存器中開辟出全局控制寄存器地址段;將其中一部分全局控制寄存器地址段作為段地址,其余部分作為全局地址;建立第二寄存器的地址與段地址的映射關(guān)系,得到預(yù)定的寄存器地址對(duì)應(yīng)關(guān)系;其中,第一寄存器和第二寄存器屬于目的設(shè)備。在其中一個(gè)實(shí)施方式中,地址獲取單元接收主設(shè)備發(fā)送的串行總線信息,將串行總線信息解析為并行總線信息,從并行總線信息中獲取訪問目的設(shè)備的地址信息。為更好的理解本發(fā)明,下面介紹一個(gè)具體例子,請(qǐng)參考圖4,其中包括主設(shè)備和目的設(shè)備;目的設(shè)備包括地址譯碼單元S1、寄存器S2仲裁器S3以及另一寄存器S4 ;S4的地址段包括100、101以及102 ;寄存器S2中保存有全局控制寄存器地址段,假設(shè)在S2中開辟的全局控制寄存器地址段為001、002、003、004以及005 ;其中,001作為段地址;002至005作為全局地址;S2中段地址與另一寄存器S4的地址對(duì)應(yīng)關(guān)系為001與100、101以及102映射;S3中存儲(chǔ)有當(dāng)前寄存器的段地址與另一寄存器S4的地址相對(duì)應(yīng)的信息;若主設(shè)備通過總線訪問002 :地址譯碼單元SI將串行總線信息解析成并行總線信息;得到讀信號(hào)、寫信號(hào)、控制信號(hào)、寫入的數(shù)據(jù)、地址信息002以及讀取的數(shù)據(jù);從并行總線信息中獲取從設(shè)備的寄存器地址信息002 ;根據(jù)獲取的地址信息002在寄存器S2中尋找對(duì)應(yīng)的地址端口,發(fā)現(xiàn)該地址信息屬于S2中的全局地址,則主設(shè)備可以通過寄存器S2中002訪問目的設(shè)備;若主設(shè)備通過總線訪問100,經(jīng)過地址譯碼單元SI解析得到地址信息001,根據(jù)獲取的地址信息001在寄存器S2中尋找對(duì)應(yīng)的地址端口,發(fā)現(xiàn)該地址屬于S2中的段地址,則將該地址送至仲裁器S3進(jìn)行地址仲裁,根據(jù)該地址在當(dāng)前寄存器的段地址與另一寄存器的地址相對(duì)應(yīng)的信息進(jìn)行查找,得到寄存器S4的地址100,從而可以通過寄存器S4的地址100訪問目的設(shè)備。綜上,本發(fā)明可達(dá)到如下效果1、串行總線接口時(shí)序?qū)⑺枰獋鬟f的數(shù)據(jù)內(nèi)容串行化,不太容易理解。將物理上串行傳輸?shù)臄?shù)據(jù)邏輯化為并行傳輸方式,方便理解,提高效率;并且并行總線采用地址段劃分的總線仲裁方式進(jìn)行總線的仲裁,不僅做到了模塊的很好劃分,而且能保證模塊信息的封閉性,總線接口的一致性。2、I2C總線地址擴(kuò)展方式提供了一種解決外部設(shè)備寄存器地址有限的技術(shù)方案。此技術(shù)方案亦可運(yùn)用在其他總線基礎(chǔ)上。并且采用此段地址擴(kuò)展的方式,可以方便的管理內(nèi)部不同功能模塊,使其內(nèi)部寄存器地址連續(xù)并且保留一定的保留位方便以后更復(fù)雜應(yīng)用的擴(kuò)展。3、該方式不需要每個(gè)從設(shè)備都定義各自的寄存器外部端口,使總線讀寫接口都具有相同的協(xié)議,方便不同開發(fā)人員各自開發(fā)自己的模塊,方便集成,縮短開發(fā)周期。4、在此應(yīng)用中我們將寄存器地址進(jìn)行擴(kuò)展,不需要修改具體的I2C協(xié)議,這樣便可以保留原有的I2C協(xié)議,而簡(jiǎn)單的實(shí)現(xiàn)地址的指數(shù)倍增長(zhǎng)。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種利用總線進(jìn)行通訊的方法,其特征在于,包括步驟 在各個(gè)寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;所述段地址與另一寄存器的地址相對(duì)應(yīng); 從總線信息中獲取訪問目的設(shè)備的地址信息; 當(dāng)所述地址信息屬于全局地址時(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器。
2.根據(jù)權(quán)利要求1所述的利用總線進(jìn)行通訊的方法,其特征在于, 所述從總線信息中獲取訪問目的設(shè)備的地址信息的步驟具體為 接收主設(shè)備發(fā)送的串行總線信息; 將所述串行總線信息解析為并行總線信息; 從所述并行總線信息中獲取訪問目的設(shè)備的地址信息。
3.根據(jù)權(quán)利要求1或2所述的利用總線進(jìn)行通訊的方法,其特征在于, 所述當(dāng)?shù)刂沸畔儆谌值刂窌r(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器的步驟具體為 將所述地址信息與當(dāng)前寄存器中保存的全局控制寄存器地址段進(jìn)行比對(duì); 當(dāng)所述地址信息屬于當(dāng)前寄存器的全局地址時(shí),則按照所述地址信息訪問所述當(dāng)前寄存器; 當(dāng)所述地址信息屬于當(dāng)前寄存器的段地址時(shí),根據(jù)所述映射關(guān)系訪問所述另一寄存器。
4.一種利用總線進(jìn)行通訊的裝置,其特征在于,包括 保存單元,用于在各個(gè)寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;所述段地址與另一寄存器的地址相對(duì)應(yīng); 地址獲取單元,用于從總線信息中獲取訪問目的設(shè)備的地址信息; 訪問單元,用于當(dāng)所述地址信息屬于全局地址時(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器。
5.根據(jù)權(quán)利要求4所述的利用總線進(jìn)行通訊的裝置,其特征在于,所述地址獲取單元接收主設(shè)備發(fā)送的串行總線信息,將所述串行總線信息解析為并行總線信息,從所述并行總線信息中獲取訪問目的設(shè)備的地址信息。
6.根據(jù)權(quán)利要求4或5所述的利用總線進(jìn)行通訊的裝置,其特征在于,所述訪問單元將所述地址信息與當(dāng)前寄存器中保存的全局控制寄存器地址段進(jìn)行比對(duì); 當(dāng)所述地址信息屬于當(dāng)前寄存器的全局地址時(shí),則按照所述地址信息訪問所述當(dāng)前寄存器;當(dāng)所述地址信息屬于當(dāng)前寄存器的段地址時(shí),根據(jù)所述映射關(guān)系訪問所述另一寄存器。
全文摘要
本發(fā)明提出一種利用總線進(jìn)行通訊的方法,包括步驟在各個(gè)寄存器中保存全局控制寄存器地址段,其中,所述全局控制寄存器地址段包括兩個(gè)部分,第一部分為段地址,第二部分為全局地址;所述段地址與另一寄存器的地址相對(duì)應(yīng);從總線信息中獲取訪問目的設(shè)備的地址信息;當(dāng)所述地址信息屬于全局地址時(shí),根據(jù)所述地址信息訪問當(dāng)前寄存器;當(dāng)所述地址信息屬于段地址時(shí),根據(jù)所述地址信息訪問所述另一寄存器。本發(fā)明還提出一種利用總線進(jìn)行通訊的裝置,可以解決利用總線訪問設(shè)備內(nèi)部地址空間受限的問題,提高開發(fā)工作的效率。
文檔編號(hào)G06F13/16GK103019972SQ201210483730
公開日2013年4月3日 申請(qǐng)日期2012年11月23日 優(yōu)先權(quán)日2012年11月23日
發(fā)明者鮮燚, 曹捷, 景博, 吳鵬 申請(qǐng)人:廣東威創(chuàng)視訊科技股份有限公司