基于FPGA的同步FIFO在大幅面高速彩色噴繪機噴頭數(shù)據(jù)傳輸中的應(yīng)用
隨著社會生產(chǎn)與研究設(shè)計對噴繪產(chǎn)品高速化的需求與日俱增,傳統(tǒng)的數(shù)字噴墨式印刷機已經(jīng)不能滿足這種需求。而大幅面高速彩色噴繪機無論是在數(shù)據(jù)的傳輸速度還是在打印的質(zhì)量上都超過了傳統(tǒng)的數(shù)字噴墨式印刷機。但是,大幅面高速彩色噴繪機的技術(shù)并不是十分成熟,還有許多的地方可以改進(jìn)。
近年來,隨著微電子設(shè)計技術(shù)與工藝的發(fā)展,數(shù)字集成電路從電子管、晶體管、中小規(guī)模集成電路、超大規(guī)模集成電路逐步發(fā)展到今天的專用集成電路(ASIC)。ASIC的出現(xiàn)降低了產(chǎn)品的生產(chǎn)成本,提高了系統(tǒng)的可靠性,縮小了電路的物理尺寸,推動了社會的數(shù)字化進(jìn)程[1]。數(shù)字電路設(shè)計當(dāng)中用FPGA來實現(xiàn)FIFO的功能可以更好地解決并行性和實時性問題,而且用FPGA實現(xiàn)的FIFO更容易修改和測試,可以降低成本和縮短開發(fā)周期。
1 像素數(shù)據(jù)傳輸定時分析
像素數(shù)據(jù)傳輸時序如圖1所示,像素數(shù)據(jù)傳輸在CLK的同步下進(jìn)行,每次傳送256×2 bit,使用256個CLK時鐘。在傳輸開始前和傳輸結(jié)束后,CLK應(yīng)該保持在高電平。每次傳輸完后,等待3個連續(xù)的像素時鐘(PIXELCLK),即點火信號,3個點火信號使存儲在噴頭中的像素數(shù)據(jù)完成點火輸出。第一個點火脈沖有數(shù)據(jù)鎖存的功能,在該脈沖過后,前次接收的數(shù)據(jù)完成鎖存,可以開始下一次的數(shù)據(jù)移位輸入工作,盡管此時上一次輸入的像素數(shù)據(jù)還沒有消耗完。因此,可實現(xiàn)數(shù)據(jù)傳輸和點火同時進(jìn)行。在第一個點火脈沖到來期間,像素數(shù)據(jù)和像素時鐘應(yīng)該保持不變。
2 像素數(shù)據(jù)格式
像素數(shù)據(jù)分為點火和不點火兩種,點火的(噴出的)像素其數(shù)據(jù)要求為D2D1D0(D6D5D4)=111,不點火的(不噴出的)像素要求D2D1D0(D6D5D4)=000。因此,實際傳輸時可采用兩條信號線,一條負(fù)責(zé)D2D1D0的像素,另一條負(fù)責(zé)D6D5D4的像素,而在數(shù)據(jù)進(jìn)入噴頭之前,將輸入的1信號展開成111,0信號展開成000即可。這樣可用兩條信號線實現(xiàn)6條信號線的功能。
每次傳送,一個噴頭所需要的數(shù)據(jù)為512 bit,其中,第0和第511 bit必須為0,實際完成510孔數(shù)據(jù)的傳送,但是數(shù)據(jù)傳送使用的是256個CLK時鐘,每時鐘傳送2 bit。分作兩條信號線傳輸,一條是D2D1D0負(fù)責(zé)256~511孔的數(shù)據(jù)傳送,D6D5D4負(fù)責(zé)0~255孔的數(shù)據(jù)傳送。這就要求有一種電路,先緩沖256~511孔的數(shù)據(jù),再將0~255孔的數(shù)據(jù)與之合并后同時傳送到噴頭。
如考慮圖像的存儲格式,噴頭應(yīng)該倒置,即510孔的位置在前,0孔的位置在后,即實際的像素數(shù)據(jù)的順序號與噴頭的孔號相反,噴頭的像素數(shù)據(jù)如表1所示。
3 總體實現(xiàn)
3.1 噴頭接口模塊
噴頭接口模塊接收來自于上位機的打印圖像數(shù)據(jù),在噴頭數(shù)據(jù)時鐘clk的同步下,向噴頭送出噴頭數(shù)據(jù)。依據(jù)運動控制模塊傳出的當(dāng)前位置和自身存儲的打印位置,送出點火信號fire。
由于噴頭要求將0~255噴孔和256~511噴孔的數(shù)據(jù)同時送出,因此,噴頭接口應(yīng)該至少能存儲512個噴孔的數(shù)據(jù),每噴孔1 bit數(shù)據(jù),共64 B,32個半字(16 bit)。為保證實時性,這些數(shù)據(jù)應(yīng)該通過緩沖與上位機接口,最好的緩沖就是FIFO。其設(shè)計原理圖如圖2所示。
3.2 移位控制器
移位控制器負(fù)責(zé)從數(shù)據(jù)緩存FIFO1中讀出數(shù)據(jù),并按需要的順序裝入到FIFO2中,在FIFO2裝滿的同時讀取兩個數(shù)據(jù)緩存中的數(shù)據(jù)并進(jìn)行移位操作??刂破鬟\轉(zhuǎn)的另一個條件是上一個裝入-點火周期完成,因此必須在檢測到點火信號變?yōu)榈碗娖胶蟛拍苡|發(fā)。其設(shè)計ASM圖如圖3所示。
3.3 波形驗證
輸出控制器完成輸出數(shù)據(jù)的裝載和移位輸出的控制。具體要求是當(dāng)數(shù)據(jù)向數(shù)據(jù)緩存FIFO1裝載已經(jīng)完成并到達(dá)點火邊緣時,自動進(jìn)行256 bit數(shù)據(jù)的裝載和移位,達(dá)到0~511孔同時裝入數(shù)據(jù)的目的。然后等待點火信號,當(dāng)?shù)谝粋€點火信號過后,就可重復(fù)裝入輸出。其波形驗證如圖4所示。
隨著圖像逐步向大格式方向發(fā)展,無論研究還是生產(chǎn)都對上位機和打印機之間的數(shù)據(jù)傳輸速度要求越來越高。因此,不僅要利用FIFO作為緩沖來解決噴頭和上位機存在的像素數(shù)據(jù)方向相反的問題,而且要利用異步FIFO用不同時鐘驅(qū)動讀寫的特性,使其自動讀取USB芯片內(nèi)的數(shù)據(jù),從而大大提高數(shù)據(jù)傳輸速度,解決數(shù)據(jù)傳輸?shù)膶崟r性問題。該設(shè)計已經(jīng)應(yīng)用于實際開發(fā)項目中,并使大幅面高速彩色噴繪機的數(shù)據(jù)傳輸速率和圖像正確性得到了極大的改善。
評論