摘要:介绍一种以AT89C52单片机为核心,采用Strata系列大容量闪速存储器作缓存的程控交换机呼叫信息缓冲系统。该系统实现了多任务方式下的串行数据接收、缓存和读出,其软串口用于信息的实时接收和波特率的自动识别,数据读出速度达460kbps,并设计了规范的命令集。
关键词:呼叫信息 缓冲 实时 多任务 闪速存储器
程控交换机生成的电话呼叫信息一般通过其标准的串行接口输出,电话计费系统软件可以用计算机直接从交换机接收呼叫信息。但呼叫信息的输出是随机的,取决于交换机支持的网上分机电话的使用状态。为防止信息丢失,计算机系统必须保持全天二十四小时连续工作。程控交换机话单自动存储器的设计与应用,一定程序上提高了计费工作的灵活性,降低了系统的运行成本[1]。但早期系统或是不具备多任务工作特性,使用不便;或是采用静戊RAM作缓存,导致数据存储可靠性不高,系统功耗较大;而且系统功能设计较低且不规范,灵活性较差。
本文以AT89C52单片机为核心,采用Intel Strata系列闪速存储器作缓存,设计开发的新一代程控交换机呼叫信息缓冲系统,用于串行数据的接收、缓存和读出,具有多任务工作特性,而且实时性好,读出速度快,数据存储可靠性高,使用灵活方便。
1 系统的基本性能要求
(1)实时缓冲能力
在缓存空间允许和系统供电正常的条件下,保证呼叫信息的实时接收和缓存。设计采用软串口接收数据,波特率为300×2 n bps(其中n=0~6),并实现对交换机输出波特率的自动识别与跟踪。
(2)大容量缓存、配置灵活
支持缓存空间高达16MB,并可在1~16MB之间进行剪裁配置。支持空闲缓存容量的动态查询和声光报警功能,使缓存信息能被及时读出。
定义并支持一组规范的命令,实现呼叫信息的读出和提供用户对系统的维护。设计相应的协议,以规范命令及其响应信息的功能和特征。
(4)具备多任务特性
系统可以在接收和响应用户命令的同时,实现呼叫信息的实时接收和缓存。即系统在交换机与用户机之间的工作,包括交换机呼叫信息的接收与缓存、用户命令信息的接收与响应,宏观上具有多任务特性。支持呼叫信息读出口波特率在9.6~460kbps之间可选。支持直接或Modem连接,实现呼叫信息的本地或远程读出。
2 系统硬件设计
图1所示为交换机呼叫信息缓存系统的硬件结构框图。其主要构成包括:
表1 AT89C52硬件资源分配方案
资 源 | 功能分配 |
P0、P2 | 扩展外部存储器和接口电路 |
P2.5~P2.7 | 被译码提供外扩芯片的片选 |
P1.0~P1.4 | X25045、TLC0838C的I/O及时钟 |
P1.5~P1.5 | Buffer,Power LED控制 |
P1.7、P3.5 | 软串口CTS,RTS |
P3.5 | 软串口TXD |
P3.3(INT1) | TL16C550中断信号 |
P3.2(INT0) | 软串口RXD,Data LED控制 |
P3.0、P3.1 | 蜂鸣器、Strata缓存控制 |
P3.6、P3.7 | 外扩存储器、接口的读写信号 |
定时器T0 | 定时产蜂鸣器控制波形 |
定时器T1 | 电池管理,LED控制定时 |
定时器T2 | 用于软串口工作定时中断 |
(1)用Atmel公司微控制器AT89C52为核心,时钟频率为18.432MHz;AT89C52硬件资源分配方案如表1。
(2)采用Intel公司新近推出的Strata系列闪速存储器28F320J5和28F640J5构成缓冲存储器阵列,硬件支持4MB、8MB、12MB或16MB缓存空间配置,采用无跳线设计。
(3)扩展UART接口芯片TL16C550,采用Maxim公司的MAX3225完成CMOS与RS232C电平转换,用于与计算机或Modem接口。此设计方案的特点是:串口收发各有16字节的硬件FIFO,速度高达460kbps;接口抗静电能力为15kV。
(4)利用AT89C52的口线构成软件串行接口。采用电流环I/O驱动电路和相应的电平转换电路与交换机串口连接,支持通信距离可达1km。
(5)后备电池管理及DC-DC变换电路。串行输出A/D变换器TLC0838C主要用于外部电源及电池电压及容量的监测,而并行输出口74HC374芯片则用于电池充电控制及MAX3225、电流环电路的开关控制。
(6)单片串机EEPROM X25045用于系统参数的配置与保存、低电源电压监视、可编程硬件看门狗电路。
(7)闪速存储器AT29C256用于微控制外执行系统软件。用户还可以利用AT89C52内部程序存储器中的重裁模块和AT29C256,实施系统软件的在线升级。
3 系统软件设计
3.1 主流程
图2为包括初始化和主循环的系统软件主体流程。其中,初始化程序完成系统主缓存容量及其读写断点的检测,包括实现对28F320J5与28F640J5混合配置及无跳线硬件设计的支持;从串行EEPROM中读取系统配置参数,设置各种报警门限值、初始化软串口和TL16C550硬串口波特率等;单片机和TL16C550接口硬件的初始化编程。主循环中,后备电池管理主要包括电池工作模式及其工作时间、电池可维持系统工作时间及电池容量信息的管理、电池充放电控制等;LED及蜂鸣器控制提供诸如空闲缓存容量低于门限、直接或Modem连接、电池供电、软串口连接故障等状态的指示或声光报警,T1定时中断服务为其提供基准定时,而T0则用于产生约2.4kHz的“蜂鸣器”驱动波形。
表2为系统支持的命令集(共37个命令)中最基本的一部分。其中“NAK”和“ACK+检查和”用于呼叫信息读出协议。系统收到“NAK”或错误“检查和”时,发送“NAK+话单”信息包(一条话音为一次电话呼叫产生的以CR或CR/LF结束的呼叫信息串)、收到正确“检查和”时,发送“ACK+话单”信息包;无话单可读出时发送响应信息“!DISCONNECT”。此外,协议规定一般命令以问号开头,响应信息以感叹号开头。
表2 系统支持的主要命令及含义
命 令 | 含 义 |
NAK | 请求系统发信息包 |
ACK+检查和 | 响应接收的信息包 |
? BA | 起动波特率自动识别功能 |
? BATT | 查询电池状态信息 |
? BC | 查询波特率调整次数 |
? BD | 查询软串口当前波特率 |
? BF | 固定或切换软串口波特率 |
? INIMEM | 清系统的主缓存空间 |
? LOGOFF | 系统进入保护模式 |
? MD | 查询系统缓存的全部话单 |
? MF | 查询系统主存空闲容量(KB) |
? MONITOR | 设置/取消系统监视接收功能 |
? MT | 查询系统主缓存总容量(KB) |
? NPSWD | 修改系统口令 |
? RELOAD | 请求重载系统软件 |
3.2 信息缓存
交换机呼叫信息的接收及缓冲存储,是嵌入在各功能模块中完成的,如图3所示。针对Strata闪速存储器的编程特点,在AT89C52内部RAM区开辟二个大小为16字节的编程缓冲区。软串口接收到的串行数据经动态压缩之后依次循环填入缓冲区,一旦填满一个缓冲区,即通知系统实施缓冲编程。各功能模块在执行过程中及时主动检测相应的通知标志,确保呼叫信息的实时缓存。
3.3 软串口的实现
以AT89C52的INT0引脚为RXD,结合INT0边沿中断和T2定时中断服务程序的设计,以软件方式控制串行呼叫信息的采样接收。同时通过监测记录串行帧起始位及LSB的特征,设计相应的技术准则,实现对交换机串口输出波特率的自动识别与跟踪。
AT89C52的核心,选用性价比高的主存储器和外围接口芯片,配合强大灵活的软件设计,开发程控交换机呼叫信息缓冲系统,实现了低成本、大容量、高实时和多任务特性。此外,系统还具有以下重要特点:(1)软串口具有波特率自动识别能力;(2)信息读出速度可达460kbps;(3)后备电池管理,声光报警;(4)系统软件在线重载;(5)命令集设计规范,功能完备;(6)已通过严格的功能和电磁兼容测试。本系统适合公司、学校、科研和政府等部分程控交换机话单业务的管理。
上一篇:一种环保设备运行记录你的研制
下一篇:无线电台用智能数据通信卡的设计与实现