打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
基于32位RISC嵌入式处理器的流媒体携带式系统的设计
类别:网文精粹  
 
基于32位RISC嵌入式处理器的流媒体携带式系统的设计 Design and Implementation of Embedded System for Portable Streaming Media Applications

摘要:本文提出了基于32位的RISC嵌入式处理器的流媒体携带式系统的设计及改进。该系统以32位的嵌入式处理器Intel PXA270处理器为设计的硬件平台,以嵌入式Linux操作系统为软件平台,并且对处理器PXA270的I/O接口以及视频解码端口进行改进,使其支持PCI总线协议。本文论述了系统的硬件和软件模块的设计,以及采用FPGA设计PCI接口的过程。

关键字:流媒体,32位RISC处理器,嵌入式Linux系统,PCI接口,FPGA

Abstract:A 32 bit RISC processor system for portable streaming media application is presented and designed in the paper. The portable streaming media in the system is designed of the embedded processor Intel PXA270 processor and embedded Linux operating system. Improve the I/O interface of the processor and video codec interface to support PCI bus protocol. In the paper, the hardware design,software design,and the PCI interface design are discussed in detail.

Keywords:Streaming Media, 32 bit RISC Processor, Embedded system, PCI Interface, FPGA

1 引言

进入20世纪90年代以来,计算机多媒体技术和网络技术飞速发展,基于流媒体的多媒体应用也被运用在多种领域,特别是在图像监控系统和视频点播系统中。目前在便携式流媒体系统发展领域上,竞争的公司主要有三个:Microsoft、Real Networks、Apple,而相应的产品就是:Windows Media、Real Media、QuickTime[2]。本文提出设计的系统优点在于:使用高速低功耗的32位Intel PXA270嵌入式处理器,成本低,稳定性好,实时性好等特点,并对PXA270处理器的接口进行了改进,使系统支持PCI总线协议,具有很好的系统移植性。

2 系统总体结构

基于高速低功耗的32位RISC嵌入式处理器的流媒体携带式系统如图1所示。

图1携带式流媒体系统总体结构图

该系统有多个流媒体播放终端,这些播放终端通过无线接入点与计算机网络连接;流媒体服务器通过其以太网接口与计算机网络连接。流媒体服务器可以将从网络上获得的音视频数据转换为流格式的文件;携带式播放终端向流媒体服务器发送请求,流媒体服务器响应请求后,播放终端对服务器发送过来的流媒体数据进行解码和播放,完成工作。

3 流媒体系统的硬件设计

3.1系统的硬件结构

流媒体携带式系统以Intel公司的嵌入式处理器PXA270为核心。Intel PXA270处理器是一个高性能、低价格、低功耗的32位ARM* V.5TE RISC处理器,它集成了I2S,SSP,AC97等一系列多媒体处理模块,非常适用于多媒体处理、手持设备、PDA等应用领域,是Intel Xscale 系列的第三代的实现。它有一个改进的LCD控制器,一个可扩展的插件接口,摄像采集接口,一个Intel核处理器以及更具保护性的电源管理功能部件等。这个核处理器通过添加MMX和SSE功能单元和附加的音视频处理操作来扩展Intel Xscale微型结构的功能[4]。

该系统的播放终端需要运行嵌入式操作系统,接收从无线以太网(WLAN)传输过来的音视频数据流,对音视频数据流进行MPEG4解码,输出视频数据和AC97格式的音频数据,并集成触摸屏/键盘输入、USB主控、实时时钟等功能。其硬件结构如图2所示。

图2流媒体系统的硬件结构图

3.2 PCI接口设计

在该流媒体系统设计过程中所使用的PXA270处理器本身并不支持PCI总线协议,为了使系统能够支持PCI总线协议,需要对处理器的接口进行改进,在这里提出使用FPGA来设计PCI总线接口控制器。设计在ModelSim环境下对Verilog HDL源程序进行前仿真,在Xilinx ISE环境下进行逻辑综合、布局布线后下载到Xilinx公司生产Spartan-3 FPGA XC3S200芯片内。

PCI接口控制器的设计中,核心设计部分有时序控制和配置空间两部分。时序控制保证了PCI接口控制器能按正常的PCI时序工作。配置空间部分保证了板卡的即插即用功能。

3.2.1 PCI接口配置空间的实现

PCI总线定义了3种物理地址空间,分别是存储器地址空间、I/O地址空间和配置地址空间。配置空间是PCI所特有的一种空间,其长度为256字节并且有特定记录结构的地址空间,可以在系统自举时访问,也可在其他时间访问[3]。其它一些寄存器配置如下:

厂商ID使用芯片最初的生产厂商ID值;设备ID可为除00000000H和0FFFFFFFFH中的任意值;命令寄存器中位1、6、8在本设计中均被设置为0;基地址寄存器用来映射设备的存储器地址空间,与设备地址空间大小相应的低位被强制为0,故此在配置写过程中,配置软件通过对这个寄存器的所有位写1,然后再读出该寄存器的值来决定设备存储器所占用的地址范围,位0被设为低表示存储器映射;类代码寄存器:设置为018000H,即设备为大容量存储控制器;首部类型寄存器:设置为0,表示其为单功能设备且首部类型为0。

