首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于32位RISC嵌入式处理器的流媒体携带式系统的设计(2)

基于32位RISC嵌入式处理器的流媒体携带式系统的设计(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总线协议,也支持优化的音视频硬件解码模块,而且还使系统具有更好的移植性。该系统已经在一定应用场合得到了实践应用,并取得令人满意的结果。
继承事业,薪火相传
返回列表