新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于非IDE專用接口芯片的自主型光盤復制機的系統設計

        基于非IDE專用接口芯片的自主型光盤復制機的系統設計

        作者: 時間:2012-02-08 來源:網絡 收藏

        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是兩種寫入方式的簡單過程。

          實際的軟件編程要比這些復雜。對于經常調用的過程,通常都用匯編語言編寫,例如:從寄存器中的讀寫(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 Interface 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(status0x80); //不忙時才可寫入

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

        P1=SRAM32;

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

        if(status0x01) {

        rqsense(); //ATAPI Command

        }

        }/*End of send_cue_sh */

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


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 色达县| 白水县| 凌云县| 南平市| 孟村| 横峰县| 永平县| 蕉岭县| 恩平市| 通海县| 红原县| 青阳县| 城市| 兴海县| 临猗县| 建宁县| 南充市| 宁津县| 合水县| 安乡县| 宝清县| 富锦市| 波密县| 义乌市| 伽师县| 池州市| 广元市| 怀远县| 日喀则市| 开封市| 丁青县| 潢川县| 昭觉县| 教育| 繁峙县| 南陵县| 休宁县| 当涂县| 普陀区| 吴桥县| 连南|