新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于AT89C51的無線病房呼叫系統設計

        基于AT89C51的無線病房呼叫系統設計

        作者: 時間:2012-05-11 來源:網絡 收藏
        255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  主機程序設計主要包括初始化程序、發送數據程序、接收數據程序、延時程序、LED顯示程序及蜂鳴器報警程序等。這些程序并沒有以子程序的方式來實現,這是因為每一個功能的實現并不完全獨立,而是相互交織在一起,這就使得采用調用子程序的方式去實現變得相當困難。本設計中采用單片機匯編語言編寫系統功能模塊程序。主機的主程序流程如圖3所示。

          主程序流程圖

          主程序流程圖

          2.2 從機程序設計

          從機的程序設計主要包括初始化程序、外部呼叫信號等待程序、數據接收程序、數據發送程序、延時程序等主要程序。這里需要說明的是在設計外部呼叫信號等待程序時,在接收到外部呼叫信息后,需要經過一段延時(約30 ms)后再進行采樣看是否是瞬時干擾信號。

          3 系統通信協議設計

          3.1 系統通信協議設計

          由于本設計的網絡系統中存在一個中心(主機)和多個用戶端(從機),因此本系統呈現為點對多點的通信方式,協議為點到多點的通信協議。在整個系統所設計的通信系統中,無論是在發射請求信息還是在發射應答信息時,發射的數據量始終保持固定的字節數且信息結構簡單,數據量較小;而且為了降低發射信息出現碰撞的概率,在該系統中從機的數量有一定限制,因此在本設計中采用了比較簡單的純ALOHA法來解決信息碰撞的問題[3]。

          3.2 通信協議數據幀設計

          本系統采用固定字節長度的數據幀,并使得請求信息數據幀和應答信息數據幀格式相互對應,從機請求信息數據傳輸采用引導字頭、接收地址、發送地址和校驗字的數據幀格式,而主機應答信息數據傳輸采用引導字頭、接收地址、確認指令和校驗字的數據幀格式。

         ?。?)引導字頭:對主機而言,為了隨時接收從機發送的請求信息,其射頻芯片nRF401總是處于接收狀態。本設計的傳輸協議中,數據幀的引導字采用OxFF后跟OxAA作為通信同步碼,接收協議只能夠接收以OxFF后跟OxAA開始的數據包。要注意的是,上面已經說明的引導字頭前還要再加一個隨機字節,因為起始傳輸時第一個字節往往是接收不到的,它的作用是使接收機進入狀態抑制噪聲,在本設計中該隨機字節采用Ox00。

         ?。?)接收地址:接收地址既包括從機發送請求信息中的接收地址,也包括主機發送應答信息中的接收地址。在醫院的病房樓中,很可能存在多套同規格的射頻系統同時工作。這樣就必須給每一個主機編上代碼,才能使主機確認接收的信息是否是發送給自己的,這個主機編號同時也就作為了從機發送請求信息時的接收地址。而每個主機下的從機也會有一個對應的編號,這個編號在本設計中就采用病房號,也就是主機發送應答信息時的接收地址。

         ?。?)發送地址:發送地址既存在于從機發送的請求信息中也存在于主機回復的應答信息中。從機請求信息中的發送地址是提供給主機用于顯示的病房號,也是在主機發送應答信息時的接收地址。通過應答信息中的接收地址,從機可以判斷出該接收到的信息是否是發給自己的。如果不是,從機將重新發送一遍請求信息,否則將繼續接收確認信息。同理,主機也可以根據請求信息中的發送地址確認發送信息的是否是自己轄區內的從機,如果不是將不予以接收顯示。

         ?。?)確認指令:確認指令用于主機通告從機信息發送是否正確。在本設計中,采用OxFF作為信息發送正確的指令,而采用OxEE作為信息發送錯誤的指令。事實上,在本設計的軟件設計中,為了確保信息的準確發送,只要確認信息不是OxFF,則從機就會自動地重新發送信息。

          (5)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鸡泽县| 宿州市| 陈巴尔虎旗| 西乡县| 内乡县| 清流县| 库车县| 衡阳市| 彰武县| 梧州市| 呼图壁县| 夏邑县| 仁怀市| 宜良县| 汾西县| 台中市| 江源县| 喀喇沁旗| 扎赉特旗| 闽清县| 安康市| 内黄县| 海城市| 广元市| 隆化县| 新邵县| 万全县| 临武县| 佛坪县| 交城县| 陆河县| 伊通| 汪清县| 旬邑县| 屏边| 巴马| 平泉县| 昌江| 商南县| 永善县| 青铜峡市|