ATAPT設(shè)備自1980年P(guān)hilips和Sony公司推出的數(shù)字聲音標(biāo)準(zhǔn)的CD(Compact Disc)以來,CD就以其信息存儲(chǔ)量大、存儲(chǔ)時(shí)間長(zhǎng)和容易攜帶等優(yōu)點(diǎn),受到人們的青睞,并被廣泛應(yīng)用于娛樂、發(fā)行、信息存儲(chǔ)和備份等方面。隨著近年來可擦寫光盤驅(qū)動(dòng)器CD-R(CD-Record-able)的出現(xiàn)和廉價(jià)可寫光盤CD-WO(CD-Write Once)的漸漸普及,光盤的復(fù)制、刻錄變得容易起來。除了使用相當(dāng)專用的光盤復(fù)制設(shè)備外,更多的辦法是借助于個(gè)人計(jì)算機(jī)或只有VIDEO的光盤錄像機(jī)進(jìn)行復(fù)制,但其成本相對(duì)較高,復(fù)制過程也比較麻煩。所以自主型(獨(dú)立完成復(fù)制,不需計(jì)算機(jī))光盤復(fù)制機(jī)應(yīng)運(yùn)而生,采用專門SCSI接口芯片的1對(duì)1復(fù)制機(jī)出現(xiàn)了。但由于SCSI接口的光盤驅(qū)動(dòng)器額外成本較IDE接口的高,并且市場(chǎng)上大量使用的是IDE接口的光驅(qū),因此,設(shè)計(jì)低成本的基于IDE接口的自主型光盤制機(jī)是對(duì)光盤復(fù)制市場(chǎng)的極大補(bǔ)充。
1 自主型光盤復(fù)制機(jī)系統(tǒng)的主要功能指標(biāo)和應(yīng)用
主要功能指標(biāo)為:
(1)一對(duì)一復(fù)制,按一鍵完成4倍速的仿真或刻錄功能;
(2)空間、時(shí)間和硬件資源最節(jié)省;
(3)系統(tǒng)增加IDE與PARALLEL口的轉(zhuǎn)換后,可作為PC機(jī)的外置式光盤驅(qū)動(dòng)器;
(4)具有狀態(tài)顯示和自動(dòng)完成、退出提示等;
(5)支持大多數(shù)工業(yè)標(biāo)準(zhǔn)的CD格式,如紅皮書、黃皮書、白皮書和綠皮書標(biāo)準(zhǔn)(AUDIO CD、VIDEO CD、DADA CD、MIXED MODE CD、PHOTO CD、GAME CD)等。
本系統(tǒng)可應(yīng)用于學(xué)校、企事業(yè)機(jī)關(guān)和個(gè)人的光盤制作、多媒體演示、小量的分發(fā)、信息存儲(chǔ)和備份等。
2 系統(tǒng)組成
系統(tǒng)組成如圖1所示。整個(gè)系統(tǒng)由1塊控制板、一條IDE電纜、一臺(tái)CD-R驅(qū)動(dòng)器、一臺(tái)CD-ROM驅(qū)動(dòng)器、開關(guān)電源以及系統(tǒng)界面構(gòu)成。其中,控制板是整個(gè)光盤復(fù)制系統(tǒng)的核心,它控制著從CD-ROM內(nèi)讀取原始數(shù)據(jù),然后寫入到CD-R中的空白光盤上。界面上只有狀態(tài)燈和一個(gè)選擇按鈕,按鈕經(jīng)控制板讀取后,決定了寫入的模式。
3 核心硬件設(shè)計(jì)
(1)整個(gè)設(shè)計(jì)圍繞著對(duì)光驅(qū)的讀與寫操作、數(shù)據(jù)傳輸(分為PIO模式和DMA模式)、PID傳輸以及IDE設(shè)備與主機(jī)的握手通訊(如數(shù)據(jù)包、命令、任務(wù)、狀態(tài)等的發(fā)送和接收)進(jìn)行。DMA是IDE的數(shù)據(jù)總線和主機(jī)的存儲(chǔ)器數(shù)據(jù)線SRAM間的直接傳輸。在IDE設(shè)備與主機(jī)通訊的基礎(chǔ),ATAPI光盤讀寫命令及其它相關(guān)命令得以實(shí)現(xiàn),在這里設(shè)計(jì)的光盤復(fù)制機(jī)(兩個(gè)ATAPI)正是基于IDE設(shè)備的接口。
主機(jī)與IDE接口的通訊通過IDE總線的CS0-、CS1-、DA2、DA1、DA0、DIOR-、DIOW-等信號(hào)來進(jìn)行,相關(guān)功能見表1。
表1 IDE接口功能和選擇地址
ATAPI的命令如TEST UNIT READY、MODE SENSE、READ TRACK INFORMATION、READ、WRITE等都是通過以上接口進(jìn)行發(fā)送的,接收可以是PIO模式或DMA模式。
(2)光盤的讀寫速率是按75block(frame)/s來計(jì)算的。一個(gè)block等于2352個(gè)字節(jié),但用戶數(shù)據(jù)隨著CD格式的不同而不同,1倍速按每秒75個(gè)block讀寫,2倍速按每秒150個(gè)block讀寫。然而,4倍速復(fù)制并不是要求主機(jī)一次讀取300(4×75)個(gè)block大小的數(shù)據(jù)量,而是通過目標(biāo)光盤刻錄速度的設(shè)置來完成的。通常有20~30個(gè)block(大約70~80K的數(shù)據(jù)量)讀寫速度就夠了,太小容易死機(jī),太多則加大了對(duì)機(jī)存儲(chǔ)空間SRAM的要求。在這里我們選擇了64K×16bit的SRAM。
(3)支持Enhance IDE的設(shè)備都具有快速DMA功能。在光盤復(fù)制時(shí),實(shí)現(xiàn)大量數(shù)據(jù)的快速讀寫DMA是必需的。在DMA外部工作頻率為12.5MHz時(shí),一般能反動(dòng)派到1.5M/s的傳輸能力,例如INTEL 82C37A。
(4)主機(jī)UP(CPU)選擇性價(jià)比較好的8032系列單片機(jī),可支持40MHz的外部工作頻率。為了加強(qiáng)對(duì)知識(shí)的保護(hù),也為了實(shí)現(xiàn)8位微機(jī)與16位SRAM以及大量外圍芯片的譯碼,選用了CPLD來增加其集成度,其設(shè)計(jì)采用原理圖+VHDL方式。
硬件設(shè)計(jì)簡(jiǎn)圖如圖2所示。
4 軟件實(shí)現(xiàn)
參考CD-WO規(guī)范,CD-WO的寫入方式主要有兩種:Track at once(軌道)和Disc/Session at once(分區(qū))。這和光盤的信息存放格式分類有極大的關(guān)系。在國內(nèi),多分區(qū)的光盤MULT-SESSION CD如MIXED CD、CD-I等較為少見,它們是數(shù)據(jù)區(qū)和音頻區(qū)的結(jié)合,一般第一個(gè)分區(qū)與其它分區(qū)不同。某些光盤用Track at once能夠成功地刻錄,而用Disc at once方式則失敗;反之亦然。
通常,Disc at once較為普遍,若寫入CUESheet則整個(gè)光盤的刻錄軌跡位置就固定了。而在實(shí)踐中發(fā)現(xiàn),對(duì)于MIXED-CD用Track at once更容易成功。圖3、圖4是兩種寫入方式的簡(jiǎn)單過程。
實(shí)際的軟件編程要比這些復(fù)雜。對(duì)于經(jīng)常調(diào)用的過程,通常都用匯編語言編寫,例如:從IDE接口寄存器中的讀寫(Read-Data-Reg,Write-Data-Reg,Read-Status-Reg,Write-CMD-pkt,Write-Task-Ide)等。而針對(duì)ATAPI的大多命令,都用C51編寫,例如:mode-select(),read-10(ad),write-10(ad),tray-out(),send-cue-sheet()等。
部分執(zhí)行程序的示例如下:
IDE接口地址定義部分 ;;IDE Interface Address
例如:IDE_STATUS EQU 81F7H
……
_Read_Status_Reg: ;;讀IDE驅(qū)動(dòng)器設(shè)備狀態(tài)子程序
lcall _Drive_Select;選擇光驅(qū)
……
mov p1,#IDE_Lmode
mov DPTR,#IDE_STATUS
movx @DPTR,a ;DIOR valid
……
mov p1,#Sram64_Lmode
movx A,@DPTR
mov R7,A ;返回狀態(tài)到r7寄存器
ret
Write_Cmd_Pkt: nop ;寫6字命令包子程序
;寫6字事先已存入內(nèi)空間
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
;//類似的寫高字節(jié)到16位SRAM
……
;再將16bit從16位SRAM中一次寫入IDE設(shè)備
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字節(jié) //命令字節(jié)初始化設(shè)備
……
do {
status=Read_Status_Reg(drv);
}while(status&0x80); //不忙時(shí)才可寫入
nonDMA_xfer_data 1(); //non DMA(PIO模式)
P1=SRAM32;
status=Read_Status_Reg(drv); //讀取返回的狀態(tài)
if(status&0x01) {
rqsense(); //ATAPI Command
}
}/*End of send_cue_sh */
基于非IDE專用接口芯片的自主型光盤復(fù)制機(jī)是對(duì)目前光盤復(fù)制市場(chǎng)的有益補(bǔ)充。其設(shè)計(jì)要求有較高的單片機(jī)、DMA傳輸以及CPLD等硬件知識(shí)和對(duì)CD、CDWO格式以及對(duì)ATAPI整個(gè)命令的了解。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
453文章
50254瀏覽量
421126 -
接口
+關(guān)注
關(guān)注
33文章
8459瀏覽量
150748 -
多媒體
+關(guān)注
關(guān)注
0文章
494瀏覽量
36926
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論