單片機AT89C5l
發布時間:2011/5/24 10:37:59 訪問次數:1210
a;單片機多機通信的基本原理
- 51電子網公益庫存:
- GAL16V8D
- H11AA2
- L295 DIP
- M27C256B-15B1
- N2TU25H16AG-3C
- OP07DRZ-REEL
- P8049AH/8462
- S25FL004A0LNFI004
- T1028AA
- W91320A
計算機之間的通信除了點對點通信外,還有一機對多機或多機之間的通信,構成計算機網絡,其中主從式多機通信是比較常用的一種方式。在主從式多機通信系統中,只有一臺主機,但可以有多臺從機。主機發送的信息可以傳送到各個從機或指定從機,從機發送的信息只能為主機所接收,各從機之間不能直接通信。主機通常由pc機擔任,也可用單片機擔當(本文研究的是用單片機作主機),從機通常為單片機。 mcs-51單片機串行口的方式2和方式3具有多機通信功能,可實現一臺主機和若干臺從機構成總線式的多機分布式系統,在多機通信中,可充分利用mcs-51單片機的多機通信控制位sm2。用作主機的單片機的sm2應設定為0,作從機的sm2設定為1。主機發送并為從機接收的數據有兩類:一類是地址,用于指示需要和主機通信的從機的地址,由串行數據第9位為“1”標志;另一類是數據,由串行數據第9位為“0”標志。由于所有從機的sm2=1,故每個從機總能在ri=0時收到主機發來的地址(因為串行數據第9位為“1”),并進入各自的中斷服務程序。在中斷服務程序中,每臺從機把接收到的從機地址和它的本機地址(系統設計時分配)進行比較。所有比較不相等的從機均從各自的中斷服務程序中退出(sm2仍為1),只有比較地址相等的從機才是被主機尋址通信的從機。被尋址從機在程序中使sm2=0,以便接收隨之而來的數據或命令(rb8=0)。上述過程進一步歸結如下:深圳市凌創輝電子有限公司
(1)主機的sm2=0,所有從機的sm2=1,都處于監聽狀態(只能接收地址幀),以便接收主機發來的地址。
(2)主機給從機發送一幀地址信息時,其中的8位是地址,第9位為1表示是地址幀。
(3)所有從機在sm2=1、rb8=1且ri=0時,接收到主機發來的從機地址幀后,進行中斷處理,進入相應的中斷服務程序,并和本機地址進行比較以確認是否為被尋址從機。
(4)被尋址的從機通過指令清除sm2,使sm2=0進入接收數據狀態,可以接收主機隨后發送的數據(包括命令),并向主機發回接收到的從機地址作為響應信號,供主機核對,實現主機與被尋址從機的雙機通信;未被尋址從機保持sm2=1,并退出中斷服務程序。
(5)完成主機和被尋址從機之間的數據通信,被尋址從機在通信完成后重新使sm2=1,并退出中斷服務程序,恢復到監聽狀態,等待下次通信。
b; 交通燈控制網絡硬件電路設計
2.1 硬件電路
城市交通控制系統是一個聯動的系統,所有路口的交通燈控制系統由一臺中心主機控制,當某一路口將出現緊急情況時(如交通管制、交通堵塞、路段維修等),單擊中心主機的對應按鈕即可使該路口的所有紅燈亮,禁止所有普通車輛通行。proteus軟件仿真設計了
一臺主機控制兩臺從機的主從式多機系統,實施時可以擴展到253臺主機,單片機u1為主機,u2、u3為從機,代表兩個路口的控制機,s1、s2為按鈕,分別與u1的p1.1、p1.0連接,當按下時分別控制兩個路口的交通信號燈為所有紅燈亮,表示該路口出現緊急情況。與主機u1相連的兩個bcd數碼管用于顯示從機接收到的響應幀,即出現緊急情況的路口地址號,如果接收到的響應幀傳送出現錯誤,與主機發出的地址號不同時,這兩個數碼管顯示ff,當s1和s2沒有按下時,這兩個數碼管也顯示ff。串行口通信時傳輸的“0”或者“1”是通過相對于“地”的電壓區分的,因此使用串行口通信時,必須將主、從機的“地”線相連以使其具有相同的電壓參考點。
2.2 通信協議
多機通信是一個復雜的通信過程,必須有通信協議來保證多機通信的可操作性和操作秩序,實現收/發雙方的響應與協調。這些通信協議,至少應包括從機的地址、主機的控制命令、從機的響應幀格式和數據通信格式等的約定,3 軟件程序的設計
c;.1 主機程序設計
主機主要負責呼叫從機,發送控制命令以及從機響應幀的接收,數據的顯示等功能。為了保證主、從機之間握手的成功,主機采用查詢方式發送和接收數據,串行口的工作方式設置為方式2,smod=0。3.2 從機程序設計
從機循環運行交通燈控制程序,交通燈控制程序利用定時器/計數器0實現定時,為了能正常和主機通信,從機的串行口也工作于方式2,smod=0,以保持和主機相同的波特率。由于主機呼叫從機時發送的地址幀與命令幀沒有重復,為了使程序簡單,本文針對從機接收到主機發來的數據后不通過第九位數據來判斷是地址幀還是命令幀。對接收到的數據如果與本機地址相等則表明是地址幀,立即向主機發送自己的地址作為響應信號;如果是命令則按命令執行相關操作(所有路口紅機亮或恢復交通燈信號);如果既不與本機地址相等也不是兩個命令之一,則認為該數據不是發送給本機的,該機繼續監聽,從機u2串行口接收和發送數據中斷服務程序, 單片機利用串行口進行多機通信是一個比較復雜的過程,本文對mcs-51單片機的多機通信進行一定的探討,利用單片機多機通信對城市交通燈控制系統實現網絡化集中控制,是一個很好的實例,通過proteus仿真運行
a;單片機多機通信的基本原理
- 51電子網公益庫存:
- GAL16V8D
- H11AA2
- L295 DIP
- M27C256B-15B1
- N2TU25H16AG-3C
- OP07DRZ-REEL
- P8049AH/8462
- S25FL004A0LNFI004
- T1028AA
- W91320A
計算機之間的通信除了點對點通信外,還有一機對多機或多機之間的通信,構成計算機網絡,其中主從式多機通信是比較常用的一種方式。在主從式多機通信系統中,只有一臺主機,但可以有多臺從機。主機發送的信息可以傳送到各個從機或指定從機,從機發送的信息只能為主機所接收,各從機之間不能直接通信。主機通常由pc機擔任,也可用單片機擔當(本文研究的是用單片機作主機),從機通常為單片機。 mcs-51單片機串行口的方式2和方式3具有多機通信功能,可實現一臺主機和若干臺從機構成總線式的多機分布式系統,在多機通信中,可充分利用mcs-51單片機的多機通信控制位sm2。用作主機的單片機的sm2應設定為0,作從機的sm2設定為1。主機發送并為從機接收的數據有兩類:一類是地址,用于指示需要和主機通信的從機的地址,由串行數據第9位為“1”標志;另一類是數據,由串行數據第9位為“0”標志。由于所有從機的sm2=1,故每個從機總能在ri=0時收到主機發來的地址(因為串行數據第9位為“1”),并進入各自的中斷服務程序。在中斷服務程序中,每臺從機把接收到的從機地址和它的本機地址(系統設計時分配)進行比較。所有比較不相等的從機均從各自的中斷服務程序中退出(sm2仍為1),只有比較地址相等的從機才是被主機尋址通信的從機。被尋址從機在程序中使sm2=0,以便接收隨之而來的數據或命令(rb8=0)。上述過程進一步歸結如下:深圳市凌創輝電子有限公司
(1)主機的sm2=0,所有從機的sm2=1,都處于監聽狀態(只能接收地址幀),以便接收主機發來的地址。
(2)主機給從機發送一幀地址信息時,其中的8位是地址,第9位為1表示是地址幀。
(3)所有從機在sm2=1、rb8=1且ri=0時,接收到主機發來的從機地址幀后,進行中斷處理,進入相應的中斷服務程序,并和本機地址進行比較以確認是否為被尋址從機。
(4)被尋址的從機通過指令清除sm2,使sm2=0進入接收數據狀態,可以接收主機隨后發送的數據(包括命令),并向主機發回接收到的從機地址作為響應信號,供主機核對,實現主機與被尋址從機的雙機通信;未被尋址從機保持sm2=1,并退出中斷服務程序。
(5)完成主機和被尋址從機之間的數據通信,被尋址從機在通信完成后重新使sm2=1,并退出中斷服務程序,恢復到監聽狀態,等待下次通信。
b; 交通燈控制網絡硬件電路設計
2.1 硬件電路
城市交通控制系統是一個聯動的系統,所有路口的交通燈控制系統由一臺中心主機控制,當某一路口將出現緊急情況時(如交通管制、交通堵塞、路段維修等),單擊中心主機的對應按鈕即可使該路口的所有紅燈亮,禁止所有普通車輛通行。proteus軟件仿真設計了
一臺主機控制兩臺從機的主從式多機系統,實施時可以擴展到253臺主機,單片機u1為主機,u2、u3為從機,代表兩個路口的控制機,s1、s2為按鈕,分別與u1的p1.1、p1.0連接,當按下時分別控制兩個路口的交通信號燈為所有紅燈亮,表示該路口出現緊急情況。與主機u1相連的兩個bcd數碼管用于顯示從機接收到的響應幀,即出現緊急情況的路口地址號,如果接收到的響應幀傳送出現錯誤,與主機發出的地址號不同時,這兩個數碼管顯示ff,當s1和s2沒有按下時,這兩個數碼管也顯示ff。串行口通信時傳輸的“0”或者“1”是通過相對于“地”的電壓區分的,因此使用串行口通信時,必須將主、從機的“地”線相連以使其具有相同的電壓參考點。
2.2 通信協議
多機通信是一個復雜的通信過程,必須有通信協議來保證多機通信的可操作性和操作秩序,實現收/發雙方的響應與協調。這些通信協議,至少應包括從機的地址、主機的控制命令、從機的響應幀格式和數據通信格式等的約定,3 軟件程序的設計
c;.1 主機程序設計
主機主要負責呼叫從機,發送控制命令以及從機響應幀的接收,數據的顯示等功能。為了保證主、從機之間握手的成功,主機采用查詢方式發送和接收數據,串行口的工作方式設置為方式2,smod=0。3.2 從機程序設計
從機循環運行交通燈控制程序,交通燈控制程序利用定時器/計數器0實現定時,為了能正常和主機通信,從機的串行口也工作于方式2,smod=0,以保持和主機相同的波特率。由于主機呼叫從機時發送的地址幀與命令幀沒有重復,為了使程序簡單,本文針對從機接收到主機發來的數據后不通過第九位數據來判斷是地址幀還是命令幀。對接收到的數據如果與本機地址相等則表明是地址幀,立即向主機發送自己的地址作為響應信號;如果是命令則按命令執行相關操作(所有路口紅機亮或恢復交通燈信號);如果既不與本機地址相等也不是兩個命令之一,則認為該數據不是發送給本機的,該機繼續監聽,從機u2串行口接收和發送數據中斷服務程序, 單片機利用串行口進行多機通信是一個比較復雜的過程,本文對mcs-51單片機的多機通信進行一定的探討,利用單片機多機通信對城市交通燈控制系統實現網絡化集中控制,是一個很好的實例,通過proteus仿真運行
上一篇:索尼:裸眼3D液晶
下一篇:英特爾Tri-Gate技術