《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于非IDE專用接口芯片的自主型光盤復(fù)制機(jī)的系統(tǒng)設(shè)計(jì)

基于非IDE專用接口芯片的自主型光盤復(fù)制機(jī)的系統(tǒng)設(shè)計(jì)

2009-03-03
作者:林永宏

  摘? 要: 基于非IDE專用接口芯片(MCU、DMA、SRAM、CPLD等組成)的光盤復(fù)制機(jī)的系統(tǒng)設(shè)計(jì);著重對(duì)系統(tǒng)功能、整體設(shè)計(jì)原理、硬件結(jié)構(gòu)和軟件實(shí)現(xiàn)等問題進(jìn)行了描述;對(duì)光盤的存儲(chǔ)和讀寫技術(shù)作了相應(yīng)的介紹。?

  關(guān)鍵詞: 光盤復(fù)制機(jī)? IDE接口? ATAPI設(shè)備?

?

  自1980年P(guān)hilips和 Sony公司推出數(shù)字聲音標(biāo)準(zhǔn)的CD(Compact Disc)以來,CD就以其信息存儲(chǔ)量大、存儲(chǔ)時(shí)間長和容易攜帶等優(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)專業(yè)的光盤復(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接口的自主型光盤復(fù)制機(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模式)、PIO傳輸以及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。

?

?

  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ù)量,而是通過對(duì)目標(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á)到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ì)簡圖如圖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 較為普遍,若寫入CUE-Sheet則整個(gè)光盤的刻錄軌跡位置就固定了。而在實(shí)踐中發(fā)現(xiàn),對(duì)于MIXED-CD用Track at once 更容易成功。圖3、圖4是兩種寫入方式的簡單過程。?

?

?

?

  實(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???? p1,#Sram64_LMode?

??????????? ??? mov???? DPTR,#IDE_DATA_REG?

??????????? ??? movx??? @DPTR,A? ;//write low byte?

??? ?????? ???? inc???? R0?

???????? ??? ???;//類似的寫高字節(jié)到16位SRAM ?

??????????????? ……?

? ??????????????;再將16bit從16位SRAM中一次寫入?

??????????????? IDE設(shè)備?

??????????????? mov? ?? p1,#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_data1();???? ?? //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、CD-WO格式以及對(duì)ATAPI整個(gè)命令的了解。?

參考文獻(xiàn)?

1 Cmos High Performance Programmable DMA Controller.Harris Semiconducator,1994?

2 ATAPI Interface Manual for Sony ATAPI Cd-R/RW Drive.Sony Corporation,1998?

3 Recordable Compact Disc System(Part 2:CD-WO,version2.0).Sony and Philips,1994
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。