基于AT89C51單片機的無線病房呼叫系統(tǒng)設計
1.2 從機硬件電路設計
本設計中的一套病房呼叫系統(tǒng)擁有一個主機和多個從機, 以此實現(xiàn)多個病房對安裝在醫(yī)務人員值班室中的主機的實時呼叫。從機控制器的外圍電路設計、射頻芯片nRF401 與控制器的連接方式及其外圍電路的設計都與主機一致, 不同是少了顯示和警報硬件電路而多了一個外部請求信息的接收電路。從機中的外部請求信息接收電路設計只是依靠一個P0.0 端口等待接收外部的高電平,一旦SB2 按下,發(fā)光二極管點亮,P0.0 口接到外部高電平,就迅速地進行信息的發(fā)送,并且直到接收到主機反饋回來的發(fā)送成功信息后才自動結束本次呼叫, 繼續(xù)進入等待外部請求信號的狀態(tài)。
2 系統(tǒng)軟件設計
在軟件設計的過程中必須考慮到系統(tǒng)通信的抗干擾性能和正常通信識別的具體實現(xiàn)方法, 以及解決信息碰撞的具體軟件實現(xiàn)方法。
2.1 主機程序設計
主機程序設計主要包括初始化程序、發(fā)送數(shù)據(jù)程序、接收數(shù)據(jù)程序、延時程序、LED 顯示程序及蜂鳴器報警程序等。這些程序并沒有以子程序的方式來實現(xiàn), 這是因為每一個功能的實現(xiàn)并不完全獨立, 而是相互交織在一起, 這就使得采用調(diào)用子程序的方式去實現(xiàn)變得相當困難。本設計中采用單片機匯編語言編寫系統(tǒng)功能模塊程序。主機的主程序流程如圖3 所示。
2.2 從機程序設計
從機的程序設計主要包括初始化程序、外部呼叫信號等待程序、數(shù)據(jù)接收程序、數(shù)據(jù)發(fā)送程序、延時程序等主要程序。這里需要說明的是在設計外部呼叫信號等待程序時, 在接收到外部呼叫信息后, 需要經(jīng)過一段延時(約30 ms)后再進行采樣看是否是瞬時干擾信號。
3 系統(tǒng)通信協(xié)議設計
3.1 系統(tǒng)無線通信協(xié)議設計
由于本設計的無線網(wǎng)絡系統(tǒng)中存在一個中心( 主機)和多個用戶端( 從機) , 因此本系統(tǒng)呈現(xiàn)為點對多點的通信方式, 協(xié)議為點到多點的通信協(xié)議。在整個病房呼叫系統(tǒng)所設計的通信系統(tǒng)中, 無論是在發(fā)射請求信息還是在發(fā)射應答信息時, 發(fā)射的數(shù)據(jù)量始終保持固定的字節(jié)數(shù)且信息結構簡單, 數(shù)據(jù)量較小; 而且為了降低發(fā)射信息出現(xiàn)碰撞的概率, 在該系統(tǒng)中從機的數(shù)量有一定限制, 因此在本設計中采用了比較簡單的純ALOHA 法來解決信息碰撞的問題[ 3]。
3.2 通信協(xié)議數(shù)據(jù)幀設計
本系統(tǒng)采用固定字節(jié)長度的數(shù)據(jù)幀, 并使得請求信息數(shù)據(jù)幀和應答信息數(shù)據(jù)幀格式相互對應, 從機請求信息數(shù)據(jù)傳輸采用引導字頭、接收地址、發(fā)送地址和校驗字的數(shù)據(jù)幀格式, 而主機應答信息數(shù)據(jù)傳輸采用引導字頭、接收地址、確認指令和校驗字的數(shù)據(jù)幀格式。
(1) 引導字頭: 對主機而言, 為了隨時接收從機發(fā)送的請求信息, 其射頻芯片nRF401 總是處于接收狀態(tài)。本設計的傳輸協(xié)議中, 數(shù)據(jù)幀的引導字采用OxFF 后跟OxAA 作為通信同步碼, 接收協(xié)議只能夠接收以OxFF 后跟OxAA 開始的數(shù)據(jù)包。要注意的是, 上面已經(jīng)說明的引導字頭前還要再加一個隨機字節(jié), 因為起始傳輸時第一個字節(jié)往往是接收不到的, 它的作用是使接收機進入狀態(tài)抑制噪聲, 在本設計中該隨機字節(jié)采用Ox00 。
(2) 接收地址: 接收地址既包括從機發(fā)送請求信息中的接收地址, 也包括主機發(fā)送應答信息中的接收地址。在醫(yī)院的病房樓中, 很可能存在多套同規(guī)格的射頻無線病房呼叫系統(tǒng)同時工作。這樣就必須給每一個主機編上代碼, 才能使主機確認接收的信息是否是發(fā)送給自己的, 這個主機編號同時也就作為了從機發(fā)送請求信息時的接收地址。而每個主機下的從機也會有一個對應的編號, 這個編號在本設計中就采用病房號, 也就是主機發(fā)送應答信息時的接收地址。
(3) 發(fā)送地址: 發(fā)送地址既存在于從機發(fā)送的請求信息中也存在于主機回復的應答信息中。從機請求信息中的發(fā)送地址是提供給主機用于顯示的病房號, 也是在主機發(fā)送應答信息時的接收地址。通過應答信息中的接收地址, 從機可以判斷出該接收到的信息是否是發(fā)給自己的。如果不是, 從機將重新發(fā)送一遍請求信息, 否則將繼續(xù)接收確認信息。同理, 主機也可以根據(jù)請求信息中的發(fā)送地址確認發(fā)送信息的是否是自己轄區(qū)內(nèi)的從機, 如果不是將不予以接收顯示。
(4) 確認指令: 確認指令用于主機通告從機信息發(fā)送是否正確。在本設計中,采用OxFF 作為信息發(fā)送正確的指令,而采用OxEE 作為信息發(fā)送錯誤的指令。事實上,在本設計的軟件設計中,為了確保信息的準確發(fā)送,只要確認信息不是OxFF,則從機就會自動地重新發(fā)送信息。
(5) 校驗字: 校驗方法包括奇偶校驗、CRC 校驗等, 但是本設計中采用一種相加校驗的方法。這種方法的具體實現(xiàn)是: 發(fā)送機把除了引導字以外的數(shù)字幀信息相加作為校驗字發(fā)送給接收機, 接收機在接收信息時也把除了引導字和校驗字以外的數(shù)字幀信息相加并把相加結果與校驗字比較看是否相等, 若相等則說明發(fā)送成功, 否則說明發(fā)送失敗。
4 系統(tǒng)混合信號PCB 板設計
系統(tǒng)印制電路板(PCB) 設計對于獲得優(yōu)良的RF 性能是至關重要的, 本系統(tǒng)PCB 使用雙面板, 分為元件面和底面, 具體設計時充分注意了以下兩點:
(1) 保證系統(tǒng)充分接地。在底面設計一個連續(xù)的接地面, 元件面的接地面保證元件充分接地, 大量的通孔鏈
接元件面的接地面和底面的接地面。
(2) 零件的布局要盡量合理, 模擬電源和數(shù)字電源要分離以避免互相干擾。射頻電路的電源使用高性能的射頻電容去耦, 去耦電容盡可能靠近nRF401 的VDD 端。一般還在較大容量的表面貼裝電容旁并聯(lián)一個小數(shù)值的電容。nRF401 的電源必需經(jīng)過很好的濾波, 并且與數(shù)字電路供電分離。
評論