數字拷貝機的FPGA設計
光盤拷貝機通常由一臺CD-ROM驅動器、數臺CD-R或CD-RW刻錄機和一個拷貝控制器組成。拷貝控制器首先從CD-ROM驅動器中讀出源盤數據,然后將數據流分多路傳輸到各個刻錄機,控制所有的刻錄機同步刻錄CD-R光盤。目前市場上的光盤拷貝機主要有聯機拷貝機、脫機拷貝機和自動拷貝機三種類型。
本文引用地址://tjguifa.cn/article/85404.htm(1)聯機拷貝機
聯機光盤拷貝機由一臺通用PC機和一個裝有SCSI接口刻錄機的塔式機箱組成,塔箱與PC機之間用SCSI電纜相連。聯機拷貝機使用PC機作為光盤拷貝機控制器,并利用專門的CD-R拷貝軟件將刻錄數據通過SCSI母線傳輸給各個刻錄機。由于聯機拷貝機采用軟件進行數據分配和多路傳輸,所以數據傳輸速度較低。為了避免產生緩存器欠載運行(Buffer Underrun)錯誤,一般將SCSI接口上連接的刻錄機數量限制在4臺以內。
(2)脫機拷貝機
脫機拷貝機是所有CD-R光盤拷貝機中使用最簡單的一種,也是使用最多的一種。脫機拷貝機使用專用的硬件控制器進行源盤讀取和多路數據傳輸。因此數據傳輸的速度很快,不易產生緩存器欠載運行錯誤,復制CD-R光盤的成功率高于聯機拷貝機。
(3)自動拷貝機
自動拷貝機是在脫機拷貝機的基礎上又增加了一套機械手裝置,用機械手自動將CD-R空盤放入刻錄機。完成拷貝后,機械手將已刻錄的CD-R光盤從刻錄機中取出,再放入新的CD-R空盤。有些自動拷貝機帶有光盤打印機,可直接在CD-R光盤背面打印用戶設計的盤標。
本設計應用Xilinx(R) SpartanTM-3 FPGA、CoolRunnerTM II CPLD和微處理器來開發ATA/IDE接口之間用于數據存儲的脫機數字拷貝機。
1 數字拷貝機系統硬件部分
1.1 系統組成和工作原理
數字拷貝機系統由FPGA、CPLD、4MB Flash、4MBDRAM、256MB SDRAM、微型處理器和操控按鈕、液晶顯示屏、IDE/ATA接口等組成。數字拷貝機系統框圖如圖1所示。其中FPGA和MPU組成控制單元, Flash為BOOT單元,SDRAM和DRAM為存儲交換單元,CPLD為加密單元,按鈕和顯示屏為人機接口單元。

系統通過各模塊之間的相互協作,完成數據的高速傳輸、自動拷貝功能。
(1)系統硬件連接好之后,系統上電(連接5V直流電源);
(2)系統自檢,CPU調用BIOS中自檢程序檢查各端口的連接狀態,并反饋給顯示器告知用戶。調用初始化程序,加載FPGA核;
(3)液晶顯示屏顯示操作菜單,通過鍵盤操作可以方便地實現自檢、拷貝、設置等功能。將液晶顯示器的數據線與CPLD相連,充分應用CPLD在系統中的加密程序,其目的是對顯示器所顯示的數據加密,從而在實際生產中保護知識產權和名譽權;
(4)系統中CPLD器件的主要作用是對FPGA核加密。當系統啟動時,原先存儲在Flash中的FPGA核經過CPLD的加密程序再加載到FPGA中,達到保護IP的目的;
(5)IP下載到FPGA后,在拷貝狀態時,I/O口向DMAC申請數據傳輸的DMA請求,DMAC經CPU同意后獲得總線控制權,并通知I/O,準備數據傳輸。DMAC將從I/O接收到的數據放到SDRAM存儲器暫時存儲;輸出數據時,DMAC從SDRAM中取出數據,放到DMAC的緩沖器,再發送到輸出I/O口,實現數據拷貝。
系統中DRAM的主要作用是擴展CPU內存。例如液晶顯示和數據交換等過程中的一些數據和資料需要在這里調用和存放,以加快系統速度。
1.2 系統組成模塊分析
整個電路可劃分成二個功能模塊。
(1)非數據拷貝期的CPU控制模塊:用于系統上電后,數據拷貝之前的系統初始化、系統配置檢測、菜單顯示和操作以及數據拷貝后數據的校驗、系統安全退出等。
(2)數據拷貝期的DMA數據傳輸模塊:用于數據拷貝期FPGA中內構的DMAC與CPU的通信、控制數據與內存之間的傳輸及FPGA與外設IDE/ATA接口之間的數據傳輸等。

1.2.1 非數據拷貝期的CPU控制模塊
非數據拷貝期的CPU控制模塊原理如圖2所示。
此功能模塊中的Flash是一個重要的環節,主要起BOOT UP的作用。4MB的Flash與CPU、FPGA、DRAM和CPLD均有聯系,而且Flash中存儲了很多與系統有重要關系的數據,相當于BIOS。其中有用于整個系統運行的主程序,有用于數據DMA模式傳輸的FPGA核(IP),還有一些令系統初始化的程序和自檢程序等。當系統上電時,在CPU的控制下啟動整個系統,Flash將其中的IP核經過CPLD加密,下載到FPGA中,為拷貝做好準備。同時,鍵盤的接口連接至CPU,由CPU控制按下按鍵后的操作;液晶顯示器的數據線與CPLD相連, CPLD將要顯示的某些信息作為密鑰進行加密,防止他人盜用。
相關推薦
-
| 2002-09-24
-
| 2011-06-27
-
-
| 2009-04-01
-
| 2007-12-13
-
| 2004-08-15
-
| 2005-02-05
-
| 2005-02-05
-
-
| 2009-07-13
-
-
| 2009-05-19
-
| 2005-02-05
-
| 2009-03-25
-
| 2007-12-11
-
| 2009-07-17
-
| 2008-06-18
-
| 2011-07-13
-
| 2007-12-14
-
| 2014-05-20
-
| 2007-12-13
-
| 2012-07-27
-
| 2007-12-13
-



評論