<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è) > 嵌入式系統 > 設計應用 > FPGA與USB技術(shù)在紡織品數字印刷機系統中的應用

FPGA與USB技術(shù)在紡織品數字印刷機系統中的應用

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

摘 要: 介紹了的設計概況以及USB控制器的特性,闡述了通過(guò)Verilog HDL語(yǔ)言設計FPGA對 USB 控制器的訪(fǎng)問(wèn)控制操作、USB控制器固件程序設計、USB驅動(dòng)程序設計及PC端的應用程序設計。測試結果表明, FPGA通過(guò)USB接口實(shí)現了高速可靠的數據傳輸。
關(guān)鍵詞: FPGA; USB2.0; ;

工業(yè)化系統分為印刷機和上位主控PC機兩部分, 紡織品印刷機不是一套獨立的系統,是接收上位主控PC機的指令和圖像數據, 依據指令和圖像數據完成印刷動(dòng)作并將自身工作狀態(tài)反饋給上位主控PC 機的設備。接口部分是實(shí)現印刷機中的前端控制器與上位主控PC 機之間通信的橋梁。
  紡織品數字噴墨印刷機在實(shí)時(shí)工業(yè)現場(chǎng),要求達到較高的傳輸速度,傳統的數字噴墨式印刷機與主機的通信主要通過(guò)主機主板提供的串行接口、并行接口或通過(guò)接口卡來(lái)實(shí)現,因其傳輸速度較低已不能滿(mǎn)足工業(yè)生產(chǎn)過(guò)程高速化的需求。USB技術(shù)很好地解決了上述問(wèn)題,雖然最近發(fā)布的USB3.0協(xié)議理論上可達到5 Gb/s的極限傳輸速度,但因目前集成USB3.0的微處理器仍處在實(shí)驗測試階段,有待全面優(yōu)化后發(fā)布市場(chǎng)。因此支持USB2.0協(xié)議的微處理芯片依然是工業(yè)高速印染設備中所選擇的主要通信微處理器。
  FPGA是一種現場(chǎng)可編程門(mén)陣列電子集成器件,由于其集成度高,用中小規模集成電路實(shí)現的幾大塊印刷電路板縮小至一兩片超大規模集成電路,不僅使控制系統的體積大為縮小,而且系統的可靠性得到大大提高。 FPGA的可編程性還可以使紡織品數字印刷機控制系統的設計、調試、生產(chǎn)和維護更加靈活方便。隨著(zhù)大規??删幊踢壿嬈骷?FPGA的飛速發(fā)展,FPGA器件可以在這樣的運動(dòng)控制系統中發(fā)揮優(yōu)越的性能和較大的作用。它作為紡織品數字印刷機控制系統的輔助電路,可代替許多傳統的邏輯電路 ,簡(jiǎn)化系統設計,并且可提高系統的可靠性,減小電路板體積,使產(chǎn)品小型化,同時(shí)也有利于保護知識產(chǎn)權[1]。如何優(yōu)化USB2.0設備的傳輸性能,突破速度瓶頸,最大限度地提高傳輸速度,是印刷機設計中急需解決的問(wèn)題。 本文設計了基于USB2.0的高速工業(yè)化紡織品數字噴墨印刷機數據傳輸系統,進(jìn)而研究FPGA在印刷機系統中的設計優(yōu)化以及實(shí)現USB2.0接口數據傳輸速度的全面提升的方法。


1 系統設計
  針對紡織品印刷機系統的特點(diǎn),本系統可實(shí)現由一臺PC機控制運行,采用IJA模式噴繪機噴頭,每噴頭510孔,180 dpi。為了提高噴繪速度,采用分組噴頭,每組6色或者8色,共3~6組可選。支持打印1~4灰度等級的圖像。系統的主控制器由數據傳輸板與運動(dòng)控制板組成,主要由S3C2440為處理器的ARM核心板構成,400 MHz的工作主頻,64 MB的SDRAM,16 MB的Flash,支持LCD接口,支持IIC接口,支持16 bit的外部總線(xiàn)尋址,支持DMA。主控制器接收來(lái)自PC的控制命令和圖像數據,檢測并控制系統中的各個(gè)運動(dòng)環(huán)節,同步運動(dòng)與噴頭的噴射,并將噴頭需要的圖像數據傳輸到噴頭板上。
  主控制器在聯(lián)機工作時(shí)要能與PC雙向通信,接收PC發(fā)來(lái)的圖像數據和各種配置信息以及控制命令,同時(shí)要將系統的狀態(tài)傳送給PC,可考慮采用USB2.0的接口協(xié)議。由于S3C2440不支持USB2.0協(xié)議,系統擴展的USB擴展接口芯片,為緩沖該芯片與ARM總線(xiàn),系統擴展了一片FPGA。由FPGA負責USB的接口緩沖、運動(dòng)控制、位置、速度檢測、二級墨盒液位檢測、二級墨盒液泵控制、噴頭板的圖像數據格式轉換和傳輸、按噴頭位置及顏色順序點(diǎn)火噴頭的控制。
