《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA與USB技術在紡織品數字印刷機系統中的應用
FPGA與USB技術在紡織品數字印刷機系統中的應用
來源:微型機與應用2011年第8期
張 平, 劉 晉, 靳祥陸
(遼寧師范大學 計算機與信息技術學院,遼寧 大連 116081)
摘要: 介紹了紡織品數字印刷機的設計概況以及USB控制器CY7C68013A的特性,闡述了通過Verilog HDL語言設計FPGA對 USB 控制器的訪問控制操作、USB控制器固件程序設計、USB驅動程序設計及PC端的應用程序設計。測試結果表明, FPGA通過USB接口實現了高速可靠的數據傳輸。
Abstract:
Key words :

摘   要: 介紹了紡織品數字印刷機的設計概況以及USB控制器CY7C68013A的特性,闡述了通過Verilog HDL語言設計FPGA對 USB 控制器的訪問控制操作、USB控制器固件程序設計、USB驅動程序設計及PC端的應用程序設計。測試結果表明, FPGA通過USB接口實現了高速可靠的數據傳輸。
關鍵詞: FPGA; USB2.0; CY7C68013A; 紡織品數字印刷機

    工業化紡織品數字印刷機系統分為印刷機和上位主控PC機兩部分, 紡織品印刷機不是一套獨立的系統,是接收上位主控PC機的指令和圖像數據, 依據指令和圖像數據完成印刷動作并將自身工作狀態反饋給上位主控PC 機的設備。接口部分是實現印刷機中的前端控制器與上位主控PC 機之間通信的橋梁。
  紡織品數字噴墨印刷機在實時工業現場,要求達到較高的傳輸速度,傳統的數字噴墨式印刷機與主機的通信主要通過主機主板提供的串行接口、并行接口或通過接口卡來實現,因其傳輸速度較低已不能滿足工業生產過程高速化的需求。USB技術很好地解決了上述問題,雖然最近發布的USB3.0協議理論上可達到5 Gb/s的極限傳輸速度,但因目前集成USB3.0的微處理器仍處在實驗測試階段,有待全面優化后發布市場。因此支持USB2.0協議的微處理芯片依然是工業高速印染設備中所選擇的主要通信微處理器。
  FPGA是一種現場可編程門陣列電子集成器件,由于其集成度高,用中小規模集成電路實現的幾大塊印刷電路板縮小至一兩片超大規模集成電路,不僅使控制系統的體積大為縮小,而且系統的可靠性得到大大提高。 FPGA的可編程性還可以使紡織品數字印刷機控制系統的設計、調試、生產和維護更加靈活方便。隨著大規??删幊踢壿嬈骷?FPGA的飛速發展,FPGA器件可以在這樣的運動控制系統中發揮優越的性能和較大的作用。它作為紡織品數字印刷機控制系統的輔助電路,可代替許多傳統的邏輯電路 ,簡化系統設計,并且可提高系統的可靠性,減小電路板體積,使產品小型化,同時也有利于保護知識產權[1]。如何優化USB2.0設備的傳輸性能,突破速度瓶頸,最大限度地提高傳輸速度,是印刷機設計中急需解決的問題。 本文設計了基于USB2.0的高速工業化紡織品數字噴墨印刷機數據傳輸系統,進而研究FPGA在印刷機系統中的設計優化以及實現USB2.0接口數據傳輸速度的全面提升的方法。
