A THERMAL PRINTER

Abstract: A thermal printer suitable for printing onto plastic cards and suitable for use with a conventional, general purpose computer, said computer comprising: (i) a central processing unit; (ii) a memory adapted to store digitised images; and (iii) an expansion slot; said printer comprising a bus interface adapted to be connected in use to said expansion slot and wherein said bus interface is adapted to allow information about said digitised images to be communicated to the printer.

Description: A thermal printer Field of Invention The present invention relates to thermal printers and more particularly to thermal printers suitable for printing onto plastic cards. Background to the invention Thermal printers for printing identity cards onto plastics material are known. For example, dye sublimation printers, thermal transfer printers and dye diffusion thermal transfer printers. These kinds of printers are widely used for example, to print membership cards for sports centres, security passes for the work place and student passes for educational establishments. Other applications include payment cards, drivers licences, residents permits and access control cards. However, there are several problems with these types of printers. One problem is that the known printers are very bulky and take up a large amount of space. This creates problems with transport, storage and handling of the printers. For example, currently available desktop plastic identity card printers have dimensions around 500 mm x 380 mm x 250 mm. These types of desktop printers are typically used in conjunction with a conventional personal computer and a video camera. (Any device for obtaining the images that it is required to print onto the cards can be used in place of a video camera). This means that a large amount of space is required to assemble all the equipment that is required to use the printer. However, in many situations sufficient space is often not available or is required for other purposes. For example, if it is desired to use the printer at the point of issue of membership cards then the printer needs to be located at the point of issue. For example this could be a health club reception area. However, this is often not practical because of lack of space and because of security and other reasons. This means that the printer cannot be used in conjunction with any computer that is already used in the reception area and it is necessary to buy a new computer that is effectively dedicated to the printer. Any software that is required for the new computer must also be purchased. This then increases the cost of the printer together with the equipment needed to operate it. Alternative printing methods that are less expensive can be used but these tend to be inferior. For example, non plastic cards or cheaper pouch laminated cards have a short life span and cannot reliably accept magnetic tape or other systems for pre-payment or cash less vending. They are also aesthetically less pleasing. In the reception area of, for example, a sports club, where membership identification cards are issued, it is also required to check the cards. This is often done using an electronic card reader. However, this puts more pressure on the space available. Another problem with the known printers is that they are often difficult to install, maintain and use. This is a particular problem because the applications in which it is required to use the printer are often ones in which staff do not have or wish to have extensive knowledge of printing equipment. Installation, service and training is often required and this increases the cost not only of the printer, but the whole system, sometimes prohibitively. Also, if it is required to send the printer to be repaired, this is difficult and costly because of the size and bulk of the machine. The known printers are not portable and cannot be easily transported for use on a field site. Where it is required to issue cards, for example, membership cards at several sites the cost of installing a thermal printer at each site can be prohibitively expensive. However, alternatives to this are equally problematic. For example, if members are asked to request cards from one centre, logistic and administrative problems result. Existing printers are "stand alone" items and of necessity include their own power supply, image processing means and means for controlling the printer mechanisms This, of necessity, adds to both the cost and space requirements of the printer An example of a known thermal printer for printing identity cards is the FARGO (trade mark) printer In its basic form this printer is only able to print one side of an identity card and is unable to encode magnetic strips of chips within an identity card The printer itself is large and must be connected to a parallel port of a personal computer in order to function Plastic cards to be printed enter and exit the machine at different points and this puts space constraints on the area where the printer is used A major problem with known thermal printers for printing identity cards such as the FARGO printer is that because of manufacturing tolerances in the print head print quality can be impaired In this situation the user is required to make an adjustment to the print head orientation by turning a screw Only by a process of trial and error is the user able to reach a satisfactory print head orientation and print quality Because manufacturer's print head tolerances are as much as +/- 10 degrees this is a significant problem It is accordingly an object of the present invention to provide a thermal printer suitable for printing onto plastic cards which overcomes or at least mitigates one or more of the problems noted above Summary of invention According to the present invention, there is provided a thermal printer suitable for printing onto plastic cards and suitable for use with a conventional, general purpose computer, said computer comprising (i) a central processing unit, (n) a memory adapted to store digitised images, and (in) an expansion slot, said printer comprising a bus interface adapted to be connected in use to said expansion slot and wherein said bus interface is adapted to allow information about said digitised images to be communicated to the printer By sharing processing capability and other aspects with the computer through the use of specialised software drivers, the size of the printer can be significantly reduced to a size whereby it will fit within a space such as a full height disk-drive bay in the computer The printer may either be substantially contained within the computer housing itself or may be external to the computer, for example, like a backup tape drive Transport, storage and handling costs for the printer are reduced because of the compact size of the printer Also, the reduced size printer can be used in areas where space is restricted such as hotel reception areas This means that if a computer is already provided in the location where the printer is required it is not necessary to purchase another computer for use solely with the printer The printer is adapted to work with an IBM PCT "AT" compatible personal computer under, for example, the Windows 95 or Windows NT operating systems This provides the advantage that the user is not substantially limited in his/her choice of computer Also, digitised images stored in the computer can be easily and quickly communicated to the printer via the bus interface much faster than conventional printer ports Instructions about mode of operation and other aspects of the motion of the printer can be provided from the computer using this interface Printer driver software is installed on the computer in order to manage these communications Preferably the printer comprises a connector adapted to be connected to a power supply in said computer such that, in use, the printer may be at least partially powered by the computer's power supply This provides the advantage that the size of the printer can be reduced by obtaining power from the computer Also, the number of power leads required is reduced This makes the printer easier to install and maintain as well as reducing the number of unsightly leads Preferably, the bus interface further comprises image logic circuitry that is adapted to process the digitised images. This provides the advantage that the digitised images can be transformed into a form suitable for use by the printer without the need for large dedicated circuit boards to be provided in the main body of the printer for this purpose. Preferably the computer comprises a conventional housing and the printer is adapted to be substantially contained within said housing. This provides the advantage that where a conventional computer is already being used, the printer takes up little or no extra room outside the computer. Also, the printer itself is protected by the computer housing affording further component cost reductions. Preferably the printer is adapted to be substantially contained within a space in the computer which may otherwise be used for a conventional full height disk drive which could be for example, a CD ROM, floppy disk or hard disk drive. This provides the advantage that a free full height slot in a computer can be replaced by a thermal printer embodying the invention. The invention also encompasses a thermal printing system comprising: (i) a conventional general purpose computer comprising a memory suitable for storing digitised images; at least one expansion slot; and (ii) a thermal printer suitable for printing onto plastic cards, said printer being connected to said expansion slot such that in use, images stored in the memory may be transferred to said printer via a bus interface and printed onto plastic cards using the printer. In this way, conventional computers with pre-installed internal thermal printers can be provided. This removes the need for the user to install the printer. Preferably the thermal printing system further comprises an image acquisition means connected to the computer and adapted to acquire images and provide these in a digitised form to the memory. In this way a scanner, CCD camera, video camera, digital still camera or the like can be used to obtain images, for example, photographs of people, for printing onto the plastic cards. Description of the drawings The invention will be further described, by way of example, with reference to the accompanying drawings in which: Figure 1A is a schematic diagram of the relationship between a thermal printer and a conventional general purpose computer. Figure 1 B is a schematic diagram of the major signals and data paths between the components of Figure 1A. Figure 2 is a plan view of a thermal printer from above. Figure 3 shows a side elevation of the thermal printer of figure 2 in the direction of arrow A in figure 2. Figure 4 shows a rear elevation of the thermal printer of figure 2 in the direction of arrow B in figure 2. Figure 5 shows an example of a ribbon spool suitable for use in the printer of Figure 2. Figure 6 shows the printer of Figure 2 positioned in a conventional computer. Figure 7 shows an exploded view of a print head assembly. Figure 7a shows the print block. Figure 8 is a plan view from above of another embodiment of a thermal printer. Figure 8a shows a ribbon cassette fitted into the printer. Figure 9 is a schematic diagram of the FPGA and its interfaces. Figure 10 is a flow diagram showing the top level structure of the print device interface. Figure 11 is a flow diagram of the configuration function. Figure 12 is a flow diagram of the Read Data function. Figure 13 is a flow diagram of the Write Data function. Figure 14 is a flow diagram of the Burn function. Figure 15 is a flow diagram of the Data Out function. Figure 16 is a flow diagram of the Next Line function. Figure 17 is an example of a Bum time curve. Figure 18a is a plan view of a card guide spring. Figure 18b is a side view of the card guide spring of figure 18a. Figure 18c is an end view of the card guide spring of figure 18a. Figure 19 is a perspective view of a guide plate. Figure 20 is a perspective view of a hopper. Figure 21 is a plan view of a print head block. Description of preferred embodiments Embodiments of the present invention are described below by way of example only. These examples represent the best ways of putting the invention into practice that are currently known to the Applicant although they are not the only ways in which this could be achieved. As shown in Figure 1A a thermal printer is provided 1 which comprises a motion controller 2, a bus interface 3 and an image logic 3. The bus interface 3 is located within an expansion slot in a conventional general purpose computer 4. The printer itself 1 may be located within the computer 4, for example, in a location that would otherwise be used for a conventional full height hard disk drive. By enabling the printer to make use of the computer's resources via the bus interface and through better use of the space available, the size of the printer can be significantly reduced. The printer 1 may also be located externally to the computer 4, for example, like a backup tape drive connected to a computer Figure 1 is a schematic diagram intended to indicate the relationship between the computer 4 and the printer 1 rather than their physical locations with respect to each other Images stored in the computer 4 are communicated to the printer via the bus interface and the printer 1 is then able to print the images onto plastic cards or other suitable media An image acquisition means (not shown) may be connected to the computer 4 in order to obtain the images For example, a scanner, video camera or CCD camera could be used This enables images such as photographs of people to be acquired and printed onto plastic cards to form membership cards and the like The term, "thermal printer" is used to include dye sublimation printers, dye diffusion printers, dye diffusion thermal transfer printers and any other suitable type of thermal printer The thermal printer should be suitable for printing onto PVC plastic cards, or cards of other material that are coated or laminated with a suitable receiver Other suitable media includes waxed paper The term, "expansion slot" is used to refer to any site for an expansion card or adapter card in a computer In the example discussed below, the expansion card is specifically an ISA standard 16-bιt expansion slot Expansion or adapter cards are typically used to add to the functionality of a computer for example, by enabling a colour display to be used or by enabling the computer to be connected to a network. Examples of expansion cards include, sound cards, video cards, disk drive controllers and controllers for modems The term, "conventional general purpose computer" is used to include personal computers, workstations and any other suitable computer for example, which is IBM PC "AT" compatible The computer should have a memory suitable for storing a digitised image For example, the computer 4 can be a personal computer (PC) which has a space suitable for a conventional full height disk drive The term, "IBM PC "AT" compatible computer" defines the type of architecture of the computer This type of architecture is a standard type and includes an ISA (industry standard architecture) bus interface A PCI bus based computer could also be used For example, A PCI bus based system can advantageously be used to create a "plug-n- play" system, in which the card printer is simply inserted into a conventional computer and automatically configured by the operating system for immediate use The printer 1 comprises a bus interface 3 which is connected to an expansion slot in the computer 4 This enables direct communication between the printer 1 and a bus in the computer 4 The term bus is used to refer to the communications medium by which a central processing unit (CPU) within the computer 4 communicates with any expansion cards in the computer Printer driver software is installed on the computer 4 and used to control the printer Any suitable application software compatible with the resident operating system can be used and this may be created by a skilled person in the art The resident operating system is a particular operating system working on the conventional general purpose computer The printer driver software may include a graphical user interface, or other interface by which the user can send instructions and receive information about the printer A particular embodiment of the printer driver software is described in Appendix 2 In order to print an image onto a card, a digitised image that is stored in a memory in the computer 4 is provided to the bus interface as a result of instructions from the printer driver software The bus interface comprises image logic circuitry This image logic is a system or method for carrying out image processing on the digitised image The image processing logic is carried out by a number of components or chips in the bus interface 3. These components or chips are specially designed to implement the image processing logic as simply as possible whilst being as compact as possible. As a result, data for a print head within the printer 1 is provided and communicated to the printer 1 via the bus interface as indicated by the arrows 5. This data comprises a list of numbers which represent the length of time that the print head should "burn" over the medium for a given pixel or dot to be created. Data for the motion controller 2 in the printer 1 is also provided via the bus interface 3 from the printer driver software. This information comprises instructions about card format, ribbon type, encoding details and other options. Appendix 1 describes a specific example of a bus interface and image processing logic suitable for use with the invention. Information from the printer 1 also flows back to the computer 4 as indicated by the arrows 5. For example, this includes information from sensors in the printer which detect the position of the card and the state of other components. Figure 1 B shows a schematic diagram of the major signals and data paths between the components of Figure 1A. The reference numerals used for figure 1 B correspond to those used for figure 1 A. More detailed descriptions of these signals and data paths are given in the Appendices. Figure 2 shows a plan view of an example of a printer 1. Where the same reference numerals are used in Figures 2, 3, 4 and 8, these refer to corresponding parts of the printer. The motion controller is provided as a card which is located at the back of the printer mechanism that is shown in figure 2. The motion controller card is not shown in figure 2. The front part of the printer 21 is provided with an input for inputting cards to be printed. A hopper 33 may be incorporated in to the front part of the printer in order to store cards and feed them into the printer automatically as required. In addition, a turnover unit 32 is also provided. This enables cards to be automatically "turned over" and then inserted into the printer again, in order to print the card on both sides. The cards are inserted in the direction of arrow 22 so that a card would be positioned at 90 degrees to the plane of the page in figure 2 and along the line 23 The card then passes between feed rollers 24 and is drawn gradually past a print head 25 The card is drawn further in the same direction until the area to be printed has passed the print head The card is then withdrawn along the same path and may be turned over by the "turnover unit" and inserted into the printer again to print the other side of the card For each card, if colour printing is required, several passes of the card by the print head may be completed The position of the print ribbon 28 is shown in figure 2 The ribbon is initially stored on ribbon spool 26 which is under tension The ribbon then passes about several rollers 42 and between roller 37 the print head 25 It is then reeled onto ribbon spool 27 Ribbon spool 27 is driven by a ribbon motor 34 The ribbon 28 carries ink on its outer surface i e the surface that is not facing the print head 25 The ribbon mechanism has a friction drive rather than a direct drive mechanism By using a friction drive method the size of the printer is reduced and the manufacturing costs are reduced Figure 2 also shows a PC mounted device connection panel 38, a card feed/turnover unit drive motor 39, a keyswitch/cam lock 40 and Ribbon guide rollers 42 Figure 3 shows card cleaning/entry rollers 43 Figure 5 shows an example of a ribbon spool design suitable for use in the printer All the surfaces shown in Figure 5 are smooth and burr free The print head 25 is driven by a motor 29 and a mechanism 30 allows the print head to be raised and lowered In this way the print head 25 is moved over the medium to be printed following instructions from the motion control card A print roller 37 is positioned opposite the print head 25 as shown and the ribbon 28 and the plastic card or other print medium pass between the print roller 37 and the ribbon 28 as indicated The print roller 37 is driven by a drive motor 36. The drive motor also assists in the feeding and ejecting of cards. The feed and cleaning rollers 24 are also driven by a motor 31 (see Figure 3). The printer also contains sensors which detect the card position. Figure 3 shows a side elevation of the printer from side A in figure 2. This shows the upper casting or lid of the printer 301 that is removable. Attached to the side of the printer is a slider 302 that enables the printer unit to be slid in and out of, for example, a full height drive slot in a personal computer. The motion control card (not shown) is positioned at the back of the printer mechanism. An example of an input/output communications, power and motion controller for the printer is described in detail in Appendix 3. Figure 4 shows an end elevation of the printer from side B in figure 2. The outer casing of the printer is shown 401 which may be made from any suitable material such as metal or plastics material. Shafts to gears 402 are shown. Figure 6 shows an example of how the printer 61 is positioned in the conventional computer 62. A handle or recess 63 is provided on the outside of the printer 61 to enable it to be pulled out of a computer 62 and replaced into the computer easily. The front of the printer also has display panels 64 which indicate to the user the current state of the printer. The conventional computer has a "PC mother board" 65, an outer case 66 and may also have a 3.5 inch floppy disk drive 67 and a CD-ROM drive 68. The positions of the components 65, 67 and 68 may be altered. A printer support, cradle and slide mechanism 69 is provided as shown. This provides support for the printer 61 and allows it to be slid out of the computer 62 in the direction of arrow 70. The printer is replaced by sliding it in the opposite direction. Other suitable conventional methods for supporting and inserting/withdrawing the printer can be used. The printer 61 also comprises a bus interface 71 which is located in an expansion slot in the computer 62 Figure 7 shows an exploded view of a new design of print head assembly In Figure 7 all the surfaces should be smooth and burr free The reference numerals refer to components as shown in the table below - Technigue for printing An example of a particular printing technique that can be used in the invention is described in Appendix 1 Other suitable printing techniques can also be used As described above, one problem with known thermal printers for printing plastic cards is that the user is required to make adjustments to the print head orientation in order to maximise print quality and the means for making these adjustments are not easy to use or particularly effective For example in the Fargo system discussed above, the user must turn a screw to pitch the print head in one of two directions, a very limited amount of movement is possible Also the mechanism for achieving the print head adjustments is bulky and can lead to a tendency for the head to be twisted off the print line during the adjustment process The present invention reduces these problems by using an arc and pinion type adjustment mechanism. Figure 7 is an exploded view of a print assembly for use in printer 1. The print head orientation is adjusted during the manufacturing process and set into a position which gives the best print quality. This is done using a head arc block 710 which allows the pitch of the print head 71 to be adjusted. During the manufacturing process blocks 732 and 733 which normally fix the head arc block 710 are removed. The head arc block 710 is held in a jig and the head arc block 710 moved using the jig in an arc and pinion type method until a satisfactory print quality is achieved. The print quality is assessed using a densitometer or by comparison with a test card using an eyeglass. Once the head arc block 710 is in the correct position it is fixed in place using blocks 732, 733 and the jib removed. By using a head arc block 710 in this way the finished printer mechanism is smaller and because the adjustment system has an accurate geometry good adjustment can be made quickly. Also, the end user is not required to make any adjustments to the print head pitch himself. Known thermal printers for printing plastic cards use linear power supplies such as power supply directly from the mains. With this type of power supply bulky components are required in order to enable the power to be used effectively. Also, with linear power supply a maximum voltage level is available. Fuses are typically provided in equipment which draws power from linear power supplies so that if the equipment draws power at a voltage over the maximum level then the fuse blows. In a conventional personal computer, spare plugs are typically provided to the computer's internal power supply. However this power supply is a switch mode power supply that is not used for printers. However, in the present invention, by adapting the power requirements of the printer 1 it is possible to use the switch mode power supply from within the personal computer 4. This provides the advantage that the size and cost of the printer 1 is greatly reduced because there is no need to include dedicated power supply apparatus for use with a linear power supply In order to achieve this, the printer 1 has been designed to have a low power consumption as compared to known thermal printers This is done by using low power components and electronics and by arranging the time periods when the printer 1 requires larger amounts of power to be short The printer 1 uses larger amounts of power when it is printing a card than when a card is being moved into position, for example Switch mode power supplies can be driven over voltage for short periods of time and because the printer 1 is arranged only to require larger amounts of power for short time periods the system is able to function successfully Bus interface design and image processing logic An example bus interface and image processing logic are described in Appendix 1 Known bus interfaces have about 80 components whereas, in the example described in Appendix 1 , the majority of these 80 components are replaced by an FPGA chip (FPGA stands for Field Programmable Gate Array) This reduces costs and simplifies the design as well as saving space Turnover unit 32 As shown in figures 2, 3, 4 and 8 a turnover unit 32 is provided This unit has 4 main functions, which are to clean the cards as they are inserted from the outside of the printer or from an internal card hopper (if fitted) (1), to turn over a card over so that it may be printed on each side (2), to feed cards into the card track for printing from either of the above insertion options (3) and to eject a printed card from the printer following printing (4) As shown in figure 2 a pair of feed and cleaning rollers are positioned at the mouth of the printer These rollers 24 are naturally sticky due to the material used in their construction As a card passes between these rollers, dirt is transferred from the card surface onto the roller 24 The rollers 24 can be cleaned, preferably by removing them from the printer 1 and rinsing them with water The rollers 24 are driven by motor 39 and the motion of these rollers not only cleans cards but feeds them into the printer 1 , one at a time, along path 22, 23. The turnover unit 32 has an inner and outer ring gear, the outer ring being slightly larger than the inner ring. One of these rings 403 is shown in figure 4. Both rings extend around the mouth of the printer. The motor which drives the feed rollers 24 also drives the turnover unit 32 and this enables space, costs and power consumption to be reduced. A gear and drive dog driven by a solenoid are used to control whether the turnover mechanism or the feed system is driven at any one time. This gear rests on a metal drive dog which moves to engage a larger gear which drives the outer ring of the turnover unit 32. In this situation the outer ring rotates through 180° taking the whole turnover unit 32 with it. A card which is held between rollers 24 is thus also rotated through 180° . After this rotation the drive dog is moved forwards to engage a smaller gear which enables the feed system to be driven by motor 39. The card that has been rotated is then fed into the printer 1 by the feed mechanism and can be printed on its other side. This provides the advantage that a separate turnover unit is not required. Rather the turnover unit 32 is integral with the card feed and cleaning mechanisms. Hopper 33 A hopper 33 to hold several cards can be provided, for example in the location shown in figure 2, or in another embodiment in the location shown in figure 8. Figure 20 shows an example of a hopper 33 which is suitable for use in the printer of figure 8. The hopper comprises a frame 2000 with an aperture 2001. Cards to be printed are stacked in to the hopper so that they stand substantially vertically in the frame 2000 with one face of each card facing towards aperture 2001. Pressure is applied to the stack of cards through aperture 2001 so that the cards are held against wall 2003 of the frame 2000. Cards exit the hopper 33 via aperture 2002 one at a time, each card being drawn by a system of feed rollers or other suitable means. For the embodiment shown in figure 8 the hopper 33 is not parallel to the card path 22, 23 This means that on exiting the hopper 33 a card is not positioned on the card path 22, 23 A guide track is therefore used as illustrated in figure 19 On exiting the hopper 33 the card passes along the guide track 1900 in the direction of arrow 1901 It is thus guided onto path 22, 23 and is fed out of the printer between rollers 24 in order to be cleaned Once cleaned the card is then fed along path 22, 23 past the print head as described above On this route the card passes in the direction of arrow 1902 in figure 19 Ribbon spool friction clutch The ribbon spool shown in figure 5 illustrates a friction clutch type mechanism One problem in printer design involves ensuring that a constant ribbon velocity is attained This is difficult because the spool onto which spent ribbon accumulates gradually increases in diameter as more ribbon is used A given amount of rotation of this "take up" spool therefore forwards different amounts of ribbon depending on the diameter of the take up spool at the time A corresponding effect on the velocity of the print ribbon also results for a constant motor speed Various methods are known in the prior art for addressing this problem but these suffer from the fact that additional components are required which take up space For example, the FARGO printer discussed earlier uses a bulky O-ring mechanism Figure 5 illustrates the mechanism used in the present invention This has the advantage that is it compact and relatively small whilst still achieving the aim of constant ribbon velocity Friction pads 53 are located on shaft 52 lower diameter section on either side of a drive dog 54 Component 55 is located onto shaft 52 and is fixed to the shaft 52 A spring 56, washer 57 and nut 58 are also threaded onto shaft 52 as illustrated As the shaft 52 rotates, the friction pads 53 and drive dog 54 tend to slip instead of rotating with the shaft unless sufficient force is applied to spring 56 Drive is applied from shaft 52 via drive ring 55 to the friction pads 53 and dog 54 This friction clutch mechanism is used to ensure a constant ribbon velocity and in conjunction with a second device also maintains a consistent ribbon tension. A similar friction clutch assembly is utilised to retard the print ribbon maintaining ribbon tension, the difference being that in the retard unit the shaft 52 is fixed to the base of the machine and is not allowed to rotate, the drive/restrictive characteristics of the friction clutch mechanism are utilised in reverse holding the ribbon back against the drive force of the ribbon drive clutch. Adjustment to the force applied by spring 56 (figure 5) controls the amount of retard force experienced by the ribbon. Card guide springs Figures 18a to 18c show a novel design of card guide spring clip for use in the present invention. These springs are used to hold a card down onto the card path 22, 23 within the printer 1 and also to hold that card so that it stands substantially vertically on the card path and prevents sideways jitter. This is important because variation in the card position causes the print quality to drop and may mean that the print head itself wears out more quickly than normal. Also misregistration of ink colours can occur. Several of these card guide spring clips are positioned at intervals along the card path. For example, in one embodiment six of the card guide spring clips are used. A card is held in the groove 1801 on the underside of the card guide spring clip 1800. The card guide spring clip 1800 has a flat portion 1802 which is fixed to the body of the printer 1 or other suitable surface above the card path 22, 23. The card guide spring clip 1800 is arranged so that the groove 1801 is parallel to the card path 22, 23 and directly above the card path. The form of the card guide spring clip 1800 enables a down-ward force to be exerted on a card and also the sides of groove 1801 help to prevent sideways jitter of the card. Ribbon cassette In one embodiment of the invention the print ribbon 28 is provided on a ribbon cassette This has the advantage that the print ribbon 28 is easier to install and that if a card jams in the printer 1 then the ribbon cassette can be removed to provide access to the card path 22, 23 A further advantage is that the ribbon itself is spoiled by touching and the cassette protects the ribbon from this Figure 8a shows an example of the ribbon cassette 800 (shaded section) fitted into the printer 1 The cassette incorporates spools 26, 27, which hold the ribbon within the enclosure and prevent contact and/or damage being made to the ribbon surface Use of only one printed circuit board In another embodiment of the invention the major electronic components of the printed which include the motion control board, the motion control board backplane and the printer driver interface, are printed onto one circuit board This reduces tooling and material costs as well as production time Such an implementation also enhances reliability of the entire system, as there are fewer off board wire links which are prone to fatigue Further reliability and vulnerability issues have been addressed by locating the consolidated board in the printer cradle as opposed to the printer itself, the intention being to protect delicate circuitry from accidental damage when handled by an operator For compatibility reasons the enhanced board may provide an ECP interface (Enhanced Centronics Port - a "parallel" architecture) or USB interface (Universal Serial Bus - a "serial" architecture) to the printer in place of the ISA interface This may be an important consideration as more and more PCs are implementing both architectures and there are also cost savings to be gained As well as a cost reduction a production time improvement and reliability enhancement has been made by removing the necessity for a wiring loom between electrical and electronic components and replacing it with a flexible PCB Components may either be connected by mounting directly onto "lands" (exposed contact areas) by soldering or using a captive retainer The flexible PCB is essentially a conductor (possibly tinned copper) sandwiched between two layers of Kapton, a material that exhibits good insulation properties By removing cables and their associated connectors, which are prone to mechanical failure, reliability of the unit is further enhanced Because the flexible PCB is a much simpler structure than a wiring loom, cost savings may be made in both manufacturing and assembly Since the ISA printer driver interface can be eliminated in this instance for economy, it is additionally possible to incorporate standard printer interfaces for no or little extra cost and additional hardware As well as saving an expansion slot this option will facilitate the use of the EPP/ECP architecture IEEE Standard 1284 (Enhanced Parallel Port/Enhanced Capability Port) and/or the USB architecture (Universal Serial Bus), commonly found on modern PCs The benefits to using this option are simplification of the printer driver generation process and conformity with upcoming Microsoft standards for peripherals, making closer integration with the Operating System (for example plug- and-play) a real possibility EPP and ECP offer the possibility of data rates in excess of 1 Megabyte per second which although slower than the ISA interface, represents an acceptable trade-off USB is faster, about 12Mbps, also supports plug-and-play, but is designed to be 'hot-pluggable', a term meaning that the device can be connected and disconnected from the PC whilst it is still operational The above represents significant advances over the standard ISA interface option, not least industry standard compliance Print head block In another embodiment, a print head block is provided as illustrated in Figure 21 , which provides support for the print head The design for the print head assembly, figure 7, was conceived to address a number of important areas within the printer design and functionality These areas are (a) compactness of design, (b) once built the assembly should not require manual intervention during the print head usable life, (c) compliance within the design to compensate for industry standard tolerances experienced within production of the printer as a whole, (d) ease of change damaged units by operators, cost effective manufacture Figure 7 shows an exploded view of the Head Block (a) Due to the location of the print head assembly within the printer all components related to the operation of the print head needed to be of compact design and situated within the immediate location of the assembly Consideration was given to the requirements of the drive motor and to the need to remove the assembly to replace print heads that have failed (b) The assembly had to be of robust and compact design and to an operational standard which would exceed the life expectancy of the thermal print head itself By use of the correct materials and a pressure injection process components could be manufactured to a consistently higher standard than that obtained by other printer manufacturers that use sheet metal products (c) The print head 71 is retained to block 76, block 76 slides on shafts 736, and springs 75 apply pressure onto the head and subsequently onto the card when printing An amount of over run has been incorporated into the design to allow for tolerances experienced within this assembly when fitted into the printer The amount of over run was calculated to work within the effective travel of springs 75 and apply sufficient head pressure to achieve acceptable print quality Figure 7a shows the block 76 will be manufactured in two sections This will allow it to rotate around its centre on shafts 736 should mis-alignment be experienced when the head is fitted into the printer at production This rotational travel will result in an acceptable print being obtained from the printer as the head would maintain a parallel axis to the print roller at worst case tolerances Following assembly clamp plates 732, 733 are positioned around block 710 The assembly would then be positioned in a jig at a correct angle and clamp screws 734 locked to fix the head into position (d) With the head assembly clamped at the appropriate angle and position onto block 710 at production minimal operator intervention is required to install or replace the print head assembly The operation for replacement is inserting the whole assembly into the printer The assembly is locked in position with clamp 790 (figure 8) and is located by point contact at the base of clamp 733 thus compensating for manufacturing tolerances within the printer Other manufacturers require untrained operators to carry out a complicated adjustment process to achieve an acceptable print quality (e) In production, parts 710, 74, 730 and 721 will be pressure die cast as one component thus reducing costs in production of components, tools, machining and assembly Parts 720, 717 will also be manufactured as one part Limit switches 716, 718 indicating extremes of travel are housed within the head block and are actuated by plungers connected to the sliding block and actuator arm 720 Advantages: The invention provides many advantages, some of which include:- 1. Miniaturisation can offer cost benefits to the customer. 2. Use of FPGAs drastically reduce component count for electronics, giving size reduction and cost reduction benefits. 3. The size constraint has meant that we have had to introduce space saving techniques for areas like head pressure (see Figure 7) and ribbon drive (see Figure 5). 4. A better understanding of the dynamics of thermal printing have allowed us to reduce the hardware overhead. Cost savings can be made by reducing the number of components in the machine as a whole. 5. The design is far more radical than would previously have been necessary, meaning we have had to work to tighter tolerances, smaller spaces and develop innovative solutions to difficult problems (head pressure being a good example). 6. There are further advantages when considering how these devices are to be transported - for repair, for example. Exchange units may be cheaply sent out in parcel post whereas larger machines would require a more expensive courier. 7. The portability of the unit, derived from its compact design, can allow them to be used in environments previously thought unsuitable for such devices - such as in mobile stations. 8. Because the units can not only write magnetic stripes and chips when the cards are manufactured, but can also read them, then this may lend the device to be used as an input source as well as an output unit. For example, users of a squash club card system could not only take cards produced by the machine but could also use the machine as a card reader to book a court or renew membership or any other feature offered as a benefit to the cardholder that can be accessed by the club computer. The unit is small enough to be placed at reception so that members can operate the unit themselves. A keylock device prevents tampering of the unit. 9. It is a convention for ID printers to use the standard COM or LPT ports in the computer, as with a normal printer. Image processing in this case may either be wholly or partly carried out using software on the PC and/or hardware in the printer itself. This method however, introduces a natural bottleneck since LPT port data is only 8 bits wide and COM port data is sent serially (1 bit wide). Whilst port technology is improving, giving ever faster transfer rates, the inventions (as described in the examples) ensures that 16 bit data is transferred directly to the printer, obviating the need to use a communications port. The invention can be considered as a direct connection of the printer to the PC bus, as close as any peripheral can be. The result of this is reduced transfer time to the printer, freeing up resources (ports) and the processor. For example data that takes about 30 seconds to download to a printer via a COM or LPT port can take only 1/5 second to download by bus transfer in the present invention. Appendix 1 OVERVIEW This Appendix describes details of the bus interface and image processing logic, by way of example. The bus interface could be implemented using other standards as well as ISA, for example, PIC, VESA (VL), Local Bus, New Bus and SCSI. The printer assembly comprises a bus interface with image processing logic, fitting into an IBM AT card slot and using the full 16-bit ISA bandwidth. Connectors provide ail the necessary signals to drive one Kyocera KDE-57-12MGL2 300 dpi print head, together with the required signals to external circuitry providing sensor input/output (I/O) power and motor control from within the printer. The bus interface board is intended for use as the interface to a highly compact, low- cost digital (identification) ID printer using the dye-sublimation process. The design is not restricted to use of a KDE-57 printhead; other types of print head can be used. General Notes 1. To reduce cost. The prime objective is to base the design on FPGA logic, apart from memory. The most efficient form of construction should be employed using the lowest cost techniques. NOTE: 1 ) There are several serious implications for the design: => Minimum component count. This implies extensive use of dense programmable logic (Xilinx FPGAs, or similar). => Careful choice of memory device. Specialist memory devices are avoided if possible, because they are expensive (e.g.: Video RAM, dual-port RAM, FIFOs (first in first out)). => Simple PCB (printed circuit board) design. The circuit board should not exceed 4 layers if at all possible (double sided may not be possible due to EMC (electro magnetic compatibility) and packaging issues). -m Cost-tailored architecture. The hardware/software boundary carefully defined to avoid expensive hardware tasks. The driver software should do as much as is practical within the performance constraints. 2) This hardware is not expected to perform the data matrixing and pixel-pixel normalisation. The printer driver performs the necessary filtering prior to transmission of data. Bus Interface & Image Processing Logic Features The design incorporates full 16-bit data transfer over the ISA 'AT bus to minimise download time to the printer. By expanding the data bus to 16 bits, it should be possible to use more of the ISA 'AT standard bus 5.3Mb/s raw bandwidth, as opposed to the 1.2 Mb/s raw bandwidth obtainable from the IBM 'XT bus. 2) A clock is required to load data to the head at 4 or 8mhz NOTE: 2) It may be possible to run the system permanently at 8MHz and through judicious use of the head clock divisor, enable slower operation of the system when required. If this implementation is considered unsuitable then a jumper should be provided to change the master clock speed from 8MHz to 4MHz. 3) DMA (direct memory addressing) must be employed to access the PCs memory for image storage. Only a small buffer store, probably 128k cache RAM, to be included on the board. The amount of time the PC is unavailable to the user must be cut to an absolute minimum. NOTE: 3) Originally, it was proposed that the PDI (print device interface) use DMA transfer. This is not justified solely by the required bandwidth; ISA bus IDE (integrated drive electronics) disk interfaces can average 1 Mbyte/second, using an 8-bit bus width. It is proposed that the PDI uses a 16-bit bus width, doubling the achievable transfer rate. The PDI is designed to operate under Windows 95 and NT on a standard desktop PC platform T e PC may be running other applications in addition to the card pnnting system A problem with both Windows 95 and NT is that response time to an interrupt (latency) is essentially unbounded This is likely to be a seπous issue if the PDI has a data buffer smaller than an image panel (672k bytes) If the 're-fill buffer" interrupt response is delayed then image data may be missed causing the pπnted image to be corrupted The implications of buffer size in terms of cost and performance need to be seπously considered It may be possible to use a large low-cost dynamic RAM (DRAM) that can hold a whole image panel This would remove all problems with transfer and response latencies If it can be shown that a surface mount SRAM solution can be cost effective then it may be chosen in preference to DRAM and the associated controller design 4) An IDC connector must be provided on the board for internal connection to the motion control part of the project inside the pnnter In addition, an external 'D' type connector must be provided, duplicating the signals of the internal connector, for instances where external interfacing is required 5) A socket must be fitted to the back plate and routed via the board to a disk dπve style connector This is to provided an alternative power source to the pnnter when operating the device at pnnt speeds that cannot be handled by the PCs internal PSU (power supply unit) Maximum ratings to be 24V, 120W 6) The system must be buffered in such a way that data may be written to the board whilst processing of data & pnnting is in progress 7) A set of jumpers will be provided on the bus interface board to set the base address of the pnnter NOTE 7) In order that we do not encounter problems from the operating system probing the base addresses for plug and play devices, and for flexibility sake, one example is to have 4 jumper selectable base addresses outside the usual COM, LPT etc, range , e g 0x300 8) The bum time curve may be downloaded to a small area of RAM in the Bus Interface and Image Processing Logic pπor to each pnnt The appropπate curve will be downloaded according to how many shades is being used i e 16, 64 or 256 NOTE 10) The bum time is given as some number of clock cycles of a global bum time counter which is clocked at a rate determined by the time resolution required and the pnnt speed The pnnt head pixel element is then turned on for the resulting bum time A scaling factor is applied by adjusting the frequency of the clock (known as the head clock divisor) that is used to dπve the bum time counter Given the speed of today's processors it may be possible to dispense with the bum time curve in hardware altogether An alternative implementation could is that the pnnter dπver downloads clock data (that is the number of clock cycles for a particular pixel to stay on) rather than image data into memory Since both pixel to pixel normalisation and data matπxmg is being undertaken in the pnnter dπver, it is not an unreasonable overhead to perform this profiling function as well 11) A simple UART (universal asynchronous receiver transmitter) must be included on the bus interface board including appropπate handshaking signals to read/wπte data to/from the PC I/O port and to transmit commands & data to the motion controller via the IDC connector or external 'D' connector Commands are required to set pnnt mode, report error status, start pnnt, abort pnnt, mag tape encoder strings, IC encode data etc A protocol will be defined based on the ASCII character set Baud rate, stop bits, data bits and parity may be programmed into the FPGA, with fixed interrupt based hardware flow control This can also be incorporated into a plug and plug design 12) The print head control circuitry is designed to simultaneously drive both halves of the head. 13) Although the majority of data normalisation is done by the printer driver, the image data logic must be capable of taking an analogue input from the thermistor on the print head and use this to normalise the image data for latent thermal build up. NOTE: 13) The temperature of the head is measured by the thermistor buried into the head. The normalisation process can either use a multi-dimensional lookup table (indexed by temperature and pixel data) or a hardware multiplier-type approach (using a table of correction coefficients indexed by temperature). The former approach is more flexible as arbitrary correction curves can be implemented, but is likely to require a considerable amount of storage for the lookup table. The temperature-corrected pixel data is then used to select a corresponding bum time by indexing a table of bum times. A table-based approach is necessary as the bum time curve needs to be completely arbitrary. Commonly an 'S' or 'J' shaped curve is used. 14) Image Storage. The maximum required print area is 1024 x 672 pixels in five colour planes (CYMKO) with either 4-bit, 6-bit or 8-bit chromatic resolution, in 3 quality modes. The print head drive circuitry will therefore be generating 16, 64 or 256 discrete energy levels per colour. Without dithering this means that in the lowest quality mode only 12-bit colour can be realised (4096 colours). In this mode, the printer driver will use a 4x4 dither pattern to create pseudo 256 shades per colour. In the medium quality mode only 18-bit colour can be realised (262,144 colours). In this mode, the printer driver will us a 2x2 dither pattern to create pseudo 256 shades per colour. In the highest quality mode, full 24-bit colour can be realised (16.7 million colours). In this mode the printer driver will not use a dither pattern at all. 15) The image requires a 688,128 bytes of memory per plane, so therefore this is the minimum amount of on-board memory required to adopt the planar strategy. Image data will be in the range 0-255 regardless of the number of shades the unit is pnnting, but see note 10 in this section 16) Positional data from an optical shaft encoder will be provided from the motion controller to indicate when the next line is required to be pπnted, replacing the old end of line interrupt in the previous iteration of the hardware Using this data the image processing logic must interpolate the number of counts per line, using whatever necessary scaling is necessary to pnnt in synchronisation NOTE It is suggested that the line start points are derived by dividing the quadrature data by an integer value programmed into the FPGA Overall synchronisation is also provided by the PC dπver software (e g parameter values related to pnnt speed) and explicit control signals provided by the motion controller (START_PRINT, ABORT_PRINT, NEXT_PANEL_REQUEST) Each pnnting pass of the mult-pass process compπses 1024 lines This is a value determined by the fixed substrate size The synchronisation logic maintains a count of the line number and tums pnnting on and off accordingly Depending on the exact format and timing of the control signals from the motion controller this line count may not prove essential as the motion controller knows, by definition, the line that is being pπnted On receiving START_PRINT from the motion controller a line will automatically be pπnted, the encoder count will be reset & used as the datum from that point by the image processing logic Subsequent line start points will only be pπnted after the requisite number of encoder counts The project is based around the use of the XILINX FPGA XC5204 Further detail about this device is described in "XILINX the Programmable Logic Data Book", 1996, pages 4-181 to 4-248 This device will perform all the interfacing to/from the ISA bus, UART, memory and print head It will contain registers to allow configuration of burn time, number of shades, step size between lines and give access to a control/status register. All the Address and interrupt decoding is performed in the FPGA to give the option of implementing an ISA Plug & Play version. (See Intel Plug and Play ISA Specification Version 1.0). The PCB will contain a standard RS232 serial port (UART) for communication with the printer unit via the proprietary connector pin out together with the print head and card control/data signals. Figure 9 gives an indication of the structure of the whole system i.e. a thermal printer in combination with a conventional computer. System Reguirements ISA Interface The ISA interface will be implemented as an I/O mapped device using 16 bit address decoding. The registers will be mixed as 8 or 16 bits wide data. An interrupt interface will be implemented. No DMA features or memory mapping are required. The interface will operate at the optimum speed for the ISA bus. Memory access The memory will be accessed at a single I/O location and each write to the memory will automatically increment the memory address. The data access will only be 16 bit wide only, 8 bit transfers will not be allowed. Printer Control Registers The control registers for the printer will require an 8 and 16 bit data interface, occupying 8 consecutive I/O mapped locations. UART The UART implementation will be based on a 16450 architecture with 1488 and 1489 line drivers/receivers. The 16450 architecture is described in "Tl Data Transmission Circuits Data Book," 1993, pages 3-3 to 3-25, TL16C450 The 1488 and 1489 line drivers/receivers are also described in this book at pages 2-737 to 2-742, HC1488 and 2-751 to 2-758, HC1489 respectively The device will interface directly to the ISA bus with the I/O address decoding and interrupt routing performed by the FPGA It will require a selectable 8 bit I/O mapped interface using 8 consecutive address locations and a selectable interrupt line will also be implemented Print Head Interface The print head is a serial interface driven directly from the FPGA using TTL (transistor to logic) drive levels This is in accordance with the present system See documentation by Kyocera for KBE-57-12MGL2 thermal print head Position Sensor A shaft encoder quadrature signal will be sent back from the printer unit to indicate the position of the card This will be used to start printing a line at a specific location (i e every 85μm (300dpι)) The printer unit will return three signals • CARDNP (Card Next Panel) this will place the ISA card into receive data mode • CARDSP (Card Start Print) this will place the ISA card into write data mode • CARDABORT ( Card Abort) this will place the ISA card into idle mode ISA Plug & Play One embodiment of the present invention allows the option of Plug & Play This is achieved without the re-layout of the PCB, by arranging the routing of all address decoding and interrupt selectors via the FPGA This allows the FPGA to control the I/O space and Interrupt via jumpers and via registers Memory Devices Many companies offer 128kbyte SRAM devices, some are now shipping 512kbyte devices The 512kbyte part is a more expensive option at present than buying the 128kbyte parts, but if more memory is required (larger print area) or the cost drops these devices can be used The pin out of the memory devices allows for the placement of 512kbyte parts onto the PCB (giving a total memory capacity of 4Mbyt.es) with only a change to the FPGA serial PROM (programmable read only memory) FPGA Reguirements The FPGA selected is a Xilinx part XC5204-6PQ160C This device offers 120 CLBs (configurable logic blocks) and 124 I/O pins This is more than adequate for this design These are a reduced cost/functionality version of the XC4000 family The I/O requirement allows for the 160PQFP package to be used Electrical Interface The FPGA directly drives the ISA bus and printer unit, and as such the drive capability and level sensitivity of the FPGA determines the electrical characteristics of the interfaces This information can be found in the XC5200 data sheet (the manual for the FPGA device) The I/O threshold levels are TTL compatible with a sink capability of Configuration The FPGA used is a SRAM based device On power up conditions it is required to reconfigure itself This device should be serial configured on power up from a serial prom to optimise I/O requirements and remove the need for extra external decode logic The device is removed from its reset state (and into the configuration state) by bringing the PROGRAM pin high During this configuration period the device holds the I/O pins of the Xilinx device tπ-stated with weak internal pull-ups Once the device is configured the I/O and registers are enabled to their reset state A signal from the FPGA (DONE) indicates the configuration process is over and removes the I/O pins from their tri- stated condition and allows them to assume their respective I/O function The configuration pins M0,M1 and M2 of the FPGA should be tied together and pull down via a 47kΩ resistor, this places the device into 'master serial mode' and allows configuration from the serial PROM. By pulling this line high (Vcc) the FPGA is placed in 'slave serial mode' and can be configured by the Xchecker for debugging. I/O Pins ISA Interface The following lines are used as a direct interface to the ISA bus. The following lines select which IRQ or memory address to decode. Memory Interface The memory interface will require the full 1 Mbyte address range to support future requirements of 512kbyte rams. The ability is also required to directly select 4 banks of 2 SRAMS. UART Interface The UART will interface directly to the ISA bus. The FPGA will handle the I/O address decoding and the IRQ routing through the two pins described below. Print Head Interface The serial interface to the print head is implemented with the following pins Position Sensor Interface The two inputs from the shaft encoder allow the direction and position of card to be monitored. The other inputs control when to load a new panel, start printing a panel, or abort the printing process. FPGA Configuration Interface The pins required to configure the FPGA are shown below. The signals with a type I/O are general I/O pins, for this project they will be dedicated to the configuration process and not used as general I/O. PCB (printer circuit board) Reguirements Physical The PCB is a 4 layer 16 bit ISA card with a gold flashed edge connector. The board size is 160mm long and 100mm high, it is constructed with FR4 with 1oz copper on the internal layers and 1/2oz copper on the outer layers plated. A solder resist and legend are placed on the board. It has a single sided placement of components to reduce manufacturing costs. Debugging The PCB design should allow for a pin header that matches the Xchecker cable used by Xilinx for downloading and configuring the Xilinx devices from a PC platform. This allows for faster debugging and optimisation of the device and system. A jumper is required to pull the M0-M2 lines high to switch between 'master serial' and 'slave serial' modes. I/O Connectors ISA Interface The following table shows the ISA interface signals required by this design and for the Plug & Play implementation. The pin out for the ISA bus can be easily found in the EISA Specification (version 3.12, BCPR Services, Inc.). Printer Connector The Internal connector is standard 26 pin IDC 0.1" pitch male header with polarising bump, which contains the following signals. The external connector is a standard 25 pin D-type male. Its pin out is the same as the 26 way IDC except pin 26 is missing. The connector contains the following signals. Power Connectors The external power connector will be a 2.5mm low voltage DC power connector as referenced in the Farnell Components catalogue 224-960 (PCB mounting socket), it is rated at 5A @ 12V dc. To take the power supplied via the external connector an internal PCB mounting connector is used. Xchecker Connector The pin out of the Xchecker is as follows. Configuration Jumpers The PCB will require jumpers to select the required I/O space and IRQ required by the FPGA and UART. These are selectable via the following signals. The jumpers should pull the signals to ground and the internal pull ups of the FPGA will allow the selection. A single jumper is required to select the configuration mode of the FPGA System Operation The operation of the system can be split into three distinct states; config, read data and write data, the entry into each state is controlled by signals from the printer unit. Definition of names Internal counters Internal registers Constants Configuration registers Top Level Structure Figure 10 is a flow diagram showing the top level structure of the print device interface. It represents VHDL code which operates within the FPGA. The control of what state the system is in is determined by the printer unit via the three control signals it returns (CARDSP, CARDNP, CARDABORT). On booting the system has all its registers configured as default to 0 and performs the following procedure: 1. The system enters the config state. • The registers are initialised to default values. 2. When the CARDNP signal is received it enters the READ DATA state. • The panel data is input into memory together with the required register values. 3. When the CARDSP signal is received it enters the WRITE DATA state. • The panel data is transferred to the printer unit and written to the card. If during this process the system receives the CARDABORT signal it cancels the present print and returns to the idle state. Get Status This function returns the state of the CARDNP and CARDSP signals so that movement between states can occur. Config Figure 11 is a flow diagram of the configuration function. On power up or fault conditions (CARDABORT) the system is reset and enters the Config state. Here the registers and counters are cleared. The print head control signals are placed in the off state. Read Data Figure 12 is a flow diagram of the Read Data function. The read data state is the only state that allows access to the registers. The three configuration registers can be accessed here together with the data register for writing to the memory. The configuration registers must be accessed before the data is written into the memory since the last access to the memory (a whole panel has been loaded) causes the system to exit this state and wait to enter the write data state. Write Data Figure 13 is a flow diagram of the Write Data function. When this state is entered data is sequentially read from the memory two pixels at a time, processed and written to the printer head by DATA OUT. After a line is written to the printer head the line is burned for a period determined by BURN. Each line of data is processed by DATA OUT MAXSHADE times and then waits until the card has moved to the next line (determined by NEXT LINE), then the next line is processed as before. Once the panel has been printed (all 1024 lines written) the system returns. A delay of one burn period is present between the CARDSP signal and the next line (the shaft encoder generating the required number of counts) being reached and printing starting for that line. This will effectively produce a displacement of the image related to the card speed and the burn time. Burn Figure 14 is a flow diagram of the Burn function. When the data has been shifted in and latched in the printer head then a delay is implemented which gives extra time to burn the line onto the card. This extra time is the BURN value. Data Out Figure 15 is a flow diagram of the Data Out function. The data to the print head is split into two pixels DB(15:8) and DB(7:0). These are the pixel intensity i.e.O to 255. When the value of the SHADE counter is greater than the pixel value then the correct intensity has been transferred to the printer head for that pixel and no more burns are required. Next Line Figure 16 is a flow diagram of the Next Line function. The shaft encoder outputs pulses as the card traverses the print head. When the pulses (ENCNT) equal the ENCODER value then the next line has been reached and the function returns to allow the next line of data to be written. Mapping to ISA bus The following tables show how the I/O base address and IRQ (interrupt request) routing are selected. UART The UART will use eight contiguous 8 bit I/O address spaces and a single interrupt line. The FPGA will perform all the interrupt routing and address decoding. I/O The following table shows the interaction of the UARTIO lines and the address space decoded. The UART will occupy any one of the standard UART addresses as shown in the port usage column. IRQ The following table shows the interaction of the UARTIRQ lines and the Interrupt decoded. The UART will use any one of the above interrupt lines. Their common usage is shown in the IRQ usage column. Printer The printer will use sixteen contiguous I/O address spaces. The FPGA will perform all the address decoding. I/O The following table shows the interaction of the UARTIO lines and the address space decoded. Register Map All the registers can only be accessed after the CARDNP signal is received. The I/O space for the registers are relative to the base address selected; Burn Time This is a 16 bit register and holds the number of clock cycles each shade is burned for. The legal values are from 384 (the data transfer time) to 65535. The clock used is 8MHz. Max Shade The max. shade register hold the maximum number of shade used to print this image i.e. 255, 127, 63. The data size should be related to the max shade value, i.e. 128 shades should have data values between 0 and 127, and a max shade value of 127. Encoder The shaft encoder generates a number of pulses per line. This register contains the number of pulses per line i.e. 47 pulses per 85μm (300dpi). This is an 8 bit register. Data The data register is the link to the memory. When data is written to this register it is transferred to the memory with the address being automatically incremented after each write. It is a 16bit register access. Once the memory is full any further writes are ignored until the CARDNP signal is received. The data is written into memory in the following format. It is necessary to implement a no contiguous memory map since the data is shifted into the print head as two separate serial heads one holds pixels 0 to 383 and the other 384 to 767. Status/Control The status/control register holds the status of the printer as a position in the print process. The status is a read only register with the following bit functions. The control register is a write only register that has the following bit functions. APPENDIX 2 Overview This Appendix describes details of the Windows printer driver by way of example. The printer driver described is a Windows 95/NT driver_based upon the features outlined in this document. Three modes of operation are available 16 shade, 64 shade and 256 shade true colour. The 16 shade and 64 shade modes use dithering to achieve pseudo 256 shades. In 16 shade mode the printer can generate 16 discrete values per colour (C, M, Y & K). That means without dithering only 12 bit colour can be realised (4096 colours). The driver must use a 4x4 dither pattern to simulate 256(16x16) shades per colour. Likewise in 64 shade mode the printer can generate 64 discrete values per colour (C, M, Y & K). That means without dithering only 18 bit colour can be realised (262,144 colours). The driver must use a 2x2 dither pattern to simulate 256 (4x64) shades per colour. In 256 colour mode no dithering is required. The printer communicates with the host PC through a serial port for its initialisation & encoding data. The bus interface emulates a standard com port. However, image data for the printer is not sent via the serial link, instead it is DMA'd over the 16-bit data bus via an I/O mapped port. Magnetic encoding is possible through the messaging protocol as well. The use of the DMA (digital memory addressing) process as described in the previous paragraph is not essential; it is possible to replace this DMA process by conventional block transfer across the bus. Printing Notes Image Area 300 dpi across the print head 768 logical pixels across the head, or 96 bytes per print line. 672 real pixels on the print head, the first 96 pixels don't exist, although must be counted but cannot be printed. 300 lines per inch in the feed direction 1024 pnnt lines per panel Magnetic Encoding To make things as flexible as possible the pnnter is able to encode any track and any format without actually knowing what the format is The magnetic encoding commands are sent to the pnnter pπor to the Start of Page command Summary of Pnnting Seguence Encode Mag Stπpe Start Page Page Eject Colour Correction Essential Bits 1 Bum Tme Profiling (BTP) Each of the three dyes used to pnnt a full colour image have different physical & chemical characteπstics and hence the build-up in optical density with bum time will vary from one dye colour to another Practically speaking, the colours that can be generated are not perfectly linear with respect to the data sent for a given pixel value By modifying the bumtime curve for each dye the build up can be profiled to give a more accurate colour rendeπng In one example, this process is performed by selecting the preferred curve from a look up table stored in EPROM (see figure 17 for an example of a bum time curve) For example, up to 16 different curves per shade were stored in the EPROM However, to reduce hardware costs and to make it easier for the user to alter the bum-time profile the actual bum time values are generated by a utility program, separate from the Windows dπver (not descnbed in this Appendix), which will take readings from a reflective densttometer and calculate the required changes 2 Pixel-Pixel Normalisation (PPM) Pnnt heads are not flat and heater resistance can vary as much as +/- 15% Therefore it is desirable to compensate for this non-lineaπty by augmenting or attenuating the image data. This process is handled by manipulating the image data prior to transmission in the Windows driver. A file containing the attenuation augmentation value for each pixel (672) is generated by a utility program separate from the Windows driver and not described in this Appendix. An alternative embodiment involves implementing the bum-time profile using the Windows driver. It is up to the driver to use bum-time data from a separate file, modify the current image data to be printed and transmit the resultant transformation as clocks per pixel to the image processing logic on the bus interface, probably given as a 16-bit valve. 3. Thermal Hysteresis Control (THC). Because the thermal process is an imperfect one, algorithms to account for the behaviour of historically printed pixels and how they affect pixels about to be printed are included in the Windows driver, compensating for variable localised heat latency & handled by pre-processing the image data in the Windows driver. 4. Dithering. In the two non true-tone quality modes dithering is used to generate pseudo 24-bit colour. The table below shows dithering in the 16 shade mode using a 4x4 dithering matrix with the following pattern: However, this is only one example of a dithering matrix, other suitable schemes could be used. Example steps for conversion are as follows: 1. Begin with 24-bit colour ( 8-bits each : r, g, b). 2. Calculate C M Y. 3. Transform colour hue for printer's characteristics. 4. Look up grey shade gltblfj which is equal or just below desired intensity. 5. Select pixel value dependent on position in image, dither table and how far from the transitions in the intensity table. Thermal Hysteresis Algorithm The Thermal Hysteresis Algorithm is now described: The Windows Printer Driver refers to the implementation of a Thermal Hysteresis Algorithm, which monitors the behaviour of surrounding pixels to adjust the burn time used for the currently printing pixel. Many of the print head manufacturers implement 'history control' of some description in their products. Objectives The main objective of the thermal hysteresis algorithm is to suppress 'overshoot' in optical density build-up through the latent heat present from the power decay of the previously printed pixels In the prior art, a different power function f n (x) is applied according to which of a number of prespecified permutations of pixels is being printed The head manufacturers apply a rudimentary power correction factor in mW according to which permutation of pixels applies by varying the pulse width (and hence Ton) for a given CONT line A more sophisticated mechanism is used in the present invention following an exponential decay curve for example. Criteria The Hysteresis compensation can be enabled or disabled from within the printer driver Appendix 3 This appendix descnbes details of the input/output, communications, power and motion controller for the pnnter by way of example General Notes 1 To reduce manufactuπng costs The most efficient form of construction should be employed using the lowest cost techniques 2 On board processor is programmable using C/C++ although any other suitable programming language can be used Motion Control System Reguirements 1 2 PWM motor outputs are required, using motors rated at 1A 12VDC 2 One of the PWM dπves must have quadrature encoder feedback 3 3 On/Off DC motors outputs are required, (specification available) For the prototype boards a micro-preset pot is required to tπm the motor speed For production this pot must be replaced by a fixed vaiue resistor 4 Quadrature encoder signals must be duplicated and communicated via the IDC connector for use by the Bus Interface & Image Processing Logic 5 Quadrature encoder signals must be duplicated at an on-board connector for use by the Mag-Stπpe Encoder 6 7 TTL inputs are required 7 5 TTL outputs are required 8 5 power source outputs are required suitable for driving LED emitters, 1 5V 50mA 9 An RS-232 link must be provided to communicate with the Bus Interface UART 10 An RS-232 link must be provided to communicate with the Mag-Stπpe Encoder 11 An 8 or 10-bit A/D converter is required to read values from a thermistor (thermistor spec to follow). 12. An 8 or 10-bιt -A/D converter is required to read values from a phototransistor (spec, to follow). 13 A solid state relay hard wired to one of the TTL outputs mounted on the board must tum on or off VHO to a pnnt head. Connector to be defined but must be located physically close to the head. It must be possible to drop the 12VDC supply to 10VDC by means of a jumper. Total power for this relay will not exceed 60W. 14 Connectors to be defined. 15 Board dimensions 136mm x 100mm minimally Actual available area may be significantly larger. Layout to be defined. 16 Autonomous operaton is required using an on-board microcontroller Storage must allow for programs up to 128Kb in size. 17 An IDC connector will supply signals to and from the Bus Interface & Image Processing Logic. The power connector will most likely be a Molex style PC supply disk dπve connector giving 12VDC & 5VDC. Both connectors may be combined in one unit. 18 Logic signals for the Pnnt Head from the IDC connector must be routed through the board to a connector positoned close to the head itself. "Firmware" for the moton control board (of Figures 24 to 34) is provided in any suitable way as is know to a skilled person in the art.