3.2.2 时序控制的实现

在时序控制程序中采用状态机模型来实现不同时序的转换。各种命令,数据交换、控制均在状态机的管理下进行工作。PCI总线上的信号是并行工作的,因此,对应每个状态必须明确其执行的任务,这些任务用Verilog语言的进程语句来描述所发生的事件。

本设计中的状态机共使用了6种状态,如图3所示,分别为空闲状态(idle),准备状态(Ready),DEVSEL# 和TRDY#均为高电平状态(DevTrHi),DEVSEL#为低电平且TRDY#为高电平状态(DevLoTrHi),DEVSEL#和TRDY#均为低电平状态(DevTrLo)以及操作结束状态(OprOver)。

图3PCI接口状态机

注: state0表示pci_frame_i= ’1’ and pci_irdy_i =’1’, state 1表示pci_frame_i= ’1’ and pci_irdy_i=’0’ and irdy_i=’0’。

  当系统接到复位信号后对系统进行复位,然后转入空闲状态。在空闲状态中采样总线,并根据总线的变化来决定下一个时钟上升沿后状态机转人何种状态,这些时序和程序中用到的信号都是基本且必须的,在进行开发时可以根据需要增添必要的状态和信号。编写完整的代码,之后将代码导入ModelSim完成仿真,用Xilinx公司自带工具ISE进行综合布线,生成bit文件下载到FPGA器件。

4 系统的软件模块设计

该流媒体携带式系统的软件平台采用小体积、高性能的嵌入式Linux操作系统,它由一个内核和一些可以定制的系统模块组成,如文件系统模块、内存驱动模块等[5]。针对本应用,进行了重新剪裁和配置,只包含系统所需的模块。

对于该携带式系统的播放终端,其软件应用程序结构如图4所示,分别是图形用户界面模块、系统管理主控模块和音视频解码器三部分。音视频解码器模块可看作是系统管理主控模块的插件(plug-in),从主控模块获得编码的音视频数据并对其解码,解码后返发送给系统管理主控模块。本文主要介绍系统管理主控模块。

图4播放终端应用程序结构图

系统管理主控模块是便携式多媒体播放终端上的主要功能实现模块,它从网络上接收多媒体服务器发送来的多媒体数据,这些多媒体数据是完全符合RTCP、RTSP等标准数据传输协议。接收到多媒体数据后调用RTSP工具集等工具对接收到的多媒体数据进行解析,获得流媒体播放的一切必要信息,针对其中解析获得的音视频格式通过音视频解码插件管理。在音视频码流分离后通过音频解码器调用或者视频解码器调用分别调用音视频解码器模块的MP3音频和MPEG4视频解码算法对编码的音频数据和视频数据进行解码。解码后的音频数据和视频数据分别由音频输出和视频输出负责播放和显示。音视频同步控制同时和音频解码调用、音频输出、视频解码调用、视频输出交互,其主要负责音频解码、播放和视频解码、显示的同步,以音频的解码、播放进程为基准以图像去同步声音,必须保证音频输出是连贯的,当系统非常繁忙时视频图像的显示允许在一定程度上的跳帧。

5 流媒体服务器设计

由于该流媒体携带式系统选用RTSP作为流媒体播放所用的协议,这个协议普遍应用于多种流媒体应用中。运用这种协议的多媒体服务器软件已经有了比较成熟的表现。在该系统的设计当中,服务器端可以选择VLC Media Player。

Video LAN是一项软件工程,是为视频而生产的免费软件,由GNU发行[1]。原名叫Video LAN Client的VLC Media Player是解决VideoLAN工程的一个主要的方案[1]。VLC的优点主要有:可以运行在多种平台上,如Linux,Windows,Mac OS以及QNX等等;可以播放各种格式的文件,如MPEG1,MPEG4, DVD以及Audio CD等;支持各种类型的网络流,如UDP单播/多播(MPEG-TS),HTTP,RTP/RTSP等;既可以作为流服务器,也可以作为客户机,并且接收网络流。VLC能将它所能读出的各种格式的文件都转化为流格式文件。

6 结论

文章提出设计的基于32位RISC处理器的流媒体携带式系统,一方面采用当前先进的嵌入式技术(包括嵌入式处理器及嵌入式Linux系统)为核心进行设计;另一方面,改进了PXA270处理器的接口及音视频解码模块接口,从而不仅使该系统支持PCI总线协议,也支持优化的音视频硬件解码模块,而且还使系统具有更好的移植性。该系统已经在一定应用场合得到了实践应用,并取得令人满意的结果。

本文作者创新点:采用32位的Intel PXA 270嵌入式处理器设计流媒体携带式系统,并且对处理器的接口系统进行了改进,使本不支持PCI协议的处理器能够支持PCI协议。