基于IDE电缆、驱动器和开关电源实现光盘复制机系统的设计

自1980年Philips和Sony公司推出的数字声音标准的CD(Compact Disc)以来,CD就以其信息     存储   量大、存储时间长和容易携带等优点,受到人们的青睐,并被广泛应用于娱乐、发行、信息存储和备份等方面。随着近年来可擦写光盘驱动器CD-R(CD-Record-able)的出现和廉价可写光盘CD-WO(CD-Wri     te   Once)的渐渐普及,光盘的复制、刻录变得容易起来。除了使用相当专用的光盘复制设备外,更多的办法是借助于个人     计算机   或只有VIDEO的光盘录像机进行复制,但其成本相对较高,复制过程也比较麻烦。所以自主型(独立完成复制,不需计算机)光盘复制机应运而生,采用专门S     CSI       接口芯片   的1对1复制机出现了。但由于SCSI     接口   的光盘驱动器额外成本较IDE接口的高,并且市场上大量使用的是IDE接口的光驱,因此,设计低成本的基于IDE接口的自主型光盘制机是对光盘复制市场的极大补充。

1、 自主型光盘复制机系统的主要功能指标和应用

主要功能指标为:

(1)一对一复制,按一键完成4倍速的仿真或刻录功能;

(2)空间、时间和硬件资源最节省;

(3)系统增加IDE与PARALLEL口的转换后,可作为PC机的外置式光盘驱动器;

(4)具有状态显示和自动完成、退出提示等;

(5)支持大多数工业标准的CD格式,如红皮书、黄皮书、白皮书和绿皮书标准(AUDIO CD、VIDEO CD、DADA CD、     MI   XED MODE CD、PHOTO CD、GAME CD)等。

本系统可应用于学校、企事业机关和个人的光盘制作、多媒体演示、小量的分发、信息存储和备份等。

2、 系统组成

系统组成如图1所示。整个系统由1块控制板、一条IDE     电缆   、一台CD-R驱动器、一台CD-     ROM   驱动器、     开关电源   以及系统界面构成。其中,控制板是整个光盘复制系统的核心,它控制着从CD-ROM内读取原始数据,然后写入到CD-R中的空白光盘上。界面上只有状态灯和一个选择按钮,按钮经控制板读取后,决定了写入的模式。

 基于IDE电缆、驱动器和开关电源实现光盘复制机系统的设计_设计制作_接口/总线/驱动

3、核心硬件设计

(1)整个设计围绕着对光驱的读与写操作、数据传输(分为     PI   O模式和     DMA   模式)、PID传输以及IDE设备与主机的握手通讯(如数据包、命令、任务、状态等的发送和接收)进行。DMA是IDE的数据总线和主机的     存储器   数据线S     RAM   间的直接传输。在IDE设备与主机通讯的基础,ATAPI光盘读写命令及其它相关命令得以实现,在这里设计的光盘复制机(两个ATAPI)正是基于IDE设备的接口。  主机与IDE接口的通讯通过IDE总线的CS0-、CS1-、DA2、DA1、DA0、DIOR-、DIOW-等信号来进行,相关功能见表1。

 基于IDE电缆、驱动器和开关电源实现光盘复制机系统的设计_设计制作_接口/总线/驱动

ATAPI的命令如TEST UNIT READY、MODE SENSE、READ TRACK INFORMA     TI   ON、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所示。

 基于IDE电缆、驱动器和开关电源实现光盘复制机系统的设计_设计制作_接口/总线/驱动

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是两种写入方式的简单过程。

 基于IDE电缆、驱动器和开关电源实现光盘复制机系统的设计_设计制作_接口/总线/驱动

实际的软件编程要比这些复杂。对于经常调用的过程,通常都用汇编语言编写,例如:从IDE接口     寄存器   中的读写(Read-Data-Reg,Write-Data-Reg,Read-Status-Reg,Write-CMD-pkt,Write-Task-Ide)等。而针对ATAPI的大多命令,都用C51编写,例如:mode-select(),read-10(ad),write-10(ad),tray-out(),send-cue-sheet()等。

部分执行程序的示例如下:

IDE接口地址定义部分 ;;IDE Inte     rf   ace Address

例如:IDE_STATUS EQU 81F7H

……

_Read_Status_Reg: ;;读IDE驱动器设备状态子程序

lcall _Drive_Select;选择光驱

……

mov p1,#IDE_Lmode

mov DPTR,#IDE_STATUS

movx @DPTR,a ;DIOR valid

……

mov p1,#Sram64_Lmode

movx A,@DPTR

mov R7,A ;返回状态到r7寄存器

ret

Write_Cmd_Pkt: nop ;写6字命令包子程序

;写6字事先已存入内空间

cmd_buffer

mov R0,#cmd_buffer

mov R1,#06H ;//6 words to write

send_pkt:

mov A,@R0

mov pl,#Sram64_Lmode

mov DPTR,#IDE_DATA_REG

movx @DPTR,A ;//write low byte

inc R0

;//类似的写高字节到16位SRAM

……

;再将16bit从16位SRAM中一次写入IDE设备

mov pl,#IDE_WMode ;select IDE device

mov DPTR,#IDE_DATA_REG

;//16bit packet command write

movx a,@DPTR ;DIOW valid

……

inc R0

djnz R1,send_pkt

ret

void send_cue_sh(USI par_len)

{//ATAPI CD-WO Command,10字节 //命令字节初始化设备

……

do {

status=Read_Status_Reg(drv);

}while(status&0x80); //不忙时才可写入

nonDMA_xfer_data 1(); //non DMA(PIO模式)

P1=SRAM32;

status=Read_Status_Reg(drv); //读取返回的状态

    if   (status&0x01) {

rqsense(); //ATAPI Command

}

}/*End of send_cue_sh */

基于非IDE专用接口芯片的自主型光盘复制机是对目前光盘复制市场的有益补充。其设计要求有较高的单片机、DMA传输以及CPLD等硬件知识和对CD、CDWO格式以及对ATAPI整个命令的了解。

责任编辑:gt

30
68
0
65

相关资讯

  1. 1、win8没有无线网络连接怎么设置?3967
  2. 2、Win10系统涂鸦板如何打开?win10系统打开涂鸦板教程4678
  3. 3、图片有瑕疵怎样处理?水印微管家使用方法简述4554
  4. 4、Win10专业版怎么处理休眠文件?240
  5. 5、怎么利用人生日历定时关机人生日历设置定时关机的方法4406
  6. 6、腾讯视频APP无法缓存视频怎么办腾讯视频APP无法缓存视频的解决方法3282
  7. 7、Win10系统电脑开始菜单栏打不开怎么解决?2792
  8. 8、Word表格怎么快速变大变小?word表格调整大小的技巧2869
  9. 9、Edge浏览器翻译功能在哪?1936
  10. 10、Windows10dwg文件无法拖拽开启?CAD文件无法运行的解决方法6026
全部评论(0)
我也有话说
0
收藏
点赞
顶部