《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > 数字拷贝机的FPGA设计

数字拷贝机的FPGA设计

2008-04-01
作者:刘 佳,仇润鹤

  摘 要: 基于FPGA的全自动多功能数字拷贝机的设计与实现,提出了一种切实可行的数字拷贝机的FPGA实现方法。
  关键词: 数字拷贝机 FPGA ATA/IDE DMA 数据传输

 

  光盘拷贝机通常由一台CD-ROM驱动器、数台CD-R或CD-RW刻录机和一个拷贝控制器组成。拷贝控制器首先从CD-ROM驱动器中读出源盘数据,然后将数据流分多路" title="多路">多路传输到各个刻录机,控制所有的刻录机同步刻录CD-R光盘。目前市场上的光盘拷贝机主要有联机拷贝机、脱机拷贝机和自动拷贝机三种类型。
  (1)联机拷贝机
  联机光盘拷贝机由一台通用PC机和一个装有SCSI接口刻录机的塔式机箱组成,塔箱与PC机之间用SCSI电缆相连。联机拷贝机使用PC机作为光盘拷贝机控制器,并利用专门的CD-R拷贝软件将刻录数据通过SCSI母线传输给各个刻录机。由于联机拷贝机采用软件进行数据分配和多路传输,所以数据传输速度较低。为了避免产生缓存器欠载运行(Buffer Underrun)错误,一般将SCSI接口上连接的刻录机数量限制在4台以内。
  (2)脱机拷贝机
  脱机拷贝机是所有CD-R光盘拷贝机中使用最简单的一种,也是使用最多的一种。脱机拷贝机使用专用的硬件控制器进行源盘读取和多路数据传输。因此数据传输的速度很快,不易产生缓存器欠载运行错误,复制CD-R光盘的成功率高于联机拷贝机。
  (3)自动拷贝机
  自动拷贝机是在脱机拷贝机的基础上又增加了一套机械手装置,用机械手自动将CD-R空盘放入刻录机。完成拷贝后,机械手将已刻录的CD-R光盘从刻录机中取出,再放入新的CD-R空盘。有些自动拷贝机带有光盘打印机,可直接在CD-R光盘背面打印用户设计的盘标。
    本设计应用Xilinx(R) SpartanTM-3 FPGA、CoolRunnerTM II CPLD和微处理器来开发ATA/IDE接口之间用于数据存储的脱机数字拷贝机。
1 数字拷贝机系统硬件部分
1.1 系统组成和工作原理

  数字拷贝机系统由FPGA、CPLD、4MB Flash、4MBDRAM、256MB SDRAM、微型处理器和操控按钮、液晶显示屏、IDE/ATA接口等组成。数字拷贝机系统框图如图1所示。其中FPGA和MPU组成控制单元,Flash为BOOT单元,SDRAM和DRAM为存储交换单元,CPLD为加密单元,按钮和显示屏为人机接口单元。


  系统通过各模块之间的相互协作,完成数据的高速传输、自动拷贝功能。
  (1)系统硬件连接好之后,系统上电" title="上电">上电(连接5V直流电源);
  (2)系统自检,CPU调用BIOS中自检程序检查各端口的连接状态,并反馈给显示器告知用户。调用初始化程序,加载FPGA核;
  (3)液晶显示屏显示操作菜单,通过键盘操作可以方便地实现自检、拷贝、设置等功能。将液晶显示器的数据线与CPLD相连,充分应用CPLD在系统中的加密程序,其目的是对显示器所显示的数据加密,从而在实际生产中保护知识产权和名誉权;
  (4)系统中CPLD器件的主要作用是对FPGA核加密。当系统启动时,原先存储在Flash中的FPGA核经过CPLD的加密程序再加载到FPGA中,达到保护IP的目的;
  (5)IP下载到FPGA后,在拷贝状态时,I/O" title="I/O">I/O口向DMAC申请数据传输的DMA请求,DMAC经CPU同意后获得总线控制权,并通知I/O,准备数据传输。DMAC将从I/O接收到的数据放到SDRAM存储器暂时存储;输出数据时,DMAC从SDRAM中取出数据,放到DMAC的缓冲器,再发送到输出I/O口,实现数据拷贝。
  系统中DRAM的主要作用是扩展CPU内存。例如液晶显示和数据交换等过程中的一些数据和资料需要在这里调用和存放,以加快系统速度。
1.2 系统组成模块分析
  整个电路可划分成二个功能模块。
  (1)非数据拷贝期的CPU控制模块" title="控制模块">控制模块:用于系统上电后,数据拷贝之前的系统初始化、系统配置检测、菜单显示和操作以及数据拷贝后数据的校验、系统安全退出等。
  (2)数据拷贝期的DMA数据传输模块:用于数据拷贝期FPGA中内构的DMAC与CPU的通信、控制数据与内存之间的传输及FPGA与外设IDE/ATA接口之间的数据传输等。