1 系統設計
  針對紡織品印刷機系統的特點,本系統可實現由一臺PC機控制運行,采用IJA模式噴繪機噴頭,每噴頭510孔,180 dpi。為了提高噴繪速度,采用分組噴頭,每組6色或者8色,共3~6組可選。支持打印1~4灰度等級的圖像。系統的主控制器由數據傳輸板與運動控制板組成,主要由S3C2440為處理器的ARM核心板構成,400 MHz的工作主頻,64 MB的SDRAM,16 MB的Flash,支持LCD接口,支持IIC接口,支持16 bit的外部總線尋址,支持DMA。主控制器接收來自PC的控制命令和圖像數據,檢測并控制系統中的各個運動環節,同步運動與噴頭的噴射,并將噴頭需要的圖像數據傳輸到噴頭板上。
  主控制器在聯機工作時要能與PC雙向通信,接收PC發來的圖像數據和各種配置信息以及控制命令,同時要將系統的狀態傳送給PC,可考慮采用USB2.0的接口協議。由于S3C2440不支持USB2.0協議,系統擴展CY7C68013A的USB擴展接口芯片,為緩沖該芯片與ARM總線,系統擴展了一片FPGA。由FPGA負責USB的接口緩沖、運動控制、位置、速度檢測、二級墨盒液位檢測、二級墨盒液泵控制、噴頭板的圖像數據格式轉換和傳輸、按噴頭位置及顏色順序點火噴頭的控制。
    本文主要討論PC主機與印刷機主控制板的數據通信。鑒于系統的需求,本通信模塊采用支持USB2.0高速數據傳輸的EZ-USB FX2LP單片機CY7C68013A作為接口芯片。采用FPGA EP1C6Q-240做為USB接口芯片的外部邏輯,完成FPGA與USB接口芯片之間的通信。當上位機發出控制信號,經接口芯片CY7C68013A解析后與FPGA進行通信。系統主控制器檢測到上位機發出的啟動數據傳輸、選擇數據格式等命令時,啟動數據傳輸,經由SIE解析的數據包通過USB接口芯片CY7C68013A以同步從屬FIFO的模式將數據經由CY7C68013A內部乒乓控制的FIFO緩存后快速存入FPGA內部的FIFO中,然后由主控制器ARM控制FPGA將主機通過USB傳遞的數據由噴頭控制器讀取數據,再分配給6色噴頭。系統結構框圖如圖1所示。

2 硬件設計
2.1 USB接口部分

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

 


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

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

    USB固件是運行在CY7C68013A中集成的微控制器上的程序,Cypress公司的EZ-USB FX2開發套件提供給用戶一個固件函數庫(Ezusb.lib)和固件框架(Framework),兩者均是基于KEIL C51開發的。在使用固件框架進行特定的固件開發時,固件框架已經實現了初始化、重枚舉、電源管理等功能。對用戶而言,只需要在固件架構的預留位置處添加代碼,就可以完成特定的功能[4]。
    在本系統的固件程序設計中,利用初始設置函數TD_Init()和描述符表文件Dscr.a51完成系統的初始化以及端點配置等工作。為了優化數據傳輸速度,配置雙端點組合的方式實現高速批量傳輸,設置相關特殊功能寄存器的初值以實現本系統的同步Slave FIFO的自動傳輸功能[5]。
    固件程序在接到上位機傳來的噴印請求命令時, 開啟一次USB傳輸。在ARM發起控制信號啟動小車運動 到達噴印位置時, ARM從FPGA內部FIFO讀取圖像數據并啟動噴頭點火信號, 完成一個像素點的噴印。然后繼續小車運動, 開始下一次噴印。當一次噴印結束,ARM將系統狀態經由CY7C68013A反饋給PC后, CY7C68013A結束本次數據傳輸。ARM主控程序命令小車減速、停止并啟動卷布動作。待卷布完成后, 一個動作流程結束,等待接收下一個命令。
3.2 驅動程序
    USB設備驅動程序負責建立起主機端和設備端的聯系。在Cypress公司提供的EZ-USB FX2LP 開發包里包含了CyUSB.sys文件,這是一個符合WDM規范支持 USB2.0的通用設備驅動程序,開發應用時只需對VID、PID等幾處修改即可滿足本系統的應用需求。
    通過對該驅動程序的CyUSB.inf文件進行客戶化設計并隨后采用Windows設備管理程序的做法,任何 USB設備均可與CyUSB.sys驅動程序相匹配。該驅動程序面向通用型用途的一個重要特點是其無需重新編譯即可進行客戶化設計,通過修改該驅動程序的.inf文件,能夠使其通告一個與眾不同的全局唯一標識符(GUID)。這將允許該驅動程序的不同副本在一臺PC上適度地共存。此外,該.inf文件還使得驅動程序能夠執行一連串預先記錄的控制端點傳送。這便允許根據與其相連設備的Vendor ID和 Product ID來對該驅動程序的啟動特性進行客戶化設計[6]。
