新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式流媒体携带式系统的设计及改进

嵌入式流媒体携带式系统的设计及改进

作者:时间:2012-03-23来源:网络收藏

3.2 设计

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

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

3.2.1 PCI接口配置空间的实现

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

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

3.2.2 时序控制的实现

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

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

图3 PCI接口状态机

注: 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器件。GEC2410开发板套件

4 系统的软件模块设计

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

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

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



评论


相关推荐

技术专区

关闭