📄 医院按键发射软件编写设想.txt
字号:
为了使3758-108A的使用者多,考虑把数据信息(DATA)分两组发送。每一组连续发送10次。接收方根据RX的状态,接收从D1-D8接收数据。当第一次从RX接收到0,读出第一组数据。当第2次RX接收到0,把数据和上一组数据比较,如果相同就放弃,如果不相同,则认为使第2组数据。这样有16BIT的数据位。4BIT用来表示按键值,还有12BIT(4096)表示呼叫者自身编号。
+++++++++++++++10BIT ADDRESS、8BIT DATA++++++++++++++++++
发送方 (HOSPITAL)流程:
1、主程序上电、初始化,判断是否发送完的标志位,然后进入掉电模式。
2、按键中断唤醒,检测是哪个按键,判断是否持续时间足够长,取相应的按键值,从93C46里取出地址,放到发送的BUFFER里.
3、放好之后,发送BUFFER里的数据。发送完成之后,转入休眠模式
4、
接收方(HOSPITAL2) 流程:
分散接收,很多的接收点,每个接收点,都使用一个单片机管理3个3758,然后通过单片机接收处理传送到中中心主机。中心主机通过轮讯来接收。
1、接收方把RX接到外部中断,下降沿启动。启动之后接收数据。
2、第一次接收数据存储,第2次中断接收数据,和上次的数据比较,如果相同,放弃。如果不同,则认为第2组数据。接收到第2组数据之后,立即清除数据BUFFER,推出外部中断。等待下一次按键,或其他用户的按键。
3、把接收的数据通过485接口传到中央控制电脑或者发送主机。再主程序,或另外一个中断完成!
重点:
*考虑发射一次,用时间0.5秒,如果在这期间有其他用户发射,两个用户对同一个接收机,会导致错误。
*如果用户短时间内,连续按动一个按键很多次,或按下不动,接收方会数据太多。考虑在接收方,计时在短时间内(10秒)之内所有相同的信号,当成一次按键处理。
*考虑到如果第2组数据引起第2次中断,通过计时来分别!2组数据,每组10次。一共耗时420MS。可以在第一次中断时,启动一个计时。检验第2个中断,和第3个中断(如果有的话)是否在400MS之内。如果在,则认为第2、3个数据是正确的。如果超时,则认为发生冲突。放弃第2个数据。同时每一组数据设置一个标志位,0:第一个数据;1:第2个数据。这样,第1个数据只有7个BIT有效,仍然有128个用户。把第5个数据里的3BIT当高位。第一次中断,如果检测到标志位是第2个数据,就不接收!
*********************************************************
使用普通51做从控制器,主要管理2路电话;或者是接收从485过来的数据。
使用一个大的IC做中心控制器,主要完成轮询从控制器,接收从从控制器的数据,排队。通过232到电脑。同时转换成POCSAG。发送到天线。。
所有的从控制器通过相同的2条数据线,传进主IC。当从控制器数据准备好,通过一条线向主IC发出申请。当主IC 有空处理时,会通过另外一条线传回应答。从控制器此时发送。
*********************系统加密的方法******************
通过电话拨通寻呼主机,通过*9*(要改变),在93C46里,写2个BYTE(2BYTE相加为020h)。可以在程序发送之前,从93C46里读取这两个BYTE,检验是否,才决定是否发射。。通过电话改变设置,使摘机、播放提示音、转换成POCSAG码,都可以进行,就使不能发射就可以了!
*******************程序说明***************************
1、 现在的HOSPITAL是把READ-93C46去掉了,实验按键中断
2、slavetel:接收电话的从控制器
slave485:接收485的从控制器
master:主控CPU
hospital:按键发射程序
hospital2:接收按键的程序,通过4358解码之后,通过485传给slave485
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -