一、背景
來到公司的第一件事就是為了接手打印機項目,這里有必要對熱敏打印機做個簡單的總結,畢竟總結了才有進步的可能
1. 1 熱敏打印機簡介
熱敏打印機是一種通過對熱敏紙加熱之后顯示文字或圖案的打印機。
熱敏打印機具有速度快、噪聲低、可靠性高、字跡清晰、機頭小而輕等優(yōu)點,可滿足各種應用場景:快遞單打印機、POS機、收銀臺和打稱臺打票據(jù)等.
二、打印頭
打印機的速度以及打印寬度直接受打印頭的影響
2.1 電機加速表
為了更好地控制電機,需生成一個固定的電機加速時間表來控制電機的加減速
2.2 加熱時間表
通常加熱時間和加速時間關系是由電機每次步進的距離來決定加熱時間。
如果是兩步一個點行,就需要分4次加熱,第一步時,需要先加熱前半再馬上加熱后半,第二步時,需要先加熱前半再馬上加熱后半,這樣就完成了一整行的加熱。所以每次加熱的最大時間為當前步進時間的一半。
三、軟件
3.1 打印頭保護
在定時器中完成打印頭的一些監(jiān)控功能
3.1.1 電壓監(jiān)控
熱敏頭的供電電壓為24V,需要實時監(jiān)控供電電壓,電壓過高容易燒壞打印頭
3.1.2 溫度監(jiān)控
熱敏打印頭上一般有個熱敏電阻的溫度傳感器,用于檢測熱敏頭溫度,如果熱敏頭溫度過高也會燒壞打印頭
3.3 走紙控制
通過步進電機,2步一行(0.125mm)即每步0.0625mm來控制熱敏紙的卷動,使用固定的加速表開啟定時器來控制STEP信號
3.4 切紙控制
如果是連續(xù)式的熱敏紙就需要用直流電機控制切刀,切斷卷紙
3.5 字庫及圖像
有專門的字庫IC,通過SPI控制,外部FLASH用于存儲圖像以及固件等
3.6 加熱控制
使用固定的加熱時間表開啟定時器來控制片選信號
3.7 串口通信
通過USB虛擬串口,接收電腦發(fā)送的指令或者圖像來控制打印
3.8 多任務設計方案
3.8.1 USB虛擬串口,數(shù)據(jù)接收中斷(端點3)
3.8.2 走紙STEP控制中斷
3.8.3 加熱控制中斷
3.8.4 數(shù)據(jù)準備線程
3.8.5 數(shù)據(jù)打印線程
3.8.6 信號量分布
四、遇到的坑
4.1 打印不清晰或者打印二維碼圖片時有圖案被拉長,如正方形被拉成長方形
這是由于加熱時間太長導致,最佳的加熱時間是需要經(jīng)過一定次數(shù)的測試得到的,此項目是兩步一點行,所以最大的加熱時間是一個步進時間的一半再減去其他事物所需時間
4.2 文字變形,圖案變形等
可能是打印頭被弄臟了導致,或者打印頭壞了
4.3 標簽打印時,測試標簽長度不準確
由于間隙傳感器或者其他硬件的限制導致,即使算法再好也無濟于事,有的傳感器測出來的數(shù)值偏大,有的傳感器測出來的數(shù)值偏小,這就需要將電位器調節(jié)到最佳檔位
4.4 標簽打印時,停止的位置不準確
這是由于間隙傳感器所取的閾值不準,每次傳感器所讀回的值可能不太穩(wěn)定,導致經(jīng)過紙時有可能會被判斷為間隙導致走紙異常
4.5 步進電機異響或者堵轉
4.5.1 APM32替代STM32需要更改初始化時鐘,否則會出現(xiàn)時鐘初始化失敗,導致Delay函數(shù)不準確,從而導致步進時間有問題,最后造成電機堵轉的情況
4.5.2 步進驅動IC的靜音模式和高速模式
在靜音模式下,當速度達到某個檔位時,內部會出現(xiàn)報錯的情況,導致電機有異響堵轉,最后配置成高速模式即可解決問題
上面詳細的對熱敏打印機做了一些介紹,希望可以幫助你們更好的理解和使用。