基于80C31的短信息终端电话开发
现在,短信息服务日益普及。各个电话机厂家竞相设计和开发短信息终端电话。为配合我所开发的短信息终端专用集成芯片,我们设计开发出了可发送和接受短信息的固定电话。此电话除具有来电显示功能外,还能够接收信息中心下传的FSK格式短信,可以利用DTMF和FSK两种格式上传信息。有比较好的人机界面,能够采用拼音输入方法编辑短信内容。能够存储200个电话,200个下载的短信,实现电话号码的查找,下载短信的阅读,时钟显示等功能。下面先从硬件方面介绍系统的设计。
1 硬件部分
图1 系统硬件原理框图
图2 CAS检测原理电路
系统硬件原理框图见图1,下面说明各部分的功能。
1.1 CPU控制部分
系统中采用80C31作为主控CPU,负责整个系统的程序流程,外扩了32K RAM,64K EPROM,和一片ATMEL公司的AT29C040A作为电话薄、短信息和二级字库字模的存储器。
1.2 CAS检测电路
CAS检测原理电路如图2所示。在短信电话中,CAS信号的检测是必不可少的,但以前的普通电话及来电显示电话都不具有此项功能,市场上具有CAS音检测功能的芯片也比较少见,因此,我们设计了一种CAS音检测电路,在实际应用中,效果不错(见图3)。 CAS为DTMF信号,频率为2130/2750Hz,所以采用两个单独的滤波器,如果为CAS,则A,B点输出均为高电平,产生CAS中断。图中SIGNAL为DTMF信号,CAS_CON为CAS音检测控制电路,当CAS_CON=1时,检测CAS音;CAS_CON=0时,不检测CAS音。当检测到CAS,CASINT输出高电平。
1.3 EPLD集成控制电路
外部控制电路部分采用ALTERA公司的EPM7128QC160,将设计中所用到的74系列和4000系列芯片全部集成在里面,并且它有160个PIN,能够满足系统中输入输出信号对管脚的需求。大大缩小了PCB面积,在调试时非常方便,且提高了系统整体的可靠性。
其它部分因为都有现成的芯片或成熟的电路,这里不再说明。
图3 CAS检测实际电路
图4 LCD显示模块流程图
2 软件部分
软件采用模块化设计,每一模块都可单独设计和调试。主要有键盘处理模块、系统状态转换模块、电话处理模块(包括FSK短信的处理与发送)、LCD显示模块、中断处理模块(CAS,FSK,振铃,摘挂机的检测和FSK短信息接收)。除中断处理模块外,其它的四个模块在主程序中循环调用。
2.1 键盘处理模块
电话与CPU利用同一按键进行工作,由CPU通过模拟开关控制按键的传递方向。在正常打电话或摘机时,键值传递给电话中的拨号芯片;挂机时则传递给CPU处理。CPU不停的监测是否有键被按下,当有键按下时,设置系统状态转换标志为1,否则为0。为了使用方便,比普通电话增加了四个按键:取消键(key_C),主菜单键(key_M),选中键(key_OK),输入方法切换键(key_CH)。
2.2 系统状态转换模块
这是整个系统的核心控制部分。它根据按键及系统所处的不同状态,进行状态间的切换和状态内键值的处理。当系统状态转换标志为1时,进入此模块。根据键值的不同,进行相应的处理。系统主要设定的状态有: 初始状态(S_init),主菜单状态(S_mainmenu),电话薄状态(S_menu1),短信息状态(S_menu2),系统设置状态(S_menu3),添加电话号码状态(S_addphone_1),添加电话姓名状态(S_addphone_2),添加电话存储位置状态(S_addphone_3),查找电话状态(S_lookphone),短信编辑状态(S_edit_sm),发送短信状态(S_send_sm),阅读短信状态(S_read_sm)等。
2.3 LCD显示模块
这一部分是依据系统所处的状态进行显示。主要有菜单的显示,所编辑汉字与字符的显示,下载的短信的显示,显示有短信和来电显示电话等部分。显示中,最难于处理的是短信的汉字与ASCII码一起显示,因为汉字是全角显示,ASCII码则为半角显示,否则显示效果不好,并且还要涉及翻页中显示的起始位置。在开发中采用的程序流程如图4所示。
2,4 电话处理模块
在这一部分中,负责处理短信息电话,来电显示电话,及普通的电话。当有振铃到来时,进入电话处理程序。接受交换中心发送的FSK信号,并根据信号的内容,决定是短信息,还是来电显示电话。对于短信息,则发送应答信息,转入短信息的处理模块;当是来电显示(CALLER ID)电话,则将在LCD上显示电话号码。如果没有收到FSK信息,则判定为普通的电话。(系统暂时不考虑来电显示电话中下行DTMF格式)。图5是其程序流程图。 中断处理程序(CAS,FSK,振铃,摘挂机) 在中断处理程序中,主要是处理FSK信号的接收、CAS信号,振铃和摘挂机检测,并使相应的标志位置1,以便于主程序处理。其中,FSK信号的接受先是采用查询的方法同步FSK信息,在同步之后是利用51单片机的串口接收。
图5 电话处理程序图 结语
- 利用80C31单片机串行口实现多个LED显示的一种简单方法(03-14)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)