基于IDE硬盘的大容量语音记录仪
整个系统的数字逻辑部分采用一片ALTERA公司的大规模可编程逻辑器件MAX7128S,它完成单片机与IDE硬盘、D6571E、LCD显示和键盘的接口逻辑控制。可编程逻辑器件MAX7128S的程序设计采用目前较为通用和流行的VHDL语言,用MAX+plus II和FPGA Express软件编译仿真完成。
一片D6571E完成对并联话机状态的监测。当D6571E监测到并联线路上有语音信号时,判断并联话机有去话;当振铃检测芯片TCM1520A检测到并联线路上有振铃时,判断并联话机有来话。当并联话机存储来话和去话时,D6571E开始记录语音,并将压缩的语音数据实时传送给单片机。单片机负责将语音数据存储在硬盘上,并附加上相关的日期时间、来去话标志、主被叫电话号码和通话时长等索引内容,以便查询使用。当本机需要回放语音记录或远程调度时,单片机将硬盘上的语音压缩数据通过另外一片D6571E解压转变成语音。
160×32 LCD可显示16×16点阵的汉字两行,每行10个汉字。它主要用于显示系统的日期时间、提示信息或状态信息,方便用户的使用。javascript:window.open(this.src);" style="cursor:pointer;"/>
系统中键盘可实现本机对语音记录的回放选择以及对D6571E工作的预置值进行设定,如语音压缩率的选择、调节音量等。
远程调度电话线接口可实现远程监听和查询等功能。系统在检测到远程调度电话线上的振铃信号后,将模拟摘,同时向主叫播放语音提示。主叫可按照语音提示操作,即可监听到硬盘上的任意一段语音记录,甚至可以监听到系统正在记录的语音。
2 系统软件设计
系统软件包含有主程序、中断服务程序和任务子程序等。
主程序主要完成对IDE硬盘、D6571E、LCD等的初始化,并检测任务表是否空,若不空则执行相应任务。图4所示为系统主程序流程图。
中断服务程序主要包括T0中断服务程序、INT0中断服务程序、INT1中断服务程序等。T0中断服务程序主要负责定时喂看门狗、扫描键盘读键值等,并写相关任务到任务表中。INT0、INT1中断服务程序分别响应系统中2片D6571E的中断请求,将并联话机通话的语音压缩任务和记录语音的播放任务写到任务表中,待主程序调用执行。
任务子程序主要有LCD显示子程序、D6571E对语音的压缩子程序、D6571E对语音的解压子程序、读写IDE硬盘子程序、振铃处理子程序等。