本文主要討論PC主機與印刷機主控制板的數據通信。鑒于系統的需求,本通信模塊采用支持USB2.0高速數據傳輸的EZ-USB FX2LP單片機CY7C68013A作為接口芯片。采用FPGA EP1C6Q-240做為USB接口芯片的外部邏輯,完成FPGA與USB接口芯片之間的通信。當上位機發(fā)出控制信號,經(jīng)接口芯片CY7C68013A解析后與FPGA進(jìn)行通信。系統主控制器檢測到上位機發(fā)出的啟動(dòng)數據傳輸、選擇數據格式等命令時(shí),啟動(dòng)數據傳輸,經(jīng)由SIE解析的數據包通過(guò)USB接口芯片CY7C68013A以同步從屬FIFO的模式將數據經(jīng)由CY7C68013A內部乒乓控制的FIFO緩存后快速存入FPGA內部的FIFO中,然后由主控制器ARM控制FPGA將主機通過(guò)USB傳遞的數據由噴頭控制器讀取數據,再分配給6色噴頭。系統結構框圖如圖1所示。

FPGA與USB技術(shù)在紡織品數字印刷機系統中的應用

2 硬件設計
2.1 USB接口部分

紡織品數字印刷機的噴印以行為單位,每行噴印過(guò)程中必須以恒定的速度噴印。在每行的行端,噴頭小車(chē)要進(jìn)行加減速和換向,要卷動(dòng)卷布輥進(jìn)布,以便進(jìn)行下一行的噴印。恒定速度的噴印必須有恒定的圖像數據傳輸率來(lái)保證。噴印速度要求越高,對圖像數據的傳輸速度要求也越高。在本通信系統中,選用CY7C68013A芯片,其采用的構架是EZ-USB FX2LP,是在 FX2 的基礎上改進(jìn)而成的一款 USB2.0 芯片,它集成了增強型的8051內核,并采用了低功耗設計,代表了業(yè)界的領(lǐng)先水平,是新一代符合USB2.0高速控制器的構架,完全兼容FX2[2]。


在PC與FX2LP的前端控制系統中,FX2LP的內置CPU負責接收上位PC機發(fā)來(lái)的命令對印刷機的運動(dòng)進(jìn)行操控, 并同步圖像數據, 圖像數據通過(guò)FPGA和ARM送到噴頭, 并在合適時(shí)機命令噴頭做一次點(diǎn)火動(dòng)作。如果用傳統的方法, 由FX2LP的內置CPU直接尋址存儲由上位機發(fā)來(lái)的圖像數據的圖像存儲器, 并將圖像數據與運動(dòng)控制同步發(fā)送到FPGA, 然后FPGA配合ARM控制噴頭點(diǎn)火,這些動(dòng)作需要復雜的指令序列, 多次的存儲器訪(fǎng)問(wèn), 需要耗費大量的時(shí)間,要實(shí)現較高的數據傳輸率幾乎是不可能的。
 分析紡織品噴墨印刷機的工作機制發(fā)現, 前端控制系統不需要理解上位機傳來(lái)的圖像數據,它所要做的僅是對這些圖像數據的同步, 在適當的時(shí)機將圖像數據傳送到噴頭。因此, 圖像數據可以不通過(guò)FX2LP的內置CPU存取, 可直接在CPU的同步下送到噴頭。由于EZ-USB FX2提供了一種獨特的架構,EZ-USB的CPU可不在USB主機和外部邏輯的數據通道上。為了達到最大的數據帶寬,EZ-USB將USB主機和外部邏輯直接連接,從而將CPU旁路掉,使USB接口和外部應用環(huán)境直接共享FIFO,而微處理器可不參與數據傳輸[4],此時(shí)無(wú)需執行USB接口芯片內部8051固件程序便可直接實(shí)現端點(diǎn)FIFO與外部的數據交換,這種被稱(chēng)為“量子FIFO”的處理構架,很好地解決了普通微處理器轉發(fā)方式造成的帶寬瓶頸[3]。
