熱敏打印機(jī)及熱敏打印方法
【專(zhuān)利摘要】本發(fā)明涉及一種熱敏打印機(jī),包括步進(jìn)電機(jī)、熱敏元件、受步進(jìn)電機(jī)驅(qū)動(dòng)帶動(dòng)熱敏紙走紙的滾軸以及控制模塊,所述控制模塊包括:PWM定時(shí)控制器,用于產(chǎn)生PWM信號(hào)以控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng);串行總線控制器,用于控制串行總線將打印數(shù)據(jù)通過(guò)串行總線傳輸至熱敏元件;第一定時(shí)控制器,用于產(chǎn)生中斷以啟用串行總線傳輸所述打印數(shù)據(jù);第二定時(shí)控制器,用于控制所述熱敏元件的加熱時(shí)長(zhǎng)。本發(fā)明還涉及一種熱敏打印方法。本發(fā)明通過(guò)配置PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器對(duì)打印過(guò)程進(jìn)行控制,通過(guò)計(jì)算得出PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器的計(jì)數(shù)器值和比較值與打印速度和打印濃度的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)了打印速度和打印濃度可調(diào)的熱敏打印方式。
【專(zhuān)利說(shuō)明】
熱敏打印機(jī)及熱敏打印方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及印刷領(lǐng)域,特別是涉及一種熱敏打印機(jī)?!颈尘凹夹g(shù)】
[0002]熱敏打印儀的使用越來(lái)越廣泛,其具有打印速度慢、噪音低,打印清晰,使用方便的特點(diǎn)。
[0003]傳統(tǒng)的熱敏打印機(jī),打印速度不可任意調(diào)節(jié)(打印速度高噪聲就大、打印速度慢耗時(shí)間),打印濃度不可任意調(diào)節(jié)。且專(zhuān)用打印頭價(jià)格比較高。
【發(fā)明內(nèi)容】
[0004]基于此,有必要提供一種能夠通過(guò)軟件控制實(shí)現(xiàn)打印速度和打印濃度的調(diào)節(jié)的熱敏打印方法。
[0005]—種熱敏打印方法,包括下列步驟:讀取字庫(kù);申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分?jǐn)?shù)輸入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化;按照所需走紙速度設(shè)置好PWM定時(shí)控制器的預(yù)分頻值和分頻值,以及電機(jī)細(xì)分?jǐn)?shù);啟動(dòng)步進(jìn)電機(jī)走紙至指定位置;在PWM定時(shí)控制器的控制下輸出PWM信號(hào),時(shí)間到后觸發(fā)第一定時(shí)控制器的中斷;解析需要打印的文字信息,讀取字庫(kù)的相應(yīng)數(shù)據(jù)并轉(zhuǎn)換成打印格式數(shù)據(jù),通過(guò)串行總線將數(shù)據(jù)傳輸給熱敏元件;按照所需的打印濃度設(shè)置好第二定時(shí)控制器的預(yù)分頻值和分頻值;第二定時(shí)控制器啟動(dòng)使熱敏元件開(kāi)始加熱打印,時(shí)間到后觸發(fā)第二定時(shí)控制器的中斷,停止加熱。
[0006]在其中一個(gè)實(shí)施例中,所述按照所需走紙速度設(shè)置好PWM定時(shí)控制器的預(yù)分頻值和分頻值,以及電機(jī)細(xì)分?jǐn)?shù)的步驟中,走紙速度V = Pclk/prescalerO/ dividerO/TcntbO*subdividing/steps*rat*2 Jr R*l〇〇〇 毫米 / 秒,且要保證 V < subdividing*rat*2 Jr R/steps/ (Tmax+TimeS) *1000 毫米 / 秒;其中 Pclk 為外圍總線的一個(gè)時(shí)鐘周期,prescalerO為所述PWM定時(shí)控制器和第一定時(shí)控制器的預(yù)分頻值, dividerO為所述PWM定時(shí)控制器的分頻值,TcntbO為所述PWM定時(shí)控制器的計(jì)數(shù)器值, subdividing為電機(jī)細(xì)分?jǐn)?shù),rat為電機(jī)傳動(dòng)比,R為受步進(jìn)電機(jī)驅(qū)動(dòng)、并帶動(dòng)熱敏紙走紙的滾軸的半徑,steps為電機(jī)總步距,Tmax為熱敏元件加熱一列數(shù)據(jù)所允許的最長(zhǎng)時(shí)間, TimeS為所述串行總線傳輸一列數(shù)據(jù)所需時(shí)間。
[0007]在其中一個(gè)實(shí)施例中,所述按照所需的打印濃度設(shè)置好第二定時(shí)控制器的預(yù)分頻值和分頻值的步驟中,要保證Tmax*(Pclk/prescaler2/divider2)不大于所述第二定時(shí)控制器的計(jì)數(shù)器值除以比較值能夠取得的最大值;其中Tmax為熱敏元件加熱一列數(shù)據(jù)所允許的最長(zhǎng)時(shí)間,Pclk為外圍總線的一個(gè)時(shí)鐘周期,prescaler2為所述第二定時(shí)控制器的預(yù)分頻值,divider2為所述第二定時(shí)控制器的分頻值。
[0008]在其中一個(gè)實(shí)施例中,所述串行總線為串行外設(shè)接口總線。
[0009]在其中一個(gè)實(shí)施例中,所述讀取字庫(kù)的步驟之后,所述申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分?jǐn)?shù)輸入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化的步驟之前,還包括將讀取的字庫(kù)中的橫向取模數(shù)據(jù)轉(zhuǎn)換成縱向取模數(shù)據(jù)的步驟。
[0010]在其中一個(gè)實(shí)施例中,所述讀取字庫(kù)的步驟之后,所述申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分?jǐn)?shù)輸入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化的步驟之前,還包括將讀取的字庫(kù)中的字體重新生成字庫(kù)數(shù)組的步驟。
[0011]在其中一個(gè)實(shí)施例中,所述啟動(dòng)步進(jìn)電機(jī)走紙至指定位置的步驟中,通過(guò)光敏傳感器檢測(cè)是否接收到熱敏紙反射的光線,若未接收到則判定缺紙,中止打印。
[0012]還有必要提供一種熱敏打印機(jī)。
[0013]—種熱敏打印機(jī),包括步進(jìn)電機(jī)、熱敏元件、受步進(jìn)電機(jī)驅(qū)動(dòng)帶動(dòng)熱敏紙走紙的滾軸,以及控制模塊,所述控制模塊包括:PWM定時(shí)控制器,用于產(chǎn)生PWM信號(hào)以控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng);串行總線控制器,用于將打印數(shù)據(jù)通過(guò)串行總線傳輸至熱敏元件;第一定時(shí)控制器, 用于產(chǎn)生中斷以啟用串行總線傳輸所述打印數(shù)據(jù);第二定時(shí)控制器,用于調(diào)用中斷以中止熱敏元件的加熱,從而控制所述熱敏元件的加熱時(shí)長(zhǎng)。
[0014]在其中一個(gè)實(shí)施例中,還包括光敏傳感器,所述熱敏打印機(jī)在熱敏紙正常走紙位置的下方設(shè)置黑色的黑標(biāo)區(qū),所述光敏傳感器設(shè)置于所述黑標(biāo)區(qū)上方。
[0015]在其中一個(gè)實(shí)施例中,所述滾軸為棉性滾軸。
[0016]上述熱敏打印方法,通過(guò)配置PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器對(duì)打印過(guò)程進(jìn)行控制,通過(guò)計(jì)算得出PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器的計(jì)數(shù)器值和比較值與打印速度和打印濃度的對(duì)應(yīng)關(guān)系,再將這些對(duì)應(yīng)關(guān)系存入打印機(jī)的配置文件中。當(dāng)用戶(hù)在進(jìn)行打印設(shè)置時(shí),根據(jù)前述對(duì)應(yīng)關(guān)系列出簡(jiǎn)單的打印速度/濃度選項(xiàng)供用戶(hù)選擇,從而實(shí)現(xiàn)了打印速度和打印濃度可調(diào)的熱敏打印方式?!靖綀D說(shuō)明】
[0017]通過(guò)附圖中所示的本發(fā)明的優(yōu)選實(shí)施例的更具體說(shuō)明,本發(fā)明的上述及其它目的、特征和優(yōu)勢(shì)將變得更加清晰。在全部附圖中相同的附圖標(biāo)記指示相同的部分,且并未刻意按實(shí)際尺寸等比例縮放繪制附圖,重點(diǎn)在于示出本發(fā)明的主旨。
[0018]圖1是一實(shí)施例中熱敏打印方法流程圖;
[0019]圖2是另一實(shí)施例中熱敏打印方法流程圖。【具體實(shí)施方式】
[0020]為了便于理解本發(fā)明,下面將參照相關(guān)附圖對(duì)本發(fā)明進(jìn)行更全面的描述。附圖中給出了本發(fā)明的首選實(shí)施例。但是,本發(fā)明可以以許多不同的形式來(lái)實(shí)現(xiàn),并不限于本文所描述的實(shí)施例。相反地,提供這些實(shí)施例的目的是使對(duì)本發(fā)明的公開(kāi)內(nèi)容更加透徹全面。
[0021]除非另有定義,本文所使用的所有的技術(shù)和科學(xué)術(shù)語(yǔ)與屬于本發(fā)明的技術(shù)領(lǐng)域的技術(shù)人員通常理解的含義相同。本文中在本發(fā)明的說(shuō)明書(shū)中所使用的術(shù)語(yǔ)只是為了描述具體的實(shí)施例的目的,不是旨在于限制本發(fā)明。本文所使用的術(shù)語(yǔ)“及/或”包括一個(gè)或多個(gè)相關(guān)的所列項(xiàng)目的任意的和所有的組合。
[0022]圖1是一實(shí)施例中熱敏打印方法流程圖,包括下列步驟:
[0023]S110,讀取字庫(kù)。
[0024]以24X24點(diǎn)陣的中文字體作為打印字體進(jìn)行說(shuō)明,24X24的字體占用的存儲(chǔ)空間為24 + 8X24 = 72字節(jié),再加上2字節(jié)的索引總共74字節(jié),即每個(gè)中文字體占用的存儲(chǔ)空間為74字節(jié)。
[0025]S120,申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、 電機(jī)細(xì)分?jǐn)?shù)輸入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化。
[0026]在本實(shí)施例中,串行總線控制器為串行外設(shè)接口(SPI)控制器。在其他實(shí)施例中, 也可以為內(nèi)部整合電路(Inter-1ntegrated Circuit)控制器等,具體要看熱敏打印機(jī)采用哪種串行通訊總線。在本實(shí)施例中,采用步進(jìn)電機(jī)控制熱敏打印機(jī)走紙。
[0027]S130,按照所需走紙速度設(shè)置好PWM定時(shí)控制器的預(yù)分頻值和分頻值,以及電機(jī)細(xì)分?jǐn)?shù)。
[0028]下文中會(huì)介紹電機(jī)細(xì)分?jǐn)?shù)以及脈沖寬度調(diào)制(PWM)定時(shí)控制器的預(yù)分頻值和分頻值該如何取值??梢岳斫獾?,這些參數(shù)可以在進(jìn)行打印前就預(yù)先設(shè)置好,也可以在打印過(guò)程中進(jìn)行調(diào)整、重設(shè)。
[0029]S140,啟動(dòng)電機(jī)走紙至指定位置。
[0030]在本實(shí)施例中,在熱敏紙正常走紙位置的下方設(shè)置黑色的黑標(biāo)區(qū),在熱敏紙正常走紙時(shí),會(huì)將一部分光線進(jìn)行反射,在黑標(biāo)區(qū)上方設(shè)置光敏傳感器捕捉這一反射以判斷是否缺紙。當(dāng)缺紙時(shí),黑標(biāo)區(qū)上方無(wú)熱敏紙覆蓋,黑標(biāo)區(qū)會(huì)將光線吸收,故光敏傳感器接收不到紙張反射的光線,判定為缺紙。
[0031]在本實(shí)施例中,設(shè)置步進(jìn)電機(jī)速度(即打印速度)為正常走紙速度,啟動(dòng)電機(jī),檢查光敏傳感器信號(hào)。若是黑標(biāo)區(qū),則用默認(rèn)速度讓電機(jī)繼續(xù)走紙,直至光敏傳感器檢測(cè)到紙張到位后停下。若電機(jī)走紙超過(guò)3cm距離仍然沒(méi)有走出黑標(biāo)區(qū),則判定紙盤(pán)缺紙,中止打印。用戶(hù)給打印機(jī)加紙后再次啟動(dòng)打印機(jī),電機(jī)經(jīng)過(guò)一個(gè)黑標(biāo)后會(huì)檢測(cè)到紙張并停下。
[0032]S150,在PWM定時(shí)控制器的控制下輸出PWM信號(hào),時(shí)間到后觸發(fā)第一定時(shí)控制器的中斷。
[0033]PWM定時(shí)控制器啟動(dòng)/復(fù)位后開(kāi)始計(jì)時(shí),到達(dá)比較值后觸發(fā)中斷。
[0034]S160,解析需要打印的文字信息,讀取字庫(kù)的相應(yīng)數(shù)據(jù)并轉(zhuǎn)換成打印格式數(shù)據(jù),通過(guò)串行總線將數(shù)據(jù)傳輸給熱敏元件。
[0035]解析文字信息,通過(guò)文字索引碼值找到對(duì)應(yīng)的點(diǎn)陣數(shù)組位置,將數(shù)據(jù)取出填充至文字坐標(biāo)所在位置的緩沖區(qū)。按照這種方式一個(gè)個(gè)處理文字,直到一行文字處理完成。啟動(dòng)SPI控制器,通過(guò)SPI接口傳送數(shù)據(jù)至打印頭的熱敏元件直至傳輸完成。
[0036]S170,按照所需的打印濃度設(shè)置好第二定時(shí)控制器的預(yù)分頻值和分頻值。
[0037]可以理解的,這些參數(shù)可以在進(jìn)行打印前就預(yù)先設(shè)置好,也可以在打印過(guò)程中進(jìn)行調(diào)整、重設(shè)。
[0038]S180,第二定時(shí)控制器啟動(dòng)使熱敏元件開(kāi)始加熱打印,時(shí)間到后觸發(fā)第二定時(shí)控制器的中斷,停止加熱。
[0039]P第二定時(shí)控制器啟動(dòng)/復(fù)位后開(kāi)始計(jì)時(shí),到達(dá)比較值后觸發(fā)中斷。
[0040]循環(huán)執(zhí)行S160?S180的步驟,直至數(shù)據(jù)打印完成。通過(guò)調(diào)整PWM定時(shí)控制器輸出的PWM信號(hào)周期,第一定時(shí)控制器和第二定時(shí)控制器從開(kāi)始計(jì)時(shí)到觸發(fā)中斷的時(shí)長(zhǎng)(即比較值),步進(jìn)電機(jī)的走紙速度等參數(shù),就可以調(diào)整打印濃度和打印速度。具體介紹如下: [0041 ] 設(shè)電機(jī)的走紙速度為V,外圍總線(Advanced Peripheral Bus,APB)的一個(gè)時(shí)鐘周期為Pclk,PWM定時(shí)控制器timerO和第一定時(shí)控制器timerl的預(yù)分頻值為prescalerO, timerO分頻值為dividerO,timerO的計(jì)數(shù)器值為T(mén)cntbO,按照電機(jī)50 %占空比要求, timerO的比較值為T(mén)cntbO/2。對(duì)于PWM定時(shí)控制器timerO,其一個(gè)時(shí)鐘周期Tclk = Pclk/ prescalerO/dividerO,每經(jīng)過(guò)一個(gè)時(shí)鐘周期計(jì)時(shí)值Tent增加一,當(dāng)計(jì)時(shí)值Tent大于或等于比較值時(shí)觸發(fā)中斷,管腳輸出高電平;當(dāng)Tent到達(dá)計(jì)數(shù)器值時(shí),復(fù)位管腳輸出為低電平, 同時(shí)復(fù)位Tent,重新開(kāi)始計(jì)時(shí),觸發(fā)下一個(gè)周期的定時(shí),兩個(gè)定時(shí)控制器同理。電機(jī)細(xì)分?jǐn)?shù)為subdividing,電機(jī)總步距為steps,傳動(dòng)比為rat,受電機(jī)驅(qū)動(dòng)、并帶動(dòng)熱敏紙走紙的滾軸的半徑為R。
[0042]第一定時(shí)控制器 timerl 分頻值為 dividerl,且 dividerO = dividerl,timerl 的計(jì)數(shù)器值為T(mén)cntbl (僅僅觸發(fā)中斷因此timerl的比較值為T(mén)cntbl),第二定時(shí)控制器 timer2預(yù)分頻值為prescaler2, timer2分頻值為divider2, timer2的計(jì)數(shù)器值為T(mén)cntb2, timer2的比較值為T(mén)cmpb2, TimeS為SPI傳輸熱敏紙上一列數(shù)據(jù)所需時(shí)間。熱敏點(diǎn)陣加熱一列數(shù)據(jù)的時(shí)間長(zhǎng)度為T(mén)min到Tmax (即打印濃度最淺時(shí)加熱時(shí)間為T(mén)min、最濃時(shí)為T(mén)max)。
[0043]在本實(shí)施例中,timerO輸出一次PWM脈沖,需要通過(guò)timerl中斷啟用SPI傳輸一次數(shù)據(jù)到熱敏元件然后timer2啟動(dòng)加熱,timer2到達(dá)比較值時(shí)調(diào)用中斷停止加熱。
[0044]根據(jù)PWM的計(jì)算公式,步進(jìn)電機(jī)的走紙速度:
[0045]V = Pclk/prescaler0/divider0/cntb0*subdividing/steps*rat*2JrR*l〇〇〇 ; (1)
[0046]其中乘以1000是因?yàn)橐獙?guó)際單位制基本單位的米換算成毫米。
[0047]步進(jìn)電機(jī)步進(jìn)頻率為:
[0048]Fpwm = Pclk/prescalerO/dividerO/TcntbO;(2)
[0049]timerl 頻率為:
[0050]Ftimerl = Pclk/prescalerO/dividerl/Tcntbl ;(3)
[0051]Fprai = Ftimerl ;(4)
[0052]為了熱敏元件能夠處于最長(zhǎng)加熱時(shí)間,顯示最濃的狀態(tài),則
[0053]Tmax+TimeS〈 = 1/FpwTn ;(5)
[0054]由于控制熱敏頭加熱的timer2比較值最小取值為:Tcmpb2 = l,Tmin根據(jù)實(shí)際調(diào)試過(guò)程顯示最低濃度取值,則
[0055]1/(Pclk/prescaler2/divider2/Tcntb2)> = Tmin ;(6)
[0056]prescaler2*divider2*Tcntb2>= Tmin*Pclk;(7)
[0057]為保證熱敏頭加熱的穩(wěn)定性,timer2需要控制的熱敏頭加熱時(shí)間,則:
[0058]1/((Pclk/prescaler2/divider2)/Tcntb2*Tcmpb2)<Tmax ;(8)
[0059]l/Ftimer2+TimeS< = 1/Ftimerl ;(9)
[0060]Ftimer2 為 timer2 的頻率。
[0061]由公式⑴?(8),得
[0062]prescaler2*divider2*Tcntb2/Tcmpb2>l/(Pclk*Tmax) ;(10)
[0063]dividerO/TcntbO*subdividing = dividerl/Tcntbl ;(11)
[0064]V〈 = subdividing*rat*2 it R/steps/(Tmax+TimeS) *1000 ;(12)
[0065]最大打印速度為:
[0066]Vmax = subdividing*rat*2 it R/steps/ (Tmax+TimeS) *1000 (毫米 / 秒);(13)
[0067]timer2 最大次數(shù):
[0068](Tcntb2/Tcmpb2)max = Tmax*(Pclk/prescaler2/divider2)(14)
[0069]prescaler2*divider2*Tcntb2< = prescalerO*dividerl*Tcntbl (15)
[0070]綜合公式(1)、(10)、(11)、(13),通過(guò)調(diào)整 prescalerO*dividerO*TcntbO/ subdividing使得步進(jìn)電機(jī)的速度取值在(0,Vmax)之間,達(dá)到調(diào)整打印速度的目的。
[0071]通過(guò)公式(8)、(9),使得(Tcntb2/Tcmpb2)取值在 0 到(Tcntb2/Tcmpb2)max 之間調(diào)整,即可控制熱敏元件的加熱時(shí)間長(zhǎng)度,從而達(dá)到調(diào)整打印濃度的目的。
[0072]其中,prescalerO、prescaler2 的取值范圍為 0-255 ;divider0、dividerl、 divider2在2、4、8、16中進(jìn)行取值;TcntbO、Tcntbl、Tcntb2的取值范圍為0-65535 ;對(duì)于步進(jìn)電機(jī),電機(jī)細(xì)分?jǐn)?shù)subdividing在1、2、4、8、16中進(jìn)行取值。
[0073]依據(jù)以上值的組合以及相應(yīng)關(guān)系,將TcntbO、Tcntbl、Tcntb2能夠取的最大最小值分別存入配置文件,去掉交叉的部分。最終實(shí)現(xiàn)通過(guò)調(diào)整TcntbO、Tcntb 1、Tcntb2、Tcmpb2 實(shí)現(xiàn)打印調(diào)速和打印濃度的調(diào)整。
[0074]在本實(shí)施例中,配置為Pclk = 101333333Hz、SPI傳輸一列數(shù)據(jù)144字節(jié)的時(shí)間 TimeS = 56.7微秒,傳動(dòng)比rat為2:1,電機(jī)總步距為steps為200,滾軸半徑R為0? 007m, Tmax為5.0暈秒。
[0075]上述熱敏打印方法,通過(guò)配置PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器對(duì)打印過(guò)程進(jìn)行控制,通過(guò)計(jì)算得出PWM定時(shí)控制器、第一定時(shí)控制器及第二定時(shí)控制器的計(jì)數(shù)器值和比較值與打印速度和打印濃度的對(duì)應(yīng)關(guān)系,再將這些對(duì)應(yīng)關(guān)系存入打印機(jī)的配置文件中。當(dāng)用戶(hù)在進(jìn)行打印設(shè)置時(shí),根據(jù)前述對(duì)應(yīng)關(guān)系,列出簡(jiǎn)單的選項(xiàng)供用戶(hù)選擇 (例如打印速度:低一一中一一高各對(duì)應(yīng)一組計(jì)數(shù)器值),從而實(shí)現(xiàn)了打印速度和打印濃度可調(diào)的熱敏打印方式。
[0076]在其中一個(gè)實(shí)施例中,步驟S110和S120之間還包括步驟S112:將讀取的字庫(kù)中的橫向取模數(shù)據(jù)轉(zhuǎn)換成縱向取模數(shù)據(jù)。
[0077]在該實(shí)施例中,打印輸出的字體和走紙方向垂直,故需要將字體由橫向轉(zhuǎn)換成縱向。若是希望輸出的字體和走紙方向平行,則不用轉(zhuǎn)換。
[0078]在其中一個(gè)實(shí)施例中,步驟S110和S120之間還包括步驟S114:將讀取的字庫(kù)中的字體重新生成字庫(kù)數(shù)組。
[0079]將字體生成數(shù)組編譯進(jìn)代碼,可以提高執(zhí)行效率。圖2是另一實(shí)施例中熱敏打印方法流程圖。
[0080]在其中一個(gè)實(shí)施例中,一張熱敏紙打印完成之后,還包括檢測(cè)是否缺紙的步驟,若缺紙則中止打印并發(fā)出缺紙通知。在本實(shí)施例中,光敏傳感器檢測(cè)不到熱敏紙反射的光線時(shí),電機(jī)繼續(xù)往前走紙,走紙3cm后仍沒(méi)有接收到熱敏紙反射的光線,則判定缺紙。
[0081]本發(fā)明還提供一種熱敏打印機(jī),包括步進(jìn)電機(jī),熱敏元件,受步進(jìn)電機(jī)驅(qū)動(dòng)、帶動(dòng)熱敏紙走紙的滾軸,以及控制模塊。其中控制模塊包括PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器及串行總線控制器。PWM定時(shí)控制器用于產(chǎn)生PWM信號(hào)以控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。串行總線控制器用于控制串行總線將打印數(shù)據(jù)通過(guò)串行總線傳輸至熱敏元件。在其中一個(gè)實(shí)施例中,串行總線為SPI總線。第一定時(shí)控制器用于產(chǎn)生中斷以啟用串行總線傳輸打印數(shù)據(jù)。第二定時(shí)控制器用于調(diào)用中斷以中止熱敏元件的加熱,從而控制熱敏元件的加熱時(shí)長(zhǎng)。
[0082]具體地,PWM定時(shí)控制器輸出PWM脈沖,第一定時(shí)控制器的計(jì)時(shí)到達(dá)比較值Tcntbl 時(shí)產(chǎn)生中斷,啟動(dòng)SPI傳輸一列打印數(shù)據(jù)給打印頭的熱敏元件。其中打印數(shù)據(jù)由打印機(jī)解析需要打印的文字信息,通過(guò)文字索引碼值找到對(duì)應(yīng)的點(diǎn)陣數(shù)組位置,將數(shù)據(jù)取出填充至文字坐標(biāo)所在位置的緩沖區(qū)。按照這種方式一個(gè)個(gè)處理文字,直到一行文字處理完成。SPI 傳輸數(shù)據(jù)完畢后,第二定時(shí)控制器啟動(dòng)使熱敏元件開(kāi)始加熱打印,時(shí)間到后觸發(fā)第二定時(shí)控制器的中斷,停止加熱。
[0083]如前文熱敏打印方法中所述,通過(guò)調(diào)整prescalerO*dividerO*TcntbO/ subdividing,使得步進(jìn)電機(jī)的速度(即打印速度)在(0, Vmax)之間,達(dá)到調(diào)整打印速度的目的。通過(guò)調(diào)整Tmax*(Pclk/prescaler2/divider2)的取值,使其介于0至(Tcntb2/ Tcmpb2)max之間,即可控制熱敏元件的加熱時(shí)間長(zhǎng)度,從而達(dá)到調(diào)整打印濃度的目的。
[0084]在本實(shí)施例中,熱敏打印機(jī)還包括光敏傳感器,并在熱敏紙正常走紙位置的下方設(shè)置黑色的黑標(biāo)區(qū),光敏傳感器設(shè)置于所述黑標(biāo)區(qū)上方。正常打印時(shí),光敏傳感器能夠接收到熱敏紙反射的光線;缺紙時(shí),則光線被黑標(biāo)區(qū)吸收,光敏傳感器無(wú)法接收到,因此判定為缺紙,中止打印。
[0085]在其中一個(gè)實(shí)施例中,滾軸采用棉性滾軸,可以產(chǎn)生很大的摩擦力以帶動(dòng)熱敏紙走紙。
[0086]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專(zhuān)利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專(zhuān)利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種熱敏打印方法,包括下列步驟:讀取字庫(kù);申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分 數(shù)輸入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化;按照所需走紙速度設(shè)置好PWM定時(shí)控制器的預(yù)分頻值和分頻值,以及電機(jī)細(xì)分?jǐn)?shù);啟動(dòng)步進(jìn)電機(jī)走紙至指定位置;在PWM定時(shí)控制器的控制下輸出PWM信號(hào),時(shí)間到后觸發(fā)第一定時(shí)控制器的中斷;解析需要打印的文字信息,讀取字庫(kù)的相應(yīng)數(shù)據(jù)并轉(zhuǎn)換成打印格式數(shù)據(jù),通過(guò)串行總 線將數(shù)據(jù)傳輸給熱敏元件;按照所需的打印濃度設(shè)置好第二定時(shí)控制器的預(yù)分頻值和分頻值;第二定時(shí)控制器啟動(dòng)使熱敏元件開(kāi)始加熱打印,時(shí)間到后觸發(fā)第二定時(shí)控制器的中 斷,停止加熱。2.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述按照所需走紙速度設(shè)置 好PWM定時(shí)控制器的預(yù)分頻值和分頻值,以及電機(jī)細(xì)分?jǐn)?shù)的步驟中,走紙速度V = Pclk/prescalerO/dividerO/TcntbO*subdividing/steps*rat*2 Jr R*l〇〇〇 毫米 / 秒,且要保證 V < subdividing*rat*2 Jr R/steps/ (Tmax+TimeS) *1000 毫米 / 秒;其中 Pclk 為外圍總 線的一個(gè)時(shí)鐘周期,prescalerO為所述PWM定時(shí)控制器和第一定時(shí)控制器的預(yù)分頻值, dividerO為所述PWM定時(shí)控制器的分頻值,TcntbO為所述PWM定時(shí)控制器的計(jì)數(shù)器值, subdividing為電機(jī)細(xì)分?jǐn)?shù),rat為電機(jī)傳動(dòng)比,R為受步進(jìn)電機(jī)驅(qū)動(dòng)、并帶動(dòng)熱敏紙走紙 的滾軸的半徑,steps為電機(jī)總步距,Tmax為熱敏元件加熱一列數(shù)據(jù)所允許的最長(zhǎng)時(shí)間, TimeS為所述串行總線傳輸一列數(shù)據(jù)所需時(shí)間。3.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述按照所需的打印濃度設(shè) 置好第二定時(shí)控制器的預(yù)分頻值和分頻值的步驟中,要保證Tmax* (Pc 1 k/presealer2/ divider2)不大于所述第二定時(shí)控制器的計(jì)數(shù)器值除以比較值能夠取得的最大值;其中 Tmax為熱敏元件加熱一列數(shù)據(jù)所允許的最長(zhǎng)時(shí)間,Pclk為外圍總線的一個(gè)時(shí)鐘周期, prescaler2為所述第二定時(shí)控制器的預(yù)分頻值,divider2為所述第二定時(shí)控制器的分頻 值。4.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述串行總線為串行外設(shè)接口 總線。5.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述讀取字庫(kù)的步驟之后,所述 申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分?jǐn)?shù)輸 入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化的步驟之前,還包括將讀取的字庫(kù)中 的橫向取模數(shù)據(jù)轉(zhuǎn)換成縱向取模數(shù)據(jù)的步驟。6.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述讀取字庫(kù)的步驟之后,所述 申請(qǐng)PWM定時(shí)控制器、第一定時(shí)控制器、第二定時(shí)控制器、串行總線控制器、電機(jī)細(xì)分?jǐn)?shù)輸 入輸出接口、電機(jī)使能輸入輸出接口的資源并初始化的步驟之前,還包括將讀取的字庫(kù)中 的字體重新生成字庫(kù)數(shù)組的步驟。7.根據(jù)權(quán)利要求1所述的熱敏打印方法,其特征在于,所述啟動(dòng)步進(jìn)電機(jī)走紙至指定 位置的步驟中,通過(guò)光敏傳感器檢測(cè)是否接收到熱敏紙反射的光線,若未接收到則判定缺紙,中止打印。8.—種熱敏打印機(jī),包括步進(jìn)電機(jī)、熱敏元件、受步進(jìn)電機(jī)驅(qū)動(dòng)帶動(dòng)熱敏紙走紙的滾 軸,以及控制模塊,其特征在于,所述控制模塊包括:PWM定時(shí)控制器,用于產(chǎn)生PWM信號(hào)以控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng);串行總線控制器,用于將打印數(shù)據(jù)通過(guò)串行總線傳輸至熱敏元件;第一定時(shí)控制器,用于產(chǎn)生中斷以啟用串行總線傳輸所述打印數(shù)據(jù);第二定時(shí)控制器,用于調(diào)用中斷以中止熱敏元件的加熱,從而控制所述熱敏元件的加 熱時(shí)長(zhǎng)。9.根據(jù)權(quán)利要求8所述的熱敏打印機(jī),其特征在于,還包括光敏傳感器,所述熱敏打印 機(jī)在熱敏紙正常走紙位置的下方設(shè)置黑色的黑標(biāo)區(qū),所述光敏傳感器設(shè)置于所述黑標(biāo)區(qū)上方。10.根據(jù)權(quán)利要求8所述的熱敏打印機(jī),其特征在于,所述滾軸為棉性滾軸。
【文檔編號(hào)】B41J2/32GK105984241SQ201510054441
【公開(kāi)日】2016年10月5日
【申請(qǐng)日】2015年2月2日
【發(fā)明人】左小寶, 王明
【申請(qǐng)人】深圳市科曼醫(yī)療設(shè)備有限公司