武曉雪
摘 要:在現在的機電自動化產品中,控制系統大多是單片機。對于一些簡單的機電傳動系統或是機電一體化設備,往往采用的是一個單片機作為主控板,配合動力元件,如:舵機、直流電機、步進電機、伺服電機等。帶動機械元件,如:連桿,絲杠,光軸、齒輪、凸輪等運動,通過這些機械元件運動的相互配合完成所期望的運動。而對于一些復雜的機電傳動系統或是機電一體化設備,單一的單片機已經不能滿足我們的需求,因為一個單片機上的資源,如I\O口,定時器,中斷源的數目有限。那么就要采用兩個或是多個單片機組成控制系統進行控制機械進行運動。采用兩個以上的單片機不等不考慮的問題就是單片機之間的通信。在常規的方法中往往采用的是雙機通信協議或是多機通訊協議。但是這些協議有些復雜,通過我們組的學習與實踐種提出了一中簡易雙機通訊的思想,并且在試驗和實踐中得到了驗證。
關鍵詞:簡易的,雙機通訊
在單片機之間的通訊方式中的雙機通訊,他門要遵循一些固定的思維方式。而我門組對于雙機通訊方式都提出了一種簡單的算法思想。
對于單片機雙機通訊,它實際上是串口通訊,但是其中的關鍵就是單片機之間要共地。因為在單片機之間在傳遞復雜信息時,實際上是機器碼之間的傳遞,而機器碼值有0和1。0和1在單片機之間進行通訊時,實際上是通過電壓等電信號的高低電平來表示,共地實質是讓兩個單片機之間共低電平。這樣穿點的高低電平也就是機器碼中的0和1才會相互識別否則就會出現以通信失敗或是其他的一些問題。這在工程或是項目中是不允許的。對于串口通訊實際上用的是串口中斷,通常的做法是通過標志位來引發串口中斷。在中斷中進行通訊,也就是單片機之間的交互信息。而單片機的串口通訊還要保證兩個單片機的波特率保持一致。這樣做的目的是為了保證單片機接收的數據和另一個單片機發送的數據一致。否則就會出現現接收的數據和發送的數據不一致,從而導致通信失敗。對于波特率又要牽涉到定時器中斷。所以單片機之間的雙機通訊牽涉到的內容還是很多的。使用時需要設置很多的寄存器和特殊功能位的值。
對于單片機雙機通訊我們組提出了一個簡易的思想,不用設置那么多的寄存器和特殊功能位就可以進行單片機之間的雙機通訊。當然我們的這個算法思想也是針對一些簡單的工程或是項目。我們的想法是再進行單片機雙機通訊時,多半是主機發送命令,從機接收命令去執行,在執行完畢時向主機傳遞相關信息表示該命令已經執行完畢。(這是簡單工程常用的)。那么只要讓主機給從機一個信號,讓從機檢測到,并且知道要去執行怎洋的動作,當從機執行完相關動作,向主機發送一個信號,告訴主機命令已經執行完畢就可以了。這個信號在電控當中一般想到的是電信號。我們組選用的是電壓信號。通過實驗得知,當給單片機I/O口接高電平(5V,且電源與單片機共地)時,單片機可以檢測到該值,并且這個值是1;當給單片機I/O口低電平是(0V,電源與單片機共地)時,單片機可以檢測到該值,并檢測到的結果是0。有了以上的基礎,我們的算法思想就誕生了。
我們的簡易雙機通訊思想是:讓兩個單片機共地,兩個單片機得所有普通的I/O口初始化的值全部為1,及為高電平。對于命令少或是要求的功能少的項目,我們可通過I/O口的高電平來進行信傳遞,主從機的單個I/O引腳之間用杜邦線連接。一個I/O引腳用來傳遞一種命令,一個I/O引腳用來表示從機的動作已經執行完畢。具體的執行方式是主機將其一個I/O的一位置低電平,與該I/O連接的從機I/O的相應位檢測到低電平,說明從機已經檢測到主機已經向我傳遞了一個命令,至于這是一個什么樣的命令可以根據從機該位的名稱來識別或是認知,并去執行相應的命令,在動作執行完畢的時候,從機將其一個I/O的一位置低電平,與之先連接的主機的I/O的相應位檢測到,表示從機已經執行完一個命令,之后主機可以通過相同的方式向從機繼續發送命令。當需要執行的命令很多的時候,由于單片機的位的數目是有限的,有可能不滿足我們的需求,我們可以通過使用一個完整的I/O來進行單片機之間的信息交互。一個完整的I/O一共有八位,其值可以從00000000到11111111之間進行變化,共有256種可能,及可以傳遞256中信息。如果這個I/O是用來發送指令的,那么理論上可以傳遞256種命令。若是該I/O是用來向主機傳遞信息時,理論上可以向主機主機傳遞256種信息。對于一般的工程已經足夠使用。倘若還是不能滿足我們的需求,那么我們可以采用多個I/O來進行信息交流。例如采用兩個I/O來傳遞信息時,理論上可以傳遞256*256種信息,及65536種信息。
當然我們這種簡易的雙機通訊只是適用于一些簡單的要求,對于要求非常嚴謹的通信,簡易適用常規的方法。
參考文獻:
[1].曾增烽, 劉浩, 李雪. 基于51單片機的串行通信協議的實現[J]. 硅谷, 2009(13):26.
[2].梅小華. 提高51單片機TCP通信效率的軟件方法[J]. 華僑大學學報(自然版), 2011, 32(2):235-237.
[3].楊永, 杜文龍. 51單片機接收GPS數據的算法與實現[J]. 現代電子技術, 2008, 31(22):50-52.