基于AT89C52網絡監控系統的設計與實現
(2)下位機狀態字:

b0:登陸請求1,無登陸請求0;
b1:已登陸狀態標志1,未登陸狀態標志0;
b2:已收卷狀態標志1,未收卷狀態標志0;
b3:開始答題狀態標志1,未開始答題狀態標志O;
b4:交卷請求標志1,無交卷請求標志0;
b5:已交卷標志1,未交卷標志O;
b6:答題中止標志l,答題恢復標志O。
4 通信過程
上位機開機啟動程序,上位機進入輪詢過程。此時,下位機開機登陸,在輪詢到自己時,發出登陸信息,上位機收到后,進行必要的登陸處理。在所有下位機登陸完畢后或監考老師認為收到所有考生的登陸信息后,按下發卷按鈕,對每一個登陸下位機依次發卷。發卷完畢后,由監考老師按下開考按鈕,以廣播方式發出考試開始指令,下位機顯示考試題目,系統開始計時。在考試進行過程中,監考老師可查詢任一個下位機的狀態(包括考生考試情況);甚至可以啟動自動巡考指令,自動巡視每個考生的答題情況。考試過程中考生答題完畢可交卷,在考生按下交卷按鈕后交卷,發出交卷信息,上位機接收,并發出正確接收的回復信息。考試過程中,監考老師發現有學生作弊,可隨時按下中止考試按鈕,中止此下位機的運行,考試記零分。考試時間到,系統自動判斷是否仍有考生沒有交卷,中止考生答卷,并取回相應下位機的答題信息。上下位機基本輪詢及通信動作示意圖如圖3所示。
上下位機通信動作過程如下:
①上位機作為網絡主控端,以一定時間間隔dtl進行輪詢。輪詢過程是這樣的:首先上位機查詢上位機狀態字,判斷是否存在通訊請求,如果沒有,就對輪詢到的下位機發出通訊授權標志,若在延遲短暫時間后下位機無應答,置此地址下位機不在線標志,并中止此次輪詢;若有應答則置與此下位機通訊的通道標志。
②下位機發出指令:表明下位機回復查詢指令,根據狀態字判斷下位機狀態。
③上位機發出指令:表明上位機根據下位機的狀態字及上位機狀態字,按上位機有優先原則,發出上位機準備接收信息。
④下位機發出指令:上位機根據功能指令解析數據,完成相應的顯示及確認回復。
⑤上位機發出指令:在從下位機向上位機傳輸信息過程中出現錯誤時,上位機將向下位機發出重發功能指令,重發次數確定根據調試過程確定。
在設計RS 485通信軟件時,要注意對RS 485控制端的軟件編程。為了保證數據收發可靠,在RS 485總線狀態切換時需要加適當的延時,延時一般控制在1 ms左右,再進行數據的收發。經過這樣處理后,使總線在狀態切換時有一個穩定的工作過程。
5 上位機通信軟件的設計
上位機通信是采用一個專門針對串行通信的CSerial類進行程序設計的,該方法功能較強,只要理解這種類的幾個成員函數,就能方便使用。以下是幾個常用的成員函數:
評論