一種實現單片機之間數據通信的新方法
2023-12-01 12:10:41 1
一種實現單片機之間數據通信的新方法
【專利摘要】一種實現單片機之間相互通信的新方法,其特徵在於每個單片機各用2個IO口的位來傳輸握手信號,用一個定時器/計數器的埠來進行數據傳輸,傳輸的數據與傳輸的脈衝數相對應。本發明的目的是提供一種實現兩個單片機之間不管使用何種頻率的晶振都能正確無誤地進行數據傳輸的通信方法。
【專利說明】一種實現單片機之間數據通信的新方法
【技術領域】
[0001]本發明涉及單片機數據通信領域,特別是一種實現兩個單片機之間相互通信的方法。
【背景技術】
[0002]現有的兩個單片機之間通信的方法主要是通過串行口和串行中斷來實現,這種通信方式要求兩個單片機用特殊的晶振如11.0592MHZ,用其它頻率的晶振會造成數據傳輸錯誤,而且還必須用一個定時器來配合。
【發明內容】
[0003]為了克服上述問題,本發明的目的是提供一種實現兩個單片機之間不管使用何種頻率的晶振都能正確無誤地進行數據傳輸的通信方法。
[0004]所述方法其特徵在於包括以下步驟:
1)發送數據單片機將其與接收數據的單片機連接的定時器/計數器輸入端Tx作為普通的IO 口用,即通過程序讓TRx=O ;
2)發送數據的單片機通過Tx端向接收數據的單片機的Ty端發送若干個脈衝U、y可以為0,I, 2,以下同),脈衝個數與發送的數字相對應,如發送數字「I」就發送I個脈衝,發送數字「255」就發送255個脈衝,以此類推;
3)接收數據的單片機在不發送數據時讓TRy=I,這樣能對收到的脈衝個數自動計數;
4)發送數據的單片機在每一字節數據發送完後通過外部中斷埠向接收數據的單片機的某個外部中斷輸入端發出一個負脈衝;
5)接收數據的單片機通過上述外部中斷輸入端相對應的外部中斷服務程序將定時器/計數器TLy中接收到的數據保存起來並清除TLy的值,為接收下一個字節的數據做好準備;
6)如果發送數據的單片機發送完所有的數據就結束,如果沒發送完就重複以上步驟;
7)本發明的方法也可以一次傳輸2位元組的數,如果是一次傳輸2位元組的數,只須將定時器/計數器初始化為16位即可。
[0005]本發明的有益效果為,不要求兩個進行數據通信的單片機採用相同頻率的晶振,也不要求採用特別數值的晶振如11.0592MHZ,由於發送的數據與傳輸的脈衝個數相對應,因此減小了程序設計的難度,使得這種通信方式變得更加容易實現。
【專利附圖】
【附圖說明】
[0006]圖1為本發明的結構示意圖。
[0007]圖2為本發明的調快慢方法工作流程圖。
【具體實施方式】[0008]下面將結合附圖及實施例對本發明作進一步說明。
[0009]參照圖1,單片機I與單片機2各用一個IO 口的2個位進行握手信號的傳輸,再用某個定時器/計數器的埠進行串行數據的傳輸,這些硬體通過一套用C語言編寫的程序來通過以下步驟來實現數據通信:
I)假設單片機I是數據發出方,單片機2是數據接收方,單片機I將其與單片機2連接的定時器/計數器輸入端Tx當成普通的IO 口用,即通過程序讓TRx=O ;
2)單片機I通過Tx端向單片機2的Ty端發送若干個脈衝,脈衝個數與發送的數字相對應,如發送數字「 I 」就發送I個脈衝,發送數字「255」就發送255個脈衝,以此類推;
3)單片機2在不發送數據時讓TRy=I,這樣能對收到的脈衝個數自動計數;
4)單片機I在每一字節數據發送完通過外部中斷埠向單片機2的某個外部中斷輸入端發出一個負脈衝;
5)單片機2通過上述外部中斷輸入端相對應的外部中斷服務程序將定時器/計數器TLy中接收到的數據保存起來並清除TLy的值,為接收下一個字節的數據做好準備;
6)如果單片機I發送完所有的數據就結束,如果沒發送完就重複以上步驟。
[0010]必須指出,上述實例只是對本發明作出一個非限定性舉例說明。但本領域的技術人員會理解,在沒有偏離本發明的宗旨和範圍下,可以對本發明作出各種修改、替換和變更,這些修改、替換和變更仍屬於本發明的保護範圍。
【權利要求】
1.一種實現單片機之間數據通信的新方法,其方法特徵在於包括以下步驟: 1)發送數據單片機將其與接收數據的單片機連接的定時器/計數器輸入端Tx作為普通的IO 口用,即通過程序讓TRx=O ; 2)發送數據的單片機通過Tx端向接收數據的單片機的Ty端發送若干個脈衝U、y可以為0,I, 2,以下同),脈衝個數與發送的數字相對應,如發送數字「I」就發送I個脈衝,發送數字「255」就發送255個脈衝,以此類推; 3)接收數據的單片機在不發送數據時讓TRy=I,這樣能對收到的脈衝個數自動計數; 4)發送數據的單片機在每一字節數據發送完後通過外部中斷埠向接收數據的單片機的某個外部中斷輸入端發出一個負脈衝; 5)接收數據的單片機通過上述外部中斷輸入端相應的外部中斷服務程序將定時器/計數器TLy中接收到的數據保存起來並清除TLy的值,為接收下一個字節的數據做好準備; 6)如果發送數據的單片機發送完所有的數據就結束,如果沒發送完就重複以上步驟; 7)本發明的方法也可以一次傳輸2位元組的數,如果是一次傳輸2位元組的數,只須將定時器/計數器初始化為16位即可。
2.根據權利要求1所述的一種實現單片機之間數據通信的新方法,其特徵在於:所述單片機為8位單片機。
3.根據權利要求1所述的一種實現單片機之間數據通信的新方法,其特徵在於:所述單片機為16位單片機。
4.根據權利要求1所述的一種實現單片機之間數據通信的新方法,其特徵在於:所述單片機為ARM。
5.根據權利要求1所述的一種實現單片機之間數據通信的新方法,其特徵在於:所述單片機為DSP。
【文檔編號】G06F13/40GK103500156SQ201310498715
【公開日】2014年1月8日 申請日期:2013年10月23日 優先權日:2013年10月23日
【發明者】魏二有 申請人:魯東大學