专利名称:打印装置的制作方法
技术领域:
本发明是关于由主机接收字符码和控制码等数据来进行打印操作的打印装置。
由于打印机是连接在各种主机上使用的,所以必须按照与主机相适应的字符码组和控制码来进行打印,从而就要受到能适用的主机机种上的制约。因此,为使打印机能适用于多种不同的字符码组和控制码,而在打印机的本体内设置了许多种打印控制单元,利用开关来加以选择、变换;以及采取了插入可从外部装拆的打印控制单元的托架结构的措施。
但是这种现有技术存在着这样的问题,就是首先必须辨明与打印机连接的主机的机种,然后再选择、变更打印控制方式。这不仅接线操作很费事,而且在主机类型不同时常会出现把许多无意义的数据信息也打印出来之类的现象。
本发明就是鉴于这样的问题,目的是提供一种能自动选择和输出与主机相对应的字符码和控制码的打印装置。
本发明是一种由主机接收字符码和控制码等数据、进行打印操作的打印装置,其特征在于,它具有下列各种组成部分存贮由主机接收到的数据的输入数据存贮装置;根据多种字符码和控制码组中之一进行打印的打印控制装置;对上述输入数据存贮装置的内容进行译码以指定上述多种字符码和控制码组中的一种的打印控制码组判别装置。
在本发明的装置中,可以自动判别由主机发送来的字符码、控制码等的类型。
下面对附图作简单说明
图1是本发明的一个实施例;
图2是图1中实施例进行打印操作的说明图;
图3是说明字符码和控制码判别装置的工作流程图;
图4是本发明中判别控制码的详细说明图;
图5是本发明一实施例的硬件结构图;
图6是本发明另一实施例的说明图。
现在按照图示的实施例对本发明作详细说明。
图1所示为本发明的一个实施例。图中,1是存贮主机发送的数据的输入数据缓冲存贮器,3和4分别为具有字符码和控制码的第一打印控制单元和第二打印控制单元,2是将上述输入数据缓存器1中所存贮的数据指定给打印控制单元3或4之一的字符码和控制码判别单元。
从主机传送来的数据,首先存入输入数据缓存器1内。在存入输入数据缓存器1中的数据量达到规定值后,或者在当存入了最后一个数据之后在一规定时间内未再传送下一数据时,字符码和控制码组判别单元2即对存入数据缓存器1的数据进行译码。
下面用图2来说明,由本发明实施例进行打印的情形。
图2中,21是存贮数据的输入数据缓存器。存贮在输入数据缓存器21中的数据由控制代码判别单元22依次读出。控制码判别单元22根据所读出的数据和多种控制码的各种不同特征,进行比较检验,以判断所传送来的数据是多个字符代码还是控制码组信息。经控制码判别单元22判断为哪一种特定的字符码和控制码,再在相应的打印控制单元内进行处理,在存入行缓存器26之后,即由打印头进行打印。
而且,在判别传送来的数据是哪一种特定字符码和控制码时,如果本只应存在于某一组中的控制码同时亦存在于其他组中,而在各组中存在有变量超出指定的可能范围的情况时,则把变量分成为指定可能的范围内,来分别进行判别,从而提高判别精度。
下面进一步详细说明判别单元22。
存贮在输入数据缓存器21中的代码分下列3种(1)某一组内的固有控制码;
(2)多个组内的、各组间具有一系列不同参数的控制码;
(3)多个组内的、各组间具有一系列相同参数的控制码。
对于以上三种控制码,控制码判别单元22按下述方式进行判断关于第(1)种,属于正使用这种控制码的一组的可能性很大;
关于第(2)种,在一系列参数的有效范围内时,判断同(1),在该有效范围外时,属于该组的可能性很小;
关于第(3)种,不属于控制代码。
按照上述标准,控制码判别单元22用数值表示某一种控制码属于哪一组的可能性高低,最后选出例如该获得数值最大的那一组。
下面再回到图1,进一步详细说明字符码和控制码组判别单元2(即图2中的控制码判别单元22)。字符码和控制码判别单元2,根据打印控制单元3和打印控制单元4所具有的控制码语法,将存入输入数据缓存器1中的数据与打印控制单元3中的控制码的语法、以及打印控制单元4中的控制码语法进行比较,看两者的一致程度如何。
在与各打印控制单元中所具有的控制代码进行比较时,其标准如下
(1)在含有变量的多字节长的控制码中,其变量部分的数据在有效范围内时为3点;
(2)在含有变量的多字节长的控制码中,其变量部分占据全部数据范围时为2点;
(3)在含有变量的多字节长的控制码中,其变量部分的数据在无效范围内时为0点;
(4)无变量的2或1个字节长的控制码为1点;
(5)未加定义的控制码为0点。
还有,当达到这种标准的多字节长的控制码含有正确并有效的变量时,接近达到最高点数,很容易进行比较检验处理。此处所谓对上述控制码作最高评分,是指存入输入数据缓存器1中的随机数列进入达到多字节控制码所具有的变量的有效范围的概率非常小,反过来说,如果数列充满控制码的变量部分的有效范围,那么该数列就很可能属于特定的打印控制单元。此外,在控制码长为2或1字节时,由于上面所说的理由,比分较多字节控制码的要低,而对于未定义的控制代码、变量部分互不相同的多字节长控制码则作为0。借助上述方法,可将输入数据缓存器1中的全部控制代码数值化,并求出其总和数值∑P。此处的P就是上面所说的点的数值。
然后,使输入数据缓存器1中的控制码完全与第一或第二打印控制单元的控制码的语法相协调。也就是说,求出假定在变量部分没有一致、不一致和未定义码时的全部控制代码数值化的总和∑Pmax。∑Pmax是假定存在输入数据缓存器1中的数据都是第一或第二控制单元的控制代码时所取得的最高分的总和。
因此,求出∑P对∑Pmax的比值,即可求得存入输入数据缓存器1中的随机数据含有第一或第二打印控制单元的控制码的数据的概率的大小。对于第一打印控制单元和第二打印控制单元求出这一比值,也就是进行了判断。
下面按图4作具体的说明。图4(a)表示存入输入数据缓冲存贮器1中的一系列数据,图4(b)是第一打印控制单元的控制码示例,图4(c)是第二打印控制单元的控制码示例。
首先,字符码和控制码组判别单元2将存在输入数据缓存器1中的数据与第一打印控制单元的控制代码进行语法比较,再与第二打印控制单元的控制代码进行语法比较,分别计算出∑P1、∑P1max、∑P2、∑P2max〔图3中流程图30和图4(a)〕。在图4的例子中,∑P1=8,∑P2=4,∑P1max=8,∑P2max=8。但是,在本实施例中没有把字符码作为比较对象。这样,如设H1=∑P1/∑P1max、H2=∑P2/∑P2max(31),那么除开H1=H2的情形外,对于输入缓存器1中的数据可作下述判断。
进一步详细说明图4(b)~图4(d)。
首先说明图4(b)。图中,根据上述第(4)条标准,CR因为不含变量,所以算作1点。在ESCAn中n=30H或31H时,根据第(1)条标准,是3点。而在ESCBn中,当n在0~255之间时(因为n为1字节,在16进制中可取OO~FFH),根据标准(2),是2点。
下面同样对图4(c)也定出Pmax的值。
另外,关于图4(d),举出几个具体例子作如下说明。
即,在第二打印控制单元的ESC“B”OOH的情况下,如果变量为30H或31H,虽然点数是3(P2max),而此时若变量=OOH,由于是在无效范围内,所以P2=0。
同样,在ESC“C”的情况下,如图4(C)中所示,在第二打印控制单元中没有与之对应的控制码。但是,因为有与之对应的控制码ESC D,所以P2max=1。而根据上面第(5)条标准,P2=0。
H1>H2(32)的数据是第一打印控制单元的控制码。
H1<H2(33)的数据是第二打印控制单元的控制码。
在H1=H2时,存入输入数据缓存器1中的数据很可能是具有两个打印控制单元中共同的语法的控制码,或者很可能只是字符码数据。字符码和控制码组判别单元2,虽然对用来进行上述判别的数据设置了某一规定值,但有时也将该规定值增大,以便使用于判别的数据量增加(34)。还有为了判别而添加字符码检验(35),如果确认了所访问的是未定义代码,那么该数据就多半不是正在进行比较的打印控制单元的数据。一般,当H1=H2时,可以按上述处理方式来进行判别,对于这样做也不能进行判别的数据,则用任一个打印控制单元来进行处理都可以(36)。
在图4的例子中,H1=8/8,H2=4/8,即H1>H2,所以可知图4中(a)的数据是第一打印控制单元的数据。
在判断为第一打印控制单元或第二打印控制单元之后,字符码和控制码组判别单元2就把对输入数据缓存器1的处理,移交给第一或第二打印控制单元,结束判别处理。
其次,在第一打印控制单元和第二打印控制单元中,由字符码和控制码组判别单元2作出判别后所确定的那个打印控制单元,分别对输入数据缓存器1中的数据按照预定的程序开始打印处理。下面,对于应该处理的数据量加以说明。在应处理的数据量方面有两种情况,一种是只处理判别时用过的数据,另一种是超过判别时用过的数据量,处理从主机传送来的直到间隔时为止的全部数据。在判别单元2中不作判别就进行处理时,采取前一种,用对下面的数据序列再进行判别的方法来提高判别的精度。虽然用判别单元来进行判别时,用哪一种方法都可以,但采用后一种方法能提高处理的能力。处理了上述数据之后,第一打印控制单元或第二打印控制单元又将控制送回到字符码和控制码组判别单元。
在图4(a)的例子中,ESC……CR、LF都是判别时用的数据,所以一直到CR、LF的所有数据都由第一打印控制单元来进行处理,然后,控制过程再回到控制码组判别单元。
另外,本实施例中虽然只说明了具有两种不同的打印控制单元的情况,但是,有三种以上不同的打印控制单元时,也可以用上述方法实现处理。
图5表示本发明一实施例的硬件结构。图中,51是执行运算、分析、输入输出指令的CPU;52是存贮上述CPU的程序和数据的ROM,它由打印控制单元58、打印控制单元59、和字符码和控制码判别单元60组成;53是由存贮由主机(图中未作出)传送来的数据的输入数据缓存器61、存贮要打印的数据的行缓存器62和上述CPU所使用的系统工作区62所组成的RAM;54是接收主机送来的数据的I/F单元;56是操纵打印装置57的I/O控制电路。51~56即构成了由系统母线55相连接的打印装置控制单元。
另外,也可以作成这样的结构,即按照上述方式自动判别了控制代码之后,再在打印机上所设置的操作盘上显示当时传送过来的是哪种控制码。
还有,也可以不逐一地计算Hi的值,而是当Hi达到某一定值以上时,即判定它属于哪一种对应的控制码。
另外,当存在多个控制代码组时,把若干相近似的代码归并成组,不求全部Hi,而是计算出能代表各组的控制码群的Hi,对于Hi小的那一组的控制码组,由于其适合的可能性很小,可以省略对其∑Pi、∑Pimax的计算。
本发明对于象串行冲击式点阵打印机等的串行打印机,或者宽行打印机,或者激光打印机那样的页式打印机都适用。
图6是本发明另一实施例的结构方框图。选择装置71根据比较装置72所得的比较结果,可选择控制码体系A分析装置72,或者选择控制码体系B分析装置73。而且,选择装置71每选择一次72或73,都要写入选择的次数如果是选72,写入A存贮装置74;如果选73,则写入B存贮装置75。同时,74、75都是非易失性的存贮器,即便整个装置的电源消失,存在存贮装置74、75内的次数的信息依然能保持住。
比较装置76对A存贮装置74和B存贮装置75中的内容加以比较,判断在体系A还是在体系B中哪一个被选择的次数多。
这里,选择装置71,分析装置72、73,和比较装置76,与图中未表示出的、由设置在打印机内部的CPU执行的打印机控制程序相协同。
首先,接通电源或输入初始化信号后,比较装置76读出A存贮装置74和B存贮装置75的内容,比较它们的大小,把A与B中哪一个所含的内容最大情况通知选择装置71。在本例中,设A所含的内容大。选择装置71接收到比较装置76的输出信息后,立即使控制码体系A的分析装置72起作用。到此为止的步骤是每次接通电源后必然要进行的初始化操作部分。
然后,选择装置71对使用的那一个控制码体系进行判断。通常,得出下述三种结果a)使用控制码体系A;
b)使用控制码体系B;
c)无法判断。
首先,在a)的情况下,选择装置71使A存贮装置74的内容加1,重新使控制码体系A的分析装置72起作用。分析装置72按照代码体系A的规则对从外部主机输入的数据进行处理。在b)的情况下,和a)的情况一样,按照控制代码B的规则处理。以上a)和b)两种情况,对有无本发明都不受影响。
c)的情况正是本发明发挥作用的场合。就是说,在无法判断时,选择装置71可以不改变直到目前已选择了的分析装置,而能使过去使用精度最高的控制代码体系依然发生作用。
此后,当选择装置71进入判断操作到一定的时间,处理流程就又返回到上述的a)、b)和c),在对控制代码体系作出判断时,即增加存贮装置中的内容,使该分析装置起作用。如未作出判断,则使在此之前起作用的分析装置继续有效,重复进行以上的操作。
另外,上述实施例中只说明了比较A、B两种体系的例子,但也可以在三种以上的体系中进行比较而选择一种。
如上所述,按照本发明,由于备有与主机发出的字符码和控制码相适应的多个打印控制单元,能将主机数据加以译码,选择出一种字符码和控制码,只要把主机连接到打印机,就不仅能自动地输出与该主机机种相适应的字符,而且无需在确认主机之后再进行打印控制装置的选择和更换,连接工作十分方便。
权利要求
1.一种由主机接收字符码、控制码等数据进行打印操作的打印装置,其特征在于由下列部件组成用以存贮由主机接收到的数据的输入数据存贮装置;根据多种字符码和控制码组之一进行打印的控制装置;对所述输入数据存贮装置的内容进行译码,以确定所述多种字符码和控制码组中一个的字符码和控制码判别装置。
2.权利要求1所述的打印装置,其特征还在于所述字符码和控制码组判别装置具有对所述接收到的数据作对应于所述字符码和控制码组进行概率分析的分析装置,和根据所述分析装置所得结果决定所述接收到的数据所属的字符码和控制码组的装置。
全文摘要
本发明是一种由主机接收字符码和控制码等数据、进行打印操作的打印装置,它具有下列各个组成部分存储由主机接收到的数据的输入数据存储装置;根据多种字符码的控制码组中之一进行打印的打印控制装置;对上述输入数据存储装置的内容进行译码以指定上述多种字符码和控制码组中的一种的打印控制码组判别装置。本发明的装置,可以自动判别由主机发送来的字符码、控制码等的类型。
文档编号G06F17/22GK1036168SQ8810919
公开日1989年10月11日 申请日期1988年11月19日 优先权日1988年3月17日
发明者青山刚, 高桥哲朗 申请人:精工爱普生株式会社