短消息电话中数据链路层的控制技术( 三 )


基本的电话通话功能和按键拨号功能是一部电话必须具备的功能,主要由电路硬件完成 。链路层主要控制液晶显示与之相配合的操作界面 。当用电话拨号时,屏幕弱出电话拨号界面,有按键按下时控制发送和相应的DTMF音,同时在屏幕上显示按下的按键值 。在电话处于通话状态时,屏幕显示相应的界面,提示用户通话时间及拨入或拨出电话的号码等信息 。
3; 数据链路层中的控制技术
3.1数据链路层的数据控制技术
数据链路层的数据分为上行和下行数据,本系统中将其分开处理,上行数据在主函数中循环调用处理,而下行数据在中断中处理 。
上行数据包处理流程图如图3所法 。对数据的处理是在主函数中,因此可有适当的等待和延迟,但必须在协议规定的时间内完成对数据包的处理,它对时间的要求不如中断对时间要求那么苛刻 。因为上传数据包的过程是终端主动上载数据信息,链路层对数据包的多少十分清楚,而且在服务器接收到数据包后,肯定应答数据说明数据包传输是否正确,而服务器应答数据包是下行数据在中断中处理 。因此,在上传一个数据包后可以等待服务器的应答信号,以确定是否要重发当前数据包 。整个处理过程主要应当处理好与中断服务程序的配合,以及用户界面的操作,控制相对比较简单 。
下行数据包处理流程如图4所示,处理过程比较复杂 。由于服务器随时都有呼叫终端的可能性,使得下行数据传输具有随机性 。因此这种情况最适于在中断中进行处理 。中断处理又有其自身的特点,如中断函数不能进行参数传递并且没有返回值;中断函数中调用其他函数时,被调用函数所使用的寄存器组必须与中断函数相同等 。这就决定了中断函数中的处理技术与主函数中的处理技术相比受到了很大的限制 。中断函数首先对链路层各个状态下的超时定时器进行处理,当有定时器超时时,根据协议规定进行相应的超时处理,通常的处理是控制终端挂机;数据包处理过程中,与物理层建立循环队列缓冲区,每10毫秒中断时从缓冲区中取数据,假如缓冲区中有数据则连续地取出数据直到队列中的数据取完,而当循环队列缓冲区没有数据时,则直接退出中断,等待下次中断再进行取数据处理;按协议规定方式从物理层中取出完整数据包后,通过校验和对数据包进行校验,假如数据包传输不正确,则向服务器应答“D0”,请求服务器重发,当数据包传输正确时,则向服务器应答“D1”,发完应答数据后将终端置于接收数据状态并启动重发超时定时器 。中断处理数据过程中,要与主函数进行配合在液晶屏上显示用户提示信息 。另外在中断函数中最好不进行液晶以及FLASH存储器的操作,因类轻易导致函数的双重调用,这是由中断处理的自身特点决定的 。

;3.2数据链路层的电话功能控制技术
短消息电话中数据链路层的控制技术包括对各种电话功能的控制,例如按键、摘机、挂机、重拨、免提等电话功能的软件功能都在链路层实现 。由于电话功能的控制不是本文的论述重点,在此仅以摘机拨打电话过程为例 。在挂机状态下,当链路层检测到摘机信号时,链路层控制液晶显示拨出电话界面,然后在中断中检测按键并将按键值以DTMF信号发送到交换机,同时界面显示用户按下的按键值 。而话音信号处理主要由物理电路和交换机来完成,当检测到挂机信号时,链路层控制终端进行软件挂机,对使用时的变量进行初始化,回到挂机状态,完成了电话的拨号、通话和挂机的过程 。其它的电话功能主要根据实际操作中的需要进行相应的处理,包括链路层中对FLASH存储器的操作这些过程,主要注重与其他程序模块的配合以及符合实际处理的需求 。

推荐阅读