基于AT89C51的無線病房呼叫系統設計
主程序流程圖
2.2 從機程序設計
從機的程序設計主要包括初始化程序、外部呼叫信號等待程序、數據接收程序、數據發送程序、延時程序等主要程序。這里需要說明的是在設計外部呼叫信號等待程序時,在接收到外部呼叫信息后,需要經過一段延時(約30 ms)后再進行采樣看是否是瞬時干擾信號。
3 系統通信協議設計
3.1 系統無線通信協議設計
由于本設計的無線網絡系統中存在一個中心(主機)和多個用戶端(從機),因此本系統呈現為點對多點的通信方式,協議為點到多點的通信協議。在整個病房呼叫系統所設計的通信系統中,無論是在發射請求信息還是在發射應答信息時,發射的數據量始終保持固定的字節數且信息結構簡單,數據量較小;而且為了降低發射信息出現碰撞的概率,在該系統中從機的數量有一定限制,因此在本設計中采用了比較簡單的純ALOHA法來解決信息碰撞的問題[3]。
3.2 通信協議數據幀設計
本系統采用固定字節長度的數據幀,并使得請求信息數據幀和應答信息數據幀格式相互對應,從機請求信息數據傳輸采用引導字頭、接收地址、發送地址和校驗字的數據幀格式,而主機應答信息數據傳輸采用引導字頭、接收地址、確認指令和校驗字的數據幀格式。
?。?)引導字頭:對主機而言,為了隨時接收從機發送的請求信息,其射頻芯片nRF401總是處于接收狀態。本設計的傳輸協議中,數據幀的引導字采用OxFF后跟OxAA作為通信同步碼,接收協議只能夠接收以OxFF后跟OxAA開始的數據包。要注意的是,上面已經說明的引導字頭前還要再加一個隨機字節,因為起始傳輸時第一個字節往往是接收不到的,它的作用是使接收機進入狀態抑制噪聲,在本設計中該隨機字節采用Ox00。
?。?)接收地址:接收地址既包括從機發送請求信息中的接收地址,也包括主機發送應答信息中的接收地址。在醫院的病房樓中,很可能存在多套同規格的射頻無線病房呼叫系統同時工作。這樣就必須給每一個主機編上代碼,才能使主機確認接收的信息是否是發送給自己的,這個主機編號同時也就作為了從機發送請求信息時的接收地址。而每個主機下的從機也會有一個對應的編號,這個編號在本設計中就采用病房號,也就是主機發送應答信息時的接收地址。
?。?)發送地址:發送地址既存在于從機發送的請求信息中也存在于主機回復的應答信息中。從機請求信息中的發送地址是提供給主機用于顯示的病房號,也是在主機發送應答信息時的接收地址。通過應答信息中的接收地址,從機可以判斷出該接收到的信息是否是發給自己的。如果不是,從機將重新發送一遍請求信息,否則將繼續接收確認信息。同理,主機也可以根據請求信息中的發送地址確認發送信息的是否是自己轄區內的從機,如果不是將不予以接收顯示。
?。?)確認指令:確認指令用于主機通告從機信息發送是否正確。在本設計中,采用OxFF作為信息發送正確的指令,而采用OxEE作為信息發送錯誤的指令。事實上,在本設計的軟件設計中,為了確保信息的準確發送,只要確認信息不是OxFF,則從機就會自動地重新發送信息。
(5)
評論