<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于非IDE專(zhuān)用接口芯片的自主型光盤(pán)復制機的系統設計

基于非IDE專(zhuān)用接口芯片的自主型光盤(pán)復制機的系統設計

作者: 時(shí)間:2012-02-08 來(lái)源:網(wǎng)絡(luò ) 收藏

4 軟件實(shí)現

  參考CD-WO規范,CD-WO的寫(xiě)入方式主要有兩種:Track at once(軌道)和Disc/Session at once(分區)。這和光盤(pán)的信息存放格式分類(lèi)有極大的關(guān)系。在國內,多分區的光盤(pán)MULT-SESSION CD如MIXED CD、CD-I等較為少見(jiàn),它們是數據區和音頻區的結合,一般第一個(gè)分區與其它分區不同。某些光盤(pán)用Track at once能夠成功地刻錄,而用Disc at once方式則失敗;反之亦然。

  通常,Disc at once較為普遍,若寫(xiě)入CUESheet則整個(gè)光盤(pán)的刻錄軌跡位置就固定了。而在實(shí)踐中發(fā)現,對于MIXED-CD用Track at once更容易成功。圖3、圖4是兩種寫(xiě)入方式的簡(jiǎn)單過(guò)程。

  實(shí)際的軟件編程要比這些復雜。對于經(jīng)常調用的過(guò)程,通常都用匯編語(yǔ)言編寫(xiě),例如:從寄存器中的讀寫(xiě)(Read-Data-Reg,Write-Data-Reg,Read-Status-Reg,Write-CMD-pkt,Write-Task-Ide)等。而針對ATAPI的大多命令,都用C51編寫(xiě),例如:mode-select(),read-10(ad),write-10(ad),tray-out(),send-cue-sheet()等。

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

地址定義部分 ;;IDE Interface Address

例如:IDE_STATUS EQU 81F7H

……

_Read_Status_Reg: ;;讀IDE驅動(dòng)器設備狀態(tài)子程序

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 ;返回狀態(tài)到r7寄存器

ret

Write_Cmd_Pkt: nop ;寫(xiě)6字命令包子程序

;寫(xiě)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

;//類(lèi)似的寫(xiě)高字節到16位SRAM

……

;再將16bit從16位SRAM中一次寫(xiě)入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(status0x80); //不忙時(shí)才可寫(xiě)入

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

P1=SRAM32;

status=Read_Status_Reg(drv); //讀取返回的狀態(tài)

if(status0x01) {

rqsense(); //ATAPI Command

}

}/*End of send_cue_sh */

  基于非IDE專(zhuān)用接口芯片的自主型是對目前光盤(pán)復制市場(chǎng)的有益補充。其設計要求有較高的單片機、DMA傳輸以及CPLD等硬件知識和對CD、CDWO格式以及對ATAPI整個(gè)命令的了解。


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>