Claims: CLAIMS 1. A thermal printer suitable for printing onto plastic cards and suitable for use with a conventional, general purpose computer, said computer comprising: (i) a central processing unit; (ii) a memory adapted to store digitised images; and (iii) an expansion slot; said printer comprising a bus interface adapted to be connected in use to said expansion slot and wherein said bus interface is adapted to allow information about said digitised images to be communicated to the printer. 2. A thermal printer as claimed in claim 1 comprising a connector adapted to be connected to a power supply in said computer such that, in use, the printer may be at least partially powered by the computer's power supply. 3. A thermal printer as claimed in claim 1 or claim 2 wherein the bus interface further comprises image logic circuitry that is adapted to process the digitised images. 4. A thermal printer as claimed in any preceding claim wherein the computer comprises a conventional housing and the printer is adapted to be substantially contained within said housing. 5. A thermal printer as claimed in any preceding claim wherein the printer is adapted to be substantially contained within a space in the computer which may otherwise be used for a conventional full height disk drive which could be for example, a CD ROM, floppy disk or hard disk drive. 6. A thermal printer as claimed in claim 2 wherein said power supply is a switch mode power supply. 7. A thermal printer as claimed in any preceding claim which comprises a card feed mechanism arranged to feed a plastic card into and out of the printer and wherein at least part of said card feed mechanism is rotatable such that in use a plastic card from said feed mechanism can be turned over. 8. A thermal printer as claimed in any preceding claim which comprises a hopper arranged to hold a plurality of plastic cards to be printed. 9. A thermal printer as claimed in claim 7 wherein said card feed mechanism and said rotatable part of said card feed mechanism are driven by a single motor. 10. A thermal printer as claimed in any preceding claim which comprises: (i) two ribbon spools between which a print ribbon is spooled in use using a motor driven at a substantially constant speed; and (ii) a print ribbon spool friction clutch adapted such that in use when a ribbon is spooled between the two ribbon spools using said motor a substantially constant ribbon velocity is achieved. 11. A thermal printer as claimed in any preceding claim which comprises a plurality of spring clips each of said spring clips comprising: (i) a substantially flat portion adapted to be fixed to a surface; (ii) a concave portion extending from said substantially flat portion and adapted to be placed in use over the path of a card through the printer; and (iii) a groove in the protruding surface of said concave portion, said groove being adapted to accept in use an edge of a card to be printed. 12. A thermal printer as claimed in any of claims 1 to 9 said printer being adapted for use with a print ribbon in a cassette. 13 A thermal printing system comprising: (i) a conventional general purpose computer comprising a memory suitable for storing digitised images; at least one expansion slot; and (ii) a thermal printer suitable for printing onto plastic cards, said printer being connected to said expansion slot such that in use, images stored in the memory may be transferred to said printer via a bus interface and printed onto plastic cards using the printer. 14. A thermal printing system as claimed in claim 13 which further comprises an image acquisition means connected to the computer and adapted to acquire images and provide these in a digitised form to the memory.

Inventors: SIMMONDS JOHN ANDREW, STRICKLAND JAMES GERALD, SIMMONDS, JOHN, ANDREW, STRICKLAND, JAMES, GERALD
Applicants: IMAGIK LIMITED, SIMMONDS JOHN ANDREW, STRICKLAND JAMES GERALD, SIMMONDS, JOHN, ANDREW, STRICKLAND, JAMES, GERALD
Application year: 1998
Main classification: B41J13
IPC codes: B41J2, B41J13, B41J29, G06K15