安徽商貿職業技術學院信息與人工智能學院 朱先遠
隨著無線接入技術的普及,越來越多的電子設備都增加了無線WIFi通訊模塊。在分布式網絡環境下的打印機節點之間的區域關聯性和功能關聯性較大,Http協議應用在物聯網上顯得過于龐大,基于此IETF的CORE工作組提出了一種基于REST架構的CoAP(Constrained Application Protocol)協議。本文針對分布式網絡打印機任務下發、數據可靠傳輸和網絡打印機硬件設計等問題,基于可靠組通訊技術CoAP協議設計了一款小巧可用于票券、標簽、條形碼等打印用途分布式網絡打印機軟硬件系統。系統采用STM32單片機作為主控芯片,與用戶端建立可靠組通訊,用戶端手機APP下發打印任務,通過WIFi模塊CC2541傳輸數據給單片機,實現數據通信。數據處理主要是把接收到的數據放入一定的緩沖區,最后通過STM32單片機的SPI口發送給打印機頭。打印控制主要是結合處理的數據及打印頭上的溫度等確定打印加熱時間,并準確控制步進電機走紙,完成一次打印。系統運行實例表明基于可靠組通訊技術的網絡打印機連接穩定可靠,可以正常完成數據傳輸、數據處理和實時打印。
基于可靠組通訊技術的網絡打印機采用STM32作為主控芯片,打印機硬件結構框圖如圖1所示,系統主要包括WIFi通訊模塊、步進電機驅動模塊、溫度檢測模塊、缺紙檢測模塊、過熱保護模塊組成,打印頭機芯選擇熱敏機芯。
在熱敏打印頭缺紙檢測方面選擇了一個光電檢測傳感器。熱敏打印頭機芯采用一個反射型光電通斷傳感器,當熱敏打印頭缺紙時,發光二極管發出的光無法被紙張反射,光敏三極管截止,此時PRN_PS端輸出低電平(低于0.54V);當熱敏打印頭紙張正常時,發光二極管發出的光被紙張反射到光敏三極管上而導通,此時PRN_PS端輸出高電平。因此,主控單片機STM32檢測PRN_PS引腳是高電平還是低電平,就可判斷熱敏打印頭是否缺紙。當缺紙時禁止啟動打印頭加熱。
熱敏打印技術的關鍵在于控制加熱元件。加熱是由熱敏材料相接觸的打印頭上的一個微小電子加熱器提供。加熱器排成方點的形式由打印機進行邏輯控制。當加熱器被驅動時,就在熱敏紙張上產生一個與加熱元素相應的圖形。控制加熱元素的同一邏輯電路,同時也控制著進紙,因而可在整個紙張上印出圖形、文字符號。
當熱敏打印頭工作時,其打印頭溫度較高,為了對溫度進行控制,需要定時檢測熱敏打印頭溫度,主控芯片通過熱敏打印頭溫度熱敏電阻實時檢測熱敏打印頭溫度,控制熱敏打印頭的加熱時間。

圖1 打印機硬件結構框圖

圖2 打印機工作流程圖
系統程序開發主要包括上位機無線打印機APP開發和下位機的打印機驅動程序開發。其中無線打印機APP需要完成APP與打印機的wifi連接,及用戶打印功能。下位機的打印機驅動程序主要是一方面負責與上位機建立穩定可靠的組通信,并根據用戶發出的打印指令進行打印任務等。
圖2打印機工作流程圖,上電系統初始化,然后打印機功能自檢,然后進入主體任務循環。主體任務循環流程如下:
(1)若串口1接收到數據,解析數據命令,若命令為字庫下載,則執行字下載程序;若命令為打印命令,則執行打印程序。進入打印程序中,系統會檢測打印機是否缺紙,如果缺紙則警告提醒,否則就控制熱敏頭打印。
(2)若串口1未接收到數據,則進入wifi連接處理進程。
主體任務一直在1和2之間根據串口接收情況循環切換執行。
系統整體軟件流程圖如圖3所示。
為了檢驗本文給出的分布式網絡打印機系統設計的有效性,在完成的Android端APP中進行如下操作:進入APP主界面,APP主界面如圖3所示,首先點擊右上角設置按鈕,進入打印機連接設置界面,打印機連接設置界面如圖4所示,搜索網絡中打印機設備,手動選擇與打印機進行連接;然后返回主界面點擊“打印文本”按鈕,然后輸入要打印的文本,傳輸給打印機實現文本打印。本文設計的打印機可以把手機發送來的信息完整、無誤的在熱敏打印機上打印出來。
結束語:本文圍繞可靠組通訊技術的分布式網絡打印機系統設計問題,給出了分布式網絡打印機系統的總體結構設計,并完成了對應的上位機和下位機的程序開發,實現了通過手機APP連接到wifi打印機進行打印。下一步,系統可以考慮APP打印任務多機協作完成中的打印任務的智能調度問題,實現打印任務在各個分布式網絡中保持負載均衡。

圖3 智能打印機APP主界面

圖4 打印機連接設置界面