通過(guò)以上的分析, 系統采用了一種將圖像數據旁路的方法。用CY7C68013A內部共享的4 K端點(diǎn)FIFO作為圖像暫時(shí)的存儲器。FIFO存儲器的輸入端點(diǎn)直接接收USB主機端的圖像像素數據。FIFO存儲器的輸出端點(diǎn)數據由FPGA同步讀取, 讀取的數據經(jīng)過(guò)ARM的控制指令和硬件通道發(fā)送到噴頭。因而圖像數據的傳輸速度不再與EZ-USB的CPU的存儲器尋址周期緊密相關(guān),從而利用這種旁路的快速通路實(shí)現PC 機與噴頭之間的高速數據傳輸。FIFO 的作用也表現為在高速的USB傳輸與中速連續的噴印需求之間建立一個(gè)緩沖。


2.2 FPGA橋接部分
由于選用CY7C68013A芯片作為USB2.0接口芯片,而該芯片的接口頻率與系統主控制器的總線(xiàn)時(shí)序不同,不能直接將該芯片與主控制器總線(xiàn)連接,所以考慮用FPGA作為橋接,這樣就需要該芯片與FPGA內部的總線(xiàn)進(jìn)行接口,考慮數據傳輸速率的不同,同時(shí)在FPGA內部建立USB的數據緩沖區,該緩沖區由FIFO構成,完成與主控制器的信息交換。同時(shí),FPGA作為Slave FIFO模式的外部控制邏輯,提供USB的片選、寫(xiě)數據時(shí)鐘和端點(diǎn)選擇等信號,實(shí)現對數據讀寫(xiě)的控制,橋接電路的接口圖如圖2所示。

FPGA與USB技術(shù)在紡織品數字印刷機系統中的應用

(1)與USB芯片的接口
FPGA內部總線(xiàn)是同步32 bit總線(xiàn),總線(xiàn)信號包括11位地址線(xiàn)addr、32 bit數據輸入data_i、32 bit數據輸出data_o、寫(xiě)控制輸入we、總線(xiàn)周期信號cyc、鎖存信號stb、響應信號輸出ack,以及系統時(shí)鐘信號clk和系統復位信號rst、字節選擇信號sel。
(2)FIFO的選擇與建立
由于FIFO的兩端要以不同的速率操作,因此采用的FIFO以不同的時(shí)鐘工作,寫(xiě)入以USB_IFCLK為同步時(shí)鐘,讀出以系統時(shí)鐘clk_i為同步時(shí)鐘。寫(xiě)入請求線(xiàn)SLRD與寫(xiě)入時(shí)鐘同步,當FIFO沒(méi)有滿(mǎn)且USB芯片非空時(shí),始終產(chǎn)生寫(xiě)入請求。這樣保證FIFO自動(dòng)將USB芯片內的數據讀出,減少軟件判斷的負擔。
由于采用不同時(shí)鐘的FIFO模塊不能自動(dòng)產(chǎn)生接近滿(mǎn)和接近空信號,故使用一個(gè)半滿(mǎn)信號,該信號由讀使用字rdusedw的最高位獲得。這樣只要適當選擇FIFO的容量,就可由ARM判斷半滿(mǎn)信號,一旦有半滿(mǎn)信號,ARM就可不再判斷,連讀讀出FIFO中一半容量的數據??紤]噴頭每次噴射需要至少1 KB的數據,故選擇FIFO至少為16 bit,2 KB的容量。當ARM檢測到FIFO沒(méi)有達到半滿(mǎn)時(shí),如果FIFO沒(méi)空,仍然可以讀出數據,只是這時(shí)每讀出一個(gè)字就必須檢測一下FIFO是否為空,讀出的速率不可能達到很高。


3 軟件設計
3.1 USB固件程序

USB固件是運行在CY7C68013A中集成的微控制器上的程序,Cypress公司的EZ-USB FX2開(kāi)發(fā)套件提供給用戶(hù)一個(gè)固件函數庫(Ezusb.lib)和固件框架(Framework),兩者均是基于KEIL C51開(kāi)發(fā)的。在使用固件框架進(jìn)行特定的固件開(kāi)發(fā)時(shí),固件框架已經(jīng)實(shí)現了初始化、重枚舉、電源管理等功能。對用戶(hù)而言,只需要在固件架構的預留位置處添加代碼,就可以完成特定的功能[4]。
在本系統的固件程序設計中,利用初始設置函數TD_Init()和描述符表文件Dscr.a51完成系統的初始化以及端點(diǎn)配置等工作。為了優(yōu)化數據傳輸速度,配置雙端點(diǎn)組合的方式實(shí)現高速批量傳輸,設置相關(guān)特殊功能寄存器的初值以實(shí)現本系統的同步Slave FIFO的自動(dòng)傳輸功能[5]。
固件程序在接到上位機傳來(lái)的噴印請求命令時(shí), 開(kāi)啟一次USB傳輸。在A(yíng)RM發(fā)起控制信號啟動(dòng)小車(chē)運動(dòng) 到達噴印位置時(shí), ARM從FPGA內部FIFO讀取圖像數據并啟動(dòng)噴頭點(diǎn)火信號, 完成一個(gè)像素點(diǎn)的噴印。然后繼續小車(chē)運動(dòng), 開(kāi)始下一次噴印。當一次噴印結束,ARM將系統狀態(tài)經(jīng)由CY7C68013A反饋給PC后, CY7C68013A結束本次數據傳輸。ARM主控程序命令小車(chē)減速、停止并啟動(dòng)卷布動(dòng)作。待卷布完成后, 一個(gè)動(dòng)作流程結束,等待接收下一個(gè)命令。


