本發(fā)明涉及芯片通訊領(lǐng)域,特別是一種用于智能硬件的同步通信方法及通信系統(tǒng),所述通信方法可以支持智能硬件擴展相連多個USB插件并處于同步工作運行狀態(tài),進而使USB插件保持穩(wěn)定運行。
背景技術(shù):
現(xiàn)在的智能電器越來越多,使用的智能硬件也已經(jīng)擁有良好的使用體驗和較高的硬件性能,但在擴展性上有所欠缺,目前已有通過USB接口方式擴展硬件功能,其中USB插件口具有四個觸點,分別為D+線、D-線、VBUS線和接地端,并通過外殼接地檢測是否有USB插件插入?,F(xiàn)有智能硬件的功能和可擴展性比較局限,要么只能提供USB接口給其他設(shè)備,如給手機充電;要么因為價格因素采用低成本的異步通信模塊作為智能硬件的主控模塊,當智能硬件想通過異步通信的方式和兩個以上USB插件進行數(shù)據(jù)通信時,由于異步通信導致各個USB插件無法精確控制串口時鐘產(chǎn)生,進而在串口通信時產(chǎn)生誤碼,使得通過異步通信方式和主控模塊通信的各個USB插件都無法穩(wěn)定運行工作,因此所述的智能硬件只能支持和一個設(shè)備進行數(shù)據(jù)通信,功能單一、效率低?,F(xiàn)在雖然有采用異步通信模塊實現(xiàn)同步通信,需要增加很多額外的芯片或電路,結(jié)構(gòu)復雜成本高。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題和提出的技術(shù)任務是克服現(xiàn)有智能硬件使用異步通信方法導致各個USB插件無法穩(wěn)定運行的缺陷,提供一種用于智能硬件的同步通信方法及通信系統(tǒng),所述同步通信方法可以使現(xiàn)有用異步通信方式主控模塊的智能硬件通信行為擴展為同步通信,讓智能硬件通過開發(fā)USB插件化的形式擴展和延伸各種其他功能成為可能,所述智能硬件在使用低成本異步通信方式主控模塊的同時最大化擴展智能硬件的功能,滿足用戶多種需求,將一對一設(shè)備間的異步通信擴展為一對多設(shè)備間的同步通信。
本發(fā)明所采用的技術(shù)方案:一種用于智能硬件的同步通信方法,包括以下步驟:
1)將智能硬件的主控模塊的GPIO引腳分為數(shù)據(jù)引腳和時鐘引腳,將所述數(shù)據(jù)引腳設(shè)為主控模塊的數(shù)據(jù)總線,將所述時鐘引腳設(shè)為主控模塊的時鐘總線;
2)每個USB插件上電復位后,向主控模塊注冊一個全局唯一地址,并把D-線和D+線中任一個作為數(shù)據(jù)線連接到主控模塊的數(shù)據(jù)總線上,另一線作為時鐘線連接到主控模塊的時鐘總線上;
3)通過主控模塊對GPIO數(shù)據(jù)寄存器和時鐘寄存器進行控制,所述USB插件上電之后,就保持收發(fā)數(shù)據(jù)的狀態(tài),所述收發(fā)數(shù)據(jù)的狀態(tài)不會因為時鐘線上的時鐘信號而改變;當主控模塊需要發(fā)送數(shù)據(jù)給某一USB插件時,主控模塊發(fā)送時鐘信號到時鐘線上,同時在時鐘信號的控制下把數(shù)據(jù)信號按照設(shè)定規(guī)則發(fā)送到數(shù)據(jù)線上;所述USB插件接收到數(shù)據(jù),然后根據(jù)收到的數(shù)據(jù)判斷是否要進行下一步動作。
工作時,由于主控模塊對GPIO數(shù)據(jù)寄存器和時鐘寄存器進行控制,每個USB插件上電之后,就一直處于收發(fā)數(shù)據(jù)的狀態(tài),并不會因為時鐘線上有沒有時鐘信號而改變;當主控芯片需要發(fā)送數(shù)據(jù)給某一個USB插件或接受來自某一個USB插件的數(shù)據(jù)時,主控模塊就會發(fā)送時鐘信號到時鐘線上,同時在時鐘信號的控制下也會把數(shù)據(jù)信號按照約定好的規(guī)則,發(fā)送到數(shù)據(jù)線上或者在時鐘信號的控制下按照約定好的規(guī)則,采用最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則從數(shù)據(jù)總線上讀取來自某個USB插件的數(shù)據(jù);接收到從主控模塊發(fā)送過來數(shù)據(jù)的各個USB插件,在接收到數(shù)據(jù)之后再根據(jù)接收到的數(shù)據(jù)來判斷是否要進行下一步的動作。
因為所有已注冊的USB插件都能從數(shù)據(jù)總線中獲取到從智能硬件發(fā)出來的通信數(shù)據(jù),所以每個USB插件從數(shù)據(jù)中解析出智能硬件的主控模塊想要通信的目的地址,再和自己的已注冊的通信地址進行比較,如果USB插件發(fā)現(xiàn)兩個通信地址一致,則解析已收到的通信數(shù)據(jù)進行相應處理,如果發(fā)現(xiàn)兩個通信地址不一致,則丟棄已收到的通信數(shù)據(jù),不作任何處理。由于所有已注冊的USB插件的時鐘線均連入智能硬件的主控模塊的時鐘總線中,因此能夠保證所有已注冊的USB插件監(jiān)聽、發(fā)送和接收來自智能硬件的主控模塊的數(shù)據(jù)始終均保持一致,不會造成在通信中因為時鐘序列不一致,而產(chǎn)生監(jiān)聽、發(fā)送和接收數(shù)據(jù)的誤碼問題,使各USB插件在智能硬件的主控模塊的數(shù)據(jù)總線監(jiān)聽、發(fā)送和接收數(shù)據(jù)的動作過程都與智能硬件保持同步工作的運行狀態(tài)。其中,D-和D+線,可以互換連接數(shù)據(jù)總線或時鐘總線,但一旦確定,則所有USB插件都遵循同一連接規(guī)則。
作為對上述技術(shù)方案的進一步完善和補充,本發(fā)明采用如下技術(shù)措施:步驟3)中所述的設(shè)定規(guī)則為最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則。最低有效位數(shù)據(jù)(LSB,Least Significant Bit)優(yōu)先和最高有效位數(shù)據(jù)(MSB,Most Significant Bit)優(yōu)先規(guī)則是現(xiàn)有常見的數(shù)據(jù)處理方式。
一種實現(xiàn)同步通信的通信系統(tǒng),包括主控端和被控端,所述主控端包括電連接的主控模塊、檢測模塊、電源模塊,所述主控模塊包括主控芯片、數(shù)據(jù)寄存器和配套數(shù)據(jù)總線、時鐘寄存器和配套時鐘總線、以及配套的多引腳芯片;所述檢測模塊包括檢測各個USB插件是否插入的檢測芯片和配套的多引腳芯片,所述電源模塊包括電源芯片和配套的多引腳芯片;所述被控端包括多個USB插件,所述USB插件具有和擴展功能對應的傳感器,其特征是所述主控模塊、電源模塊和檢測模塊通過各自的閑置GPIO引腳連接同一多引腳模塊,所述多引腳模塊包括至少一個多引腳芯片,多引腳模塊通過其上的2N+2個GPIO引腳擴展N個USB插件,其中N為自然數(shù),多引腳模塊上一個單獨GPIO引腳用做所有待接入USB插件口的D-線,連接到所述數(shù)據(jù)總線上,作為USB插件的數(shù)據(jù)線連接到所述數(shù)據(jù)總線上;多引腳模塊上一個單獨GPIO引腳用做所有待接入USB插件口的D+線,連接到所述時鐘總線上,作為USB插件的時鐘線連接到所述時鐘總線上;多引腳模塊上N個GPIO引腳分別做N個待接入USB插件口的VBUS線,所述VBUS線通過多引腳模塊連接電源模塊為對應的USB插件供電,單獨連接一個GPIO引腳到電源模塊上為對應的USB插件供電;使用N個GPIO引腳作為檢測USB插件是否插入智能硬件的檢測線,實時檢測N個USB插件口上是否有USB插件插入,如果有檢測到有新的USB插件插入的話,則立即通過相應的VBUS線給新插入的USB插件供電,如果有檢測到有USB插件拔出的話,則立即通過相應的VBUS線給拔出的USB插件口斷電。
本發(fā)明在現(xiàn)有智能硬件普遍采用異步通信方式的主控模塊的基礎(chǔ)上,通過增設(shè)多引腳模塊,并用其上2N+2個閑置的GPIO引腳對應擴展支持N個USB插件的方式,具體是主控模塊、電源模塊、檢測模塊直接連接多引腳模塊后,再利用多引腳模塊中的閑置GPIO芯片引腳擴展支持USB插件 ,進而通過更多的GPIO引腳靈活擴展USB插件的數(shù)量,拓展智能硬件的功能,滿足用戶的各種不同需求;GPIO引腳不夠的話,就增加多引腳模塊中的多引腳芯片數(shù)量,直到滿足為止。本發(fā)明通過多引腳模塊中的GPIO引腳擴展支持USB插件,適用于智能硬件如常見的智能插座,以及其它需要把一對一設(shè)備間的異步通信擴展為一對多設(shè)備間的同步通信的應用開發(fā)場景。在智能硬件的主控芯片不變的前提下,采用本發(fā)明方案,用主控模塊、電源模塊、檢測模塊和多引腳模塊中閑置GPIO引腳采用有機的組合,可以最大化的擴展智能硬件的功能,滿足用戶的各種不同需求,如通過智能硬件監(jiān)測PM2.5及報警、監(jiān)測空氣中的煤氣含量及報警、監(jiān)測空氣中的煙霧顆粒密度及報警、監(jiān)測空氣溫濕度及報警、支持遠程控制紅外遙控設(shè)備、支持遠程遙控射頻設(shè)備等。
所述檢測模塊、電源模塊和多引腳模塊三個模塊可以集成在主控模塊上;或者檢測模塊、電源模塊和多引腳模塊分別是單獨的模塊,通過控制線和主控模塊相連進行通信;或者檢測模塊、電源模塊和多引腳三個模塊中,模塊兩兩結(jié)合為一個比較大的模塊再集成在主控模塊上,剩余的單獨模塊通過控制線和主控模塊相連進行通信;或者檢測模塊、電源模塊和多引腳模塊結(jié)合為一個整體后再集成在主控模塊上。檢測模塊、電源模塊和多引腳模塊可以根據(jù)實際情況采用多種靈活組合形式,方便后續(xù)連接和制造封裝,將檢測模塊、電源模塊和多引腳模塊分別做成獨立模塊與主控模塊相連,使用靈活,方便維護;將三個模塊中兩兩組合集成在主控模塊上,剩余一個模塊單獨連接主控模塊,這樣集成度高,便于后期組裝,生產(chǎn)效率高。
另一種實現(xiàn)同步通信的通信系統(tǒng),包括主控端和被控端,所述主控端包括電連接的主控模塊、檢測模塊、電源模塊,所述主控模塊包括主控芯片、數(shù)據(jù)寄存器和配套數(shù)據(jù)總線、時鐘寄存器和配套時鐘總線、以及配套的多引腳芯片;所述檢測模塊包括檢測各個USB插件是否插入的檢測芯片和配套的多引腳芯片,所述電源模塊包括電源芯片和配套的多引腳芯片;所述被控端包括多個USB插件,所述USB插件具有和擴展功能對應的傳感器,其特征是所述主控模塊、電源模塊和檢測模塊通過2N+2個GPIO引腳擴展N個USB插件,其中N為自然數(shù),主控模塊一個單獨GPIO引腳用做所有待接入USB插件口的D-線,連接到所述數(shù)據(jù)總線上,作為USB插件的數(shù)據(jù)線連接到所述數(shù)據(jù)總線上;主控模塊上另一個單獨GPIO引腳用做所有待接入USB插件口的D+線,連接到所述時鐘總線上,作為USB插件的時鐘線連接到所述時鐘總線上;電源模塊上N個GPIO引腳分別做N個待接入USB插件口的VBUS線,所述VBUS線連接電源模塊為對應的USB插件供電,每個USB插件單獨連接電源模塊上一個GPIO引腳為對應的USB插件供電;檢測模塊上N個GPIO引腳分別做N個待接入USB插件口的檢測線,實時檢測N個USB插件口上是否有USB插件插入,如果有檢測到有新的USB插件插入的話,則立即通過相應的VBUS線給新插入的USB插件供電,如果有檢測到有USB插件拔出的話,則立即通過相應的VBUS線給拔出的USB插件口斷電。這種通信系統(tǒng)直接利用主控模塊、檢測模塊和電源模塊各自的GPIO引腳擴展連接USB插件。
所述主控模塊上的兩個GPIO引腳為主控芯片的閑置引腳,或主控模塊內(nèi)獨立設(shè)置的多引腳芯片上的閑置引腳。充分利用主控模塊上的GPIO引腳擴展支持USB插件,其中GPIO引腳可以來自主控芯片的閑置引腳或者主控模塊內(nèi)設(shè)置的多引腳芯片上的閑置引腳。
附圖說明
圖1:實施例1所述通信系統(tǒng)示意圖。
圖2:主控模塊使用閑置GPIO引腳擴展支持USB插件整體示意圖。
圖3:主控模塊使用閑置GPIO引腳擴展支持USB插件局部示意圖。
圖4:電源模塊使用閑置GPIO引腳擴展支持USB插件整體示意圖。
圖5:電源模塊使用閑置GPIO引腳擴展支持USB插件局部示意圖。
圖6:檢測模塊使用閑置GPIO引腳擴展支持USB插件整體示意圖。
圖7:檢測模塊使用閑置GPIO引腳擴展支持USB插件局部示意圖。
圖8:實施例2所述通信系統(tǒng)示意圖。
具體實施方式
下面結(jié)合附圖說明和具體實施方式對本發(fā)明做進一步的說明。
一種用于智能硬件的同步通信方法,包括以下步驟:
1)將智能硬件的主控模塊的GPIO引腳分為數(shù)據(jù)引腳和時鐘引腳,將所述數(shù)據(jù)引腳設(shè)為主控模塊的數(shù)據(jù)總線,將所述時鐘引腳設(shè)為主控模塊的時鐘總線;
2)每個USB插件上電復位后,向主控模塊注冊一個全局唯一地址,并把D-線和D+線中任一個作為數(shù)據(jù)線連接到主控模塊的數(shù)據(jù)總線上,另一線作為時鐘線連接到主控模塊的時鐘總線上;
3)通過主控模塊對GPIO數(shù)據(jù)寄存器和時鐘寄存器進行控制,每個USB插件上電之后,就一直處于收發(fā)數(shù)據(jù)的狀態(tài),并不會因為時鐘線上有或者沒有時鐘信號而改變;當主控芯片需要發(fā)送數(shù)據(jù)給某一個USB插件或接受來自某一個USB插件的數(shù)據(jù)時,主控芯片就會發(fā)送時鐘信號到時鐘總線上,同時在時鐘信號的控制下也會把數(shù)據(jù)信號按照約定好的規(guī)則,采用最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則,發(fā)送數(shù)據(jù)到數(shù)據(jù)總線上或者在時鐘信號的控制下按照約定好的規(guī)則,采用最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則從數(shù)據(jù)總線上讀取來自某個USB插件的數(shù)據(jù);接收到從主控模塊發(fā)送過來數(shù)據(jù)的各個USB插件,在接收到數(shù)據(jù)之后再根據(jù)接收到的數(shù)據(jù)來判斷是否要進行下一步的動作。第二步中也可以將D+線與D-線互換使用,具體是將D+線作為數(shù)據(jù)線連接到所述主控模塊的數(shù)據(jù)總線上,將D-線作為時鐘線連接到所述主控模塊的時鐘總線上。
實施例1如圖1~7所示,一種實現(xiàn)同步通信的通信系統(tǒng),包括主控端和被控端,所述主控端包括電連接的主控模塊、檢測模塊、電源模塊和多引腳模塊,其中檢測模塊、電源模塊和多引腳模塊三個模塊均為單獨的模塊,通過控制線和主控模塊相連進行通信,三個模塊內(nèi)都設(shè)有若干多引腳芯片,所述主控模塊包括主控芯片、數(shù)據(jù)寄存器和配套數(shù)據(jù)總線、時鐘寄存器和配套時鐘總線、以及配套的多引腳芯片;所述檢測模塊包括檢測各個USB插件是否插入的檢測芯片和配套的多引腳芯片,所述電源模塊包括電源芯片和配套的多引腳芯片,所述多引腳模塊包括若干多引腳芯片;所述被控端包括多個USB插件,所述USB插件具有和擴展功能對應的傳感器。此外,檢測模塊、電源模塊和多引腳模塊三個模塊還可以集成在主控模塊上;或者三個模塊中每兩個模塊結(jié)合為一個比較大的模塊,并集成在主控模塊上,剩余一個單獨的模塊通過控制線和主控模塊相連進行通信;或者三個模塊結(jié)合為一個整體的模塊后,再集成在主控模塊上。
所述主控模塊、電源模塊和檢測模塊通過各自的閑置GPIO引腳和多引腳模塊相連,多引腳模塊通過少量的控制線和主控模塊、電源模塊和檢測模塊上對應GPIO引腳連接進行交互,此為常規(guī)的現(xiàn)有技術(shù);多引腳模塊通過其上的2N+2個GPIO引腳擴展N個USB插件,其中N為自然數(shù),多引腳模塊上一個單獨GPIO引腳用做所有待接入USB插件口的D-線,連接到所述數(shù)據(jù)總線上,作為USB插件的數(shù)據(jù)線連接到所述數(shù)據(jù)總線上;多引腳模塊上一個單獨GPIO引腳用做所有待接入USB插件口的D+線,連接到所述時鐘總線上,作為USB插件的時鐘線連接到所述時鐘總線上;多引腳模塊上N個GPIO引腳分別做N個待接入USB插件口的VBUS線,所述VBUS線通過多引腳模塊連接電源模塊為對應的USB插件供電,單獨連接一個GPIO引腳到電源模塊上為對應的USB插件供電;使用N個GPIO引腳作為檢測USB插件是否插入智能硬件的檢測線,實時檢測N個USB插件口上是否有USB插件插入,如果有檢測到有新的USB插件插入的話,則立即通過相應的VBUS線給新插入的USB插件供電,如果有檢測到有USB插件拔出的話,則立即通過相應的VBUS線給拔出的USB插件口斷電。
如圖2和圖3所示,所述主控模塊包括主控芯片、數(shù)據(jù)寄存器和配套數(shù)據(jù)總線、時鐘寄存器和配套時鐘總線、以及配套的多引腳芯片,主要功能是處理各種信息和控制,以及和各個具有各種傳感器的USB插件之間進行數(shù)據(jù)通信,通過主控模塊內(nèi)部設(shè)置的多引腳芯片上的閑置GPIO引腳擴展,即主控芯片對數(shù)據(jù)寄存器和時鐘寄存器進行控制,當主控芯片需要發(fā)送數(shù)據(jù)給某一個USB插件或接受來自某一個USB插件的數(shù)據(jù)時,主控芯片就會發(fā)送時鐘信號到時鐘總線上,同時在時鐘信號的控制下也會把數(shù)據(jù)信號按照約定好的規(guī)則,采用最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則,發(fā)送數(shù)據(jù)到數(shù)據(jù)總線上或者在時鐘信號的控制下按照約定好的規(guī)則,采用最低有效位數(shù)據(jù)優(yōu)先或者最高有效位數(shù)據(jù)優(yōu)先的規(guī)則從數(shù)據(jù)總線上讀取來自某個USB插件的數(shù)據(jù)。
如圖4和圖5所示,所述電源模塊包括電源芯片和配套的多引腳芯片,主要功能是通過電源模塊內(nèi)部設(shè)置的多引腳芯片上的閑置GPIO引腳擴展,所述引腳和各個待接入的USB插件口的VBUS線相連,作為接到智能硬件上的各個USB插件口的VBUS線,給被控端包含各種傳感器的USB插件提供電源。
如圖6和圖7所示,所述檢測模塊包括檢測各個USB插件是否插入的檢測芯片和配套的多引腳芯片,主要功能是通過檢測模塊內(nèi)部設(shè)置的多引腳芯片上的閑置GPIO引腳擴展,實時檢測智能硬件上的N個USB插件口上是否有新的USB插件插入,如果有檢測到有新的USB插件插入的話,則立即通過相應的VBUS線給新插入的USB插件供電,如果有檢測到有USB插件拔出的話,則立即通過相應的VBUS線給拔出的USB插件口斷電。
實施例2如圖8所示,一種實現(xiàn)同步通信的通信系統(tǒng),包括主控端和被控端,所述主控端包括電連接的主控模塊、檢測模塊、電源模塊,所述主控模塊包括主控芯片、數(shù)據(jù)寄存器和配套數(shù)據(jù)總線、時鐘寄存器和配套時鐘總線、以及配套的多引腳芯片;所述檢測模塊包括檢測各個USB插件是否插入的檢測芯片和配套的多引腳芯片,所述電源模塊包括電源芯片和配套的多引腳芯片;所述被控端包括多個USB插件,所述USB插件具有和擴展功能對應的傳感器,所述主控模塊、電源模塊和檢測模塊通過2N+2個GPIO引腳擴展N個USB插件,其中N為自然數(shù),主控模塊一個單獨GPIO引腳用做所有待接入USB插件口的D-線,連接到所述數(shù)據(jù)總線上,作為USB插件的數(shù)據(jù)線連接到所述數(shù)據(jù)總線上;主控模塊上另一個單獨GPIO引腳用做所有待接入USB插件口的D+線,連接到所述時鐘總線上,作為USB插件的時鐘線連接到所述時鐘總線上;電源模塊上N個GPIO引腳分別做N個待接入USB插件口的VBUS線,所述VBUS線連接電源模塊為對應的USB插件供電,每個USB插件單獨連接電源模塊上一個GPIO引腳為對應的USB插件供電;檢測模塊上N個GPIO引腳分別做N個待接入USB插件口的檢測線,實時檢測N個USB插件口上是否有USB插件插入,如果有檢測到有新的USB插件插入的話,則立即通過相應的VBUS線給新插入的USB插件供電,如果有檢測到有USB插件拔出的話,則立即通過相應的VBUS線給拔出的USB插件口斷電。
本實施例直接使用主控模塊、電源模塊和檢測模塊上的閑置GPIO引腳進行USB插件擴展,其中主控模塊上的兩個GPIO引腳為主控芯片的閑置引腳,或主控模塊內(nèi)獨立設(shè)置的多引腳芯片上的閑置引腳,2N個GPIO引腳為電源模塊內(nèi)設(shè)置的多引腳芯片上的N個閑置引腳和檢測模塊內(nèi)設(shè)置的多引腳芯片上的N個閑置引腳。