?? 醫(yī)院按鍵發(fā)射軟件編寫設(shè)想.txt
字號:
為了使3758-108A的使用者多,考慮把數(shù)據(jù)信息(DATA)分兩組發(fā)送。每一組連續(xù)發(fā)送10次。接收方根據(jù)RX的狀態(tài),接收從D1-D8接收數(shù)據(jù)。當(dāng)?shù)谝淮螐腞X接收到0,讀出第一組數(shù)據(jù)。當(dāng)?shù)?次RX接收到0,把數(shù)據(jù)和上一組數(shù)據(jù)比較,如果相同就放棄,如果不相同,則認(rèn)為使第2組數(shù)據(jù)。這樣有16BIT的數(shù)據(jù)位。4BIT用來表示按鍵值,還有12BIT(4096)表示呼叫者自身編號。
+++++++++++++++10BIT ADDRESS、8BIT DATA++++++++++++++++++
發(fā)送方 (HOSPITAL)流程:
1、主程序上電、初始化,判斷是否發(fā)送完的標(biāo)志位,然后進(jìn)入掉電模式。
2、按鍵中斷喚醒,檢測是哪個按鍵,判斷是否持續(xù)時間足夠長,取相應(yīng)的按鍵值,從93C46里取出地址,放到發(fā)送的BUFFER里.
3、放好之后,發(fā)送BUFFER里的數(shù)據(jù)。發(fā)送完成之后,轉(zhuǎn)入休眠模式
4、
接收方(HOSPITAL2) 流程:
分散接收,很多的接收點(diǎn),每個接收點(diǎn),都使用一個單片機(jī)管理3個3758,然后通過單片機(jī)接收處理傳送到中中心主機(jī)。中心主機(jī)通過輪訊來接收。
1、接收方把RX接到外部中斷,下降沿啟動。啟動之后接收數(shù)據(jù)。
2、第一次接收數(shù)據(jù)存儲,第2次中斷接收數(shù)據(jù),和上次的數(shù)據(jù)比較,如果相同,放棄。如果不同,則認(rèn)為第2組數(shù)據(jù)。接收到第2組數(shù)據(jù)之后,立即清除數(shù)據(jù)BUFFER,推出外部中斷。等待下一次按鍵,或其他用戶的按鍵。
3、把接收的數(shù)據(jù)通過485接口傳到中央控制電腦或者發(fā)送主機(jī)。再主程序,或另外一個中斷完成!
重點(diǎn):
*考慮發(fā)射一次,用時間0.5秒,如果在這期間有其他用戶發(fā)射,兩個用戶對同一個接收機(jī),會導(dǎo)致錯誤。
*如果用戶短時間內(nèi),連續(xù)按動一個按鍵很多次,或按下不動,接收方會數(shù)據(jù)太多。考慮在接收方,計(jì)時在短時間內(nèi)(10秒)之內(nèi)所有相同的信號,當(dāng)成一次按鍵處理。
*考慮到如果第2組數(shù)據(jù)引起第2次中斷,通過計(jì)時來分別!2組數(shù)據(jù),每組10次。一共耗時420MS。可以在第一次中斷時,啟動一個計(jì)時。檢驗(yàn)第2個中斷,和第3個中斷(如果有的話)是否在400MS之內(nèi)。如果在,則認(rèn)為第2、3個數(shù)據(jù)是正確的。如果超時,則認(rèn)為發(fā)生沖突。放棄第2個數(shù)據(jù)。同時每一組數(shù)據(jù)設(shè)置一個標(biāo)志位,0:第一個數(shù)據(jù);1:第2個數(shù)據(jù)。這樣,第1個數(shù)據(jù)只有7個BIT有效,仍然有128個用戶。把第5個數(shù)據(jù)里的3BIT當(dāng)高位。第一次中斷,如果檢測到標(biāo)志位是第2個數(shù)據(jù),就不接收!
*********************************************************
使用普通51做從控制器,主要管理2路電話;或者是接收從485過來的數(shù)據(jù)。
使用一個大的IC做中心控制器,主要完成輪詢從控制器,接收從從控制器的數(shù)據(jù),排隊(duì)。通過232到電腦。同時轉(zhuǎn)換成POCSAG。發(fā)送到天線。。
所有的從控制器通過相同的2條數(shù)據(jù)線,傳進(jìn)主IC。當(dāng)從控制器數(shù)據(jù)準(zhǔn)備好,通過一條線向主IC發(fā)出申請。當(dāng)主IC 有空處理時,會通過另外一條線傳回應(yīng)答。從控制器此時發(fā)送。
*********************系統(tǒng)加密的方法******************
通過電話撥通尋呼主機(jī),通過*9*(要改變),在93C46里,寫2個BYTE(2BYTE相加為020h)。可以在程序發(fā)送之前,從93C46里讀取這兩個BYTE,檢驗(yàn)是否,才決定是否發(fā)射。。通過電話改變設(shè)置,使摘機(jī)、播放提示音、轉(zhuǎn)換成POCSAG碼,都可以進(jìn)行,就使不能發(fā)射就可以了!
*******************程序說明***************************
1、 現(xiàn)在的HOSPITAL是把READ-93C46去掉了,實(shí)驗(yàn)按鍵中斷
2、slavetel:接收電話的從控制器
slave485:接收485的從控制器
master:主控CPU
hospital:按鍵發(fā)射程序
hospital2:接收按鍵的程序,通過4358解碼之后,通過485傳給slave485
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -