发明内容
本发明为了解决现有针对热敏头片的保护电路可靠性低的问题,提供了一种热敏头片的组合保护电路,采用多种保护手段相结合的方式共同对热敏头片施加保护,从而显著提高了整个系统的可靠性。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种热敏头片的组合保护电路,包括CPU和连接在热敏头片的供电端口、用于控制热敏头片上电/断电的电源控制电路;为了实现对热敏头片的双重保护,在热敏头片的总输出有效控制端口上还进一步连接有可编程逻辑单元,在所述可编程逻辑单元中配置有分频定时/计数器,所述可编程逻辑单元在分频定时/计数器计数到达设定值时,若仍未接收到CPU发出的清空或者预置指令,则向热敏头片的总输出有效控制端口输出无效电平,控制热敏头片停止加热。
进一步的,所述可编程逻辑单元连接CPU,在接收到CPU发出的清空或者预置指令时,对分频定时/计数器的计数值进行清空或者预置处理。
又进一步的,在所述可编程逻辑单元中配置有清空/预置寄存器,CPU通过总线对所述清空/预置寄存器的各位进行配置,进而通过所述清空/预置寄存器对分频定时/计数器的计数值进行清空或者预置。
再进一步的,在所述可编程逻辑单元中配置有定时控制寄存器,接收CPU发出的计数方式配置数据,进而控制所述分频定时/计数器进行递加计数或者递减计数。
更进一步的,在所述可编程逻辑单元中还配置有溢出控制寄存器,连接所述的分频定时/计数器,在分频定时/计数器计数到达设定值而溢出时,输出低电平信号至所述热敏头片的总输出有效控制端口。
优选的,所述可编程逻辑单元连接外部有源振荡器,通过外部有源振荡器向所述的分频定时/计数器提供计数时钟;所述分频定时/计数器由32位D触发器串联构成。
其中,所述可编程逻辑单元可以是FPGA或者CPLD。
为了实现对热敏头片的第三重保护,通过所述CPU输出的用于触发热敏头片的m组触发信号均由CPU输出的一路单稳态触发逻辑信号进行牵制;当CPU运行程序正常时,定时触发所述的单稳态触发逻辑信号使其保持稳态输出,以确保所述的m组触发信号能够对应输出至热敏头片的m组触发信号端口;反之,将热敏头片的m组触发信号端口置为无效状态,控制热敏头片停止加热;所述m为自然数。
进一步的,所述CPU通过单稳态触发逻辑电路,依据逻辑要求输出所述的单稳态触发逻辑信号,并传输至m组与门的其中一路输入端,所述的m组触发信号经反相器取反后,对应传输至所述m组与门的另外一路输入端,所述m组与门的输出端各自经一反相器与热敏头片的m组触发信号端口对应连接。
基于上述热敏头片组合保护电路,本发明又提供了一种基于所述组合保护电路设计的热敏打印机,通过对热敏打印机中的热敏头片施加多重保护,以确保热敏头片的安全运行。即一方面在热敏头片的供电端口连接电源控制电路,通过控制热敏头片上电或者断电,来改变热敏头片的工作状态;另一方面,在热敏头片的总输出有效控制端口上同时设置可编程逻辑单元,通过硬件守护逻辑确保在系统程序出错时能够控制热敏头片停止加热,实现对热敏头片的保护。具体来讲,可以利用可编程逻辑单元内部配置的分频定时/计数器进行计时,当程序运行正常时,CPU定时发出清空/预置指令,对分频定时/计数器的计数值进行清空或者预置处理,以避免其计数达到设定值而产生溢出;而当系统程序失效时,由于此时的CPU无法正常输出清空/预置指令,当分频定时/计数器计数到达设定值时,则向热敏头片的总输出有效控制端口输出无效电平,进而控制热敏头片停止加热,防止在系统程序失控状况下热敏头片遭受损坏。
与现有技术相比,本发明的优点和积极效果是:本发明采用组合保护策略对热敏头片的控制进行牵制,使用可编程逻辑电路实现一个硬件的守护逻辑,一旦系统没有对守护逻辑进行预先设定的解锁操作,则守护逻辑可以立即触发保护信号,控制热敏头片停止加热,以防止在系统程序失控或者部分硬件损坏时造成热敏头片的损坏,或者因为热敏头片无限制持续加热而引发起火的危险。同时,再配合对热敏头片输入电源的保护逻辑或者进一步使用单稳态触发逻辑来牵制输出到热敏头片的触发信号,从而在增加很少硬件开销的基础上使得整个系统的可靠性显著提高。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细地说明。
本发明为了保证在系统程序失控的状态下仍能对热敏头片进行有效保护,在保留传统的输入电源保护逻辑的基础上,在热敏头片的总输出有效控制端口B.E.O上增加一级硬件守护逻辑,以对系统程序的运行状况进行监控,一旦系统没有在规定的时间内对所述硬件守护逻辑进行预先设定的解锁操作,则守护逻辑立即触发保护信号,控制热敏头片停止加热,以实现对热敏头片的保护。
具体设计方法可以在热敏头片的总输出有效控制端口B.E.O上连接一个与系统CPU/MCU连接通信的可编程逻辑单元,并在其内部配置分频定时/计数器。根据系统程序的运行周期设定合适的定时时间(所述定时时间应大于系统程序的运行周期),即计数设定值。当系统程序当掉,无法在规定的时间内向可编程逻辑单元提供清空或者预置指令时,则分频定时/计数器一直计数,直到达到设定值而产生溢出信号。此时,可编程逻辑单元认为系统程序失控,向热敏头片的总输出有效控制端口B.E.O输出使其无效的电平信号,控制热敏头片停止加热,以免造成损坏。反之,若系统程序运行正常,则CPU/MCU会在分频定时/计数器计数到达设定值之前,对分频定时/计数器的计数值进行清空或者预置操作,使其不会出现计数到达设定值的情况,由此,可编程逻辑单元向热敏头片的总输出有效控制端口B.E.O保持输出有效电平,控制热敏头片持续工作。
下面以热敏打印机为例,通过一个具体的实施例来详细阐述所述热敏头片组合保护电路的具体组建结构及其工作原理。
实施例一,本实施例为了实现对热敏头片的保护,首先在热敏头片的供电端口VPP上连接电源控制电路,如图1所示,可以具体由单稳态触发逻辑电路Ⅰ和MOSFET电源控制电路组建而成。当热敏头片工作在正常温度范围内时,热敏打印机中的CPU/MCU输出有效电平的电源控制信号INIT_PRN#至单稳态触发逻辑电路Ⅰ,经脉冲展宽处理后,生成用于驱动MOSFET电源控制电路动作的控制信号POWER,控制MOSFET场效应管闭合,以连通系统电源与热敏头片供电端口VPP的连接通路,使热敏头片上电运行。而当热敏头片温度过高时,系统CPU/MCU通过采集封装在热敏头片中的热敏电阻反馈的检测信号感知这一状况,进而输出无效电平状态的电源控制信号INIT_PRN#通过单稳态触发逻辑电路Ⅰ控制MOSFET场效应管断开,切断系统电源为热敏头片的供电,使热敏头片断电,停止运行,避免事故发生。
此种保护形式只有在打印机系统程序运行正常时才能确保对热敏头片的有效保护,一旦系统程序当掉,系统CPU/MCU便无法正常地输出电源控制信号INIT_PRN#,因而对热敏头片的保护也就无从谈起。
为了增强对热敏头片的保护,摆脱对系统程序运行状况的依赖,本实施例又提出了以下硬件守护逻辑。
参见图1所示,B.E.O为热敏头片中加热驱动片的总输出有效控制端口,高电平有效,用于对热敏头片中各加热点是否加热进行总体控制。若B.E.O端口被置为无效的低电平信号,则热敏头片中的各加热点均停止加热,打印机不进行打印。
利用热敏头片的这一特性,本实施例在热敏头片的总输出有效控制端口B.E.O上连接一个可编程逻辑单元。所述可编程逻辑单元可以采用现场可编程门阵列FPGA或者复杂可编程逻辑器件CPLD等芯片实现,内部具有可编程特性,使用硬件描述语言来实现硬件守护逻辑功能。其内部的所有Flip-Flop寄存器映射在系统CPU/MCU的内存空间,CPU/MCU通过总线来实现对FPGA或CPLD中各寄存器的读写和控制,对硬件守护逻辑的操作如同读写内存一样方便、快捷。
在可编程逻辑单元内部配置有3个寄存器和一个定时/计数器,参见图2所示,具体为清空/预置寄存器、定时控制寄存器、溢出控制寄存器和分频定时/计数器。外部的有源振荡器可以经过32位的分频,通过设置分频因子和递加计数或递减计数控制位,实现多种时间间隔的定时/计数的输出。在本实施例中,所述分频定时/计数器的位数可以结合有源振荡器的频点、计时时间等综合考虑,本实施例以32位的分频定时/计数器为例进行后续的说明。硬件守护逻辑相关的寄存器列表如下表一所示:
寄存器名称 |
寄存器别名 |
位数 |
相对地址 |
初始值 |
清空预置寄存器 |
CLSTR |
8 |
0x1800004 |
0x0 |
定时控制寄存器 |
RCTLR |
8 |
0x1800005 |
0x0 |
溢出控制寄存器 |
FLWR |
8 |
0x1800006 |
0x0 |
分频定时/计数器 |
TCNTR |
32 |
× |
0x0 |
表一 寄存器组列表
以下的表二、三、四为对各个寄存器的详细定义和说明。
1、清空/预置寄存器CLSTR,相对地址0x1800004,8bit寄存器,只写,相关bit定义如表二所示:
表二 清空/预置寄存器定义
在清空/预置寄存器CLSTR中,最低位Bit0为清空/预置控制位,当系统CPU/MCU通过总线向该寄存器写入数据,并置Bit0位为1时,清空/预置寄存器CLSTR立即将分频定时/计数器的计数值清零,重新开始计数,比如开始递加计数;若Bit0位被置数为0,则对分频定时/计数器进行预置,比如将分频定时/计数器的当前计数值置为0xFFFFFFFF,重新开始递减计数。
清空/预置寄存器CLSTR的高7位被设计为移位因子,可以实现对预置数值0xFFFFFFFF进行移位操作,总共可以实现32级的移位,从而实现不同的定时要求。默认值为0x0标志不进行移位操作。32位的分频/计数器值=(0xFFFFFFFF>>移位因子),每移位一次预置数值减半。
2、定时控制寄存器RCTLR,相对地址0x1800005,8bit寄存器,只写,相关bit定义如表三所示:
位 |
功能 |
说明 |
初值 |
Bit 0 |
中断设置 |
1-溢出引起中断 0-溢出中断禁止 |
0 |
Bit 1 |
循环设置 |
1-循环计数/定时 0-溢出停止 |
0 |
Bit 2 |
计数方式 |
1-递加计数 0-递减计数(0x0溢出) |
0 |
Bit 3 |
未定义 |
为将来保留 |
× |
Bit 4 |
未定义 |
为将来保留 |
× |
Bit 5 |
未定义 |
为将来保留 |
× |
Bit 6 |
未定义 |
为将来保留 |
× |
Bit 7 |
未定义 |
为将来保留 |
× |
表三 定时控制寄存器定义
在定时控制寄存器RCTLR中,Bit0为中断设置控制位,若Bit0位被置为1,则分频定时/计数器在计数到达设定值而产生溢出时,要求可编程逻辑单元向CPU/MCU反馈中断信号;若Bit0位被置为0,则无需向CPU/MCU反馈中断信号,即无需通知CPU/MCU知道,本实施例默认为0。Bit1为循环设置控制位,若为1,则在分频定时/计数器计数或者定时到达设定值时,控制其进行循环计数或定时;若设置为0,则在分频定时/计数器计数或者定时到达设定值时停止,默认为0。Bit2为计数方式控制位,当系统CPU/MCU将该位设置为1时,则控制分频定时/计数器进行递加计数,若置为0,则进行递减计数。在本实施例中,若清空/预置寄存器CLSTR的Bit0=0,即对分频定时/计数器的计数值进行预置,则应该选择递减计数;若清空/预置寄存器CLSTR的Bit0=1,即对分频定时/计数器的计数值进行清空,则应选择递加计数。定时控制寄存器RCTLR的高5位预留作他用。
3、溢出控制寄存器FLWR,相对地址0x1800006,8bit寄存器,只写,相关bit定义如表四所示:
表四 溢出控制寄存器定义
溢出控制寄存器FLWR根据分频定时/计数器的计数值是否到达设定值,来确定是否触发与其关联的寄存器动作,并向热敏头片的总输出有效控制端口B.E.O.输出有效的高电平信号或无效的低电平信号。
可编程逻辑单元中的分频定时/计数器可以由32位的D触发器串联构成,参见图3所示,采用何种时间间隔的分频输出是可以编程的。同时,通过对各D触发器的复位端R或设置端S进行配置,即可以对分频定时/计数器进行清零和设置操作,便于系统控制。外部有源振荡器可以采用1M到40MHz均可,依据具体设计来定义。
所述硬件守护逻辑的工作原理是:当系统CPU/MCU运行正常时,会定时的通过总线对清空/预置寄存器和定时控制寄存器的值进行设置,确保分频定时/计数器在计数到达设定值之前已被清空或者预置,重新开始计数。这样一来,分频定时/计数器不会产生计数溢出,因而溢出控制寄存器持续向热敏头片的B.E.O.端口输出有效地高电平信号,控制热敏头片继续运行。反之,当系统CPU/MCU程序当掉,无法及时地向清空/预置寄存器和定时控制寄存器写入配置数据时,则分频定时/计数器一直计数直到到达设定值而产生溢出。此时,溢出控制寄存器输出低电平信号至热敏头片的B.E.O.端口,从而控制整个热敏头片停止运行,以确保安全。
本实施例通过采用硬件守护逻辑对热敏头片中的加热驱动片进行总控制,配合其他的单稳态触发电路实现对热敏头片的组合保护。
图1中,STB(0-m)为热敏头片中加热驱动片的触发信号端口,上部横线表示反逻辑有效。由于热敏头片中的加热驱动片通常设计为分段/组控制,一个加热驱动片可能有1-m个分段或分组,这样设计也主要从能量消耗方面来考虑,通过分段/组触发信号STROBE可以实现分时导通,避免能量过于集中释放,对电源和散热提供更多冗余。
因为触发信号端口STB在加热驱动片中通常为多组,因此,系统CPU/MCU需要通过多个输出控制端来提供每一路触发信号STROBE,以控制相应的分段/组运行。
为了实现对热敏头片中加热驱动片的第三重保护,本实施例对整组触发信号STROBE1-STROBEm采用一个单稳态触发逻辑进行牵制,在一定的时间内若系统CPU/MCU输出的单稳态触发逻辑信号INIT_STB#能够恢复到稳态输出,则可以防止整组触发信号STROBE1-STROBEm的组合逻辑失效。具体设计方式参见图1所示,主要包括单稳态触发逻辑电路Ⅱ和组合逻辑电路两部分。其中,单稳态触发逻辑电路Ⅱ可以采用如图4所示的电路组建形式,对系统CPU/MCU输出的单稳态触发逻辑信号INIT_STB#进行脉冲展宽处理。图4中,U9B为一颗单稳态触发器,其输入端A连接系统CPU/MCU的其中一路I/O口,接收系统CPU/MCU输出的单稳态触发逻辑信号INIT_STB#,低电平有效,进而通过单稳态触发器U9B的反向输出端输出。单稳态触发器U9B的清除端RCext连接由电阻R24和电容C19组成的延时电路,使通过单稳态触发器U9B输出的脉冲信号的脉宽延展。当系统程序运行正常时,CPU/MCU定时输出低电平有效的单稳态触发逻辑信号INIT_STB#,经单稳态触发器U9B输出正向脉冲的触发信号STBOE,且该触发信号STBOE的脉宽由延时电路R24、C19的延时时间确定。在延时时间内,系统CPU/MCU会再输出一个低电平的单稳态触发逻辑信号INIT_STB#,以维持所述触发信号STBOE的高电平状态。将所述触发信号STBOE输入到如图5所示的组合逻辑电路,以对CPU/MCU输出的整组触发信号STROBE1-STROBEm进行牵制。
图5中,将所述触发信号STBOE传输至m组与门的其中一路输入端B,通过CPU/MCU输出的m组触发信号STROBE1-STROBEm首先各自经一反相器取反后,再对应传输至所述m组与门的另外一路输入端A,与触发信号STBOE进行与运算后,通过m组与门的输出端Y输出,然后再各自经一路反相器进行取反后,与热敏头片的m组触发信号端口STB1-STBm对应连接。由图5所示的组合逻辑电路可知,当系统程序运行正常时,触发信号STBOE保持高电平,通过组合逻辑电路输出的m组触发信号STROBE1-STROBEm的电平状态与CPU/MCU输出的电平状态相同,因此不影响CPU/MCU对热敏头片中加热驱动片的各分段或分组的控制。而当系统程序当掉,无法在规定的时间内输出低电平有效的单稳态触发逻辑信号INIT_STB#时,则通过单稳态触发器U9B输出的触发信号STBOE在延迟一段时间的高电平后,跳变为低电平输出至组合逻辑电路。由此一来,通过与门输出的信号必然为低电平,经反相器取反后,m组触发信号STROBE1-STROBEm均牵制成无效的高电平。从而使得加热驱动片的各分段/组均停止运行,进入保护状态。
图6为热敏头片中加热驱动片的逻辑电路图,其中,H(0-n)为逻辑输出,每一个加热点对应Hn这样一个加热驱动电路,因此,本实施例的热敏头片可以包括n个加热点,热敏头片的供电端口VPP通过加热点电气连接到Hn。因为对于触发信号STROBE,在不同的打印宽度设计下,一般会有多个触发信号STROBE进行分段/组进行控制。数据锁存信号LATCH、数据移位输入DATA IN、数据移位时钟(CLOCK)为热敏头片的数据输入端口,主要用来进行数据传输,可以不对其进行特别保护。从图6的逻辑关系可以看出:本实施例采用硬件守护逻辑来牵制热敏头片的总输出有效控制端口B.E.O.,使用单稳触发逻辑牵制触发信号STROBE,同时再设计单稳触发逻辑牵制对加热驱动片的供电电源VPP,从而实现了对热敏头片的三重保护。
图6所示的加热驱动片内部驱动逻辑图表征了一个触发信号STROBE的情况,当要求多个触发信号STROBE1-STROBEm时,可以对图6所示的逻辑图进行级联。在级联中总输出有效控制信号B.E.O.、信号地GND、数据锁存信号LATCH、数据移位时钟CLOCK等可以直接连接;数据移位输出DATA OUT接到下一级的数据移位输入DATA IN;触发信号STROBE则由组合逻辑电路单独输出提供。
在本发明中,打印机系统中的CPU/MCU对热敏头片输出的总输出有效控制信号B.E.O.和触发信号STROBE1-STROBEm均由硬件进行牵制,无论CPU/MCU程序是否失控,CPU/MCU内部是否具有看门狗功能,或者是控制热敏头片的部分硬件失效,这些情况就是同时发生也不会损坏热敏头片,更不会导致其他灾难状态。通过采用这种组合保护设计方式,不仅可以使得整个系统的可靠性得以提高,而且辅助于软件设计,在系统对热敏头片不进行操作时,由硬件自动切断对热敏头片施加的有效控制,以降低整机的功耗。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。