本發明涉及電子技術領域,特別涉及冰箱的上位機、冰箱的下位機、冰箱的通信方法及系統。
背景技術:
冰箱作為應用較為普及的家用電器,人們對冰箱的控制功能要求越來越高,這對冰箱控制器提出了更高的要求。隨著人機交互概念的興起,用戶可以通過對冰箱的上位機(顯示板)的操作設定自己想達到的冰箱工作狀態,這使得冰箱的上位機與下位機(電控板)的數據交互變得必不可少。
現有技術采用基于單片機的控制系統,通過單片機上的通信模塊來實現上位機與下位機的交互。
由于通信模塊用于上位機與下位機的交互,影響到單片機的其他功能的實現,比如無線傳輸功能。因此,現有技術利用通信模塊實現上位機與下位機交互時,會影響到單片機的其他功能的實現。
技術實現要素:
本發明實施例提供了一種冰箱的上位機、冰箱的下位機、冰箱的通信方法及系統,能夠不通過單片機的通信模塊而實現上位機與下位機的交互。
本發明實施例提供了一種冰箱的上位機,包括:
上位機處理單元、上位機定時器、第一i/o口和第二i/o口;其中,
所述上位機定時器分別與所述第一i/o口和所述第二i/o口相連;
所述上位機處理單元,用于接收外部輸入的當前指令,生成所述當前指令對應的通信命令,將所述通信命令發送給所述上位機定時器;
所述上位機定時器,用于執行:
a1:獲取所述上位機處理單元生成的所述通信命令;
a2:通過所述第一i/o口將所述通信命令發送至冰箱的下位機;
a3:通過所述第二i/o口接收所述冰箱的下位機發送的針對所述通信命令的回復信號;其中,所述回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平;
a4:依次判斷所述回復信號中的所述引導碼、所述通信頭碼、所述狀態數據,所述校驗碼和所述結束電平是否均符合對應的冰箱的上位機預設規則,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
優選地,所述上位機定時器,進一步用于判斷所述上位機定時器是否在預設等待時間內接收到所述回復信號,如果否,執行a2。
優選地,所述上位機定時器,進一步用于執行:
在所述提取所述狀態數據之后,進一步包括:
等待預設間隔時間,返回a1。
優選地,所述上位機定時器,用于執行:
所述a4,包括:
b1:判斷所述引導碼是否滿足:所述引導碼的值與上位機引導碼預設值相同,如果是執行b2,否則,執行a2;
b2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在上位機頭碼預設范圍內,且所述通信頭碼的值與上位機頭碼預設值相同,如果是,執行b3,否則,執行a2;
b3:判斷所述狀態數據是否滿足:所述狀態數據的值在上位機狀態預設范圍內,且所述狀態數據的字節數與冰箱的上位機預設字節數相同,如果是,則執行b4,否則,執行a2;
b4:判斷所述校驗碼是否正確,如果是,則執行b5,否則執行a2;
b5:判斷所述結束電平是否滿足:所述結束電平的持續時間與上位機預設持續時間相同,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
第二方明本發明實施例提供了一種冰箱的下位機,包括:下位機處理單元、下位機定時器、第三i/o口和第四i/o口;其中,
所述下位機定時器分別與所述第三i/o口和所述第四i/o口相連;
所述下位機定時器,用于執行:
通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;其中,所述通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平;
依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,觸發所述下位機處理單元,獲取所述下位機處理單元生成的所述控制命令對應的回復信號,通過所述第四i/o口向所述冰箱的上位機發送所述回復信號;
所述下位機處理單元,用于執行所述控制命令,生成所述控制命令對應的所述回復信號,并將所述回復信號發送給所述下位機定時器。
優選地,所述下位機定時器,用于執行:
所述依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,包括:
c1:判斷所述引導碼是否滿足:所述引導碼的值與下位機引導碼預設值相同,如果是執行c2,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在下位機頭碼預設范圍內,且所述通信頭碼的值與下位機頭碼預設值相同,如果是,執行c3,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c3:判斷所述控制命令是否滿足:所述控制命令的值在下位機命令預設范圍內,且所述控制命令的字節數與下位機預設字節數相同,如果是,則執行c4,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c4:判斷所述校驗碼數據位是否正確,如果是,則執行c5,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c5:判斷所述結束電平是否滿足:所述結束電平的持續時間與下位機預設持續時間相同,如果是,則確定所述通信命令為有效通信命令,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令。
第三方面本發明實施例提供了一種冰箱的通信方法,應用于冰箱的上位機,包括:
a0:接收外部輸入的當前指令,生成所述當前指令對應的通信命令;
a1:獲取所述通信命令;
a2:通過所述冰箱的上位機的第一i/o口將所述通信命令發送至冰箱的下位機;
a3:通過所述冰箱的上位機的第二i/o口接收所述冰箱的下位機發送的針對所述通信命令的回復信號;其中,所述回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平;
a4:依次判斷所述回復信號中的所述引導碼、所述通信頭碼、所述狀態數據,所述校驗碼和所述結束電平是否均符合對應的冰箱的上位機預設規則,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
優選地,所述a4,包括:
b1:判斷所述引導碼是否滿足:所述引導碼的值與上位機引導碼預設值相同,如果是執行b2,否則,執行a2;
b2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在上位機頭碼預設范圍內,且所述通信頭碼的值與上位機頭碼預設值相同,如果是,執行b3,否則,執行a2;
b3:判斷所述狀態數據是否滿足:所述狀態數據的值在上位機狀態預設范圍內,且所述狀態數據的字節數與冰箱的上位機預設字節數相同,如果是,則執行b4,否則,執行a2;
b4:判斷所述校驗碼是否正確,如果是,則執行b5,否則執行a2;
b5:判斷所述結束電平是否滿足:所述結束電平的持續時間與上位機預設持續時間相同,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
優選地,在所述提取所述狀態數據之后,進一步包括:
等待預設間隔時間,返回a1。
第四方面,本發明實施例提供了一種冰箱的通信方法,應用于冰箱的下位機,包括:
通過所述冰箱的下位機的第三i/o口接收冰箱的上位機發送的通信命令;其中,所述通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平;
依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,執行所述控制命令,生成所述控制命令對應的所述回復信號,通過所述冰箱的下位機的第四i/o口向所述冰箱的上位機發送所述控制命令對應的回復信號。
第五方面,本發明實施例提供了一種冰箱的通信系統,包括:第一方面中任一所述的冰箱的上位機和第二方面中任一所述冰箱的下位機。
本發明實施例提供了一種冰箱的上位機、冰箱的下位機、冰箱的通信方法及系統,通過冰箱的上位機的定時器和兩路i/o口實現向冰箱的下位機發送上位機處理單元生成的通信命令以及接受下位機針對通信命令的回復信號,能夠實現不通過單片機的通信模塊而實現上位機與下位機的交互。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明一個實施例提供的一種冰箱的上位機的裝置示意圖;
圖2是本發明一個實施例提供的一種冰箱的下位機的裝置示意圖;
圖3是本發明一個實施例提供的一種應用于冰箱的上位機的通信方法的流程圖;
圖4是本發明一個實施例提供的另一種應用于冰箱的上位機的通信方法的流程圖;
圖5是本發明一個實施例提供的一種應用于冰箱的下位機的冰箱的通信方法的流程圖;
圖6是本發明一個實施例提供的另一種應用于冰箱的下位機的冰箱的通信方法的流程圖;
圖7是本發明實施提供的一種冰箱的通信系統的裝置示意圖;
圖8是本發明實施提供的另一種冰箱的通信系統的裝置示意圖;
圖9是本發明實施提供的一種應用于冰箱的通信系統的冰箱的通信方法的流程圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,本發明實施例提供了一種冰箱的上位機,包括:上位機定時器101、第一i/o口102、第二i/o口103和上位機處理單元104;其中,
上位機定時器101分別與第一i/o口102和第二i/o口103相連;
上位機處理單元104,用于接收外部輸入的當前指令,生成所述當前指令對應的通信命令,將所述通信命令發送給所述上位機定時器;
上位機定時器101,用于執行:
a1:獲取所述上位機處理單元104生成的所述通信命令;
a2:通過第一i/o口102將所述通信命令發送至冰箱的下位機;
a3:通過第二i/o口103接收所述冰箱的下位機發送的針對所述通信命令的回復信號;其中,所述回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平;
a4:依次判斷所述回復信號中的所述引導碼、所述通信頭碼、所述狀態數據,所述校驗碼和所述結束電平是否均符合對應的冰箱的上位機預設規則,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
本發明實施例提供了一種冰箱的上位機,通過冰箱的上位機的定時器和兩路i/o口實現向冰箱的下位機發送上位機處理單元生成的通信命令以及接收下位機針對通信命令的回復信號,能夠不通過單片機的通信模塊而實現上位機與下位機的交互。
在本發明的一個實施例中,所述上位機定時器,進一步用于判斷所述上位機定時器是否在預設等待時間內接收到所述回復信號,如果否,執行a2。
為了提高冰箱的上位機的交互效率,通過在上位機定時器設置預設等待時間,使得上位機定時器可以判斷是否在預設等待時間內接收到回復信號,如果沒有接收到回復信號,則上位機定時器重新獲取通信命令。
例如,預設等待時間為1s,冰箱的上位機a發送通信命令的時間大于1s或者冰箱的上位機a發送的命令與冰箱的下位機不匹配,導致1s內冰箱的上位機a沒有接收到回復信號,則冰箱的上位機a重新發送通信命令。
在本發明一個實施例中,所述上位機定時器,進一步用于執行:
在所述提取所述狀態數據之后,進一步包括:
等待預設間隔時間,返回a1。
冰箱的上位機與冰箱的下位機交互時,為了能實時并有效地獲取冰箱的參數,在提取到有效回復信號中的狀態數據之后,等待預設間隔時間后,重新接收外部輸入的指令,并對應地生成通信命令,以進行再次交互。
例如,用戶需要監控冰箱的溫度,則先發送通信命令并在提取到有效回復信號中的狀態數據,之后在等待預設間隔時間后,重新接收外部輸入的指令,并對應地生成通信命令,以再次獲取冰箱的參數。
為了能夠提高冰箱的上位機的交互效率,在本發明一個實施例中,所述上位機定時器,用于執行:
所述a4,包括:
b1:判斷所述引導碼是否滿足:所述引導碼的值與上位機引導碼預設值相同,如果是執行b2,否則,執行a2;
b2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在上位機頭碼預設范圍內,且所述通信頭碼的值與上位機頭碼預設值相同,如果是,執行b3,否則,執行a2;
b3:判斷所述狀態數據是否滿足:所述狀態數據的值在上位機狀態預設范圍內,且所述狀態數據的字節數與冰箱的上位機預設字節數相同,如果是,則執行b4,否則,執行a2;
b4:判斷所述校驗碼是否正確,如果是,則執行b5,否則執行a2;
b5:判斷所述結束電平是否滿足:所述結束電平的持續時間與上位機預設持續時間相同,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
上位機定時器先判斷引導碼,以判斷當前信號是否為回復信號,如果引導碼的值與上位機引導碼預設值不同,則程序返回到a2,如果引導碼的值與上位機引導碼預設值相同,則判斷通信頭碼。
通信頭碼對應冰箱的型號,即通過通信頭碼冰箱的上位機可以判斷是哪個型號冰箱發來的數據,如果通信頭碼的值不在上位機頭碼預設范圍內,或所述通信頭碼的值與上位機頭碼預設值不同,則程序返回到a2,如果通信頭碼的值在上位機頭碼預設范圍內,且通信頭碼的值與上位機頭碼預設值相同,判斷狀態數據。
狀態數據就是冰箱的各個參數,例如溫度。如果狀態數據的值不在上位機狀態預設范圍內,或狀態數據的字節數與冰箱的上位機預設字節數不同,則程序返回到a2,如果狀態數據的值在上位機狀態預設范圍內,且狀態數據的字節數與冰箱的上位機預設字節數相同,則判斷校驗碼。
如果校驗碼不正確,則程序返回到a2,如果校驗碼正確,則判斷結束電平;如果束電平的持續時間與上位機預設持續時間相同,則確定回復信號為有效回復信號并提取狀態數據,否則程序返回到a2。
在本發明一個實施例中,當上位機定時器在20秒內沒有接到冰箱的下位機發送的有效回復信號時,會發出通信故障警報,直至才收到有效回復信號時解除通信故障警報。
如圖2所示,本發明實施例提供了一種冰箱的下位機,包括:下位機定時器201、第三i/o口202、第四i/o口203和下位機處理單元204;其中,
下位機定時器201分別與第三i/o口202和第四i/o口203相連;
下位機定時器201,用于執行:
通過第三i/o口202接收冰箱的上位機發送的通信命令;其中,所述通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平;
依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,觸發所述下位機處理單元,獲取所述下位機處理單元生成的所述控制命令對應的回復信號,通過第四i/o口203所述冰箱的上位機發送所述控制命令對應的回復信號;
下位機處理單元204,用于執行所述控制命令,生成所述控制命令對應的所述回復信號,并將所述回復信號發送給所述下位機定時器。
本發明實施例提供了一種冰箱的下位機,通過下位機的定時器和兩路i/o口實現向冰箱的上位機發送下位機處理單元針對通信命令生成的回復信號以及接受冰箱的上位機的通信命令,能夠實現不通過單片機的通信模塊而實現上位機與下位機的交互。
為了能夠提高下位機的交互效率,在本發明的一個實施例中,所述下位機定時器,用于執行:
所述依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,包括:
c1:判斷所述引導碼是否滿足:所述引導碼的值與下位機引導碼預設值相同,如果是執行c2,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在下位機頭碼預設范圍內,且所述通信頭碼的值與下位機頭碼預設值相同,如果是,執行c3,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c3:判斷所述控制命令是否滿足:所述控制命令的值在下位機命令預設范圍內,且所述控制命令的字節數與下位機預設字節數相同,如果是,則執行c4,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令;
c4:判斷所述校驗碼數據位是否正確,如果是,則執行c5,否則,通過所述第三i/o口重新接收冰箱的上位機發送的通信命令;
c5:判斷所述結束電平是否滿足:所述結束電平的持續時間與下位機預設持續時間相同,如果是,則確定所述通信命令為有效通信命令,否則,返回所述通過所述第三i/o口接收所述冰箱的上位機發送的通信命令。
下位機定時器先判斷引導碼,以判斷當前信號是否為通信命令,如果引導碼的值與下位機引導碼預設值不同,則通過第三i/o口重新接收冰箱的上位機發送的通信命令,如果引導碼的值與下位機引導碼預設值相同,則判斷通信頭碼。
通信頭碼對應著冰箱的型號,即通過通信頭碼冰箱的下位機可以判斷當前的通信命令是否由本機執行,如果通信頭碼的值不在下位機頭碼預設范圍內,或所述通信頭碼的值與下位機頭碼預設值不同,則通過第三i/o口重新接收冰箱的上位機發送的通信命令,如果通信頭碼的值在下位機頭碼預設范圍內,且所述通信頭碼的值與下位機頭碼預設值相同,判斷控制命令。
控制命令為冰箱的下位機具體要執行的程序,例如提供數據、執行操作。如果控制命令的值不在下位機命令預設范圍內,或控制命令的字節數與下位機預設字節數不同,則通過第三i/o口重新接收冰箱的上位機發送的通信命令,如果控制命令的值在下位機命令預設范圍內,且控制命令的字節數與下位機預設字節數相同,則判斷校驗碼。
如果校驗碼不正確,則通過第三i/o口重新接收冰箱的上位機發送的通信命令,如果校驗碼正確,則判斷結束電平;如果束電平的持續時間與下位機預設持續時間相同,則確定通信命令為有效通信命令并執行控制命令,向所述冰箱的上位機發送所述控制命令對應的回復信號,否則通過第三i/o口重新接收冰箱的上位機發送的通信命令。
如圖3所示本發明實施例提供了一種冰箱的通信方法,應用于冰箱的上位機,包括以下步驟:
步驟301,接收所述外部輸入的當前指令,生成所述當前指令對應的通信命令。
步驟302,獲取通信命令,通過所述冰箱的上位機的第一i/o口將所述通信命令發送至冰箱的下位機。
步驟303,通過所述冰箱的上位機的第二i/o口接收所述冰箱的下位機發送的針對所述通信命令的回復信號;其中,所述回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平。
步驟304,依次判斷所述回復信號中的所述引導碼、所述通信頭碼、所述狀態數據,所述校驗碼和所述結束電平是否均符合對應的冰箱的上位機預設規則,如果是,則執行步驟305,否則,執行步驟302。
步驟305,確定所述回復信號為有效回復信號,并提取所述狀態數據。
在本發明的一個實施例中,所述a4,包括:
b1:判斷所述引導碼是否滿足:所述引導碼的值與上位機引導碼預設值相同,如果是執行b2,否則,執行a2;
b2:判斷所述通信頭碼是否滿足:所述通信頭碼的值在上位機頭碼預設范圍內,且所述通信頭碼的值與上位機頭碼預設值相同,如果是,執行b3,否則,執行a2;
b3:判斷所述狀態數據是否滿足:所述狀態數據的值在上位機狀態預設范圍內,且所述狀態數據的字節數與冰箱的上位機預設字節數相同,如果是,則執行b4,否則,執行a2;
b4:判斷所述校驗碼是否正確,如果是,則執行b5,否則執行a2;
b5:判斷所述結束電平是否滿足:所述結束電平的持續時間與上位機預設持續時間相同,如果是,則確定所述回復信號為有效回復信號,并提取所述狀態數據,否則,執行a2。
本發明的一個實施例中,在所述提取所述狀態數據之后,進一步包括:
等待預設間隔時間,返回a1。
為了更好地說明本發明上述實施例,如圖4所示,本發明實施列提供了另一種冰箱的通信方法,應用于冰箱的上位機,包括以下步驟:
步驟401,接收外部輸入的當前指令,生成當前指令對應的通信命令。
步驟402,獲取通信命令,通過冰箱的上位機的第一i/o口將通信命令發送至冰箱的下位機。
步驟403,通過冰箱的上位機的第二i/o口接收冰箱的下位機發送的針對通信命令的回復信號;回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平。
步驟404,判斷引導碼是否滿足:引導碼的值與上位機引導碼預設值相同,如果是執行步驟405,否則,執行步驟402。
在本發明實施例中,引導碼是固定不變的,為6ms高電平和2ms低電平,用于建立冰箱的上位機與冰箱的下位機的交互聯系。
步驟405,判斷通信頭碼是否滿足:通信頭碼的值在上位機頭碼預設范圍內,且通信頭碼的值與上位機頭碼預設值相同,如果是,執行步驟406,否則,執行步驟402。
在本發明實施例中,通信頭碼的數據格式為8位二進制編碼,冰箱的上位機進行校驗時,從最低位開始,依次對8位編碼進行校驗,如果有一位不符合預設規則,則執行步驟402。
步驟406,判斷狀態數據是否滿足:狀態數據的值在上位機狀態預設范圍內,且狀態數據的字節數與冰箱的上位機預設字節數相同,如果是,則執行步驟407,否則,執行步驟402。
在本發明實施例中,狀態數據的數據格式為8位二進制編碼,冰箱的上位機進行校驗時,從最低位開始,依次對8位編碼進行校驗,如果有一位不符合預設規則,則執行步驟402。
步驟407,判斷校驗碼是否正確,如果是,則執行步驟408,否則執行步驟402。
在本發明實例中,判斷校驗碼的過程如下:冰箱的上位機將通信頭碼與接收的狀態數據累加求和保留低位字節后,與接收的冰箱的下位機發送的校驗位相比較,驗證冰箱的下位機發送的信息與冰箱的上位機接收的信息是否一致。
步驟408,判斷結束電平是否滿足:結束電平的持續時間與上位機預設持續時間相同,如果是,則執行步驟409,否則,執行步驟402。
在本發明實例中,結束電平的預設持續時間為高電平2ms。
步驟409,確定回復信號為有效回復信號,并提取狀態數據。
步驟410,等待預設間隔時間,執行步驟401。
在本發明實例中,預設間隔時間為10ms。
本發明實施例提供了一種冰箱的通信方法,應用于冰箱的下位機,包括:
通過冰箱的下位機的第三i/o口接收冰箱的上位機發送的通信命令;通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平;
依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則確定所述通信命令為有效通信命令,執行所述控制命令,生成所述控制命令對應的所述回復信號,通過所述冰箱的下位機的第四i/o口向所述冰箱的上位機發送所述控制命令對應的回復信號。
如圖5所示,本發明實施例提供了一種冰箱的通信方法,應用于冰箱的下位機,包括以下步驟:
步驟501,通過冰箱的下位機的第三i/o口接收冰箱的上位機發送的通信命令;通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平;
步驟502,依次判斷所述通信命令中的所述引導碼、所述通信頭碼、所述控制命令、所述校驗碼和所述結束電平是否均符合對應的下位機預設規則,如果是,則執行步驟503,否則,執行步驟501。
步驟503,確定所述通信命令為有效通信命令,執行所述控制命令,并生成所述控制命令對應的所述回復信號。
步驟504,通過所述冰箱的下位機的第四i/o口向所述冰箱的上位機發送所述控制命令對應的回復信號。
為更好地說明本發明上述實施例,如圖6所示,本發明實施例提供了另一種冰箱的通信方法,應用于冰箱的下位機,包括以下步驟:
步驟601,通過冰箱的下位機的第三i/o口接收冰箱的上位機發送的通信命令。
步驟602,判斷引導碼是否滿足:引導碼的值與下位機引導碼預設值相同,如果是執行步驟603,否則,執行步驟601。
在本發明實施例中,引導碼是固定不變的,為6ms高電平和2ms低電平,用于建立冰箱的上位機與冰箱的下位機的交互聯系。
步驟603,判斷通信頭碼是否滿足:通信頭碼的值在下位機頭碼預設范圍內,且所述通信頭碼的值與下位機頭碼預設值相同,如果是,執行步驟604,否則,執行步驟601。
在本發明實施例中,通信頭碼的數據格式為8位二進制編碼,冰箱的下位機進行校驗時,從最低位開始,依次對8位編碼進行校驗,如果有一位不符合預設規則,則執行步驟601。
步驟604,判斷控制命令是否滿足:控制命令的值在下位機命令預設范圍內,且所述控制命令的字節數與下位機預設字節數相同,如果是,則執行步驟605,否則,執行步驟601。
在本發明實施例中,控制命令的數據格式為8位二進制編碼,冰箱的下位機進行校驗時,從最低位開始,依次對8位編碼進行校驗,如果有一位不符合預設規則,則執行步驟601。
步驟605,判斷校驗碼是否正確,如果是,則執行步驟606,否則執行步驟601。
在本發明實例中,判斷校驗碼的過程如下:冰箱的下位機將通信頭碼與接收的狀態數據累加求和保留低位字節后,與接收的冰箱的上位機發送的校驗位相比較,驗證冰箱的上位機發送的信息與冰箱的下位機接收的信息是否一致。
步驟606,判斷結束電平是否滿足:結束電平的持續時間與下位機預設持續時間相同,如果是,則執行步驟607,否則,執行步驟601。
在本發明實例中,結束電平的預設持續時間為高電平2ms。
步驟607,確定所述通信命令為有效通信命令,執行所述控制命令,并生成所述控制命令對應的所述回復信號。
步驟608,通過所述冰箱的下位機的第四i/o口向所述冰箱的上位機發送所述控制命令對應的回復信號。
如圖7所示,本發明實施提供了一種冰箱的通信系統,包括:上述實例中任一所述的冰箱的上位機701和上述實例中任一所述的冰箱的下位機702。
如圖8所示,本發明實施例提供了另一種冰箱的通信系統,包括:冰箱的上位機801,冰箱的下位機802,通信總線803;其中,
冰箱的上位機801包括:上位機定時器101、第一i/o口102、第二i/o口103和上位機處理單元104;
上位機定時器101,用于初始工作模式設定為基本間隔定時功能,控制第一i/o口102的電平狀態,使得上位機定時器101向冰箱的下位機802發送通信命令,發送完成后切換工作模式為捕捉功能,通過第二i/o口103接收冰箱的下位機802發送的回復信號。
冰箱的下位機802包括:下位機定時器201、第三i/o口202、第四i/o口203和下位機處理單元204;
下位機定時器201,用于初始工作模式設定為捕捉功能,通過第三i/o口202接收冰箱的上位機801發送的通信命令,接受到有效的通信命令后,切換工作模式為基本間隔定時功能,控制第四i/o口203的電平狀態,使得冰箱的下位機定時器能夠向冰箱的上位機發送回復信號。
通信總線803,用于傳遞冰箱的上位機801發送的通信命令以及冰箱的下位機802發送的回復信號。
為了更好地說明,上述系統的交互關系,如圖9所示,本發明實例提供了一種冰箱的通信方法,應用于冰箱的通信系統,包括以下步驟:
步驟901,接收外部輸入的當前指令,生成當前指令對應的通信命令。
步驟902,獲取通信命令,通過冰箱的上位機的第一i/o口將通信命令發送至冰箱的下位機。
在本發明實施例中,通過設置上位機定時器的初始狀態為基本間隔定時功能,使得上位機定時器可以通過冰箱的上位機的第一i/o口將通信命令發送至冰箱的下位機。上位機定時器發送通信命令之后,上位機定時器工作狀態切換為下降沿捕捉功能。
步驟903,通過冰箱的下位機的第三i/o口接收冰箱的上位機發送的通信命令;其中,通信命令包括:引導碼、通信頭碼、控制命令、校驗碼和結束電平。
在本發明實施例中,通過設置下位機定時器的初始狀態為下降沿觸發捕捉功能,使得下位機定時器可以通過第三i/o口接收通信命令。
步驟904,依次判斷所述通信命令中的引導碼、通信頭碼、控制命令、校驗碼和結束電平是否均符合對應的下位機預設規則,如果是,則執行步驟905,否則執行步驟903。
步驟905,確定通信命令為有效通信命令,執行控制命令,并生成控制命令對應的回復信號。
步驟906,通過冰箱的下位機的第四i/o口向冰箱的上位機發送控制命令對應的回復信號。
在本發明實施例中,下位機定時器每次接收到有效通信命令后,下位機定時器工作狀態切換為基本間隔定時功能,使得下位機定時器可以通過第四i/o口發送回復信號。下位機定時器發送回復信號后,下位機定時器工作狀態切換為下降沿觸發捕捉功能。
步驟907,通過冰箱的上位機的第二i/o口接收冰箱的下位機發送的針對通信命令的回復信號;其中,回復信號包括:引導碼、通信頭碼、狀態數據、校驗碼和結束電平;
步驟908,依次判斷所述回復信號中的所述引導碼、所述通信頭碼、所述狀態數據,所述校驗碼和所述結束電平是否均符合對應的冰箱的上位機預設規則,如果是,則執行步驟909,否則,執行步驟907。
步驟909,確定所述回復信號為有效回復信號,并提取所述狀態數據。
在本發明實施例中,上位機定時器每次接收到有效回復信號之后,上位機定時器工作狀態切換為基本間隔定時功能,使得冰箱的上位機可以再次發送通信命令。
步驟910,等待預設間隔時間,執行步驟901。
綜上所述,本發明各個實施例至少具有如下有益效果:
1、本發明一個實施例中,通過冰箱的上位機的定時器和兩路i/o口實現向冰箱的下位機發送上位機處理單元生成的通信命令以及接受下位機針對通信命令的回復信號,能夠實現不通過單片機的通信模塊而實現上位機與下位機的交互。
2、本發明一個實施例中,通過下位機的定時器和兩路i/o口實現向冰箱的上位機發送下位機處理單元針對通信命令生成的回復信號以及接受冰箱的上位機的通信命令,能夠實現不通過單片機的通信模塊而實現上位機與下位機的交互。
3、本發明的一個實施例中,通過執行針對交互過程自定義包括引導碼、通信頭碼、狀態數據、控制命令、校驗碼和結束電平的通信協議,使得交互過程準確、便捷。
4、本發明的一個實施例中,通過配置上位機定時器,可以避免由于通信命令發送時間過長或長時間沒有收到回復而導致冰箱的上位機與冰箱的下位機交互中斷的問題。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。