数字视频压缩的大容量记录系统设计
。
2.2 LPC2214微处理器电路设计
LPC2214是一款基于32位ARM7TDMI-S,支持实时仿真和跟踪的CPU;带有16 KB片内SRAM、256 KB嵌入的高速Flash存储器、128位宽度的存储器接口和独特的加速结构,使32位代码能够在最大时钟速率60 MHz下运行。芯片内部集成了多种串行接口。LPC2214与SZ1510的接口和控制关系如图2所示。在设计中,需要注意的是保持SZ1510读写时序与内部时钟的同步。通过CS3选通SZ1510实现控制字和数据的交换。
图2 LPC2214与SZ1510的接口关系
2.3 IDE接口设计
由于LPC2214芯片不具备IDE接口,因此在本系统中使用通用I/O 口,模拟产生ATA 设备的读写时序,实现对IDE硬盘的可靠读写操作。图3为LPC2214与IDE硬盘连接图。其中,P2.16~P2.31作为数据线,P1.16~P1.20作为地址和选通信号,P0.17和P0.20为设备的复位和状态请求信号,用P0.21和P0.19实现读写控制。
图3 LPC2214与IDE硬盘连接图
3 系统软件设计
系统软件由主程序和若干个子程序组成,工作流程如图4所示。主要的子模块有:SZ1510 的设置与控制、IDE接口驱动和文件系统的管理。
图4 系统工作流程
3.1 SZ1510的设置与控制
SZ1510共有128个寄存器,每个寄存器都有一个索引号。当SZ1510工作在非复用总线模式下时,外界对寄存器的访问都是通过IOAR和IODR来完成的。访问时首先将这个寄存器的索引号写入IOAR,然后将要写的数据写入IODR。
SZ1510设置与控制过程如下:
① 向中断使能寄存器写入0x40,以使能Ready中断;
② 等待SZ1510的Ready中断;
③ 等到Ready中断后,向SZ1510的0x1E寄存器写入0x0A,设置它内部的DSP时钟为94.5 MHz;
④ 向0x013寄存器写入0x55,对SZ1510进行软复位;
⑤ 向中断使能寄存器0x0C写入0x40,以使能Ready中断;
⑥ 等候RDY中断;
⑦ 待Ready中断后对SAA7113进行初始化;
⑧ 对SZ1510进行软复位,即向0x0B寄存器写入0x55,同时向0x0C寄存器写入0x40;
⑨ 等待Ready中断,等到后向SZ1510的内部DSP装载二进制代码;
⑩ 进行SZ1510内部视频压缩核的二进制代码装载,具体装载步骤如下:
◆ 向0x08寄存器写0x04,发送开始命令;
◆ 等待Ready中断,清除Ready中断;
◆ 向Data in寄存器0x01写256个字节;
◆ 等待End of Data中断,然后清除中断;
◆ 查程序空间的代码是否装载完毕,如没有,则继续装载。
3.2 IDE接口驱动
本系统采用LPC2214的通用可编程I/O口模拟ATA设备的读写时序,实现对硬盘的读写。这里给出模拟写ATA 设备寄存器的步骤(读ATA设备寄存器的步骤类似):
① 关系统中断,预防在写寄存器操作中产生中断;
② 设置GPIO 模拟ATA 接口数据的引脚为输出状态,准备输出数据到设备数据线;
③ 设置ATA 设备寄存器的相应地址;
④ 设置GPIO 模拟ATA 接口数据的引脚电平为要写到设备的值;
⑤ 使写ATA 设备寄存器信号为低电平;
⑥ 使写ATA 设备寄存器信号为高电平;
⑦ 取消ATA 设备寄存器地址的选择;
⑧ 设置GPIO 模拟ATA 接口的数据总线引脚为输入状态,释放总线;
⑨ 开系统中断。
3.3 文件系统管理
本设计中采用的是面向嵌入式系统的小型文件系统ZLG/FS [1],主要用于将数据存储为标准的文件格式和对整个文件系统的管理。同时,为了便于音视频的检索和查询,以及防止非法断电造成大量未保存数据的丢失,在系统中设置了每间隔一定的时间(30 min)将压缩数据存储在以系统时间命名的新文件里。
4 结论
经测试,系统可实时长时间记录外部的音视频信号,记录的压缩数据流符合MPEG-1图像压缩国际标准。在设计中,采用的压缩视频流速率为1.5 Mbps,1小时的视频数据量为(1.5 Mbps/8)×3 600=675 MB,对于一个40 GB的硬盘,系统连续记录时间接近60小时。系统体积小、功耗低,便于移动环境下对音视频数据的实时长时间压缩记录。
- 大规模IPTV点播系统解决方案(08-18)
- 数字音视频编解码技术标准AVS(08-19)
- MPEG压缩软件测试(08-19)
- 数字电视与数字电视编码技术的发展简介(08-19)
- H.264 FRExt技术及其应用(08-28)
- IPTV编解码标准综述(08-26)