摘 要: 選取Altera公司Cyclone II系列EP2C8Q208芯片作為新型高速數(shù)字噴墨印刷機控制系統(tǒng)的開發(fā)平臺,以μC/OS-II作為印刷機控制的實時系統(tǒng),通過Nios II 11.0 Eclipse,運用Nios II軟核處理器技術來生成μC/OS II實時操作系統(tǒng)模塊,通過系統(tǒng)編程來實現(xiàn)新型數(shù)字噴墨印刷機控制系統(tǒng)。通過軟硬件測試,驗證了該系統(tǒng)的穩(wěn)定性和可操作性。
關鍵詞: 噴繪機;FPGA;Nios II;狀態(tài)機;控制系統(tǒng)
隨著我國經濟的快速增長,加速了我國印刷業(yè)的發(fā)展。由于數(shù)字噴墨印刷發(fā)展平緩,尤其是價格上卻比傳統(tǒng)的噴墨印刷機高出很多,導致傳統(tǒng)的噴墨印刷機仍然占據(jù)相當大的市場。針對上述情況,對于新型數(shù)字噴墨印刷機的研究是十分必要的。
1 系統(tǒng)硬件設計
在設計中,采用Altera公司的Cyclone II系列[1]芯片EP2C8Q208為核心芯片,結合Nios II軟核來產生系統(tǒng)處理器,并利用可編程電路導出外圍電路。設計中采用SoPC Builder[2]來構建。這里選用μC/OS-II系統(tǒng)來調度整個任務,因為μC/OS-II是源代碼完全開源的,具有可剝奪實時內核,同時其執(zhí)行效率高,占用的空間小,系統(tǒng)中僅僅包含了任務調度、任務管理、時間管理、內存管理和任務間通信以及同步機制等功能。
如圖1所示,設計中以FPGA為核心,協(xié)同Nios II[3-4]軟核工作。首先通過CY7C68013的USB芯片,從上位機上或者SD卡中獲取待噴印的文件內容,并實時下發(fā)。通過NiosII軟核的控制與處理,輸送到數(shù)據(jù)傳輸/變換模塊中,通過同步模塊來實現(xiàn)文件內容的實時傳輸以及針對文件的內容,調整運動控制中的運動噴繪位置,來精確地實現(xiàn)運動控制,同時獲得反饋狀態(tài)信息以及同步輸送控制命令。在此期間,噴繪機的機械參數(shù)存放在24C02的存儲芯片中。通過LCD接口,結合GUI的界面以及按鍵接口,實現(xiàn)人機交互,在項目實現(xiàn)中,通過JTAG口以及UART串口進行調試。
Nios II軟核是由中央處理單元、配套組件以及外圍設備所組成的,并通過Avalon總線連接構成的處理器系統(tǒng)。這里通過Altera的SoPC Builder軟件來配置Nios II CPU,并利用自動形成的Avalon總線將這些模塊連接在一起。這里采用的RISC架構,同時根據(jù)實際的板級時鐘設置為50 MHz,設置了相應的地址信息。
2 系統(tǒng)軟件設計
2.1 總體任務框架
在整個軟件架構中,由于存在低速設備與高速設備的不匹配問題,所以需要嚴格劃分各個任務。在主控的調度下,首先通過高速輸入ISR獲得高速數(shù)據(jù),經過處理后,由高速數(shù)據(jù)輸出通道輸出,并實時噴印。針對命令以及一些機械參數(shù)、狀態(tài)等低速數(shù)據(jù),則通過低速數(shù)據(jù)輸入ISR的通道進入,并進行相應的處理。當進行離線文件噴印時,則可直接對SD卡操作,SD是通過SPI總線來與主控之間通信。必要時,一部分的參數(shù)也可以存放在EEPROM,這部分主要通過IIC來與主控通信,存放的內容則用于校準機器。另外通過LCD上的GUI,配合KEY來實現(xiàn)實時的人機交互。具體過程如圖2所示。
2.2 ISR任務間通信機制的設計
本設計中,通過以μC/OS-II系統(tǒng)為平臺,在其之上運行諸多任務,根據(jù)任務的特性,不同任務之間也采用不同的通信機制。ISR任務間通信機制的設計如圖3所示。
(1)按鍵消抖任務通過KEY_ISR的全局變量來識別出上報的鍵值,同時轉換成相應的命令,通過μC/OS-II的郵箱通信機制KEY_BOX傳送給主控任務。
(2)低速設備輸入的任務通過低速數(shù)據(jù)ISR的全局變量來控制,經過USB傳輸進來的數(shù)據(jù)同樣通過μC/OS-II的郵箱通信機制KEY_BOX,實現(xiàn)和主控任務的通信。
(3)EEPROM的讀寫是通過IIC的協(xié)議來操作的。首先會收到主控的EEP_REQ_BOX郵箱消息,通過這條請求中包含讀寫控制字,主控開始實現(xiàn)對EEPROM的讀寫,當主控讀寫完畢時,則通過EEP_ACK_BOX的郵箱消息通知其讀寫完畢,完全根據(jù)IIC的協(xié)議來進行操作。類似的方式也適用于SD的讀寫中。
?。?)低速設備由于是CPU來控制的,所以這里則只需要CPU關注速度匹配問題即可。
?。?)高速數(shù)據(jù)的傳輸根據(jù)方向分為輸入與輸出,在輸入上,由于是CPU來控制的,所以直接采用DMA的方式,通過一個DMA_TC的事件即可。而對于輸出而言,底層需要有塊設備的驅動支持,之后直接通過DMA的控制器向主控發(fā)送DMA_TC_SEM來實現(xiàn)傳輸,傳輸中的同步問題,則采用SY_O_SEM以及SY_I_SEM來完成。
3 系統(tǒng)總控狀態(tài)機[5]
系統(tǒng)的總體狀態(tài)圖如圖4所示,是系統(tǒng)在不同時刻的狀態(tài)切換過程。通過箭頭的走向,以及箭頭上方相應的條件,來切換狀態(tài)機的狀態(tài)。剛開始上電時,系統(tǒng)的主窗口狀態(tài)為00000,之后可以選用打印的方式,通過人機交互的方式,進而切換到不同的狀態(tài),從而靈活地調度與切換各個狀態(tài)。
本文針對噴墨印刷機的控制系統(tǒng)做了很大的改進,提高了打印的速度以及精度,線條也更加圓滑,曲線的鋸齒也有很大的提高,并能滿足大幅面的噴墨需求。但是還存在一定的問題,例如縱向馬達在速度控制上還不是很平穩(wěn)。傳輸速度上,USB2.0的速度還是比較慢,急切需要USB3.0的合入來解決大數(shù)據(jù)傳輸問題。噴墨的溫壓曲線部分還有待提高,從而確保圖像的美感度??傊?,該控制系統(tǒng)具有很好的應用前景。
參考文獻
[1] 崔桂梅,崔巍,龐海靜,等.基于SoPC的硬件直線插補控制器設計[J].微特電機,2011,39(5):56-57.
[2] 劉延飛.基于Alter FPGA/CPLD的電子系統(tǒng)設計及工程實踐[M].北京:人民郵電出版社,2009.
[3] 周潤景.基于Quartus II的FPGA/CPLD數(shù)字系統(tǒng)設計實例[M].北京:電子工業(yè)出版社,2007.
[4] 孟芳,于立佳.基于Nios II的SOPC系統(tǒng)設計分析[J].無線電通信技術,2012,28(1):73-76.
[5] 李春霞.有限狀態(tài)機的VHDL描述及綜合[J].計算機工程與應用,2005(6):111-113.
[6] 徐藝文,魏云龍.利用μC/OS任務調度算法實現(xiàn)嵌入式數(shù)據(jù)管理[J].單片機與嵌入式系統(tǒng),2011(5):25-27.