航芯方案分(fen)享 | 熱敏打(da)印(yin)機方案
隨著電子信息化(hua)、自動化(hua)程度(du)提高,條碼識別技術(shu)的發展(zhan),熱敏打印機的應(ying)用范圍(wei)也(ye)在(zai)不斷擴大,已(yi)從傳統(tong)的辦公和家庭(ting)傳真(zhen)文檔,快速向商業(ye)零售、工業(ye)制造業(ye)、交(jiao)通運輸業(ye)、物流、金融、彩票、醫療、教育等新興專(zhuan)業(ye)應(ying)用領域拓(tuo)展(zhan)。
本(ben)文將為大(da)家介紹基于上海航芯(xin)ACM32F403的熱敏打(da)印(yin)機設計(ji)方案。
打印原理
熱敏(min)(min)打(da)印機(ji)的(de)原理(li)是(shi),在介質(zhi)基底(di)上(shang)(shang)(通常是(shi)紙)覆上(shang)(shang)一層熱敏(min)(min)材料,將熱敏(min)(min)材料加(jia)熱一段(duan)時(shi)間(jian)后變成(cheng)深色(一般是(shi)黑色,也(ye)有藍色)。這種化學(xue)反應(ying)(ying)是(shi)在一定的(de)溫度(du)下進行的(de)。高溫會(hui)加(jia)速這種化學(xue)反應(ying)(ying)。當溫度(du)低(di)于60℃時(shi),熱敏(min)(min)材料需(xu)要經過相當長,甚至(zhi)長達幾年(nian)的(de)時(shi)間(jian)才能變成(cheng)深色;而(er)當溫度(du)為(wei)200℃時(shi),這種反應(ying)(ying)會(hui)在幾微秒內完(wan)成(cheng)。
熱(re)(re)敏(min)打(da)(da)印機(ji)有選擇(ze)地在(zai)(zai)熱(re)(re)敏(min)紙(zhi)(zhi)的確(que)定位置(zhi)上(shang)(shang)加(jia)熱(re)(re),由(you)此就產(chan)生了相(xiang)應(ying)的圖(tu)形。加(jia)熱(re)(re)是由(you)與(yu)(yu)熱(re)(re)敏(min)材料相(xiang)接(jie)觸的打(da)(da)印頭上(shang)(shang)的一(yi)個小電子加(jia)熱(re)(re)器(qi)提供的。加(jia)熱(re)(re)器(qi)排成方點或條的形式由(you)打(da)(da)印機(ji)進行邏輯(ji)控制,當被驅動時,就在(zai)(zai)熱(re)(re)敏(min)紙(zhi)(zhi)上(shang)(shang)產(chan)生一(yi)個與(yu)(yu)加(jia)熱(re)(re)元素(su)相(xiang)應(ying)的圖(tu)形。控制加(jia)熱(re)(re)元素(su)的同一(yi)邏輯(ji)電路(lu),同時也控制著進紙(zhi)(zhi),因(yin)而(er)能在(zai)(zai)整(zheng)個標簽或紙(zhi)(zhi)張上(shang)(shang)印出(chu)圖(tu)形。
圖1. 熱敏打印機(ji)的原理
使(shi)用(yong)芯片
本(ben)文描述的(de)熱(re)敏打印機方(fang)案,是基于上(shang)海航芯ACM32F403系列(lie)的(de)MCU進(jin)行設(she)計。
ACM32F403芯片采用高(gao)性能內(nei)核,支(zhi)(zhi)持(chi)(chi)(chi)Cortex-M33和Cortex-M4F指(zhi)令集。芯片內(nei)核支(zhi)(zhi)持(chi)(chi)(chi)一整(zheng)套DSP指(zhi)令用于數字(zi)信號(hao)處理(li),支(zhi)(zhi)持(chi)(chi)(chi)單精(jing)度FPU處理(li)浮點數據,同時(shi)還支(zhi)(zhi)持(chi)(chi)(chi)Memory Protection Unit(MPU)用于提升應(ying)用的安全性。
ACM32F403系(xi)列芯(xin)(xin)片(pian)最(zui)高(gao)工作(zuo)頻(pin)率可(ke)達180MHz,內嵌數學硬件(jian)加速(su),內置最(zui)大512KB的(de)eFlash和最(zui)大192KB SRAM。芯(xin)(xin)片(pian)集(ji)成(cheng)了(le)一個(ge)(ge)12位多(duo)(duo)通道2M sps高(gao)精(jing)度ADC、一個(ge)(ge)12位2通道的(de)DAC、多(duo)(duo)達3路運放、2路比較器(qi),集(ji)成(cheng)了(le)1個(ge)(ge)高(gao)級定(ding)(ding)時器(qi),6個(ge)(ge)通用16位定(ding)(ding)時器(qi),1個(ge)(ge)通用32位定(ding)(ding)時器(qi),2個(ge)(ge)基(ji)本16位定(ding)(ding)時器(qi),1個(ge)(ge)系(xi)統(tong)看門狗(gou),1個(ge)(ge)獨(du)立(li)看門狗(gou),一個(ge)(ge)低功(gong)耗的(de)實時鐘(RTC),內置多(duo)(duo)路UART、LPUART、SPI、I2C、I2S、CAN、全(quan)速(su)USB等豐富的(de)通訊外設(she),內建AES、CRC、TRNG等算(suan)法模塊。
方(fang)案特(te)點
?支持藍牙、USB、UART等多種通訊接口的(de)打印方式
?支(zhi)持無任務時自動進入斷電模式,續航時間更長(chang)
?支持打印高(gao)溫、缺紙和低(di)電量報警
?SPI FLASH存放字庫,支(zhi)持在(zai)線更(geng)新字庫,可(ke)調整字體、大小、粗細等
?支持(chi)MCU和(he)BLE芯片固件在線升級
設計方(fang)案
圖(tu)2. 基(ji)于ACM32F403熱敏打印機設計方案(an)框圖(tu)
功能(neng)介紹
1.1多接口打印流(liu)程
本(ben)方案可以通(tong)過UART、USB和(he)藍牙接口接收數據,并通(tong)過ACM32F403芯片(pian)的Timer,GPIO,ADC、SPI等模塊進行(xing)熱敏打(da)印機頭的打(da)印工(gong)作。
具體流程如(ru)下:
1)通過UART、USB和藍牙(ya)接(jie)口接(jie)收(shou)數據,數據需要通過GBK碼的(de)方式發送,并存(cun)儲到芯片內部;
2)將每個字的GBK碼(ma),通過SPI接口查詢(xun)到SPI FLASH上(shang)字庫中對應的數據,并傳輸到打印(yin)buffer中;
3)芯片(pian)通(tong)(tong)過(guo)Timer來控(kong)(kong)制步進電機運行的速(su)度和(he)打印(yin)(yin)(yin)機頭加熱的時間,通(tong)(tong)過(guo)GPIO來控(kong)(kong)制加熱使(shi)能和(he)控(kong)(kong)制步進電機的前進和(he)后退,ADC來檢測打印(yin)(yin)(yin)機溫度,最終完成打印(yin)(yin)(yin)工作。
圖3. 多接口打印流程(cheng)
1.2 字庫更新流程
本方案內部(bu)firmware實現(xian)了一個UART接收數據,SPI下(xia)(xia)載數據的系(xi)統,采用(yong)類似7816 T=1的數據格式進行傳輸,將字(zi)(zi)庫(ku)的BIN文件(jian)下(xia)(xia)載到SPI FLASH中,以實現(xian)字(zi)(zi)庫(ku)的下(xia)(xia)載和更(geng)新。因為片外(wai)SPI FLASH大小的原因,默(mo)認只支持24*24大小的字(zi)(zi)體打印,如果更(geng)換字(zi)(zi)體,需(xu)要重新下(xia)(xia)載字(zi)(zi)庫(ku)文件(jian)。
圖4. 字(zi)庫下載流(liu)程
本方案支持字(zi)庫的(de)更新,可以調節打印字(zi)體的(de)字(zi)體、大小,粗細等參數。字(zi)庫更新后需要修改firmware代碼,以實現不(bu)同字(zi)體的(de)打印。
圖5. 字(zi)體設置參(can)數
1.3 字庫調用流(liu)程
本方案中的SPI FLASH中能存放字體(ti)大(da)小為(wei)16*16或24*24的字庫(ku),并且有完整(zheng)的配套firmware代(dai)碼(ma)。
具(ju)體(ti)字庫調用流程如下:
1)從UART、USB或BLE接(jie)口接(jie)收(shou)需要打(da)印文字的GBK碼;
2)根據(ju)GBK碼計(ji)算出該文字(zi)在(zai)字(zi)庫中(zhong)的內碼;
3)通(tong)過SPI接(jie)口讀取字庫中內(nei)碼的數據(ju),數據(ju)長度根據(ju)字體大小來(lai)定;
4)將讀出的數據傳輸(shu)到(dao)打印機頭,完成打印。
圖6. 字庫(ku)調用流程
1.4 數據打印流(liu)程(cheng)
圖(tu)7. 數據打印軟件流程
圖8. 打印機芯和步進電機原理(li)圖
數據打印(yin)流程:
1)打印機(ji)開機(ji)流程;
2)將打印數據通(tong)過SPI接口(kou)傳輸到打印機緩存;
3)判斷是(shi)否(fou)是(shi)第一行,如果是(shi)打開電機(ji)Timer,并前(qian)進一步;
4)判斷是(shi)否是(shi)最后一行或者(zhe)是(shi)否缺紙,如果是(shi)進入打印機(ji)(ji)關機(ji)(ji)流程;
5)開始(shi)加熱(re)(re),打開加熱(re)(re)Timer,并等待加熱(re)(re)完成;
6)循環2)~5),直(zhi)到打(da)印完畢。
打印機開機流程:
1)將打(da)印機(ji)DST(選通脈沖)信(xin)號設(she)為(wei)低電平;
2)將打印(yin)機LATCH(數(shu)據鎖存)信號設為高電(dian)平(ping);
3)打開熱敏頭邏輯電源;
4)打(da)開熱敏頭加熱電源;
打(da)印機關(guan)機流程:
1)停止加熱Timer;
2)關閉熱敏頭加熱電源(yuan);
3)將打印(yin)機DST(選(xuan)通脈沖)信(xin)號設為(wei)低電平(ping);
4)將打印機LATCH(數據鎖存)信號設為(wei)高電平;
5)關閉熱敏頭邏(luo)輯電源(yuan)。
1.5 電源控(kong)制系統介紹
圖9. 電源控制系統介紹
1)供電(dian):系統采(cai)用單(dan)節鋰電(dian)池4.2V或者USB 5V供電(dian);
2)異常:當MCU內部程(cheng)序跑飛/死機(ji)時,首先(xian)可以按下(xia)SW1復(fu)位MCU,再(zai)不(bu)行可以按住正常開/關機(ji)鍵,再(zai)插入USB線使MCU復(fu)位;
3)開(kai)機:系統未(wei)通電(dian)時(shi),按住開(kai)/關機鍵(jian),此時(shi)MCU上電(dian),MCU開(kai)始從eFlash啟動,初(chu)始化(hua)成功后將(jiang)POWER_ON/OFF信號(hao)置(zhi)高,雙色燈中的綠燈點(dian)亮(liang)(InitPass_常(chang)亮(liang)、內部(bu)鋰電(dian)池充電(dian)滿(man)_常(chang)亮(liang)),若初(chu)始化(hua)失(shi)敗或檢測到異常(chang)/錯誤(wu)(比如電(dian)池電(dian)量低,外設初(chu)始化(hua)失(shi)敗、通信不正常(chang)等),將(jiang)雙色燈中的紅燈點(dian)亮(liang)(Err1_常(chang)亮(liang)、Err2_1s閃、Err3_快閃);
4)關(guan)機:系統通(tong)電時(shi),按(an)住開/關(guan)機鍵,Power_Check引腳會檢測(ce)到(dao)一個(ge)下降沿,并且接(jie)著(zhu)會有持(chi)續的低(di)電平,松開按(an)鍵后,再(zai)將電源(yuan)控(kong)制信號拉(la)低(di);
5)正(zheng)常關機的順序是:先滅燈(deng),然后斷電(dian)機驅動電(dian)源(yuan)和外設電(dian)源(yuan),再斷MCU電(dian)源(yuan);
6)PB1為開/關機按(an)(an)鍵(jian)與(yu)系(xi)統喚(huan)醒(xing)(xing)鍵(jian),SW1為系(xi)統喚(huan)醒(xing)(xing)按(an)(an)鍵(jian)與(yu)復位鍵(jian),通常情況,用戶按(an)(an)一下是要喚(huan)醒(xing)(xing)系(xi)統,長按(an)(an)是正常開關機;
7)沒有打印任(ren)務時(shi),需要關閉(bi)電(dian)機電(dian)源(yuan)(yuan)和外(wai)設電(dian)源(yuan)(yuan),來(lai)節(jie)省鋰電(dian)池(chi)電(dian)量;所以(yi)系(xi)統(tong)經(jing)過(guo)定(ding)時(shi)進入待(dai)機前,MCU關閉(bi)電(dian)機驅動電(dian)源(yuan)(yuan)/外(wai)設電(dian)源(yuan)(yuan)后,進入待(dai)機。
資源分享(xiang)
Gitee資源:
ACM32F303對比STM32F103差異說(shuo)明:
STM32F103標準外設庫SPL移植(zhi)說明(ming)(ACM32F403):
航芯MCU軟(ruan)件HAL庫使(shi)用說(shuo)明及(ji)STM32 API差異說(shuo)明:
如需(xu)銷售咨詢,請郵件至: