《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 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亚洲国产精品_日韩亚洲一区二区
午夜免费日韩视频| 亚洲精品黄网在线观看| 在线免费高清一区二区三区| 国产精品午夜在线| 国产精品成人观看视频免费 | 欧美专区在线| 午夜在线电影亚洲一区| 亚洲尤物在线| 亚洲欧美日韩国产一区| 亚洲免费在线观看| 欧美一级淫片播放口| 午夜精品短视频| 午夜久久tv| 欧美一区二区三区在线看| 午夜天堂精品久久久久 | 欧美亚洲一区二区三区| 亚洲一卡二卡三卡四卡五卡| 亚洲综合精品四区| 先锋影音久久久| 欧美一级在线视频| 久久精品系列| 久久综合色8888| 另类图片国产| 欧美精品久久天天躁| 欧美日韩精品一区二区天天拍小说| 欧美日韩精品在线| 国产精品国产三级国产a| 国产精品综合不卡av| 国内外成人在线| 在线日韩精品视频| 亚洲美女精品成人在线视频| 一区二区免费在线播放| 亚洲综合日韩在线| 久久成人免费电影| 亚洲免费激情| 亚洲欧美日本国产专区一区| 久久精品2019中文字幕| 久久婷婷国产麻豆91天堂| 欧美成人久久| 欧美午夜精品理论片a级按摩 | 亚洲欧美日韩天堂一区二区| 欧美在线综合| 亚洲另类自拍| 亚洲欧美bt| 久久裸体视频| 欧美日韩成人在线视频| 国产精品免费小视频| 国产亚洲女人久久久久毛片| 在线免费不卡视频| 一区二区日韩伦理片| 欧美在线观看www| 日韩视频免费| 欧美一级播放| 欧美www视频| 国产精品久久久999| 激情综合色综合久久综合| 亚洲精品综合| 欧美一级久久久| 一本大道久久a久久综合婷婷 | 欧美主播一区二区三区| 99精品视频一区| 欧美影院视频| 欧美激情性爽国产精品17p| 国产精品日本精品| 亚洲大片在线| 亚洲一区二区三区中文字幕 | 欧美日韩精品系列| 国内不卡一区二区三区| 亚洲精品黄网在线观看| 性欧美暴力猛交69hd| 妖精成人www高清在线观看| 午夜日韩av| 欧美精品成人| 国精品一区二区三区| 99这里只有久久精品视频| 久久精品日韩一区二区三区| 亚洲亚洲精品三区日韩精品在线视频| 久久久久亚洲综合| 国产精品久久中文| 亚洲国产精品久久久久秋霞不卡| 亚洲一区二区在线播放| 99精品视频免费| 美女精品自拍一二三四| 国产美女精品视频免费观看| 日韩亚洲精品在线| 亚洲日本激情| 久久综合九色综合欧美狠狠| 国产精品一区免费观看| 99亚洲伊人久久精品影院红桃| 91久久精品日日躁夜夜躁国产| 久久国产高清| 国产精品美女视频网站| 亚洲精品在线三区| 亚洲高清不卡av| 久久久久久久久伊人| 国产精品嫩草久久久久| 亚洲精选中文字幕| 日韩视频国产视频| 欧美1区2区视频| 一区二区在线观看av| 性欧美暴力猛交69hd| 午夜精品久久久久久久久久久久久 | 国内外成人免费视频| 亚洲欧美日韩国产一区二区三区| 在线视频欧美日韩精品| 欧美黄污视频| 亚洲国产欧美另类丝袜| 亚洲国产成人久久综合一区| 久久久久一区二区三区| 国产亚洲观看| 久久成人综合网| 久久国产欧美日韩精品| 国产婷婷成人久久av免费高清| 亚洲女人天堂成人av在线| 亚洲淫片在线视频| 欧美午夜一区二区| 一区二区三区日韩精品| 亚洲网址在线| 欧美亚洲第一页| 亚洲无线一线二线三线区别av| 亚洲一区日韩| 国产精品国产馆在线真实露脸| 在线综合欧美| 午夜国产一区| 国产深夜精品| 欧美在线视频在线播放完整版免费观看 | 欧美成人四级电影| **欧美日韩vr在线| 亚洲精品裸体| 欧美激情五月| 日韩视频在线免费| 亚洲一区欧美激情| 国产精品网站视频| 欧美一区二区性| 久久综合99re88久久爱| 在线精品观看| aⅴ色国产欧美| 欧美日韩一级黄| 亚洲一区在线观看免费观看电影高清| 午夜免费日韩视频| 国产午夜精品美女毛片视频| 久久riav二区三区| 欧美aaaaaaaa牛牛影院| 亚洲免费观看| 欧美一区二区三区视频在线 | 亚洲激情在线播放| 欧美另类女人| 亚洲免费一在线| 久久久久国产精品一区三寸| 黄色成人在线免费| 亚洲精品日韩在线观看| 欧美日韩在线视频首页| 午夜在线播放视频欧美| 免费成人高清视频| 在线天堂一区av电影| 欧美在线观看一区二区| 在线观看一区二区精品视频| 在线中文字幕不卡| 国产麻豆综合| 亚洲精品小视频在线观看| 欧美四级在线| 欧美影院成年免费版| 欧美精品粉嫩高潮一区二区| 亚洲色图在线视频| 久久全球大尺度高清视频| 亚洲日本久久| 欧美一区二区三区在线| 亚洲大胆美女视频| 午夜精彩国产免费不卡不顿大片| 激情综合视频| 亚洲在线视频一区| 影音先锋一区| 午夜精品久久久| 亚洲国产一区二区三区在线播 | 欧美一区二区成人6969| 欧美黄色影院| 欧美一级午夜免费电影| 欧美日韩国产精品专区 | 亚洲国产高清在线观看视频| 国产精品成人va在线观看| 亚洲国产精品久久人人爱蜜臀 | 亚洲小说欧美另类社区| 国产视频丨精品|在线观看| 亚洲国产免费看| 国产精品久久久久久妇女6080 | 久久精品国产亚洲一区二区| 亚洲人精品午夜| 久久精品国产亚洲5555| 亚洲精品免费观看| 久久狠狠一本精品综合网| 亚洲老板91色精品久久| 久久视频在线视频| 亚洲亚洲精品三区日韩精品在线视频 | 亚洲婷婷综合久久一本伊一区| 国产日韩欧美一区二区| 99视频+国产日韩欧美| 国产一区二区三区网站| 亚洲在线一区| 亚洲人成网站精品片在线观看| 久久久久9999亚洲精品|