3.3 應用程序
    主機與設備一般通過主從方式進行數據通信,主機應用程序向設備發送命令數據包,設備接收到命令數據后,接收主機傳送過來的數據。主機應用程序通過設備驅動程序完成對設備的控制和通信,采用 VC++6.0編寫。
    為了提高傳輸速度與效率,也為防止應用程序在讀寫數據時產生的“假死機 ”現象,應用程序采用多線程方法編寫,一般要把數據傳輸放在另外一個線程里,即單獨開啟一個批量傳輸線程作為區別于主線程的輔助線程。批量傳輸線程負責向設備寫入數據,并通過消息傳送機制與主線程通信。主線程負責界面管理、數據處理、向設備發送命令數據包以及啟動/停止批量傳輸線程。
    在線程循環中,主要調用BeginDataXfer()、WaitForXfer()、FinishDataXfer()3個函數。其中BeginDataXfer()為發起異步傳輸,并且立即返回。即發起此次需要傳輸字節后,并不會等待傳輸完畢,而是立即開始下一次字節數據的傳輸;WaitForXfer()為異步傳輸最大等待時間;執行FinishDataXfer()時才開始真正地將傳輸數據寫入設備存儲器中。另外,如果要傳輸非512 B整數倍的數據,而且不是一次傳輸完,則應在批量傳輸線程中利用SetXferSize()函數重新設置傳輸大小,否則會導致數據不同步。
    該系統經過測試,達到了預想的噴繪效果和速度要求。通過對 FPGA器件的使用,減少了分立元件的數量,同時簡化了系統設計,增強了系統的可編程性能,使系統易于維護和升級,并有利于技術保密和知識產權保護。該設計方案已應用于實際開發的項目中。
