【摘要】本文介紹了一種基于USB(Universal Serial Bus)接口的計(jì)算機(jī)直接制版機(jī)數(shù)據(jù)接口卡的軟硬件設(shè)計(jì),包括硬件設(shè)計(jì),F(xiàn)PGA控制邏輯設(shè)計(jì)以及上位機(jī)發(fā)排軟件的設(shè)計(jì)。本接口卡以FPGA芯片為核心,通過USB2.0接口實(shí)現(xiàn)與PC端的通信,接收圖像數(shù)據(jù)并按照后端設(shè)備規(guī)定的時序輸出打印數(shù)據(jù)。經(jīng)測試,該板卡的性能穩(wěn)定,傳輸速度可達(dá)160Mb/s,滿足預(yù)期要求。
【關(guān)鍵詞】FPGA;USB;數(shù)據(jù)接口卡
1.引言
數(shù)據(jù)接口卡處于計(jì)算機(jī)端和輸出印刷設(shè)備之間,在印刷行業(yè)的設(shè)備中處于很重要位置[1]。多年來,CTP(computer-to-plate)設(shè)備使用的數(shù)據(jù)接口卡多數(shù)為PCI(Peripheral Computer Interface)發(fā)排卡。然而近10年來,隨著計(jì)算機(jī)硬件與軟件的不斷發(fā)展,以及設(shè)備使用過程中的經(jīng)驗(yàn),使用PCI接口卡具有很多缺點(diǎn),給企業(yè)的實(shí)際銷售或售后服務(wù)帶來很大的困擾,增加企業(yè)的成本:接口卡對計(jì)算機(jī)的主板有一定的要求、數(shù)據(jù)線太長容易產(chǎn)生與打印設(shè)備接觸不良的現(xiàn)象、卡與主板之間的驅(qū)動時有不兼容的現(xiàn)象。本設(shè)計(jì)根據(jù)實(shí)際需求,設(shè)計(jì)了一款通用性強(qiáng),穩(wěn)定性好的USB數(shù)據(jù)接口卡,滿足了企業(yè)的發(fā)展需求。
2.系統(tǒng)工作原理
CTP技術(shù)就是把計(jì)算機(jī)中的TIFF圖像中的數(shù)據(jù)信息通過掃描的方式打印到印版上,實(shí)現(xiàn)圖像文件的打印。
CTP主要由五部分構(gòu)成:光學(xué)模塊、電路模塊、數(shù)據(jù)接口卡、計(jì)算機(jī)主機(jī)以及機(jī)械模塊。數(shù)據(jù)接口卡在印刷流程中起到的是數(shù)據(jù)傳輸?shù)淖饔?,它是把上位機(jī)圖像數(shù)據(jù)傳輸給后端打印設(shè)備,打印設(shè)備收到數(shù)據(jù)后根據(jù)一定的時序?qū)崿F(xiàn)圖像的打印。由此可見,數(shù)據(jù)接口卡也可以說是計(jì)算機(jī)和印刷設(shè)備之間的橋梁,通常也稱之為發(fā)排卡。
圖1 系統(tǒng)硬件結(jié)構(gòu)示意圖
3.系統(tǒng)硬件設(shè)計(jì)
3.1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)總體的硬件結(jié)構(gòu)如圖1所示,主要包括FPGA主控芯片、USB控制芯片、USB2.0接口和SDRAM外掛存儲芯片,本文中的主控芯片采用Altera EP1C6Q240C8 FPGA芯片,USB芯片為Cypress公司的68013芯片,外掛的兩片SDRAM存儲器的型號為MT48LC16M16A2TG-75。
首先,上位機(jī)發(fā)送Tiff圖像文件到USB接口模塊,通過Cypress68013芯片將數(shù)據(jù)傳送給FPGA,F(xiàn)PGA接收到數(shù)據(jù)后將數(shù)據(jù)幀結(jié)構(gòu)進(jìn)行處理,然后把數(shù)據(jù)存儲在兩片SDRAM中,同時根據(jù)后端CTP設(shè)備提供的打板行同步和位同步信號,將存儲在SDRAM中的圖像數(shù)據(jù)讀出并輸出給CTP設(shè)備。在實(shí)際打板過程中,必須保證SDRAM中一直有數(shù)據(jù)且不會因數(shù)據(jù)過多而被覆蓋,系統(tǒng)設(shè)計(jì)中對兩篇SDRAM進(jìn)行乒乓操作,在讀其中一片的時候?qū)懥硗庖黄WC所讀的SDRAM中是一直有數(shù)據(jù)的。
3.2 FPGA邏輯設(shè)計(jì)
FPGA的硬件邏輯設(shè)計(jì)結(jié)構(gòu)主要分為五大模塊:數(shù)據(jù)幀有效及解析模塊、數(shù)據(jù)緩存模塊、SDRAM控制模塊、指令通信模塊和圖像打印模塊。
數(shù)據(jù)幀有效及解析模塊首先判斷收到的數(shù)據(jù)幀結(jié)構(gòu)是否有效,若是有效幀,則進(jìn)行數(shù)據(jù)幀的解析,提取出圖像數(shù)據(jù)。FPGA與USB的接口如圖2所示。
圖2 USB和FPGA接口示意圖
FPGA_ADR0和FPGA_ADR1為Cy68013芯片中FIFO的地址選擇,一共有4個通道,每個通道對應(yīng)一片F(xiàn)IFO,每片緩存的數(shù)據(jù)為1K;FLAGA、FLAGB、FLAGC、FLAGD表示各個通道中FIFO的空滿狀態(tài);PKTEND、SLRD、SLWR、SLOE表示通信的使能和方向信號,IFCLK為Cy68013的工作頻率。
圖3 SDRAM的工作流程圖
圖4 系統(tǒng)軟件流程圖
圖5 數(shù)據(jù)輸出示意圖
在數(shù)據(jù)幀有效模塊將數(shù)據(jù)信息解析出來后把數(shù)據(jù)存入緩存模塊中,緩存模塊分為前級緩存和后級緩存,緩存采用異步FIFO模塊,目的是為了解決不同時鐘域的問題。數(shù)據(jù)存儲完成后將寫入到SDRAM中,對于兩片SDRAM,一片寫,同時另一片讀,保證數(shù)據(jù)的連續(xù)性,當(dāng)數(shù)據(jù)從后級SDRAM中讀出時,同時寫入到后端的SDRAM中去。若一片SDRAM還在讀,二另一片SDRAM已經(jīng)寫滿,則通過上傳命令通道上傳指令通知上位機(jī)停止發(fā)送命令,存在后端FIFO中的數(shù)據(jù)根據(jù)后端打印設(shè)備的時序打印圖像數(shù)據(jù)。
SDRAM控制器的操作流程如圖3所示,首先延時200us,然后對所有L_BANK進(jìn)行預(yù)充電,接著刷新8個時鐘周期進(jìn)行模式寄存器的設(shè)置[2],設(shè)置完成后就可以對SDRAM進(jìn)行讀寫操作了,在本設(shè)計(jì)中,SDRAM設(shè)置為頁讀寫模式,即一次讀寫256個字。
4.系統(tǒng)軟件設(shè)計(jì)及測試結(jié)果
本系統(tǒng)軟件流程圖如圖4所示。
用SignalTap抓取的數(shù)據(jù)輸出圖如圖5所示。
5.結(jié)束語
聯(lián)機(jī)調(diào)試表明,本文設(shè)計(jì)的USB2.0發(fā)排卡在傳輸圖像文件時沒有數(shù)據(jù)錯誤或丟失的情況,圖像完整,速度也達(dá)到設(shè)計(jì)要求,此外,發(fā)排卡性能穩(wěn)定,對電腦配置要求不高,通用性較強(qiáng),可以替代原有的老式發(fā)排卡。
參考文獻(xiàn)
[1]蘇政偉,陳科明,馬琪.USB接制版機(jī)高速發(fā)排卡的設(shè)計(jì)與優(yōu)化[J].杭州電子科技大學(xué)大學(xué)學(xué)報(bào),2012,5:41-44.
[2]李衛(wèi),王杉,魏急波.SDRAM控制器的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J].電子工程師,2004,30(10):29-32.