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