1.2.1 非数据拷贝期的CPU控制模块
  非数据拷贝期的CPU控制模块原理如图2所示。
  此功能模块中的Flash是一个重要的环节,主要起BOOT UP的作用。4MB的Flash与CPU、FPGA、DRAM和CPLD均有联系,而且Flash中存储了很多与系统有重要关系的数据,相当于BIOS。其中有用于整个系统运行的主程序,有用于数据DMA模式传输的FPGA核(IP),还有一些令系统初始化的程序和自检程序等。当系统上电时,在CPU的控制下启动整个系统,Flash将其中的IP核经过CPLD加密,下载到FPGA中,为拷贝做好准备。同时,键盘的接口连接至CPU,由CPU控制按下按键后的操作;液晶显示器的数据线与CPLD相连,CPLD将要显示的某些信息作为密钥进行加密,防止他人盗用。
1.2.2 数据拷贝期的DMA数据传输模块
  在这个模块中,主要由FPGA构成的一个DMA控制器控制IDE/ATA设备与拷贝机内存之间的数据交换。选用的FPGA为SpartanTM-3E系列器件,它是开创性的低成本Spartan系列的第7类器件,也是采用先进的90nm工艺技术生产的第三类Xilinx器件系列。 Spartan-3E FPGA有高达160万的系统门、376个I/O、1.8MB的块RAM,并且具有业界单位逻辑成本最低的通用平台FPGA架构。FPGA所实现DMAC控制器的内部逻辑结构如图3所示。


  DMA控制器提供地址码以指明I/O设备变换数据的存储器起始地址;提供读/写脉冲,以规定数据在存储器与I/O设备之间的传输方向;修改内存地址指针并计算传送的字节数,以判断何时传送结束。具体信号时序如下:
  (1)I/O设备向DMAC发出请求信号DRQ;
  (2)DMAC向CPU发出总线请求信号HRQ;
  (3)CPU向DMAC发出总线响应信号HLDA,此时,DMAC获得总线控制权;
  (4)DMAC向I/O设备发出DMA响应信号DACK,表示DMAC已控制了总线,允许I/O设备与存储器交换数据;
  (5)DMAC按地址寄存器的内容发出16位地址信号作为存储地址的选择,同时地址寄存器的内容加1(或减1,由编程定);
  (6)DMAC发出IORC信号到I/O设备,将I/O设备数据读入总线,同时发出MEMW信号,将数据总线的数据写入由地址总线选中的内存单元;
  (7)字节计数器减1;
  (8)重复(5)、(6)、(7)步骤,直至字节计数器为0,数据块的DMA方式传送工作完成。这时,DMAC的HRQ降为低电平(HRO=0),总线控制权交给CPU。
  数据拷贝期的DMA数据传输模块原理如图4所示。

 

 


2 数字拷贝机系统软件流程
  非数据拷贝期系统主程序流程如图5所示。数据拷贝期FPGA内部DMA控制器的程序流程如图6所示。拷贝机数据输入输出IDE端口的程序流程如图7所示。
  检查CDROM是否就绪程序:
void TestUnitReady(void)
{
unsigned char TempCyc;
unsigned char TempS;
for(TempCyc=0;TempCyc<12;TempCyc++)
PacketTemp[TempCyc]=0x00;
do
{
SendPacket(1);//若CD-ROM不在就绪状态则跳过DRQ检测
TempS=CDStatusREG& 0x89;//通过CDStatusREG & 0x89判断ERR、DRQ、BSY中是否有1?
}
while(TempS);
     //PacketCommand失败时认为CD-ROM未就绪,再次发送Test Unit Ready
Command
}
  系统经过了ISE开发环境的设计、仿真、定时分析,其目的是测试设计的逻辑功能和延时特性,仿真包括功能仿真和时序仿真,ISE6.1中能够提供和完成这些功能。仿真结果符合实际需要。


  (1)系统能实现拷贝、测试、对比校对。
  (2)在拷贝之前的菜单可以选择烧录速率(CD to CD、DVD to DVD)等。
  (3)系统可进行人性化设定,包括语言设定、CD写模式设定、拷贝模式设定、蜂鸣器及空闲状态屏幕保护设定等。
  (4)常用工具设定,包括光盘信息、预扫描、系统信息、设备信息和更新固件等。
  本系统符合当前技术的主流,有着广阔的技术前景。
参考文献
1 何 宁,熊剑平,蒋昌龙等.基于FPGA的实时持续数据记录系统设计[J].微电子学与计算机,2003;(1)
2 黄志伟,王 彦,陈 琼等.FPGA系统设计与实践[M].北京:电子工业" title="电子工业">电子工业出版社,2005
3 EDA先锋工作室.FPGA/CPLD设计工具——Xilinx ISE使用详解[M].北京:人民邮电出版社,2005
4 任晓东,文 博.CPLD/FPGA高级应用开发指南[M].北京:电子工业出版社,2003

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。