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