本發(fā)明實施例涉及計算機通信,尤其涉及一種采用1-wire總線的通信方法及裝置。
背景技術:
1、隨著技術和經濟的發(fā)展,計算機在人們社會生活中越來越普及,應用領域也越來越廣泛。一般地,計算機包括主機和從設備。其中,主機包括中央處理器、內存、硬盤等核心部件,完成計算機的大部分計算。從設備與主機通過各類總線進行通信,協(xié)助主機完成輸入、輸出、網絡連接、加密等計算任務。
2、按照總線類型劃分,總線可被分為單總線、雙總線和多總線等。其中,由于單總線只有一條信號線,因此具有所需連接線數(shù)量少,成本低,且硬件設計簡單等優(yōu)點。同時單總線還支持一主多從(即一個主機上連接多個從設備)的通信。這些優(yōu)勢使得單總線廣泛應用于傳感器、安全芯片等從設備與主機之間的通信。
3、目前,一種已得到廣泛應用的單總線是1-wire(one?wire?serialcommunication,單行串行通信)總線。1-wire總線是一種異步半雙工串行傳輸總線,支持一主多從系統(tǒng)。其中,采用1-wire總線通信的主機和從設備之間傳輸?shù)膯慰偩€信號包括:復位脈沖、存在脈沖、寫0、寫1、讀0和讀1。具體地,主機和從設備之間通過復位脈沖、存在脈沖完成初始化,之后通過寫0、寫1、讀0和讀1進行數(shù)據(jù)傳輸。特別地,采用1-wire總線進行數(shù)據(jù)傳輸?shù)倪^程中,信號線除了作為傳輸數(shù)據(jù)的用途之外,還用于為從設備供電,具體的,當信號線為高電平時,從設備進行充電;當信號線為低電平時,從設備進行放電。
4、比較遺憾的是,發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):在利用1-wire總線進行數(shù)據(jù)傳輸?shù)倪^程中,如出現(xiàn)低電平放電大于高電平充電的情形(如存在多個連續(xù)寫0的過程),此時如果從設備內置電容的容量不足,則有可能導致從設備內置電容的完全放電,從而導致從設備掉電,通信中斷和從設備狀態(tài)復位。
技術實現(xiàn)思路
1、本發(fā)明實施例旨在至少在一定程度上解決相關技術中的技術問題之一。
2、為此,本發(fā)明實施例公開一種采用1-wire總線的通信方法及裝置,主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)從設備掉電時,調整待發(fā)送數(shù)據(jù)中高電平占比,以避免從設備掉電。
3、在第一方面中,本發(fā)明實施例提供一種采用1-wire總線的通信方法,應用于采用1-wire總線通信的主機和從設備,所述方法包括:
4、所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電;其中,所述目標待發(fā)送數(shù)據(jù)中包括有效指示bit,所述有效指示bit用于表征所述目標待發(fā)送數(shù)據(jù)為所述主機根據(jù)所述預設規(guī)則對所述待發(fā)送數(shù)據(jù)調整得到;
5、所述主機將所述目標待發(fā)送數(shù)據(jù)發(fā)送給所述從設備;
6、所述從設備接收所述目標待發(fā)送數(shù)據(jù),并根據(jù)所述預設規(guī)則將所述目標待發(fā)送數(shù)據(jù)恢復為所述待發(fā)送數(shù)據(jù)。
7、在第一方面的一具體實施例中,所述待發(fā)送數(shù)據(jù)包括:n個有效數(shù)據(jù)組,n≥1;所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,包括:
8、所述主機在任一有效數(shù)據(jù)組中的寫0比例大于第一預設比例時,確定出將出現(xiàn)所述從設備掉電,將該有效數(shù)據(jù)組中的寫0和寫1進行取反,以避免所述從設備掉電;其中,所述有效指示bit置于取反后的該有效數(shù)據(jù)組中。
9、在第一方面的一具體實施例中,所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,還包括:
10、所述主機在相鄰的兩個有效數(shù)據(jù)組中連續(xù)寫0的個數(shù)大于第一數(shù)量時,確定出將出現(xiàn)所述從設備掉電,在所述兩個有效數(shù)據(jù)組中間插入第一預設高電平,以避免所述從設備掉電。
11、在第一方面的一具體實施例中,所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,還包括:
12、所述主機在任一有效數(shù)據(jù)組中連續(xù)寫0的個數(shù)大于第二數(shù)量時,確定出將出現(xiàn)所述從設備掉電,在該有效數(shù)據(jù)組中連續(xù)寫0等于第二數(shù)量的位置處插入第二預設高電平,以避免所述從設備掉電。
13、在第一方面的一具體實施例中,所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,還包括:
14、所述主機在連續(xù)m個有效數(shù)據(jù)組中的寫0比例大于第二預設比例小于第一預設比例時,確定出將出現(xiàn)所述從設備掉電,將該連續(xù)m個有效數(shù)據(jù)組中全部或部分的寫0和寫1進行取反,以避免所述從設備掉電;其中,所述有效指示bit置于等于取反后的有效數(shù)據(jù)組中。
15、在第一方面的一具體實施例中,所述方法還包括:
16、所述主機在任一有效數(shù)據(jù)組中的寫0比例小于等于第一預設比例時,確定出所述從設備不掉電,將無效指示bit置于該有效數(shù)據(jù)組中。
17、在第一方面的一具體實施例中,所述有效指示bit置于每個有效數(shù)據(jù)組的第1位或者最后1位,所述無效指示bit置于每個有效數(shù)據(jù)組的第1位或者最后1位。
18、在第一方面的一具體實施例中,所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,還包括:
19、所述主機依次統(tǒng)計所述待發(fā)送數(shù)據(jù)中各有效數(shù)據(jù)組的充放電情況,在所述充放電情況的統(tǒng)計結果表明耗電量大于等于第一電量閾值時,插入第三預設高電平,以避免所述從設備掉電。
20、在第一方面的一具體實施例中,所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電,包括:
21、所述主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,在所述待發(fā)送數(shù)據(jù)中插入第四預設高電平,以避免所述從設備掉電。
22、在第一方面的一具體實施例中,所述待發(fā)送數(shù)據(jù)包括:n個有效數(shù)據(jù)組,n≥1;所述方法還包括:
23、所述主機確定出所述待發(fā)送數(shù)據(jù)中存在連續(xù)的重復有效數(shù)據(jù)組時,保留重復有效數(shù)據(jù)組中的一個,插入重復指示信號,將剩余的重復有效數(shù)據(jù)組替換為寫1;
24、所述從設備在接收到所述重復指示信號時,根據(jù)保留的有效數(shù)據(jù)組對被替換的有效數(shù)據(jù)組進行恢復。
25、在第二方面中,本發(fā)明實施例還公開一種采用1-wire總線的通信裝置,應用于采用1-wire總線通信的主機和從設備,所述裝置包括:位于所述主機中的調整模塊和發(fā)送模塊,位于所述從設備中的接收模塊和恢復模塊;
26、所述調整模塊用于根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,根據(jù)預設規(guī)則調整所述待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免所述從設備掉電;其中,所述目標待發(fā)送數(shù)據(jù)中包括有效指示bit,所述有效指示bit用于表征所述目標待發(fā)送數(shù)據(jù)為所述主機根據(jù)所述預設規(guī)則對所述待發(fā)送數(shù)據(jù)調整得到;
27、所述發(fā)送模塊用于將所述目標待發(fā)送數(shù)據(jù)發(fā)送給所述從設備;
28、所述接收模塊用于接收所述目標待發(fā)送數(shù)據(jù);
29、所述恢復模塊用于根據(jù)所述預設規(guī)則將所述目標待發(fā)送數(shù)據(jù)恢復為所述待發(fā)送數(shù)據(jù)。
30、在第二方面的一具體實施例中,所述待發(fā)送數(shù)據(jù)包括:n個有效數(shù)據(jù)組,n≥1;所述調整模塊具體用于:
31、在任一有效數(shù)據(jù)組中的寫0比例大于第一預設比例時,確定出將出現(xiàn)所述從設備掉電,將該有效數(shù)據(jù)組中的寫0和寫1進行取反,以避免所述從設備掉電;其中,所述有效指示bit置于取反后的該有效數(shù)據(jù)組中。
32、在第二方面的一具體實施例中,所述調整模塊還用于:
33、在相鄰的兩個有效數(shù)據(jù)組中連續(xù)寫0的個數(shù)大于第一數(shù)量時,確定出將出現(xiàn)所述從設備掉電,在所述兩個有效數(shù)據(jù)組中間插入第一預設高電平,以避免所述從設備掉電。
34、在第二方面的一具體實施例中,所述調整模塊還用于:
35、在任一有效數(shù)據(jù)組中連續(xù)寫0的個數(shù)大于第二數(shù)量時,確定出將出現(xiàn)所述從設備掉電,在該有效數(shù)據(jù)組中連續(xù)寫0等于第二數(shù)量的位置處插入第二預設高電平,以避免所述從設備掉電。
36、在第二方面的一具體實施例中,所述調整模塊還用于:
37、在連續(xù)m個有效數(shù)據(jù)組中的寫0比例大于第二預設比例且小于等于第一預設比例時,確定出將出現(xiàn)所述從設備掉電,將該連續(xù)m個有效數(shù)據(jù)組中全部或部分的寫0和寫1進行取反,以避免所述從設備掉電;其中,所述有效指示bit置于等于取反后的有效數(shù)據(jù)組中。
38、在第二方面的一具體實施例中,所述調整模塊還用于:
39、在任一有效數(shù)據(jù)組中的寫0比例小于等于第一預設比例時,確定出所述從設備不掉電,將無效指示bit置于該有效數(shù)據(jù)組中。
40、在第二方面的一具體實施例中,所述有效指示bit置于每個有效數(shù)據(jù)組的第1位或者最后1位,所述無效指示bit置于每個有效數(shù)據(jù)組的第1位或者最后1位。
41、在第二方面的一具體實施例中,所述調整模塊還用于:
42、依次統(tǒng)計所述待發(fā)送數(shù)據(jù)中各有效數(shù)據(jù)組的充放電情況,在所述充放電情況的統(tǒng)計結果表明耗電量大于等于第一電量閾值時,插入第三預設高電平,以避免所述從設備掉電。
43、在第二方面的一具體實施例中,所述調整模塊用于:
44、根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)所述從設備掉電時,在所述待發(fā)送數(shù)據(jù)中插入第四預設高電平,以避免所述從設備掉電。
45、在第二方面的一具體實施例中,所述待發(fā)送數(shù)據(jù)包括:n個有效數(shù)據(jù)組,n≥1;所述調整模塊還用于:
46、確定出所述待發(fā)送數(shù)據(jù)中存在連續(xù)的重復有效數(shù)據(jù)組時,保留重復有效數(shù)據(jù)組中的一個,插入重復指示信號,將剩余的重復有效數(shù)據(jù)組替換為寫1;
47、所述恢復模塊還用于:
48、在接收到所述重復指示信號時,根據(jù)保留的有效數(shù)據(jù)組對被替換的有效數(shù)據(jù)組進行恢復。
49、本發(fā)明實施例的有益效果:
50、本發(fā)明實施例提供的一種采用1-wire總線的通信方法及裝置,應用于采用1-wire總線通信的主機和從設備,方法包括:主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)從設備掉電時,根據(jù)預設規(guī)則調整待發(fā)送數(shù)據(jù)中高電平占比得到目標待發(fā)送數(shù)據(jù),以避免從設備掉電;主機將目標待發(fā)送數(shù)據(jù)發(fā)送給從設備;從設備接收目標待發(fā)送數(shù)據(jù),并根據(jù)預設規(guī)則將目標待發(fā)送數(shù)據(jù)恢復為待發(fā)送數(shù)據(jù)。本發(fā)明實施例的技術方案,主機根據(jù)待發(fā)送數(shù)據(jù)中寫0和寫1的情況確定出將出現(xiàn)從設備掉電時,調整待發(fā)送數(shù)據(jù)中高電平占比,從而提前調整從設備充放電情況,避免從設備掉電,進而避免主機和從設備之間的通信中斷以及從設備狀態(tài)復位。