《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 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亚洲国产精品_日韩亚洲一区二区
久久精品一区二区三区不卡| 亚洲午夜免费福利视频| 久久久久国产精品人| 日韩午夜在线电影| 日韩一级裸体免费视频| 国产一区二区三区av电影| 欧美日韩精品久久| 久久久蜜桃精品| 一区二区三区视频在线播放| 亚洲第一区在线观看| 一区二区三区高清不卡| 在线看日韩欧美| 欧美日韩伊人| 免费欧美在线视频| 久久久久国产精品www| 国产精品99久久99久久久二8| 亚洲欧美精品一区| 亚洲激情第一区| 国产婷婷色一区二区三区| 欧美日韩在线高清| 欧美好骚综合网| 久久亚洲综合网| 久久av红桃一区二区小说| 亚洲视频一二三| 日韩亚洲欧美中文三级| 亚洲福利视频三区| 先锋影音网一区二区| 亚洲视频一区在线| 日韩视频在线永久播放| 亚洲国产清纯| 永久免费视频成人| 国产专区综合网| 国产精品一区二区在线| 欧美色道久久88综合亚洲精品| 欧美成人精品不卡视频在线观看| 久久久久久久97| 欧美在线影院| 亚洲欧美成人综合| 亚洲日本国产| 国产亚洲成人一区| 亚洲一线二线三线久久久| 亚洲欧洲一区二区三区在线观看 | 久久精品视频导航| 欧美一区二区三区免费大片| 亚洲一区视频在线观看视频| 一区二区精品在线| 夜夜嗨av一区二区三区| 日韩视频一区二区三区在线播放| 亚洲精品久久久久久久久久久久| 亚洲精品日韩综合观看成人91| 亚洲激情在线观看| 亚洲精品九九| 99伊人成综合| 亚洲无限av看| 午夜精品久久久久久久99黑人| 亚洲一区二区三区欧美| 欧美日韩大陆在线| 欧美日韩免费观看一区三区| 欧美日韩色一区| 欧美日韩午夜在线视频| 欧美视频一区二区在线观看| 国产精品扒开腿爽爽爽视频| 欧美日韩蜜桃| 欧美午夜精品一区| 国产精品一区二区三区四区五区| 国产日韩欧美综合在线| 国产综合久久| 在线观看中文字幕亚洲| 一区二区高清视频| 久久激情综合网| 亚洲蜜桃精久久久久久久| 99在线|亚洲一区二区| 亚洲图色在线| 欧美一区激情| 久久综合色天天久久综合图片| 欧美成人精品在线| 欧美日韩亚洲激情| 国产欧美一区二区视频| 狠狠色伊人亚洲综合网站色| 91久久在线播放| 亚洲一区日韩在线| 亚洲一区二区av电影| 亚洲一区二区三区三| 亚洲福利视频一区| 一本综合久久| 欧美夜福利tv在线| 乱中年女人伦av一区二区| 欧美区二区三区| 国产精品主播| 国产亚洲一区二区三区在线观看 | 亚洲大片在线观看| 亚洲人www| 亚洲精品一区二区在线| 亚洲免费人成在线视频观看| 亚洲国产精品电影| 一区二区三区 在线观看视| 欧美亚洲一级片| 欧美成人情趣视频| 欧美黑人国产人伦爽爽爽| 国产精品久久久久久户外露出| 激情久久久久久| 亚洲精品久久久久中文字幕欢迎你| 亚洲一区二区三区免费观看| 亚洲国产精品视频一区| 亚洲看片免费| 欧美一区国产二区| 欧美日韩ab片| 国产一区二区三区免费在线观看| 亚洲人成网站在线播| 欧美亚洲在线观看| 日韩视频在线你懂得| 久久精品系列| 欧美日韩在线免费视频| 国产真实久久| 一二三区精品福利视频| 亚洲国产美女| 亚洲视频1区| 美女主播一区| 国产精品另类一区| 亚洲激情第一页| 欧美一区视频| 亚洲男人第一网站| 欧美伦理91i| 1000部精品久久久久久久久 | 羞羞答答国产精品www一本| 亚洲欧美视频一区| 国产精品高潮呻吟久久| 一区二区日韩欧美| 亚洲愉拍自拍另类高清精品| 欧美日韩一卡二卡| 日韩视频中文| 亚洲色诱最新| 欧美午夜欧美| 亚洲天天影视| 午夜一区不卡| 国产欧美在线播放| 久久er精品视频| 久久综合久久久| 亚洲国产精品成人综合色在线婷婷| 亚洲国产福利在线| 欧美www视频在线观看| 最新成人av网站| 亚洲午夜精品福利| 国产精品久久久久一区| 久久精品成人一区二区三区蜜臀| 国产精品私房写真福利视频| 午夜精品亚洲一区二区三区嫩草| 久久久999| 精品不卡视频| 亚洲精品色图| 欧美日韩一区二区三区免费| 亚洲一区二区三区777| 久久国产精品久久国产精品| 影院欧美亚洲| 一区二区三区偷拍| 国产精品青草久久| 欧美一区亚洲二区| 免费在线观看日韩欧美| 夜夜嗨av色一区二区不卡| 午夜激情综合网| 国内久久婷婷综合| 亚洲精品极品| 欧美亚洲第一区| 亚洲欧美日韩在线| 美女91精品| 亚洲精品中文在线| 午夜精品久久久久久99热软件| 国产一区二区三区视频在线观看| 亚洲日韩视频| 国产精品v欧美精品∨日韩| 欧美一区二区三区精品| 欧美激情一二三区| 亚洲永久免费观看| 久久免费精品视频| 亚洲肉体裸体xxxx137| 亚洲欧美一区二区三区极速播放| 国内精品写真在线观看| 中文av一区特黄| 国产一区二区中文| 99国产精品久久久久久久久久| 国产精品视频99| 亚洲国产精品久久91精品| 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美视频| 欧美国产日韩精品免费观看| 亚洲男人的天堂在线| 欧美激情导航| 亚洲综合不卡| 欧美极品色图| 欧美一级视频一区二区| 欧美日韩国产123| 欧美主播一区二区三区美女 久久精品人| 欧美精品18+| 久久gogo国模裸体人体| 欧美午夜宅男影院| 亚洲精品乱码久久久久久久久 | 99re视频这里只有精品| 国产精品久久久久久久浪潮网站| 亚洲国产一区二区三区高清| 国产精品日本一区二区|