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