Abstract:
According to one aspect of the present invention a scanner comprises a transport mechanism for moving a document. A sensor detects a leading edge and a trailing edge of the document. The sensor turns off a drive mechanism when a leading edge of the document is detected. A drive mechanism is started when a trailing edge of a document is detected. A camera scans the document and detects a skew angle of a leading edge and a trailing edge of the document. A front end controller receives a digital signal from the camera and detects the document in a field of the camera within a specified range of pixels.

Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates in general to scanners and in particular to sensors in scanners which control operation of the scanner cameras and paper transport.  
         BACKGROUND OF THE INVENTION  
         [0002]    Digital scanners use a number of transmissive or reflective electro-optical sensors to control the movement of paper through the automatic document feeding (ADF) portion of a scanner and the camera movement in the platen section. In a typical sheet fed scanner there is a first sensor to detect the presence of a sheet in the transport mechanism. This first sensor turns off the feeder motor when the sheet passes in front of the sensor and reactivates the feeder motor after the sheet passes beyond the sensor. There are typically five additional sensors in a line which detect skew of the document in the transport mechanism. Document skew information is necessary to determine when to turn the camera on so that portions of a skewed document are not lost in the scanning process. These six sensors add additional cost to the manufacture of scanners.  
           [0003]    Other prior art attempts to solve this problem have not been completely successful. U.S. Pat. No. 5,384,621 which uses a charged coupled device (CCD) to detect the skew of a document on a platen by the use of a CCD with multi-frequency detection. In this patent, however, the paper is not moving.  
           [0004]    In the low volume production scanner market the unit manufacturing cost must be minimized in order for a product to be competitive. A major cost driver is the number of sensors. In order to control the movement of paper in automatic document feeding and the camera in the platen portion of the scanner there is a requirement for multiple sensors. It would be desirable to provide a scanner using fewer sensors thereby reducing the cost of the scanner.  
         SUMMARY OF THE INVENTION  
         [0005]    According to one aspect of the present invention a scanner comprises a transport mechanism for moving a document. A sensor detects a leading edge and a trailing edge of the document. The sensor turns off a drive mechanism when a leading edge of the document is detected. A drive mechanism is started when a trailing edge of a document is detected. A camera scans the document and detects a skew angle of a leading edge and a trailing edge of the document. A front end controller receives a digital signal from the camera and detects the document in a field of the camera within a specified range of pixels.  
           [0006]    According to the present invention a scanner controls the feeding and imaging of documents by using a CCD camera as both scanner and sensor. The scanner has limited sensing capability provided by the ultrasonic double document sensor along with special registers and interrupts provided by the front end controller imaging field programmable gate array here after referred to as (FPGA). The special features of the front end controller (FEC) FPGA provide real-time sensing of pixel data as captured by the camera CCDs enabling a second sensing means in addition to ultrasonic document detection subsystem (UDDS).  
           [0007]    This invention represents a unique method for using the CCD of the scanners camera to replace multiple individual sensors, the control electronics associated with the sensors, and the cost of the sensors. This is done by adding logic to the front-end hardware that receives data from the camera, and by controlling that hardware in the scanner firmware. This logic will provide the control firmware the ability to detect paper entering the cameras CCD in the automatic document feeder and detect contrasting features on the underside of the platen portion of a low volume scanner. This detection capability will allow the scanners mechanisms to be controlled with a minimum number of additional sensors. One additional sensor is only required in the ADF portion to avoid missing sensor events based on image content and to maintain the inter-document gap.  
           [0008]    According to one embodiment of the present invention, the CCD of the scanners scan modules, sometimes referred to as cameras, also operate as sensors and are used to locate and measure mechanical offsets from feeder to scan module and from home to scan area of the glass platen. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]    [0009]FIG. 1 is a functional block diagram showing inputs to a front end controller according to the present invention.  
         [0010]    [0010]FIG. 2 is a side view of a scanner according to the present invention.  
         [0011]    [0011]FIG. 3 is a top view of the scanner shown in FIG. 2.  
         [0012]    [0012]FIG. 4 is a view of the underside of the platen housing depicting platen type label features.  
         [0013]    [0013]FIG. 5 is a timing diagram for the automatic document feeder portion of the scanner according to the present invention.  
         [0014]    [0014]FIG. 6 is a timing diagram for a scanner according to the present invention showing detection of skewed documents.  
         [0015]    [0015]FIG. 7 is a timing diagram for a scanner according to the present invention used as a platen scanner.  
         [0016]    [0016]FIG. 8 is a timing diagram showing the homing cycle of a scanner according to the present invention used as a platen scanner. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]    The present invention will be directed in particular to elements forming part of, or in cooperation more directly with the apparatus in accordance with the present invention. It is to be understood that elements not specifically shown or described may take various forms well known to those skilled in the art.  
         [0018]    Referring now to FIG. 1 the sensing capability of the front end controller (FEC)  1  is programmable from a micro controller by means of a series of registers. The FEC  1  provides two types of sensing. A typical micro controller that may be used is a power PC  15  available from Motorola Corporation. The micro controller receives inputs from and controls outputs to the ultrasonic document detection system (UDDS)  16 , the FEC  1  and the motor controller  19 . Both sensing functions (primary and secondary) require the start  6  and end column registers  7  be set indicating the starting and ending pixel positions of the CCD which will be included by the logic to determine if the sensor has detected a transition. A low to high transition occurs when a number of pixels greater than or equal to the number programmed in the number pixels register  8  become greater than the value in the threshold register  5 . A corresponding high to low transition occurs when this number of pixels has their values become less or greater than the threshold register  5 . In either transition the internal FEC signal edge detect reflects the current state of the pixel detect logic. The number of pixels  8 , start  6  and stop  7  columns and the threshold register  5  values are programmable by setting their values in the FEC  1  registers. When a transition occurs there will be an interrupt generated on the power PC CPU (PPC)  15 . There is a free running line count register  9  to keep track of where in the image an edge is detected. The power PC  15  will determine the cause of the interrupt by reading the interrupt status register  4  of the FEC  1 .  
         [0019]    This sensing capability is replicated in the form of a primary and secondary sensor. The primary sensor of the FEC uses the internal edge detect signal, the input primary sensor enable  13  and valid page force  11  signals to generate the output valid page signal  18 . The transition of the valid page signal results in an interrupt  12  from the FEC  1  to the power PC  15 . The secondary sensor has the same capability of the primary sensor except that it does not generate valid page on edge detect instead any state change of the FEC edge detect signal results in an interrupt to the power PC CPU (Note: as the name implies valid page force can always force valid page). The purpose of the primary sensor is to provide real-time events to control the scanner mechanisms for the purpose of storing an image in the image buffer and is used in the ADF mode. The purpose of the secondary sensor is to detect transitions as previously defined to provide real-time sensing capability with the possibility of not storing an image in the image buffer. This is used primarily for platen motion control and ADF printer zone detection.  
         [0020]    The scanner functions in two main modes. This section describes the control requirements for the ADF mode. In general, the FEC  1  must provide the functionality to permit the power PPC  15  the ability to capture images for documents fed through the ADF portion  34  of the scanner even if they are not fed squarely to the CCD. This dictates that there be the ability to capture pixels from the image, which arrive early  70  (before the time to travel the distance from the UDDS to the CCD). The FEC must latch this condition so that image content does not allow valid page to be erroneously removed while the document is known to be present as indicated by the UDDS signal and reflected in the primary camera sensor enable (PSE). Then the FEC must provide a means to capture pixels, which remain in the CCD view late  71  due to document skew on the trailing edge. In other words, there must be a means to accurately capture an image with little or no chance of loosing image data. The only time the possibility exists for image data to be lost in during the small window of time late pixels are being captured and only if there is unusual image content  58  in that brief period that fools the FEC edge detect logic.  
         [0021]    There are two entities, which must be managed when the scanner is in the ADF scanning mode namely the document and their corresponding images. In the ADF mode the documents (pieces of paper) are automatically moved from the input tray  40  through the imaging system to the output tray  33  as shown in FIG. 2. The coordination of a number of mechanisms and electronic devices are required to do this. The feeder clutch when energized picks a document from the input tray  40  and engages it with the rollers of the ADF  34 . Once the document is in the ADF  34  it will be moved at a constant velocity through the upper and lower CCDs until it ends up in the output tray. The purpose of moving the paper through the CCDs  26  and  29  is to capture a digital version of the image on front and rear side of the document. The image data is controlled by the logic of the FEC FPGA&#39;s  1 . Controlling this process so that a predictable throughput can be maintained requires real-time feedback from the sensors. The timing diagram depicted in FIG. 3 shows the coordination of the required signals to move and image two documents.  
         [0022]    First, the feeder clutch  51  is energized by the PPC until the document is detected by the UDDS  52  at which point it  51  is turned off. The UDDS signal  52  is received by the PPC  15  and remains enabled until the document exits  59  the UDDS  28 . Given that the document is moving at a constant velocity and the UDDS  28  is a known distance  39  from the CCD aperture the PPC can begin a timer to determine when the document will enter the CCD  26  and  29 .  
         [0023]    The primary sensor enable signal  53  when active allows the FEC edge detect logic  1  to recognize the documents presence by detecting pixels at the CCD per the values written to the FEC control registers  4 - 10 . This capability is required for documents not fed squarely with respect to the CCD. In this case there must be a means to capture image data prior to the timer event to avoid lost image data due to document skew. See FIG. 5, 70 versus  54  of FIG. 6.  
         [0024]    At the point the FEC primary sensor  13  detects pixels, as indicated by the edge detect  54 , it will set the valid page signal allowing the imaging hardware and image buffers  17  to process and capture the image  66 ,  67 . At the same point the FEC will interrupt  57  and  12  the PPC  15  allowing it to determine that the image is being processed.  
         [0025]    In the case when the document is fed squarely the document will reach the CCD  54  at the point the timer is expiring. At this point the valid page force  55  will be set active by the PPC which forces the FEC  1  to generate valid page  18  and  55  if it has not already done so. It is likely, for square fed documents, that the FEC primary sensor will also see pixels at the same instant  54 , in either case the valid page (VP)  56  interrupt will be generated. There may be documents whose image content is of such a nature that the edge detect logic does not detect the threshold. The valid page force signal  11  and  55  results in an image being captured for documents with such image content and avoids a lost image even if it is invisible to the CCD  26  and  29 .  
         [0026]    Once the edge detect logic has recognized an image  54  or the valid page force signal is enabled  55  with the PSE signal  53  enabled the FEC logic  1  changes state and latches the valid page signal high  56 . When in this state the FEC  1  does not reflect the edge detect signal  58  changes in valid page  56 . The FEC remains in this state until the primary sensor enable signal is set low  60  by the PPC  15  at the point the document exits the UDDS  59 +(the time to travel distance  39 )  60 . In the case when the document is fed squarely to the CCD the edge detect signal will go inactive at about this same time  61 . Latching this transition allows documents with image content that is constantly below the sensor threshold to be processed properly and ignore features which could fool the FEC  1  pixel detect logic such as a dark line parallel to the CCD  58 . The PPC will use a timer to keep valid page force  55  active until the PSE signal goes inactive  60 +(the time for the document to travel the distance  39  and  2 )  64 . This period of time is when pixels that appear late will be captured  71 . An example of late pixels occurring is the trailing edge of a skewed document  72 ,  73  shown in FIG. 5, 71.  
         [0027]    The timing diagrams also show the fact that in order to maintain the required throughout and given free space in the image buffer the feeder clutch needs to be activated to feed the next document prior to the previous document images being completely captured  65 .  
         [0028]    The platen  41  mode allows a user the ability to scan documents which they do not want to feed through the ADF portion  34  of the scanner. This may be because the documents have odd features as previously described or they are to delicate or valuable to feed automatically.  
         [0029]    This mode of operation has minimally two phases namely the scan phase and the home phase. Both of these phases will use the secondary sensor of the FEC FPGA  1  and the motor controller interface. Initially the PPC will command the platen motor to move the lower camera from home to a distance in steps equal to the length of the move  38  in the scan direction at the velocity required for the specified resolution as shown in FIG. 8, 80. The motor controller  19  interface will also provide a parameter to the move command, which indicates a number of steps into the move to report an intermediate event  81 . This event will generate an interrupt  81  to the PPC at the instant the motor controller CPU has detected it has moved that intermediate number of steps. The motor controller  19  will do this while it maintains the motion of the camera without varying its velocity. This is required so that the power PC can enable the secondary sensor  14  just prior to reaching the platen type label  30  feature while previously ignoring features of the underside of the platen which may have triggered a false FEC interrupt  12 . Once this event has been received  81  by the PPC it will set the FEC  1  registers  4 - 10  related to the secondary sensor  14  and enable secondary camera sensor enable (SSE)  82  so that an edge detect event  83  will trigger an interrupt  84 . When the camera reaches the platen type label with the SSE setup, as previously described, an interrupt is received by the PPC generated by the FEC  12  it will in turn generate valid page  86  and the imaging hardware will begin capturing the image in the image buffer  17  and  18 . This is possible given the dimensions of certain features of the scanner are defined and known to be within specified tolerances. These include the dimensions of the white patch  21  and  23  and the dimensions of the platen label  42 - 47  and  49  and their positions relative to the imaging area  48  and home  35  and  36 . A typical platen type label is depicted in FIG. 4. The platen type label has features which allows the scanner system to identify the type and size of the attached platen by capturing an image of it and analyzing characteristics of the image compared to known values as well as the location and size of the imaging area. The motor controller  19  CPU will eventually recognize a point near the end of the move  87  and notify the PPC that it is about to decelerate via an interrupt  88 . The PPC will deactivate valid page force  88  as well as SSE  82  and the FEC  1  will lower valid page  89  and the image capture will end.  
         [0030]    At this point the power PC  15  will direct the motor controller  19  to move the camera in the home direction, at a high speed, distance  90  which brings it close to home just prior to the lower white patch  27 . When this move is completed the motor controller  19  will interrupt the motor control (MC)  91  indicating this event. At this point the PPC will setup the secondary sensor  14  of the FEC  1  to detect the edge of the lower white patch  27  and enable the SSE  95 . The PPC  15  will then command the motor controller  19  to slow step in the home direction  92  and will receive an interrupt from the FEC  93  when the white patch label is detected. At that instant the PPC  15  will command the motor controller  19  to stop the platen motor. The lower camera will now be a known number of steps from home proportional with the width of the white patch  21  and the PPC will command the motor controller  19  to slow step that number of steps  96 . The motor controller  19  will interrupt the PPC when this move is complete  97  and the camera will be home completing the platen scan.  
         [0031]    The invention has been described in detail with particular reference to certain preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the scope of the invention.  
       Parts List  
       [0032]    [0032] 1 . Front end controller (FEC)  
         [0033]    [0033] 2 . Range of pixel of CCD to be used as sensor  
         [0034]    [0034] 4 . Interrupt register  
         [0035]    [0035] 5 . Threshold register  
         [0036]    [0036] 6 . Start column register  
         [0037]    [0037] 7 . End column register  
         [0038]    [0038] 8 . Number pixels register  
         [0039]    [0039] 9 . Line count register  
         [0040]    [0040] 10 . Control register  
         [0041]    [0041] 11 . Valid page force (VPF)  
         [0042]    [0042] 12 . FEC interrupt  
         [0043]    [0043] 13 . Primary sensor enable (PSE)  
         [0044]    [0044] 14 . Secondary sensor enable (SSE)  
         [0045]    [0045] 15 . Power PC (PPC)  
         [0046]    [0046] 16 . Ultrasonic document detection system (UDDS)  
         [0047]    [0047] 17 . Image buffer memory  
         [0048]    [0048] 18 . Valid page (VP)  
         [0049]    [0049] 19 . Motor control  
         [0050]    [0050] 21 . Width of lower white patch  
         [0051]    [0051] 23 . Width of upper white patch  
         [0052]    [0052] 26 . Charged coupled device (CCD)  
         [0053]    [0053] 27 . Lower white patch  
         [0054]    [0054] 28 . Ultrasonic document detection system (UDDS)  
         [0055]    [0055] 29 . Charged coupled device (CCD)  
         [0056]    [0056] 30 . Platen type label  
         [0057]    [0057] 33 . Output tray  
         [0058]    [0058] 34 . Automatic document feeder (ADF)  
         [0059]    [0059] 35 . Distance from edge of white patch to home  
         [0060]    [0060] 36 . Distance from home to platen type label  
         [0061]    [0061] 38 . Length of travel of lower camera within the platen portion of scanner  
         [0062]    [0062] 39 . Distance from UDDS to CCD  
         [0063]    [0063] 40 . Input tray  
         [0064]    [0064] 41 . Platen portion of scanner  
         [0065]    [0065] 42 . Fixed dark area of platen type label defining a one in the platen type  
         [0066]    [0066] 43 . Three squares the size of  42  defining the platen type in range 0-7  
         [0067]    [0067] 44 . Distance in X direction from edge of platen type label to the origin of the platen imaging area  
         [0068]    [0068] 45 . Distance in Y direction from edge of platen type label to the origin of the platen imaging area  
         [0069]    [0069] 46 . Underside of the platen housing a lower pixel value than the platen type label  
         [0070]    [0070] 47 . Origin of platen imaging area  
         [0071]    [0071] 48 . Underside of platen glass  
         [0072]    [0072] 49 . Platen type label  
         [0073]    [0073] 51 . Feeder clutch  
         [0074]    [0074] 52 . UDDS enable signal active  
         [0075]    [0075] 53 . Primary sensor enable (PSE) signal active  
         [0076]    [0076] 54 . Edge detect FEC internal signal active  
         [0077]    [0077] 55 . Valid page force (VP) signal active  
         [0078]    [0078] 56 . Valid page (VP) signal active  
         [0079]    [0079] 57 . Front end controller (FEC) interrupt to PPC  
         [0080]    [0080] 58 . Edge detect signal  
         [0081]    [0081] 59 . UDDS enable signal deactivate  
         [0082]    [0082] 60 . PSE signal deactivate  
         [0083]    [0083] 61 . Edge detect FEC internal signal inactive  
         [0084]    [0084] 64 . VP (valid page) force signal inactive  
         [0085]    [0085] 65 . Feeder clutch enable signal (document 2)  
         [0086]    [0086] 66 . Image of document 1  
         [0087]    [0087] 67 . Image of document 2  
         [0088]    [0088] 70 . Edge detect signal active  
         [0089]    [0089] 71 . Edge detect signal inactive  
         [0090]    [0090] 72 . Image of document 3  
         [0091]    [0091] 73 . Image of document 4  
         [0092]    [0092] 80 . Motor move command (MM Cmd.)  
         [0093]    [0093] 81 . Motor control (MC) interrupt  
         [0094]    [0094] 82 . Secondary sensor enable (SSE)  
         [0095]    [0095] 83 . Edge detect (internal FEC signal) signal active  
         [0096]    [0096] 84 . Front end controller (FEC) interrupt to the PPC  
         [0097]    [0097] 86 . Valid page (VP) signal active  
         [0098]    [0098] 87 . Motor control (MC) interrupt  
         [0099]    [0099] 88 . Valid page force (VP) signal active  
         [0100]    [0100] 89 . Valid page (VP) signal active  
         [0101]    [0101] 90 . Motor move command (MM Cmd.)  
         [0102]    [0102] 91 . Motor control interrupt (MC)  
         [0103]    [0103] 92 . Home direction  
         [0104]    [0104] 93 . FEC interrupt  
         [0105]    [0105] 95 . SSE signal  
         [0106]    [0106] 96 . Motor control (MC) slow step N steps to home  
         [0107]    [0107] 97 . MC interrupt at end of move