公用电话本身具有分布广泛的特性,可以成为接入互联网并提供服务信息的良好载体。而传统的公用电话只能提供语音服务,对接入互联网和提供信息服务则无能为力。
本文设计了一种符合公用电话发展方向的信息终端。它不仅提供了传统公用电话的所有功能,而且借助isdn数字网的优势提供了internet的接入服务。人们可以享受比pc接入公用互联网更方便的各项功能,可以利用信息终端浏览网页。信息终端还提供了smtp和pop3的功能,凭借中文输入法和t9英文输入法可以很方便的收发电子邮件。电信运营商可以方便通过信息终端提供各种收费信息服务,这其中也包括广告商发布的各种广告。
信息终端的接入方式如下图1:
图1:信息终端的接入方式
1 信息终端的总体设计
信息终端属于公用电话领域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用标准的嵌入式系统设计。
信息终端的处理器选用soc嵌入式处理器arm7系列中的ep7312。处理器采用arm7tdmi的处理器内核,有8k字节高速缓冲存储器(cache),支持mmu,带64路tlb(translation look-aside buffer);写缓冲器。超低功耗(典型值)74mhz工作状态时为90mw,18mhz工作状态时为30mw,空闲状态时为10mw(cpu时钟停止,其余工作),挂起状态时<1 mw(实时时钟工作,其余停止工作)。
操作系统采用nucleus嵌入式操作系统。nucleus嵌入式操作系统提供源代码,用户能够深入地了解底层内核的运作方式,并可根据自己的特殊要求改动系统软件。它采用了先进的微内核 ( micro-kernel ) 技术,在优先级安排,任务调度,任务切换等各个方面都有相当大的优势,对防止优先级倒转等的方面都有一定的独到之处。而且,能够结合 paradigm,sds以及 ati自己的多任务调试器组成功能强大的集成开发环境。另外nucleus除提供功能强大的内核操作系统外,还提供种类丰富的功能模块。
信息终端利用isdn接入公用互联网,由于isdn交换机有远供的能力(可以提供1瓦的电力),接入终端不需要外接电源,接入方式简单。这对于一种公用电话的替代产品来说非常理想的。而且isdn网性能稳定,使用灵活,技术成熟。信息终端可以充分利用isdn的两个b通道可以给用户提供一种公用互联网接入方式,在这个平台基础上就可以开发出各种形式的增值服务。
2 信息终端的硬件设计
信息终端主要包括主板、电源板、读卡器板、电话键盘板、功能键盘板、液晶屏。
图2 信息终端总体设计图
信息终端硬件的核心是终端主板,它负责管理键盘扫描、外围状态监测等。lcd接口提供320×240分辨率的显示屏用以显示数据、图像,以及与用户交互信息。另外,由于信息终端属于公用电话系统,还需包含读卡器板、功能键盘板、门开及摘挂机检测等功能模块。
本系统充分利用isdn交换机的供电能力,电源板从isdn线路取电,经变换后向主板提供+5v和+3.3v电源。自带后备电池,保证在线路掉电时,能完成正在进行的操作和保存记录。
2.1 主板的原理框图
图3:主板原理框图
主板由嵌入式处理器(ep7312)、flash(intel公司的28f320c3)、sdram(w986416dh)、isdn参考模型中的u接口控制芯片(mc145576)、声音编解码芯片(mc145481)、isdn数据链路控制芯片(hfc-s+)等芯片组成。
ep7312通过总线对flash、sdram、hfc-s+进行控制。处理器通过对hfc-s+进行控制,实现isdn 通话及通信的功能。mc145576芯片主要完成isdn参考模型中的s/t接口和u接口之间转换。主板上集成8m的flash存贮空间,分为两个部分,其中3m作为程序空间,剩下存放和ms-dos4兼容的文件系统。hfc-s+支持b通道和d通道高级数据链路控制(hdlc),向外提供gci总线、 fifo控制等。mc145481 codec芯片是一个pcm编解码芯片,它实现声音的数字化和重组。
在ep7312的键盘扫描各口线上都加上双向过压保护二极管bav99及防短路的电阻,提高了防静电能力及防短路能力。主板时钟芯片采用philips的pcf8563芯片以防止停振。
3 信息终端的软件设计
本系统的软件主要分为启动代码,芯片驱动程序设计,操作系统和isdn协议栈的移植,应用程序的设计等。系统软件结构如图4:
图4:系统软件结构图
3.1 启动代码的设计
启动代码在信息终端的设计中是很重要的一环,它是ep7312处理器在冷启动后首先执行的一段代码,用arm汇编指令编写。在这一段程序中要执行一些必须的初始化任务 ,例如中断向量表的初始化、sdram控制器初始化、存储器管理单元(mmu)初始化等等。
设置入口指针:启动程序首先必须定义入口指针,而且整个应用程序只有一个入口指针。
设置中断向量表:arm7要求中断向量表必须设置在从0地址开始,连续8×4字节的
空间,分别是复位、未定义指令错误、软件中断、预取指令错误、数据存取错误、irq、fiq和一个保留的中断向量。
初始化堆栈和cpu寄存器:系统堆栈初始化取决于用户使用的中断,以及系统需要处理的错误类型。还需要设置cpu相关的寄存器,以确定系统使用的sdram和其它外设芯片的刷新频率,数据总线宽度等信息。
初始化存储器系统:系统集成有mmu来管理内存空间。
改变处理器模式、状态:本系统让处理器一直处于超级用户模式。
初始化c语言所需的存储器空间:在初始化期间应将系统需要读写的数据和变量从
flash拷贝到sdram里。并要对一些全局的数据进行初始化,如bss数据段。
跳转到c程序入口:启动代码跳到c程序的入口,开始一段nucleus操作系统的初始化和应用程序初始化的代码。
启动代码的流程框图如下图5:
图5:启动代码的流程图
3.2 isdn协议栈的移植
信息终端通过isdn网接入internet,因此必须在操作系统之上移植isdn协议栈。本文采用的isdn用户-网络接口协议栈和x.25协议栈是来自isdn-bricks的商用软件包[15-21],它满足itu-t的i.430、q.921、q.931、x.25和x.31以及相应的中国标准 [1-7]。
isdn和x25协议栈软件包是一个按照相关标准编写的通用软件包。该软件包按多进程/多任务操作系统环境设计,支持不同的实现环境,如操作系统、cpu 和编译系统等。一个多进程/多任务操作系统环境一般必须具有以下功能:进程/任务调度、进程/任务之间的通信、共享资源的互斥访问、内存管理以及定时管理。但是,即使同是多任务操作系统,也还存在着实现机制和函数调用句法的不同。nucleus虽是一个能提供上述功能的实时操作系统,但通用的isdn和 x25协议栈软件包必须经过移植,才能在nucleus操作系统下运行。
因此,isdn和x25协议栈软件包的移植工作必须在以下几个方面进行:
1)将创建server移植为创建nucleus的任务。
2)用nucleus的内存管理机制创建协议栈共享资源,如消息块、数据缓冲区块、定时管理单元数据块以及动态分配内存块。
3)将对通用邮箱的收发操作移植为对nucleus的消息队列的收发操
作。
4)将对共享资源的锁定管理移植为对nucleus的信号灯的管理。
5)将定时管理模块移植为nucleus的定时超时函数。
6)将通用的禁中断操作移植为nucleus的禁中断操作。
3.3 应用程序设计要点
应用程序包括主控模块,广告模块,维护模块,语音模块,输入法,浏览器等。
在设计过程中要注意以下几点:
注意内存释放:内存申请一定要释放,特别是程序在对错误进行处理的时候。
特定地址保护:嵌入式操作系统并不像windows操作系统那样对一些重要的地址都
作了保护。因此在写应用程序时要特别注意指针的运用,不能让非法指针出现。
注意多任务的环境:因为在嵌入式系统中每个模块都有自己的任务,当前任务的运行不能影响其它模块。
4 结束语
本文所介绍的信息终端在硬件上具有性能稳定,功耗极低,接入方式简便,使用方便的特点。在操作系统移植和驱动程序的开发上与硬件紧密结合,具有良好的入网兼容性,人机交互良好等特点。
永磁同步电机和感应异步电机特点和区别
白天电价竟然比夜间低?
什么是CBDC,世界各地政府为什么还要发行CBDC
老邢点评:工信部支持新材料产业发展 关注前沿新材料
PureStorage旗下Portworx连续获评存储领导者
基于EP7312的新型信息终端的设计
目标检测的后处理:NMS vs WBF
电脑存储空间告急怎么办?aigo移动固态硬盘S7 Pro帮你轻松应对
晶振在工作时,它的频率会偏离额定频率吗?
科大讯飞募集一只美元基金投资人工智能 充实其在国内的生态系统
智能魔镜是一款可以人镜互动的智能镜面显示屏
对于电池容量的过充和过放,它们的定义是怎样的
平板电脑市场日渐衰落,苹果试图依靠iPadPro拯救iPad
阿里云ET医疗大脑预测个体的发病概率准确率能达到83%
亚马逊搜索算法被用于传播疫苗虚假信息
“造假”Atlas之后,这个机器人打保龄球视频惊呆了网友
线性脉冲调频系统
纯电感电路中电压与电流的关系解析
java中的压缩文件是如何解压与压缩的
机器视觉常用接口介绍