基于EP7312的新一代公用信息终端的设计
时间:11-15
来源:互联网
点击:
1 信息终端的总体设计
信息终端属于公用电话领域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用标准的嵌入式系统设计。
信息终端的处理器选用SoC嵌入式处理器 ARM7系列中的EP7312。处理器采用ARM7TDMI的处理器内核,有8k字节高速缓冲存储器(CACHE),支持MMU,带64路TLB(translation look-aside buffer);写缓冲器。超低功耗(典型值)74MHz工作状态时为90mW, 18MHz工作状态时为30mW,空闲状态时为10mW(CPU时钟停止,其余工作),挂起状态时

主板由嵌入式处理器(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协议栈的移植,应用程序的设计等。系统软件结构如图2。
3.1 启动代码的设计
启动代码在信息终端的设计中是很重要的一环,它是EP7312处理器在冷启动后首先执行的一段代码,用ARM汇编指令编写。在这一段程序中要执行一些必须的初始化任务 ,例如中断向量表的初始化、SDRAM控制器初始化、存储器管理单元(MMU)初始化等等。
设置入口指针:启动程序首先必须定义入口指针,而且整个应用程序只有一个入口指针。
设置中断向量表:ARM7要求中断向量表必须设置在从0地址开始,连续8×4字节的空间,分别是复位、未定义指令错误、软件中断、预取指令错误、数据存取错误、IRQ、FIQ和一个保留的中断向量。
初始化堆栈和CPU寄存器:系统堆栈初始化取决于用户使用的中断,以及系统需要处理的错误类型。还需要设置CPU相关的寄存器,以确定系统使用的SDRAM和其它外设芯片的刷新频率,数据总线宽度等信息。
初始化存储器系统:系统集成有MMU来管理内存空间。
改变处理器模式、状态:本系统让处理器一直处于超级用户模式。
初始化C语言所需的存储器空间:在初始化期间应将系统需要读写的数据和变量从
FLASH拷贝到SDRAM里。并要对一些全局的数据进行初始化,如BSS数据段。
跳转到C程序入口:启动代码跳到C程序的入口,开始一段NUCLEUS操作系统的初始化和应用程序初始化的代码。
启动代码的流程框图如图3。
3.2 ISDN协议栈的移植
信息终端通过ISDN网接入INTERNET,因此必须在操作系统之上移植ISDN协议栈。本文采用的ISDN用户-网络接口协议栈和X.25协议栈是来自 ISDN-BRICKS的商用软件包,它满足ITU-T的I.430、Q.921、Q.931、X.25和X.31以及相应的中国标准[1~5]。
ISDN和X25协议栈软件包是一个按照相关标准编写的通用软件包。该软件包按多进程/多任务操作系统环境设计,支持不同的实现环境,如操作系统、CPU和编译系统等。一个多进程/多任务操作系统环境一般必须具有以下功能:进程/任务调度、进程/任务之间的通信、共享资源的互斥访问、内存管理以及定时管理。但是,即使同是多任务操作系统,也还存在着实现机制和函数调用句法的不同。NUCLEUS虽是一个能提供上述功能的实时操作系统,但通用的ISDN和X25协议栈软件包必须经过移植,才能在NUCLEUS操作系统下运行。因此,ISDN和X25协议栈软件包的移植工作必须在以下几个方面进行:
(1)将创建SERVER移植为创建NUCLEUS的任务;
共享资源,如消息块、数据缓冲区块、定时管理单元数据块以及动态分配内存块;
(3)将对通用邮箱的收发操作移植为对 NUCLEUS的消息队列的收发操作;
(4)将对共享资源的锁定管理移植为对 NUCLEUS的信号灯的管理;
(5)将定时管理模块移植为NUCLEUS的定时超时函数;
(6)将通用的禁中断操作移植为NUCLEUS的禁中断操作。
3.3 应用程序设计要点
应用程序包括主控模块,广告模块,维护模块,语音模块,输入法,浏览器等。
在设计过程中要注意以下几点:
注意内存释放:内存申请一定要释放,特别是程序在对错误进行处理的时候。
特定地址保护:嵌入式操作系统并不像WINDOWS操作系统那样对一些重要的地址都作了保护。因此在写应用程序时要特别注意指针的运用,不能让非法指针出现。
注意多任务的环境:因为在嵌入式系统中每个模块都有自己的任务,当前任务的运行不能影响其它模块。
信息终端属于公用电话领域,在功耗,接入方式,操作方便性等方面都有特殊要求,因此采用标准的嵌入式系统设计。
信息终端的处理器选用SoC嵌入式处理器 ARM7系列中的EP7312。处理器采用ARM7TDMI的处理器内核,有8k字节高速缓冲存储器(CACHE),支持MMU,带64路TLB(translation look-aside buffer);写缓冲器。超低功耗(典型值)74MHz工作状态时为90mW, 18MHz工作状态时为30mW,空闲状态时为10mW(CPU时钟停止,其余工作),挂起状态时

主板由嵌入式处理器(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协议栈的移植,应用程序的设计等。系统软件结构如图2。
![]() |
3.1 启动代码的设计
启动代码在信息终端的设计中是很重要的一环,它是EP7312处理器在冷启动后首先执行的一段代码,用ARM汇编指令编写。在这一段程序中要执行一些必须的初始化任务 ,例如中断向量表的初始化、SDRAM控制器初始化、存储器管理单元(MMU)初始化等等。
设置入口指针:启动程序首先必须定义入口指针,而且整个应用程序只有一个入口指针。
设置中断向量表:ARM7要求中断向量表必须设置在从0地址开始,连续8×4字节的空间,分别是复位、未定义指令错误、软件中断、预取指令错误、数据存取错误、IRQ、FIQ和一个保留的中断向量。
初始化堆栈和CPU寄存器:系统堆栈初始化取决于用户使用的中断,以及系统需要处理的错误类型。还需要设置CPU相关的寄存器,以确定系统使用的SDRAM和其它外设芯片的刷新频率,数据总线宽度等信息。
初始化存储器系统:系统集成有MMU来管理内存空间。
改变处理器模式、状态:本系统让处理器一直处于超级用户模式。
初始化C语言所需的存储器空间:在初始化期间应将系统需要读写的数据和变量从
FLASH拷贝到SDRAM里。并要对一些全局的数据进行初始化,如BSS数据段。
跳转到C程序入口:启动代码跳到C程序的入口,开始一段NUCLEUS操作系统的初始化和应用程序初始化的代码。
启动代码的流程框图如图3。
![]() |
3.2 ISDN协议栈的移植
信息终端通过ISDN网接入INTERNET,因此必须在操作系统之上移植ISDN协议栈。本文采用的ISDN用户-网络接口协议栈和X.25协议栈是来自 ISDN-BRICKS的商用软件包,它满足ITU-T的I.430、Q.921、Q.931、X.25和X.31以及相应的中国标准[1~5]。
ISDN和X25协议栈软件包是一个按照相关标准编写的通用软件包。该软件包按多进程/多任务操作系统环境设计,支持不同的实现环境,如操作系统、CPU和编译系统等。一个多进程/多任务操作系统环境一般必须具有以下功能:进程/任务调度、进程/任务之间的通信、共享资源的互斥访问、内存管理以及定时管理。但是,即使同是多任务操作系统,也还存在着实现机制和函数调用句法的不同。NUCLEUS虽是一个能提供上述功能的实时操作系统,但通用的ISDN和X25协议栈软件包必须经过移植,才能在NUCLEUS操作系统下运行。因此,ISDN和X25协议栈软件包的移植工作必须在以下几个方面进行:
(1)将创建SERVER移植为创建NUCLEUS的任务;
共享资源,如消息块、数据缓冲区块、定时管理单元数据块以及动态分配内存块;
(3)将对通用邮箱的收发操作移植为对 NUCLEUS的消息队列的收发操作;
(4)将对共享资源的锁定管理移植为对 NUCLEUS的信号灯的管理;
(5)将定时管理模块移植为NUCLEUS的定时超时函数;
(6)将通用的禁中断操作移植为NUCLEUS的禁中断操作。
3.3 应用程序设计要点
应用程序包括主控模块,广告模块,维护模块,语音模块,输入法,浏览器等。
在设计过程中要注意以下几点:
注意内存释放:内存申请一定要释放,特别是程序在对错误进行处理的时候。
特定地址保护:嵌入式操作系统并不像WINDOWS操作系统那样对一些重要的地址都作了保护。因此在写应用程序时要特别注意指针的运用,不能让非法指针出现。
注意多任务的环境:因为在嵌入式系统中每个模块都有自己的任务,当前任务的运行不能影响其它模块。
嵌入式 SoC ARM 总线 二极管 电阻 C语言 相关文章:
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 多核及虚拟化技术在工业和安全领域的应用(05-23)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 基于nRF2401智能无线火灾监控系统设计(04-01)
- 智能视频多媒体技术的应用(05-31)


