基于單片機的多機并行通訊系統(tǒng)
2.1 單向傳送
單向傳送就是通信口的數據流只向一個方向,即從Ul_L接收到的數據,從U2_H發(fā)送出去,或從U2_H接收到的數據,從Ul_L發(fā)送出去。用這種方式進行軟件編程比較簡單?,F以U1_L只接收外部設備數據,U2_H只向外部設備發(fā)送數據,采用查詢方式為例,兩單片機之間數據傳送的流程圖如圖3所示。其中Ul_L的P2.2作為向U2_H傳送新數據的查詢信號(U2_H的P2.5),P2.2=“0”表示有新的數據,P2.2=“1”表示沒有新的數據;U2_H的P2.2作為接收U1_L數據的查詢信號(U1_L的P2.5),P2.2=“O”表示可以接收新的數據,P2.2=“1”表示不能接收新的數據。如果采用中斷方式,兩單片機的查詢信號更簡單,只要Ul_L查詢U2_H是否可以接收數據的信號就可以,U2_H無需查詢U1_L的查詢信號。
2.2 雙向傳送
雙向傳送就是通信口可以同時接收數據和發(fā)送數據,數據流是雙向的,Ul_L和U2_H既接收數據也發(fā)送數據。這種方式軟件編程比較復雜,特別是雙向傳送數據采用查詢方式時。單片機之間的查詢信號就更加復雜了?,F以雙向查詢方式為例,兩單片機之間數據傳送的流程圖如圖4所示,U2_H的流程與U1_L一樣。其中U1_L向U2_H傳送數據時的查詢信號與單向傳送的定義一樣,U2_H的P2.3作為向U1_L傳送新數據的查詢信號(U1_L的P2.4),P2.3=“0”表示有新的數據,P2.3=“l”表示沒有新的數據;Ul_L的P2.3作為接收U2_H數據的查詢信號(U2_H的P2.4),P2.3=“O”表示可以接收新的數據,P2.3=“1”表示不能接收新的數據。如果采用中斷方式,查詢信號可以減少,編程可以簡化。
評論