C總線傳輸裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本實(shí)用新型涉及一種I2C總線裝置,具體涉及一種I2C總線傳輸裝置,屬于一種I2C總線通訊技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]傳統(tǒng)通訊電源系統(tǒng)中,I2C通訊功能應(yīng)用十分廣泛,業(yè)界已形成標(biāo)準(zhǔn)通信協(xié)議PMBus數(shù)字電源管理協(xié)議。該協(xié)議是通過傳輸接口及命令語言來促進(jìn)電源本體與其他設(shè)備通訊。例如,通訊電源與監(jiān)控管理主機(jī)之間的通信采用I2C通訊功能(PMBus電源管理協(xié)議)。
[0003]而這種通訊電源與監(jiān)控管理主機(jī)之間的I2C通訊協(xié)議,實(shí)際上通訊電源在PMBus環(huán)境中充當(dāng)從器件,監(jiān)控管理主機(jī)充當(dāng)I2C通訊主機(jī)。通訊電源主控芯片在功能實(shí)現(xiàn)上是I2C接收中斷服務(wù)程序處理者,意在執(zhí)行協(xié)議中的傳輸鏈路層。
[0004]但是無論單片機(jī)還是DSP,微處理器在作為電源主控芯片時(shí),不可能單一的執(zhí)行I2C這一個(gè)工作,而是全面控制系統(tǒng)的任何功能。PMBus總線協(xié)議只是規(guī)范化從設(shè)備配置數(shù)據(jù)方式,而主控設(shè)備不是基于自主設(shè)計(jì)的,也不作為一個(gè)轉(zhuǎn)換器。多數(shù)時(shí)候主設(shè)備是計(jì)算機(jī),只負(fù)責(zé)單一的處理I2C通訊總線數(shù)據(jù)。
[0005]傳統(tǒng)的DSP芯片作為I2C主機(jī)來實(shí)現(xiàn)信息通訊功能時(shí),每次發(fā)送數(shù)據(jù)較少,執(zhí)行主函數(shù)周期較長(zhǎng),不利于大數(shù)據(jù)量傳輸,并且直接影響其他功能的控制。
【實(shí)用新型內(nèi)容】
[0006]本實(shí)用新型的目的是為了解決現(xiàn)有技術(shù)的I2C總線通訊系統(tǒng)存在占用主循環(huán)時(shí)間,造成通訊時(shí)間長(zhǎng),通訊效率低的問題。
[0007]本實(shí)用新型的技術(shù)方案是:一種I2C總線傳輸裝置,包括主設(shè)備、I2C總線和若干從設(shè)備,主設(shè)備和從設(shè)備之間通過I2C總線建立連接,所述主設(shè)備包括I2C控制器、狀態(tài)寄存器、模式寄存器、地址寄存器、計(jì)數(shù)器、數(shù)據(jù)接收寄存器、接收移位寄存器、數(shù)據(jù)發(fā)送寄存器和發(fā)送移位寄存器,I2C控制器的輸出端分別連接狀態(tài)寄存器、模式寄存器、地址寄存器和數(shù)據(jù)發(fā)送寄存器,數(shù)據(jù)發(fā)送寄存器通過發(fā)送移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸入端通過接收移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸出端連接I2C控制器,所述計(jì)數(shù)器與I2C控制器建立雙向數(shù)據(jù)傳輸連接,I2C控制器與I2C總線建立雙向數(shù)據(jù)傳輸連接。
[0008]所述I2C總線包括SDA線和SCL線,所述I2C控制器與SCL線建立雙向數(shù)據(jù)傳輸連接,所述接收移位寄存器和發(fā)送移位寄存器均與SDA寄存器建立連接。
[0009]所述從設(shè)備分別與SDA線和SCL線建立雙向數(shù)據(jù)傳輸連接。
[0010]本實(shí)用新型與現(xiàn)有技術(shù)相比具有以下效果:本實(shí)用新型有效的解決了傳統(tǒng)I2C總線通訊裝置的占用主循環(huán)時(shí)間,造成通訊時(shí)間長(zhǎng),通訊效率低的問題,本實(shí)用新型在保證大量傳輸數(shù)據(jù)的同時(shí)可以正常執(zhí)行其他控制、通訊功能,提高了通訊效率和通訊質(zhì)量。
【附圖說明】
[0011]圖1,本實(shí)用新型的結(jié)構(gòu)框圖;
[0012]圖2,本實(shí)用新型發(fā)送數(shù)據(jù)過程的原理圖;
[0013]圖3,本實(shí)用新型接收數(shù)據(jù)過程的原理圖。
【具體實(shí)施方式】
[0014]結(jié)合【附圖說明】本實(shí)用新型的【具體實(shí)施方式】,本實(shí)用新型的一種I2C總線傳輸裝置,包括DSP主設(shè)備、I2C總線、從設(shè)備a、從設(shè)備b和從設(shè)備c,DSP主設(shè)備和從設(shè)備之間通過I2C總線建立連接,所述DSP主設(shè)備包括I2C控制器、狀態(tài)寄存器I2CSTR、模式寄存器I2CMDR、地址寄存器I2CSAR、計(jì)數(shù)器、數(shù)據(jù)接收寄存器I2⑶RR、接收移位寄存器I2CRSR、數(shù)據(jù)接發(fā)送存器I2CDXR和發(fā)送移位寄存器I2CXSR, I2C控制器的輸出端分別連接狀態(tài)寄存器I2CSTR、模式寄存器I2CMDR、地址寄存器I2CSAR和數(shù)據(jù)接發(fā)送存器ltDXR,數(shù)據(jù)接發(fā)送存器ItDXR通過發(fā)送移位寄存器I2CXSR連接I2C總線,數(shù)據(jù)接收寄存器I2CDRR的輸入端通過接收移位寄存器I2CRSR連接I2C總線,數(shù)據(jù)接收寄存器I2CDRR的輸出端連接I2C控制器,所述計(jì)數(shù)器與I2C控制器建立雙向數(shù)據(jù)傳輸連接,I2C控制器與I2C總線建立雙向數(shù)據(jù)傳輸連接。
[0015]所述I2C總線包括SDA線和SCL線,所述I2C控制器與SCL線建立雙向數(shù)據(jù)傳輸連接,所述接收移位寄存器I2CRSR和發(fā)送移位寄存器I2CXSR均與SDA寄存器建立連接。
[0016]所述從設(shè)備分別與SDA線和SCL線建立雙向數(shù)據(jù)傳輸連接。
[0017]如圖2所示,步驟I:主設(shè)備DSP判斷狀態(tài)寄存器I2CSTR中總線忙位BB是否等于O。當(dāng)BB不等于0,總線正忙,跳出函數(shù)。當(dāng)BB等于O時(shí),判斷總線處于空閑狀態(tài),可以進(jìn)行配置I2C通訊。
[0018]步驟2:將地址字節(jié)賦值給地址寄存器I2CSAR,并將模式寄存器I2CMDR起始條件位^下置丨并跳出函數(shù)體,待主循環(huán)下次進(jìn)入I2C寫命令函數(shù)。
[0019]步驟3:當(dāng)再次進(jìn)入I2C寫命令函數(shù)時(shí),判斷模式寄存器IwCMDR起始條件位STT是否等于O,只有模式寄存器I2CMDR起始條件位STT等于O時(shí)表示起始條件及寫從器件地址發(fā)送完成。
[0020]步驟4:將命令字節(jié)裝載到I2C數(shù)據(jù)發(fā)送寄存器ItDXR,并跳出I2C寫命令函數(shù)。
[0021]步驟5:待再次進(jìn)入函數(shù)體,判斷狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY是否置位。當(dāng)數(shù)據(jù)發(fā)送成功后狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY會(huì)自動(dòng)置位,對(duì)狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY寫I清除該標(biāo)志位。
[0022]重復(fù)步驟四、步驟五:繼續(xù)向I2C數(shù)據(jù)發(fā)送寄存器ItDXR裝載發(fā)送數(shù)據(jù),以此類推。
[0023]步驟6:直到發(fā)送完所有數(shù)據(jù)后置模式寄存器I2CMDR停止條件位STP。
[0024]步驟7:再次進(jìn)入函數(shù)體判斷,當(dāng)STP等于O時(shí),寫命令函數(shù)執(zhí)行完成。
[0025]圖3所示,主設(shè)備讀取數(shù)據(jù)傳輸?shù)腎2C通訊方法包括以下步驟:
[0026]步驟1:判斷狀態(tài)寄存器I2CSTR中總線忙位BB是否等于O。當(dāng)BB不等于O,總線正忙,跳出函數(shù)。當(dāng)BB等于O時(shí),總線處于空閑狀態(tài),可以進(jìn)行配置I2C通訊。
[0027]步驟2:將地址字節(jié)賦值給地址寄存器I2CSAR,并將模式寄存器I2CMDR起始條件位STT置I并跳出函數(shù)體。
[0028]步驟3:待主循環(huán)下次進(jìn)入I2C寫命令函數(shù)。判斷模式寄存器I2CMDR起始條件位STT是否等于O,只有模式寄存器I2CMDR起始條件位STT等于O時(shí)表示起始條件及寫從器件地址發(fā)送完成。
[0029]步驟4:將命令字節(jié)裝載到I2C數(shù)據(jù)發(fā)送寄存器ItDXR,并跳出I2C寫命令函數(shù)。
[0030]步驟5:待再次進(jìn)入函數(shù)體,判斷狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY是否置位。當(dāng)數(shù)據(jù)發(fā)送成功后狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY會(huì)自動(dòng)置位,對(duì)狀態(tài)寄存器I2CSTR中發(fā)送完成位ARDY寫I清除該標(biāo)志位。
[0031 ]步驟6:再次向模式寄存器I2CMDR起始條件位STT寫I。
[0032]步驟7:循環(huán)進(jìn)入讀命令函數(shù),當(dāng)STT請(qǐng)O時(shí),保存I2C數(shù)據(jù)接收寄存器ltDRR,并重復(fù)進(jìn)行該步驟,直到保存過指定個(gè)數(shù)數(shù)據(jù)后置模式寄存器I2CMDR停止條件位STP。
【主權(quán)項(xiàng)】
1.一種I2C總線傳輸裝置,包括主設(shè)備、I2C總線和若干從設(shè)備,主設(shè)備和從設(shè)備之間通過I2C總線建立連接,其特征在于:所述主設(shè)備包括I2C控制器、狀態(tài)寄存器、模式寄存器、地址寄存器、計(jì)數(shù)器、數(shù)據(jù)接收寄存器、接收移位寄存器、數(shù)據(jù)發(fā)送寄存器和發(fā)送移位寄存器,I2C控制器的輸出端分別連接狀態(tài)寄存器、模式寄存器、地址寄存器和數(shù)據(jù)發(fā)送寄存器,數(shù)據(jù)發(fā)送寄存器通過發(fā)送移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸入端通過接收移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸出端連接I2C控制器,所述計(jì)數(shù)器與I2C控制器建立雙向數(shù)據(jù)傳輸連接,I2C控制器與I2C總線建立雙向數(shù)據(jù)傳輸連接。2.根據(jù)權(quán)利要求1所述一種I2C總線傳輸裝置,其特征在于:所述I2C總線包括SDA線和SCL線,所述I2C控制器與SCL線建立雙向數(shù)據(jù)傳輸連接,所述接收移位寄存器和發(fā)送移位寄存器均與SDA寄存器建立連接。3.根據(jù)權(quán)利要求2所述一種I2C總線傳輸裝置,其特征在于:所述從設(shè)備分別與SDA線和SCL線建立雙向數(shù)據(jù)傳輸連接。
【專利摘要】一種I2C總線傳輸裝置,它涉及一種傳輸裝置。本實(shí)用新型為了解決現(xiàn)有技術(shù)的I2C總線通訊系統(tǒng)存在占用主循環(huán)時(shí)間,造成通訊時(shí)間長(zhǎng),通訊效率低的問題。本實(shí)用新型的I2C控制器的輸出端分別連接狀態(tài)寄存器、模式寄存器、地址寄存器和數(shù)據(jù)發(fā)送寄存器,數(shù)據(jù)發(fā)送寄存器通過發(fā)送移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸入端通過接收移位寄存器連接I2C總線,數(shù)據(jù)接收寄存器的輸出端連接I2C控制器,計(jì)數(shù)器與I2C控制器建立雙向數(shù)據(jù)傳輸連接,I2C控制器與I2C總線建立雙向數(shù)據(jù)傳輸連接。本實(shí)用新型在保證大量傳輸數(shù)據(jù)的同時(shí)可以正常執(zhí)行其他控制、通訊功能,提高了通訊效率和通訊質(zhì)量。
【IPC分類】G06F13/38
【公開號(hào)】CN205318375
【申請(qǐng)?zhí)枴緾N201620058844
【發(fā)明人】劉宇博, 王旭東
【申請(qǐng)人】哈爾濱理工大學(xué)
【公開日】2016年6月15日
【申請(qǐng)日】2016年1月21日