基于非IDE专用接口芯片的自主型光盘复制机的系统设计
自1980年Philips和Sony公司推出的数字声音标准的CD(Compact Disc)以来,CD就以其信息存储量大、存储时间长和容易携带等优点,受到人们的青睐,并被广泛应用于娱乐、发行、信息存储和备份等方面。随着近年来可擦写光盘驱动器CD-R(CD-Record-able)的出现和廉价可写光盘CD-WO(CD-Write Once)的渐渐普及,光盘的复制、刻录变得容易起来。除了使用相当专用的光盘复制设备外,更多的办法是借助于个人计算机或只有VIDEO的光盘录像机进行复制,但其成本相对较高,复制过程也比较麻烦。所以自主型(独立完成复制,不需计算机)光盘复制机应运而生,采用专门SCSI接口芯片的1对1复制机出现了。但由于SCSI接口的光盘驱动器额外成本较IDE接口的高,并且市场上大量使用的是IDE接口的光驱,因此,设计低成本的基于IDE接口的自主型光盘制机是对光盘复制市场的极大补充。
1 自主型光盘复制机系统的主要功能指标和应用
主要功能指标为:
(1)一对一复制,按一键完成4倍速的仿真或刻录功能;
(2)空间、时间和硬件资源最节省;
(3)系统增加IDE与PARALLEL口的转换后,可作为PC机的外置式光盘驱动器;
(4)具有状态显示和自动完成、退出提示等;
(5)支持大多数工业标准的CD格式,如红皮书、黄皮书、白皮书和绿皮书标准(AUDIO CD、VIDEO CD、DADA CD、MIXED MODE CD、PHOTO CD、GAME CD)等。
本系统可应用于学校、企事业机关和个人的光盘制作、多媒体演示、小量的分发、信息存储和备份等。
2 系统组成
系统组成如图1所示。整个系统由1块控制板、一条IDE电缆、一台CD-R驱动器、一台CD-ROM驱动器、开关电源以及系统界面构成。其中,控制板是整个光盘复制系统的核心,它控制着从CD-ROM内读取原始数据,然后写入到CD-R中的空白光盘上。界面上只有状态灯和一个选择按钮,按钮经控制板读取后,决定了写入的模式。
3 核心硬件设计
(1)整个设计围绕着对光驱的读与写操作、数据传输(分为PIO模式和DMA模式)、PID传输以及IDE设备与主机的握手通讯(如数据包、命令、任务、状态等的发送和接收)进行。DMA是IDE的数据总线和主机的存储器数据线SRAM间的直接传输。在IDE设备与主机通讯的基础,ATAPI光盘读写命令及其它相关命令得以实现,在这里设计的光盘复制机(两个ATAPI)正是基于IDE设备的接口。
主机与IDE接口的通讯通过IDE总线的CS0-、CS1-、DA2、DA1、DA0、DIOR-、DIOW-等信号来进行,相关功能见表1。
表1 IDE接口功能和选择地址
地 址 | 功 能 | |||||
Cs0- | N | DA2 | DA1 | DA0 | READ(DIOR) | WRITE(DIOW) |
A | N | 0 | 0 | 0 | DATA | DATA |
A | N | 0 | 0 | 1 | ERROR | FEATURE |
A | N | 0 | 1 | 0 | RESON | |
A | N | 0 | 1 | 1 | RESERVE | |
A | N | 1 | 0 | 0 | BYTE-CNT-LOW | BYTE-CNT-LOW |
A | N | 1 | 0 | 1 | BYTE-CNT-HIGH | BYTE-CNT-HIGH |
A | N | 1 | 1 | 0 | device-SEL | DEVICE-SEL |
A | N | 1 | 1 | 1 | STATUS | COMMAND |
ATAPI的命令如TEST UNIT READY、MODE SENSE、READ TRACK INFORMATION、READ、WRITE等都是通过以上接口进行发送的,接收可以是PIO模式或DMA模式。
(2)光盘的读写速率是按75block(frame)/s来计算的。一个block等于2352个字节,但用户数据随着CD格式的不同而不同,1倍速按每秒75个block读写,2倍速按每秒150个block读写。然而,4倍速复制并不是要求主机一次读取300(4×75)个block大小的数据量,而是通过目标光盘刻录速度的设置来完成的。通常有20~30个block(大约70~80K的数据量)读写速度就够了,太小容易死机,太多则加大了对机存储空间SRAM的要求。在这里我们选择了64K×16bit的SRAM。
(3)支持Enhance IDE的设备都具有快速DMA功能。在光盘复制时,实现大量数据的快速读写DMA是必需的。在DMA外部工作频率为12.5MHz时,一般能反动派到1.5M/s的传输能力,例如INTEL 82C37A。
(4)主机UP(CPU)选择性价比较好的8032系列单片机,可支持40MHz的外部工作频率。为了加强对知识的保护,也为了实现8位微机与16位SRAM以及大量外围芯片的译码,选用了CPLD来增加其集成度,其设计采用原理图+VHDL方式。
硬件设计简图如图2所示。
4 软件实现
参考CD-WO规范,CD-WO的写入方式主要有两种:Track at once(轨道)和Disc/Session at once(分区)。这和光盘的信息存放格式分类有极大的关系。在国内,多分区的光盘MULT-SESSION CD如MIXED CD、CD-I等较为少见,它们是数据区和音频区的结合,一般第一个分区与其它分区不同。某些光盘用Track at once能够成功地刻录,而用Disc at once方式则失败;反之亦然。
通常,Disc at once较为普遍,若写入CUESheet则整个光盘的刻录轨迹位置就固定了。而在实践中发现,对于MIXED-CD用Track at once更容易成功。图3、图4是两种写入方式的简单过程。
实际的软件编程要比这些复杂
- TMS320F240的IDE接口仿真器设计 (05-19)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)