參考文獻
[1] 崔健,劉晉.基于FPGA嵌入式系統的研究與應用[J].微型機與應用,2010,3(2):8-10.
[2] CY7C68013A Datasheet. http://www.cypress.com.2005.
[3] 薛園園.USB應用開發技術大全[M]. 北京:人民郵電出版社,2007:428-481.
[4] 呂超,張玉霞,王立欣. USB接口高速數據傳輸的實現[J].計算機測量與控制,2009,17(5):1003-1012.
[5] 趙彥全. 基于FX2的數據源設計與USB2.0高速傳輸探討[D].北京:中國科學院研究生院,2006:52-64.
[6] 賽普拉斯半導體公司.用于Windows操作系統的通用USB. http://www.cypress.com.2005.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区二区三区久久 | 亚洲一区二区免费在线| 亚洲国产欧美在线人成| 激情久久婷婷| 国语自产精品视频在线看抢先版结局| 国产噜噜噜噜噜久久久久久久久 | 亚洲高清久久久| 久久成人精品无人区| 午夜精品影院| 午夜精品一区二区在线观看| 亚洲综合大片69999| 亚洲一区二区三区四区中文| 亚洲视频欧美视频| 一区二区三区黄色| 亚洲无人区一区| 亚洲综合另类| 欧美一区二区三区男人的天堂| 午夜视频一区二区| 欧美一站二站| 亚洲黄色大片| 日韩视频在线观看免费| 一区二区三区日韩欧美| 亚洲一区在线直播| 欧美一级精品大片| 久久精品夜色噜噜亚洲aⅴ| 久久久久一区二区| 久久午夜激情| 欧美国产一区视频在线观看 | 国产区日韩欧美| 国产视频亚洲| 在线精品在线| 亚洲激情在线| 在线亚洲成人| 亚洲欧美区自拍先锋| 欧美在线首页| 亚洲另类一区二区| 亚洲小少妇裸体bbw| 欧美一级欧美一级在线播放| 久久久久久久一区二区三区| 欧美电影专区| 欧美亚男人的天堂| 国产综合色产在线精品| 亚洲国产婷婷香蕉久久久久久| 一本色道久久综合亚洲精品不卡| 亚洲一区欧美激情| 亚洲国产精品综合| 在线视频你懂得一区| 香蕉久久一区二区不卡无毒影院 | 极品裸体白嫩激情啪啪国产精品| 亚洲成人资源网| 一道本一区二区| 欧美亚洲日本一区| 亚洲欧洲一区二区三区久久| 亚洲天堂成人在线观看| 久久久久国产精品www| 欧美极品色图| 国产欧美日韩在线观看| 在线播放一区| 亚洲网站在线| 亚洲片在线观看| 午夜日韩在线观看| 欧美护士18xxxxhd| 国产女人精品视频| 亚洲三级免费电影| 欧美一区二区三区在线看| 亚洲美女在线视频| 久久av一区二区| 欧美日韩国产一中文字不卡| 国产亚洲精品高潮| 亚洲精品一区二区三区不| 午夜宅男欧美| 在线视频一区观看| 噜噜噜91成人网| 国产精品青草综合久久久久99| 亚洲国产高清aⅴ视频| 亚洲综合日韩中文字幕v在线| 亚洲美女免费精品视频在线观看| 久久疯狂做爰流白浆xx| 欧美视频网址| 亚洲欧洲日本专区| 亚洲高清视频的网址| 欧美夜福利tv在线| 欧美日韩一区二区视频在线| 亚洲第一成人在线| 欧美一区二区三区视频在线观看| 亚洲午夜日本在线观看| 牛牛精品成人免费视频| 国产亚洲欧美aaaa| 亚洲一区综合| 亚洲一区二区三区777| 欧美激情一区二区三区高清视频| 韩国一区电影| 亚洲欧美日韩中文播放| 亚洲一区二区在线免费观看| 欧美精品播放| 亚洲国产成人高清精品| 欧美在线高清| 久久久av网站| 国产日韩欧美黄色| 亚洲尤物精选| 午夜精品久久久久久久99樱桃| 欧美日韩另类国产亚洲欧美一级| 亚洲国产精品黑人久久久| 亚洲国产成人在线视频| 久久九九精品99国产精品| 国产欧美日本一区视频| 亚洲视频你懂的| 亚洲欧美激情四射在线日| 欧美吻胸吃奶大尺度电影| 日韩视频一区二区三区| 日韩一级精品视频在线观看| 欧美国产日韩一区| 亚洲经典自拍| 99国产精品一区| 欧美精品一级| 99国产精品私拍| 亚洲一二三区在线观看| 欧美丝袜第一区| 亚洲天堂av在线免费观看| 亚洲影院免费| 国产精品免费区二区三区观看| 亚洲一区二区在线观看视频| 亚洲欧美中日韩| 国产九九视频一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美综合国产| 韩国v欧美v日本v亚洲v| 亚洲电影在线播放| 欧美成人精品一区二区| 91久久综合| 亚洲中字在线| 国产精品一香蕉国产线看观看| 午夜精品久久久久久久久久久| 久久精品国内一区二区三区| 国产一在线精品一区在线观看| 久久激情中文| 欧美jizzhd精品欧美巨大免费| 亚洲精品久久久久久久久| 一本大道久久a久久综合婷婷| 欧美色图天堂网| 亚洲欧美成人一区二区在线电影| 久久www成人_看片免费不卡| 伊人久久亚洲热| 一本久道久久综合狠狠爱| 国产精品免费区二区三区观看| 欧美一区午夜视频在线观看| 免费成人高清视频| 亚洲美女网站| 欧美一区二区三区四区夜夜大片| 韩日欧美一区二区| 亚洲美女黄色| 国产精品视频免费一区| 久久精品国产99| 欧美精品在线观看一区二区| 中文国产成人精品久久一| 欧美在线免费观看| 亚洲第一级黄色片| 亚洲一区黄色| 激情视频亚洲| 亚洲一区二区精品在线| 国产一区二区三区av电影| 亚洲免费av网站| 国产伦精品一区二区三区四区免费| 亚洲二区精品| 国产精品vvv| 亚洲高清免费视频| 欧美午夜一区二区福利视频| 欧美一区二区| 欧美日韩国产黄| 欧美一区二区三区在线视频| 欧美激情四色 | 一区二区三区精密机械公司| 久久久久免费观看| 99这里有精品| 久久久久五月天| a91a精品视频在线观看| 久久久久久午夜| 在线亚洲免费视频| 老司机久久99久久精品播放免费| 一本色道婷婷久久欧美| 久久躁狠狠躁夜夜爽| 一本综合久久| 欧美成人精品在线观看| 亚洲女同同性videoxma| 欧美成人午夜77777| 午夜在线a亚洲v天堂网2018| 欧美精品激情在线| 久久成人国产| 国产精品入口| 99热在这里有精品免费| 国产一区二区三区电影在线观看| 一区二区激情| 18成人免费观看视频| 久久国产免费| 亚洲无亚洲人成网站77777| 欧美韩日亚洲| 亚洲国产精品久久精品怡红院 | 亚洲一区二区三区免费在线观看| 牛夜精品久久久久久久99黑人 | 久久久欧美精品sm网站|