3.2 驅動(dòng)程序
USB設備驅動(dòng)程序負責建立起主機端和設備端的聯(lián)系。在Cypress公司提供的EZ-USB FX2LP 開(kāi)發(fā)包里包含了CyUSB.sys文件,這是一個(gè)符合WDM規范支持 USB2.0的通用設備驅動(dòng)程序,開(kāi)發(fā)應用時(shí)只需對VID、PID等幾處修改即可滿(mǎn)足本系統的應用需求。
通過(guò)對該驅動(dòng)程序的CyUSB.inf文件進(jìn)行客戶(hù)化設計并隨后采用Windows設備管理程序的做法,任何 USB設備均可與CyUSB.sys驅動(dòng)程序相匹配。該驅動(dòng)程序面向通用型用途的一個(gè)重要特點(diǎn)是其無(wú)需重新編譯即可進(jìn)行客戶(hù)化設計,通過(guò)修改該驅動(dòng)程序的.inf文件,能夠使其通告一個(gè)與眾不同的全局唯一標識符(GUID)。這將允許該驅動(dòng)程序的不同副本在一臺PC上適度地共存。此外,該.inf文件還使得驅動(dòng)程序能夠執行一連串預先記錄的控制端點(diǎn)傳送。這便允許根據與其相連設備的Vendor ID和 Product ID來(lái)對該驅動(dòng)程序的啟動(dòng)特性進(jìn)行客戶(hù)化設計[6]。


3.3 應用程序
主機與設備一般通過(guò)主從方式進(jìn)行數據通信,主機應用程序向設備發(fā)送命令數據包,設備接收到命令數據后,接收主機傳送過(guò)來(lái)的數據。主機應用程序通過(guò)設備驅動(dòng)程序完成對設備的控制和通信,采用 VC++6.0編寫(xiě)。
為了提高傳輸速度與效率,也為防止應用程序在讀寫(xiě)數據時(shí)產(chǎn)生的“假死機 ”現象,應用程序采用多線(xiàn)程方法編寫(xiě),一般要把數據傳輸放在另外一個(gè)線(xiàn)程里,即單獨開(kāi)啟一個(gè)批量傳輸線(xiàn)程作為區別于主線(xiàn)程的輔助線(xiàn)程。批量傳輸線(xiàn)程負責向設備寫(xiě)入數據,并通過(guò)消息傳送機制與主線(xiàn)程通信。主線(xiàn)程負責界面管理、數據處理、向設備發(fā)送命令數據包以及啟動(dòng)/停止批量傳輸線(xiàn)程。
在線(xiàn)程循環(huán)中,主要調用BeginDataXfer()、WaitForXfer()、FinishDataXfer()3個(gè)函數。其中BeginDataXfer()為發(fā)起異步傳輸,并且立即返回。即發(fā)起此次需要傳輸字節后,并不會(huì )等待傳輸完畢,而是立即開(kāi)始下一次字節數據的傳輸;WaitForXfer()為異步傳輸最大等待時(shí)間;執行FinishDataXfer()時(shí)才開(kāi)始真正地將傳輸數據寫(xiě)入設備存儲器中。另外,如果要傳輸非512 B整數倍的數據,而且不是一次傳輸完,則應在批量傳輸線(xiàn)程中利用SetXferSize()函數重新設置傳輸大小,否則會(huì )導致數據不同步。
該系統經(jīng)過(guò)測試,達到了預想的噴繪效果和速度要求。通過(guò)對 FPGA器件的使用,減少了分立元件的數量,同時(shí)簡(jiǎn)化了系統設計,增強了系統的可編程性能,使系統易于維護和升級,并有利于技術(shù)保密和知識產(chǎn)權保護。該設計方案已應用于實(shí)際開(kāi)發(fā)的項目中。

pid控制相關(guān)文章:pid控制原理


fpga相關(guān)文章:fpga是什么


pid控制器相關(guān)文章:pid控制器原理


存儲器相關(guān)文章:存儲器原理




評論


技術(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>