Die
vorliegende Erfindung bezieht sich auf ein System zum Betreiben
von Anzeigegeräten
für Bilddaten über vorbestimmte
Datenbuskonfigurationen. Insbesondere bezieht sich die vorliegende
Erfindung auf ein Verfahren und eine Vorrichtung zum Bereitstellen
von Bilddaten an ein Anzeigegerät,
und auf ein Verfahren und eine Vorrichtung zum Bereitstellen von
Bilddaten für
eine Übertragung
an ein Anzeigegerät
gemäß einer
vorbestimmten Datenbuskonfiguration.The
The present invention relates to a system for operating
of display devices
for image data over predetermined
Datenbuskonfigurationen. In particular, the present invention relates
Invention to a method and apparatus for providing
from image data to a display device,
and to a method and apparatus for providing
Image data for
a transmission
to a display device
according to a
predetermined data bus configuration.
Übliche Signalverarbeitungssysteme,
wie z.B. PCs (Personalcomputer), PDAs (Persönliche Digitale Assistenten),
Computer, Fertigungssteuerungen und medizinische Geräte, bewerkstelligen
die Ansteuerung von Anzeigegeräten
für Bilddaten
mittels eines Graphikprozessors, der wiederum über ein Betriebssystem und
den dazu passenden Treiber angesteuert wird. Der Anschluss eines
TFT-LCD-Bildschirms (TFT = Thin Film Transistor = Dünnfilmtransistor,
LCD = Liquid Crystal Display = Flüssigkristallanzeige) erfolgt über einen
Graphikprozessor. Der Graphikprozessor wiederum wird über die
in dem Signalverarbeitungssystem üblichen internen Busse, wie
z. B. den PCI-Bus, angeschlossen. Meist befinden sich die Graphikprozessoren
auf Graphikkarten. Es gibt aber auch Signalverarbeitungssysteme,
in denen der Graphikprozessor anderweitig integriert ist. Gerade
TFT-LCD-Bildschirme stellen bezüglich der
Anschlüsse
besondere Anforderungen an die Graphikkarten bzw. Graphikprozessoren.
Um TFT-LCD-Bildschirme
an Signalverarbeitungssystemen zu betreiben, ergibt sich für den Benutzer
die Notwendigkeit, die Signalverarbeitungssysteme zu öffnen und,
falls möglich,
mit geeigneten Graphikprozessoren auszustatten. Es gibt zwar technische
Möglichkeiten,
die Busse nach außen
zu führen, das
technische Prinzip bleibt aber dasselbe und somit der technische
Aufwand relativ hoch.Usual signal processing systems,
such as. PCs (Personal Computers), PDAs (Personal Digital Assistants),
Computers, manufacturing controls and medical devices
the control of display devices
for image data
by means of a graphics processor, which in turn has an operating system and
the appropriate driver is driven. The connection of a
TFT LCD screen (TFT = thin film transistor = thin film transistor,
LCD = Liquid Crystal Display = liquid crystal display) via a
Graphics processor. The graphics processor in turn is over the
in the signal processing system usual internal buses, such as
z. As the PCI bus connected. Most are the graphics processors
on graphics cards. But there are also signal processing systems
where the graphics processor is otherwise integrated. Just
TFT-LCD screens represent the most
connections
special requirements for the graphics cards or graphics processors.
To TFT-LCD screens
to operate on signal processing systems results for the user
the need to open the signal processing systems and
if possible,
equipped with suitable graphics processors. There are technical ones though
Options,
the buses to the outside
to lead that
but the technical principle remains the same and thus the technical one
Effort relatively high.
Für den Betrieb
von Peripheriegeräten,
wie z. B. Drucker, Modems, etc., haben Signalverarbeitungssysteme
einfach zu handhabende Busverbindungen, wie z. B. USB-, RS232-,
Parallelport-, Ethernet- und V.24-Busverbindungen.For the business
peripherals,
such as As printers, modems, etc., have signal processing systems
easy-to-use bus connections, such. B. USB, RS232,
Parallel port, Ethernet and V.24 bus connections.
Im
Stand der Technik sind Ansätze
bekannt, um TFT-LCD-Bildschirme über die
RS232-Schnittstelle oder die Ethernet-Schnittstelle eines Computers anzusteuern.
Hier müssen
aber „intelligente" Steuerungsschaltungen
zwischen den Computer und den TFT-LCD-Bildschirm geschaltet sein
oder in dem TFT-LCD-Bildschirm
enthalten sein, da über
die genannten Schnittstellen keine Bilddaten in Form von Pixeln
erhalten werden, sondern so genannte Bildbeschreibungsdaten in Form
ausgewählter
Steuerbefehle. Die Steuerungsschaltung muss diese Steuerbefehle
decodieren und ferner geeignete Schaltungen aufweisen, um basierend
auf diesen Steuerbefehlen die erforderlichen Bilddaten in Form von
Pixeln zur Anzeige auf dem TFT-LCD-Bildschirm zu erzeugen. Die Steuerschaltung
umfasst z. B. einen Zeichengenerator, der aufgrund der empfangenen
Steuerbefehle ein anzuzeigendes Zeichen erzeugt und auf dem TFT-LCD-Bildschirm
anzeigt. Bei diesen Systemen werden über den RS232-Bus lediglich
die Steuersignale übertragen,
die dann unter Verwendung einer vordefinierten Graphikfunktionalität in Bilder
umgesetzt werden (Kreis, Linien, Rechtecke, etc.). Die Graphikfunktionalität ist daher
stark eingeschränkt.
Für die Übertragung
und Darstellung echter Bilder (z.B. Fotos), die vom Computer gesendet
werden, sind diese Systeme nicht gut geeignet.in the
The state of the art are approaches
known to display TFT LCD screens over the
To control the RS232 interface or the Ethernet interface of a computer.
Here must
but "intelligent" control circuits
be connected between the computer and the TFT-LCD screen
or in the TFT-LCD screen
be included over there
the interfaces mentioned no image data in the form of pixels
but so-called image description data in the form
selected
Control commands. The control circuit must have these control commands
decode and further comprise appropriate circuitry to be based
on these control commands the required image data in the form of
Pixels to display on the TFT-LCD screen. The control circuit
includes z. B. a character generator, due to the received
Control commands generated a character to be displayed and on the TFT-LCD screen
displays. With these systems, the RS232 bus only
transmit the control signals,
then using a predefined graphics functionality in pictures
be implemented (circle, lines, rectangles, etc.). The graphics functionality is therefore
highly limited.
For the transmission
and display real images (e.g., photos) sent by the computer
these systems are not well suited.
Der
gerade beschriebene Ansatz ist nachteilhaft, da hier von einem Host-Rechner
nur Steuersignale übertragen
werden, die von der Anzeigensteuerung (Display-Controller) erst
in Bilddaten umgewandelt werden, so dass eine bestimmte Rechenleistung vorausgesetzt
werden muss, die beispielsweise von kostengünstigen MCUs (Micro Controller
Units) nur schwer bereitgestellt werden kann.Of the
just described approach is disadvantageous, since here by a host computer
only transmit control signals
which the display control (display controller) first
be converted into image data, so provided a certain computing power
for example, from inexpensive MCUs (micro controllers
Units) is difficult to provide.
Eine
einfache Möglichkeit,
einen TFT-LCD-Bildschirm über
die oben genannten Schnittstellen zu betreiben, so dass Bilddaten
an denselben übertragen
werden, existieren nicht. Sollen TFT-LCD-Bildschirme mit dem genannten
Computer über
eine der genannten Schnittstellen betrieben werden, so muss dieser
Computer über
die betreffende Schnittstelle mit einem zweiten Computer verbunden
werden, wobei der TFT-LCD-Bildschirm dann
aber auf herkömmliche
Weise (Graphikkarte) mit diesem zweiten Computer verbunden ist.
Allein der damit verbundene Aufwand spricht gegen eine solche Lösung.A
easy way
a TFT-LCD screen over
to operate the above interfaces, so that image data
transferred to the same
will not exist. Should TFT LCD screens with the above
Computer over
one of the mentioned interfaces are operated, this must be
Computer over
the relevant interface is connected to a second computer
be, with the TFT LCD screen then
but on conventional
Way (graphics card) is connected to this second computer.
But the associated effort speaks against such a solution.
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, ein vereinfachtes
Verfahren und eine vereinfachte Vorrichtung zum Betreiben von Anzeigegeräten für Bilddaten über vorbestimmte
Datenbuskonfigurationen zu schaffen.Of the
The present invention is therefore based on the object, a simplified
Method and a simplified device for operating display devices for image data over predetermined
To create data bus configurations.
Diese
Aufgabe wird durch Verfahren gemäß Anspruch
1 oder 8, bzw. eine Vorrichtung gemäß Anspruch 15 oder 21 gelöst.These
Task is by method according to claim
1 or 8, or a device according to claim 15 or 21 solved.
Die
vorliegende Erfindung schafft ein Verfahren zum Bereitstellen von
Bilddaten an ein Anzeigegerät,
mit folgenden Schritten:
- (a) Empfangen der
Bilddaten, die ein oder mehrere Pixel definieren, in einem Übertragungsformat, das
einer vorbestimmten Datenbuskonfiguration entspricht; und
- (b) Extrahieren der Bilddaten aus dem Übertragungsformat, und Erzeugen
eines Anzeigesignals für
das Anzeigegerät
basierend auf den extrahierten Bilddaten.
The present invention provides a method for providing image data to a display device, comprising the following steps: - (a) receiving the image data defining one or more pixels in a transmission format corresponding to a predetermined data bus configuration; and
- (b) extracting the image data from the transmission format, and generating a display signal for the display device based on the extracted image data.
Die
vorliegende Erfindung schafft ein Verfahren zum Bereitstellen von
Bilddaten für
eine Übertragung
an ein Anzeigegerät
gemäß einer
vorbestimmten Datenbuskonfiguration, mit folgenden Schritten:
Empfangen
zu übertragender
Bilddaten, die ein oder mehrere Pixel definieren;
Einfügen von
zu übertragenden
Bilddaten in ein der Datenbuskonfiguration entsprechendes Übertragungsformat;
und
Ausgeben der zu übertragenden
Bilddaten in dem Übertragungsformat.The present invention provides a method of providing image data for transmission to a display device according to a predetermined data bus configuration, comprising the steps of:
Receiving image data to be transmitted that defines one or more pixels;
Inserting image data to be transmitted in a transmission format corresponding to the data bus configuration; and
Outputting the image data to be transmitted in the transmission format.
Die
vorliegende Erfindung schafft eine Vorrichtung zum Bereitstellen
von Bilddaten an ein Anzeigegerät,
mit folgenden Merkmalen:
einem Eingang zum Empfangen der Bilddaten,
die ein oder mehrere Pixel definieren, in einem Übertragungsformat, das einer
vorbestimmten Datenbuskonfiguration entspricht; und
einer Signalverarbeitungseinrichtung,
die ausgebildet ist, um die Bilddaten aus dem Übertragungsformat zu extrahieren,
und um basierend auf den extrahierten Bilddaten ein Anzeigesignal
für ein
Anzeigegerät
zu erzeugen.The present invention provides an apparatus for providing image data to a display device, comprising:
an input for receiving the image data defining one or more pixels in a transmission format corresponding to a predetermined data bus configuration; and
a signal processor configured to extract the image data from the transmission format and to generate a display signal for a display based on the extracted image data.
Die
vorliegende Erfindung schafft eine Vorrichtung zum Bereitstellen
von Bilddaten für
eine Übertragung
an ein Anzeigegerät
gemäß einer
vorbestimmten Datenbuskonfiguration, mit folgenden Merkmalen:
einem
Eingang zum Empfangen zu übertragender Bilddaten,
die ein oder mehrere Pixel definieren;
einer Signalverarbeitungseinrichtung,
die ausgebildet ist, um die zu übertragenden
Bilddaten in ein der Datenbuskonfiguration entsprechendes Übertragungsformat
einzufügen;
und
einem Ausgang zum Ausgeben der zu übertragenden Bilddaten in dem Übertragungsformat.The present invention provides an apparatus for providing image data for transmission to a display device according to a predetermined data bus configuration, comprising:
an input for receiving image data to be transmitted defining one or more pixels;
signal processing means configured to insert the image data to be transmitted into a transmission format corresponding to the data bus configuration; and
an output for outputting the image data to be transmitted in the transmission format.
Gemäß einem
Aspekt schafft die vorliegende Erfindung ferner ein Verfahren und
ein Vorrichtung zum Übertragen
von Bilddaten von einer Bilddatenquelle an ein Anzeigegerät, bei dem
die Bilddaten von der Bilddatenquelle zu dem Anzeigegerät übertragen
werden, wobei die Bilddaten und die Anzeigesignale erfindungsgemäß bereitgestellt
werden.According to one
Aspect, the present invention further provides a method and
a device for transmitting
of image data from an image data source to a display device, in which
transmit the image data from the image data source to the display device
wherein the image data and the display signals are provided according to the invention
become.
Gemäß einem
weiteren Aspekt schafft die vorliegende Erfindung ein digitales
Speichermedium, insbesondere eine Diskette mit elektronisch auslesbaren
Steuersignalen, die so mit einer Verarbeitungseinrichtung zusammenwirken
können,
dass das erfindungsgemäße Verfahren
ausgeführt
wird, und ein Programmprodukt mit auf einem maschinenlesbaren Träger gespeicherten
Programmcode zur Durchführung
des erfindungsgemäßen Verfahrens,
wenn das Programmprodukt auf einer Verarbeitungseinrichtung abläuft.According to one
In another aspect, the present invention provides a digital
Storage medium, in particular a disk with electronically readable
Control signals, which interact with a processing device so
can,
that the inventive method
accomplished
and a program product stored on a machine readable medium
Program code for execution
of the method according to the invention,
when the program product runs on a processing device.
Erfindungsgemäß wird somit
eine einfache Möglichkeit
geschaffen, Anzeigegeräte
für Bilddaten, wie
z. B. TFT-LCD-Bildschirme, über einen
standardisierten Peripherieverbindungsbus, wie z. B. die USB-, RS232-,
Parallelport-, Ethernet- oder V.24-Busverbindung, zu betreiben.
Der ansonsten technisch aufwendige Einsatz gesonderter Graphikprozessor
auf Graphikkarten und das damit verbundene Öffnen des System entfällt. Die
Systeme erzeugen die Bilddaten und geben diese nicht an einen Graphikprozessor
oder eine Graphikkarte weiter, sondern geben diese Bilddaten direkt über die Schnittstelle
aus, so dass dieselben bei Empfang an dem Anzeigegerät ohne weitere
Umwandlung angezeigt werden können.Thus, according to the invention
an easy way
created, display devices
for image data, like
z. As TFT LCD screens, via a
standardized peripheral bus such. Eg the USB, RS232,
Parallel port, Ethernet or V.24 bus connection to operate.
The otherwise technically complex use of separate graphics processor
on graphics cards and the associated opening of the system is eliminated. The
Systems generate the image data and do not give it to a graphics processor
or a graphics card, but give this image data directly through the interface
out, so that they are received on the display without further
Conversion can be displayed.
Gemäß einem
bevorzugten Ausführungsbeispiel
umfasst das Anzeigegerät
einen Touchscreen, der über
dieselbe Schnittstelle betreiben wird, über die die Bilddaten empfangen
werden.According to one
preferred embodiment
includes the display device
a touchscreen that over
operate the same interface over which the image data is received
become.
Ein
Vorteil der vorliegenden Erfindung besteht darin, dass die vorgesehene
Verarbeitungseinrichtung (MCU) nur wenig leisten muss, da nur der Datentransport überwacht
werden muss und die Pixeldaten 1:1 an den Bildschirm weitergereicht
werden. Das Bild wird in dem Host-Rechner erzeugt und als fertiges
Bild (image) an die Anzeigensteuerung übergeben. Ein weiteres „Interpretieren" der empfangenen
Daten ist nicht erforderlich.One
Advantage of the present invention is that the intended
Processing device (MCU) has little to do, since only the data transport monitors
must be and the pixel data 1: 1 passed to the screen
become. The image is created in the host machine and as finished
Transfer image (image) to the ad control. Another "interpreting" the received
Data is not required.
Bevorzugte
Weiterbildungen der vorliegenden Erfindung sind in den Unteransprüchen definiert.preferred
Further developments of the present invention are defined in the subclaims.
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:preferred
embodiments
The present invention will be described below with reference to FIG
the enclosed drawings closer
explained.
Show it:
1 ein
Blockdiagramm des erfindungsgemäßen Systems
zum Betreiben eines Anzeigegeräts über eine
Schnittstelle einer vorbestimmten Datenbuskonfiguration gemäß einem
bevorzugten Ausführungsbeispiel; 1 a block diagram of the system according to the invention for operating a display device via an interface of a predetermined data bus configuration according to a preferred embodiment;
2 ein
Blockdiagramm der in 1 gezeigten elektronischen Baugruppe
mit angeschlossenem Bildschirm; 2 a block diagram of in 1 shown electronic assembly with connected screen;
3 ein
detailliertes Blockdiagramm der in 2 gezeigten
elektronischen Baugruppe gemäß einem
bevorzugten Ausführungsbeispiel; 3 a detailed block diagram of the in 2 shown electronic assembly according to a preferred embodiment;
4 die
Schritte in der MCU aus 3 bei der Datenübertragung; 4 the steps in the MCU 3 at the data transmission;
5 die
Schritte in der PLD aus 3 zur Erzeugung eines Adresssignals
aus den Zählwerten eines
horizontalen Zählers
und eines vertikalen Zählers; 5 the steps in the PLD 3 for generating an address signal from the counts of a horizontal counter and a vertical counter;
6 die
Schritte in der PLD aus 3 zur Ansteuerung des Anzeigegeräts; 6 the steps in the PLD 3 for controlling the display device;
7 die
Schritte in der PLD aus 3 zur vollständigen Übertragung eines Bildes in
den Bildspeicher; 7 the steps in the PLD 3 to completely transfer an image to the image memory;
8 die
Schritte in der PLD aus 3 zur Feststellung, ob ein Bildwechsel
auf dem Anzeigegerät
stattfindet; 8th the steps in the PLD 3 to determine if a picture change is taking place on the display device;
9 ein
Blockdiagramm des in 1 gezeigten Computers mit angeschlossenem
Anzeigesystem zur Verdeutlichung des Informationsaustausches zwischen
einer Anwendung, die die Bilddaten erzeugt, einer Ansteuereinrichtung
für das
Anzeigegerät,
einer Einrichtung, die den Datentransfer ausführt, und einer Einrichtung
zur Ansteuerung des Anzeigegeräts; 9 a block diagram of the in 1 computer with connected display system shown to illustrate the information exchange between an application that generates the image data, a control device for the display device, a device that performs the data transfer, and a device for driving the display device;
10 einen
Kommunikationsprozess zwischen der Anwendung aus 9 und
einem Treiber; und 10 a communication process between the application 9 and a driver; and
11 einen
Ablauf der Prozedur einer Datenübergabe
an ein USB-System. 11 a flow of the procedure of data transfer to a USB system.
Anhand
der 1 wird nun ein Blockdiagramm des erfindungsgemäßen Systems
zum Betreiben eines Anzeigegeräts über eine
Schnittstelle einer vorbestimmten Datenbuskonfiguration gemäß einem
bevorzugten Ausführungsbeispiel
näher beschrieben.
In der nachfolgenden Beschreibung der bevorzugten Ausführungsbeispiele
werden gleiche oder gleich wirkende Elemente mit den gleichen Bezugszeichen
versehen.Based on 1 Now, a block diagram of the inventive system for operating a display device via an interface of a predetermined data bus configuration according to a preferred embodiment will be described in more detail. In the following description of the preferred embodiments, the same or the same elements are provided with the same reference numerals.
Das
in 1 gezeigte System umfasst einen Datenbus 10,
der einen Computer 12, z.B. einen PC, einen PDA, eine Fertigstellungssteuerung,
ein medizinisches Gerät
oder ein anderes Computersystem, mit einer Anzeigeeinrichtung 14 verbindet,
die eine elektronische Baugruppe 16 und ein Anzeigegerät bzw. einem
Bildschirm 18, z. B. einen TFT-LCD-Bildschirm, umfasst. Die elektronische
Baugruppe 16 umfasst ferner eine Schnittstelle 20 und
erzeugt aus den an der Schnittstelle 20 empfangenen Signalen/Daten
ein Anzeigesignal für
den Bildschirm 18. Das Anzeigesignal wird über eine
Verbindung 22 von der elektronischen Baugruppe 16 an
den Bildschirm 18 übertragen.This in 1 The system shown comprises a data bus 10 who has a computer 12 For example, a personal computer, a PDA, a finishing controller, a medical device, or another computer system having a display device 14 connects, which is an electronic assembly 16 and a display device or a screen 18 , z. As a TFT-LCD screen includes. The electronic assembly 16 also includes an interface 20 and generates from those at the interface 20 received signals / data an indication signal for the screen 18 , The indication signal is via a connection 22 from the electronic assembly 16 to the screen 18 transfer.
Optional
kann dem Bildschirm 18 ein Touchscreen 24 zugeordnet
sein, der über
eine Verbindung 26 mit der elektronischen Baugruppe 16 verbunden ist,
um Informationen betreffend einen berührten Punkt auf dem Bildschirm 18 an
die elektronische Baugruppe 16 weiterzuleiten und von dort über die Schnittstelle 20 an
den Computer 12, um dort die geeigneten Schritte einzuleiten.Optionally, the screen 18 a touch screen 24 be assigned, over a connection 26 with the electronic module 16 connected to information regarding a touched point on the screen 18 to the electronic module 16 forward and from there via the interface 20 to the computer 12 to take the appropriate steps.
Die
auf dem Bildschirm 18 anzuzeigenden Bilddaten werden von
dem Computer 12 in Form von Pixeln, vorzugsweise in Form
von Bitmaps, bereitgestellt, anschließend in ein Format entsprechend
der Schnittstelle 20, die einem vorbestimmten Datenbuskonfiguration
entspricht, umsetzt und an einer in 1 nicht
gezeigten Schnittstelle des Computers 12 für eine Übertragung
an das Anzeigesystem 14 bereitgestellt. Diese Daten werden über den
Datenbus 10, der die vorbestimmte Datenbuskonfiguration unterstützt, an
die Schnittstelle 20 übertragen.
Die an der Schnittstelle 20 empfangenen Daten werden in der
elektronischen Baugruppe 16 zum Erzeugen des Anzeigesignals
verarbeitet. Die elektronische Baugruppe 16 extrahiert
die Bilddaten aus dem entsprechenden Datenbusformat und erzeugt
das Anzeigesignal für
den Bildschirm 18, das über
die Verbindung 22 an den Bildschirm gesendet wird.The on the screen 18 to be displayed image data from the computer 12 in the form of pixels, preferably in the form of bitmaps, then in a format corresponding to the interface 20 , which corresponds to a predetermined data bus configuration, converts and at an in 1 not shown interface of the computer 12 for transmission to the display system 14 provided. These data are transmitted via the data bus 10 , which supports the predetermined data bus configuration, to the interface 20 transfer. The at the interface 20 data received will be in the electronic assembly 16 processed to generate the indication signal. The electronic assembly 16 extracts the image data from the corresponding data bus format and generates the display signal for the screen 18 That's about the connection 22 is sent to the screen.
Das
Datenbusformat zur Übertragung
der Bilddaten und die Konfiguration der Schnittstellen des Computers 12 und
des Anzeigesystems 14 entsprechen gemäß dem bevorzugten Ausführungsbeispiel
dem USB-, dem RS232- oder dem Parallelanschluss-Datenbusformat.
Andere bekannte Schnittstellen- bzw.
Datenbuskonfigurationen, wie z. B. der Ethernetstan dard, der V.24-Standard,
etc., können ebenfalls
verwendet werden.The data bus format for transferring the image data and configuring the interfaces of the computer 12 and the display system 14 correspond to the USB, RS232 or parallel port data bus format according to the preferred embodiment. Other known interface or data bus configurations, such. As the Ethernet standard, the V.24 standard, etc., can also be used.
Eine
typische Anwendung der vorliegenden Erfindung ist der Einsatz von
Automaten, z.B. Verkaufsautomaten für Kleinwaren. Typischerweise
werden moderne Verkaufsautomaten Bildschirme oder Anzeigen zur Benutzerführung aufweisen.
Die vorliegende Erfindung ist insbesondere für kleine Anzeigen mit einer
Auflösung
von z.B. 320×240
Bildpunkten, auch QVGA genannt, geeignet. Erfindungsgemäß kann ein
Bild bei der Nutzung des USB 2.0 Busses zur Übertragung etwa 50 mal in der
Sekunde erneuert werden, was für
die oben genannte Anwendung ausreichend ist. Bei anderen Anwendungen können auch
mehrere Anzeigen bzw. Bildschirme parallel zu herkömmlichen
Bildschirmen verwendet werden.A
Typical application of the present invention is the use of
Machines, e.g. Vending machines for small goods. typically,
Modern vending machines will have screens or displays for user guidance.
The present invention is particularly for small displays with a
resolution
from e.g. 320 x 240
Pixels, also called QVGA, suitable. According to the invention can
Picture when using the USB 2.0 bus to transfer about 50 times in the
Second be renewed, what for
the above application is sufficient. For other applications, too
multiple displays or screens in parallel to conventional ones
Screens are used.
Nachfolgend
wird die vorliegende Erfindung anhand des Beispiels der USB-Schnittstelle
detailliert erläutert.following
The present invention will be described with reference to the example of the USB interface
explained in detail.
Über die
USB-Schnittstelle 20 wird von Seiten des Host-Systems 12 (z.B.
PC) eine Grafik-Bitmap übertragen.
Bei der hier gezeigten Lösung wird
ein Format von 320×240
Bildpunkten (Pixeln) mit 16 Bit Farbtiefe verwendet. Selbstverständlich ist die
vorliegende Erfindung nicht hierauf beschränkt und es können auch
andere Formate verwendet werden. Die Grafik-Bitmap ist somit ein
binäres
Datenformat von 320×240×16 Bit.Via the USB interface 20 is used by the host system 12 (eg PC) transfer a graphic bitmap. In the solution shown here a format of 320 × 240 pixels with 16 bit color depth is used. Of course, the present invention is not limited thereto, and other formats may be used. The graphics bitmap is thus a binary data format of 320 × 240 × 16 bits.
Ein
bevorzugtes Ausführungsbeispiel
der elektronischen Baugruppe 16 und der zugehörigen Software
wird nachfolgend anhand der 2 bis 8 erläutert. Ein
bevorzugtes Ausführungsbeispiel
der erforderlichen Ausgestaltung des Computers 12 wird
anhand der 9 bis 11 erläutert.A preferred embodiment of the electronic module 16 and the associated software will be described below on the basis of 2 to 8th explained. A preferred embodiment of the required configuration of the computer 12 is determined by the 9 to 11 explained.
2 zeigt
ein Blockdiagramm der in 1 gezeigten elektronischen Baugruppe 16 mit
angeschlossenem Bildschirm 18. Die elektronische Baugruppe 16 umfasst
eine Steuerung 28 (MCU), die die USB-Schnittstelle 20 umfasst.
Ferner umfasst die elektronische Baugruppe 16 eine Zeitgebungseinrichtung 30 (PLD
= Programmable Logic Device = programmierbares Logikeinrichtung
oder -element), einen Bildspeicher 32, vorzugsweise ein
RAM-Speicher (RAM = Random Access Memory = Speicher mit wahlfreiem
Zugriff), und eine optionale Touchscreensteuerung 34, die
vorgesehen ist, wenn dem Bildschirm 18, wie in dem gezeigten
Beispiel, der Touchscreen 24 zugeordnet ist. Wie in 2 zu
erkennen ist, sind die einzelnen Komponenten der elektronischen
Baugruppe 16 über
eine Mehrzahl von Leitungen zum Datenaustausch verbunden. Genauer
gesagt tauschen die MCU 28 und die PLD 30 die
Signale WR_START, WR_FULL und WR_EN über je eine Leitung aus, und über eine
andere Leitung das Taktsignal CLK. Die MCU 28 ist ferner über einen
Datenbus, der die Pixeldaten trägt,
mit dem Bildspeicher 32 und dem Bildschirm 18 verbunden.
Die PLD 30 stellt dem Bildspeicher 32 die Signale
OE und addr bereit, und dem Bildschirm 18 die Signale HSYNC
und VSYNC sowie das Taktsignal CLK. Die Touchscreensteuerung 34 ist über die
Verbindung 26 mit dem Touchscreen 24 verbunden
und tauscht über
die Verbindung 36 die zum Betrieb des Touchscreen 24 erforderlichen
Informationen mit der MCU 28 aus. 2 shows a block diagram of the in 1 shown electronic assembly 16 with connected screen 18 , The electronic assembly 16 includes a controller 28 (MCU), which is the USB interface 20 includes. Furthermore, the electronic assembly includes 16 a timing device 30 (PLD = Programmable Logic Device), an image memory 32 , preferably a Random Access Memory (RAM), and optional touch screen control 34 that is provided when the screen 18 as in the example shown, the touch screen 24 assigned. As in 2 It can be seen, the individual components of the electronic module 16 connected via a plurality of lines for data exchange. More specifically, swap the MCU 28 and the PLD 30 the signals WR_START, WR_FULL and WR_EN via one line, and via another line the clock signal CLK. The MCU 28 is also connected to the image memory via a data bus carrying the pixel data 32 and the screen 18 connected. The PLD 30 puts the image memory 32 the signals OE and addr ready, and the screen 18 the signals HSYNC and VSYNC and the clock signal CLK. The touch screen control 34 is about the connection 26 with the touch screen 24 connected and exchanges over the connection 36 to operate the touchscreen 24 required information with the MCU 28 out.
Wie
zu erkennen ist, werden die Signale HSYNC, VSYNC, CLK und die Pixeldaten über die gemeinsame
Verbindung 22 übertragen.As can be seen, the signals HSYNC, VSYNC, CLK and the pixel data become over the common connection 22 transfer.
Die
elektronische Baugruppe 16 besteht im wesentlichem aus
zwei Teilen, der MCU 28 (Micro-Controller-Unit) und der
Zeitgebungseinrichtung 30 (Timing-Engine), die hier vorzugsweise
durch die PLD implementiert ist.The electronic assembly 16 It consists essentially of two parts, the MCU 28 (Micro-controller unit) and the timing device 30 (Timing Engine), which is preferably implemented here by the PLD.
Die
MCU 28 ist hauptsächlich
für den
Datentransport von dem Computer 12 (Host) zu der elektronischen
Baugruppe 16 zuständig.
Die PDL 30 generiert hauptsächlich die Synchronsignale
HSYNC (horizontale Synchronisation), VSYNC (vertikale Synchronisation)
für den
Bildschirm 18 und die Adress-Signale addr für den Bildspeicher 32.The MCU 28 is mainly for data transport from the computer 12 (Host) to the electronic board 16 responsible. The PDL 30 generates mainly the sync signals HSYNC (horizontal sync), VSYNC (vertical sync) for the screen 18 and the address signals addr for the image memory 32 ,
Die
MCU 28 ist mit der USB-Schnittstelle 20 ausgestattet, über die
die anzuzeigenden Grafik-Bitmap-Daten von dem Computer 12 an
die elektronische Baugruppe 16 übertragen werden. Die Daten
werden dann in den Bildspeicher 32 weitergeleitet.The MCU 28 is with the USB interface 20 equipped with the graphic bitmap data to be displayed by the computer 12 to the electronic module 16 be transmitted. The data is then stored in the image memory 32 forwarded.
Da
der Bildschirm 18, der Bildspeicher 32 und die
MCU 28 einen gemeinsamen Datenbus (Datenbus „Pixel-Daten" in 2)
haben, muss der Zugriff auf diese Element gesteuert werden. Der
Ausgang des Bildspeichers 32 wird hierzu im Zeitraum der
fallenden Flanke des Taktsignals CLK und der Ausgang der MCU 28 im
Zeitraum der steigenden Flanke des Taktsignals CLK freigeschalten.
Die technologisch bedingten Setup- und Hold-Zeiten werden dabei
berücksichtigt.Because the screen 18 , the image memory 32 and the MCU 28 a common data bus (data bus "pixel data" in 2 ), access to this element must be controlled. The output of the image memory 32 This is done in the period of the falling edge of the clock signal CLK and the output of the MCU 28 in the period of the rising edge of the clock signal CLK enabled. The technologically conditioned setup and hold times are taken into account.
Die
optionale Tochscreen-Steuerung 34 ist handelsüblich und
wird über
den seriellen Bus 36 an der MCU 28 betrieben.
An diesem Bus hängt,
wie später
noch näher
erläutert
wird, auch ein Programmspeicher für die MCU-Firmware. Die Touchscreen-Daten
werden durch einen USB-Interrupt-Transfer an Computer 12 übertragen.The optional touch screen control 34 is commercially available and will be over the serial bus 36 at the MCU 28 operated. As will be explained later, this program also has a program memory for the MCU firmware. The touch screen data is transferred to computer through a USB interrupt transfer 12 transfer.
Die
Helligkeitsregelung des Bildschirms 18 wird durch das PWM-Verfahren
(PWM = Pulsweitenmodulation) bewerkstelligt. Hierfür sind zwei,
in der MCU 28 integrierte „Auto Reload Timer" (Zeitgeber) im Einsatz. Über die
PLD 30 wird abwechselnd jeweils ein Zeitgeber für die „High-Phase" (hoher logischer
Regel) und der andere für
die „Low-Phase" (niedriger logischer
Regel) des PWM-Signals aktiviert. Mit den Signalen, die die Zeitgeber
beim Ablauf eines Intervalls generieren, toggelt die PLD 30 das PWM-Signal,
wie dies später
noch näher
erläutert wird.The brightness control of the screen 18 is accomplished by the PWM method (PWM = Pulse Width Modulation). There are two, in the MCU 28 built-in "Auto Reload Timer" (timer) in action via the PLD 30 A high-phase (high logic) timer and the other low-phase (low-logic) timer of the PWM signal are alternately activated. The PLD is toggling the signals that the timers generate when an interval expires 30 the PWM signal, as will be explained later.
Anhand
der 3 wird nun ein detailliertes Blockdiagramm eines
bevorzugten Ausführungsbeispiels
der in 2 gezeigten elektronischen Baugruppe und hier
insbesondere der MCU 28, der PLD 30 und des Bildspeichers 32 näher beschrieben.Based on 3 Now, a detailed block diagram of a preferred embodiment of the present invention will be described 2 shown electronic assembly and in particular the MCU 28 , the PLD 30 and the image memory 32 described in more detail.
Die
MCU 28 umfasst neben der USB-Schnittstelle einen Datentransferabschnitt 38,
der einen FIFO-Speicher 40 (FIFO = Fist-In-Fist-Out) und
eine Mehrzweck-Schnittstelle 42 (GPIF = General Purpose
Interface) aufweist. Wie zu erkennen ist, gibt die GPIF 42 die
Signale WR_START und WR_EN an die PLD 30 aus, empfängt von
derselben das Signal WR_FULL und tauscht mit derselben das Signal WR_RST
aus. Der FIFO-Speicher 40 ist über den
16 Bit Datenbus 44 mit dem Bildspeicher 32 und
dem Bildschirm 18 zur Übertragung
der Pixeldaten verbunden. Der FIFO-Speicher 40 und die
GPIF 42 sind über
eine Verbindung 46 verbunden. Der Datentransferabschnitt 38 der
MCU 28 empfängt
ferner von der PLD 30 einen Schnittstellentakt IFCLK.The MCU 28 includes in addition to the USB interface, a data transfer section 38 that has a FIFO memory 40 (FIFO = Fist-In-Fist-Out) and a multi-purpose interface 42 (GPIF = General Purpose Interface). As can be seen, the GPIF gives 42 the signals WR_START and WR_EN to the PLD 30 from the same receives the signal WR_FULL and exchanges with the same the signal WR_RST. The FIFO memory 40 is via the 16 bit data bus 44 with the image memory 32 and the screen 18 connected to transmit the pixel data. The FIFO memory 40 and the GPIF 42 are over a connection 46 connected. The data transfer section 38 the MCU 28 also receives from the PLD 30 an interface clock IFCLK.
Die
MCU 28 umfasst einen weiteren Abschnitt 48, in
dem die nicht gezeigte CPU der MCU 28 angeordnet ist. In
dem weiteren Abschnitt 48 ist eine Zeitgeber/PWM-Schaltung 50 angeordnet,
die an die PLD 30 Signale bereitstellt und von derselben empfängt. Ferner
wird der MCU-Takt MCUCLK an die PLD 28 bereitgestellt,
ebenso wie das Signal CHANGE EN. Ferner wird das Signal BKL_ON erzeugt
und ausgeben. Das Signal BKL_ON schaltet die Hintergrundbeleuchtung
des TFT-LCD-Bildschirms
an oder aus, was über
einen USB-VENDOR-CALL gesteuert wird. Von der Anwendungs/Applikations-Seite
aus wird dieser USB-VENDOR-CALL über
die treiberseitige Funktion IOCTL() ausgelöst. Die MCU 28 ist über den
seriellen Bus 36 mit der Touchscreensteuerung 34 und
einem Speicher 52 (vorzugsweise ein EEPROM), in dem die MCU-Firmware
abgelegt ist, verbunden.The MCU 28 includes another section 48 in which the CPU, not shown, of the MCU 28 is arranged. In the next section 48 is a timer / PWM circuit 50 arranged to the PLD 30 Provides and receives signals from the same. Further, the MCU clock MCUCLK is applied to the PLD 28 provided, as well as the signal CHANGE EN. Further, the signal BKL_ON is generated and output. The BKL_ON signal turns on or off the backlight of the TFT-LCD screen, which is controlled by a USB VENDOR-CALL. From the application / application side, this USB VENDOR CALL is triggered via the driver-side function IOCTL (). The MCU 28 is over the serial bus 36 with the touch screen control 34 and a memory 52 (preferably an EEPROM) in which the MCU firmware is stored connected.
Die
PLD 30 umfasst einen Taktteiler 54, der von der
MCU 28 den MCU-Takt MCUCLK empfängt und an den Datentransferabschnitt 38 der
MCU 28 den Schnittstellentakt IFCLK ausgibt. Ferner gibt
der Taktteiler 54 das Taktsignal CLK aus.The PLD 30 includes a clock divider 54 from the MCU 28 receives the MCU clock MCUCLK and to the data transfer section 38 the MCU 28 outputs the interface clock IFCLK. Furthermore, the clock divider 54 the clock signal CLK off.
Eine
PWM-Schaltung 56 ist vorgesehen, die das Taktsignal CLK
empfängt
und an die Zeitgeber/PWM-Schaltung 50 der MCU 28 Signale
bereitstellt und von derselben empfängt. Ferner stellt die PWM-Schaltung 56 ein
Steuersignal auf der Leitung 58 bereit.A PWM circuit 56 is provided, which receives the clock signal CLK and to the timer / PWM circuit 50 the MCU 28 Provides and receives signals from the same. Further, the PWM circuit presents 56 a control signal on the line 58 ready.
Ein
erster Zähler 60 (wr_count)
empfängt von
der MCU 28 die Signale WR_START und WR_EN. Er gibt an die
MCU 28 das Signal WR_FULL aus. Ferner tauscht der erste
Zähler 60 das
Signal WR_RST mit der MCU 28 aus. Von dem Taktteiler 54 empfängt der
erste Zähler 60 das
Taktsignal CLK. Über
einen ersten Bus 62 gibt der erste Zähler 60 seinen Zählwert an
einen Adressenmulitplexer 64 (addrmux), der ferner einen
Zählwert
eines zweiten Zählers 66 über einen
zweiten Bus 68 empfängt. Über einen
17 Bit Bus gibt der Adressenmultiplexer 64 das Adresssignal
ADDR[0..16] an den Bildspeicher 32 aus. Der Adressenmultiplexer 64 empfängt ferner
das Taktsignal CLK von dem Taktteiler 54.A first counter 60 (wr_count) receives from the MCU 28 the signals WR_START and WR_EN. He gives to the MCU 28 the signal WR_FULL off. Furthermore, the first counter exchanges 60 the signal WR_RST with the MCU 28 out. From the clock divider 54 receives the first counter 60 the clock signal CLK. About a first bus 62 gives the first counter 60 its count to an address multiplexer 64 (addrmux), further comprising a count of a second counter 66 over a second bus 68 receives. The address multiplexer is provided via a 17-bit bus 64 the address signal ADDR [0..16] to the image memory 32 out. The address multiplexer 64 further receives the clock signal CLK from the clock divider 54 ,
Der
zweite Zähler 66 empfängt das
Taktsignal CLK von dem Taktteiler 54 und gibt neben dem Zählwert die
Signale DE, HSYNC und VSYNC an den Bildschirm 18 aus. Das
Signal VSYNC wird ferner als Signal new_frame (neuer Rahmen) an
eine Adressraum-Auswahlschaltung 70 angelegt, die ferner
das Signal WR_FULL empfängt
und das Signal WR_RST sendet. Die Adressraum-Auswahlschaltung 70 gibt ein
Auswahlsignal ADDR-17 an den Bildspeicher 32 aus und empfängt ferner
das Taktsignal CLK von dem Taktteiler 54.The second counter 66 receives the clock signal CLK from the clock divider 54 and gives the signals DE, HSYNC and VSYNC to the screen in addition to the count value 18 out. The signal VSYNC is further provided as a signal new_frame (new frame) to an address space selection circuit 70 which further receives the signal WR_FULL and sends the signal WR_RST. The address space selection circuit 70 gives a selection signal ADDR-17 to the image memory 32 and further receives the clock signal CLK from the clock divider 54 ,
Die
PLD 30 umfasst ferner die Schaltung 72 (OE) zum
Erzeugen eines Aktivierungssignals OE für den Bildspeicher 32,
abhängig
von dem empfangenen Taktsignal CLK.The PLD 30 further comprises the circuit 72 (OE) for generating an activation signal OE for the image memory 32 , depending on the received clock signal CLK.
Die
elektronische Baugruppe 16 umfasst ferner die PWM-Schaltung 74,
die von der PWM-Schaltung 56 der PDL 30 über die
Leitung 58 angesteuert wird, um ein Helligkeitssignal zu
erzeugen.The electronic assembly 16 further includes the PWM circuit 74 that by the PWM circuit 56 the PDL 30 over the line 58 is driven to produce a brightness signal.
Der
Bildspeicher 32 hat zwei Speicherabschnitte 32a und 32b,
die abwechselnd Pixeldaten von der MCU 28 empfangen und
an den Bildschirm 18 ausgeben.The image memory 32 has two storage sections 32a and 32b alternating pixel data from the MCU 28 received and to the screen 18 output.
Anhand
der 3 und der 4 wird nachfolgend
die Funktionalität
der MCU 28 näher
erläutert.
Die MCU 28 regelt den Transfer der Grafik-Bitmap-Daten
von dem Host 12 in den Bildspeicher 32. Der eigentliche
Datentransfer wird mit der in der MCU 28 integrierten GPIF-Einheit 42 weitgehend autark
vom der integrierten CPU bewerkstelligt. Die GPIF-Einheit 42 ist
eine Zustandsmaschine (Statemachine), die einen DMA Datentransfer
vom dem ebenfalls in der MCU 28 integrierten FIFO-Speicher 40 in
den Bildspeicher 32 steuert. Die GPIF 42 verfügt dafür über einen
Zähler
der mit der Zahl der zu übertragenden
Daten gefüllt
wird, also die Anzahl der Pixel einer kompletten Bitmap. Der Zähler wird
durch einen USB-Vendor-Aufruf (Call) „WR_START" gesetzt. Zudem wird die GPIF 42 initialisiert.
Der Aufruf WR_START setzt auch das Signal WR_START, um den Adresszähler 60 in
der PLD 30 auf die Speicher-Start-Position/Adresse eines
Bildes zu setzten.Based on 3 and the 4 below is the functionality of the MCU 28 explained in more detail. The MCU 28 controls the transfer of graphic bitmap data from the host 12 in the image memory 32 , The actual data transfer is with that in the MCU 28 integrated GPIF unit 42 largely self-sufficient managed by the integrated CPU. The GPIF unit 42 is a state machine (Statemachine) that does a DMA data transfer from the same one in the MCU 28 integrated FIFO memory 40 in the image memory 32 controls. The GPIF 42 has a counter that is filled with the number of data to be transferred, ie the number of pixels of a complete bitmap. The counter is set by a USB vendor call ("WR_START" call) and GPIF 42 initialized. The call WR_START also sets the signal WR_START to the address counter 60 in the PLD 30 to the memory start position / address of an image.
Die
von dem USB-Bus 10 ankommenden Bitmap-Daten werden in dem
FIFO-Speicher 40 abgelegt. Dies bewerkstelligt eine in
der MCU 28 integrierte SIE-Einheit (nicht gezeigt; SIE
= USB Serial Interface Engine) automatisch. Die GPIF 42 erkennt, dass
Daten im FIFO-Speicher 40 zur Verfügung stehen und überträgt diese
selbstständig
an den Bildspeicher 32.The from the USB bus 10 incoming bitmap data is stored in the FIFO memory 40 stored. This accomplishes one in the MCU 28 integrated SIE unit (not shown, SIE = USB Serial Interface Engine) automatically. The GPIF 42 Detects that data in FIFO memory 40 are available and transfers these independently to the image memory 32 ,
Die
Adressierung des Speichers erfolgt durch die PDL 30. Legt
die GPIF 42 gültige
Pixel-Daten auf den Datenbus 44, so wird dies durch das
Signal WR_EN anzeigt. Die Daten werden mit der steigenden Flanke
des Taktsignals CLK im Bildspeicher 32 übernommen. Für jedes übertragene
Pixel wird der Zähler
der GPIF 42 dekrementiert. Ist ein komplettes Bild übertragen,
wird in der MCU 28 eine Unterbrechung (Interrupt) durch
das Signal WR_FULL aus der PLD 30 ausge löst. Die
dadurch in der MCU 28 gestartete ISR (Interrupt Service
Routine) überprüft den Zählerstand
der GPIF 42. Ist dieser „NULL", zeigt dies einen erfolgreichen Transfer
an. Damit ist ein komplettes neues Bild im Bildspeicher 32 abgelegt.
Dies wird mit dem Signal CHANGE_EN durch die MCU 28 angezeigt.
Dadurch wechselt die Adressraum-Auswahlschaltung 70 der
PLD 30 den Adressraum zum nächstmöglichen Zeitpunkt, nämlich zum Zeitpunkt
der Vertikalaustastlücke,
und das neue Bild wird angezeigt. Wechselt die PLD 30 den
Adressraum, so setzt dieselbe den ersten Zähler 60 und damit
das Signal WR_FULL zurück.
Dies wird mit dem Signal WR_RST angezeigt und löst wiederum eine Unterbrechung
(Interrupt) in der MCU 28 aus. Die dadurch gestartete ISR
setzt das Signal CHANGE_EN wieder zurück, setzt den Zähler der
GPIF 42 wieder auf die Pixelzahl eines kompletten Bildes
und startet die GPIF 42 für einen erneuten Datentransfer.
Zudem wird dem Host 12 der erfolgreiche Datentransfer über einen
USB-Interrupt-Transfer mitgeteilt.The memory is addressed by the PDL 30 , Sets the GPIF 42 valid pixel data on the data bus 44 , this is indicated by the signal WR_EN. The data is in the frame memory with the rising edge of the clock signal CLK 32 accepted. For each transmitted pixel, the counter becomes the GPIF 42 decremented. If a complete picture is transmitted, the MCU will 28 an interrupt (interrupt) by the signal WR_FULL from the PLD 30 out triggers. The resulting in the MCU 28 The started ISR (interrupt service routine) checks the counter reading of the GPIF 42 , Is this "zero", this indicates a successful transfer. This is a complete new picture in the image memory 32 stored. This is done with the signal CHANGE_EN by the MCU 28 displayed. This changes the address space selection circuit 70 the PLD 30 the address space at the next possible time, namely at the time of the vertical blanking interval, and the new image is displayed. Change the PLD 30 the address space, it sets the first counter 60 and thus the signal WR_FULL back. This is indicated by the signal WR_RST and in turn triggers an interrupt in the MCU 28 out. The thus started ISR resets the signal CHANGE_EN, sets the counter of the GPIF 42 again to the pixel count of a complete picture and starts the GPIF 42 for a new data transfer. In addition, the host will 12 communicated the successful data transfer via a USB interrupt transfer.
Wird
das Signal WR_FULL angezeigt und erkennt die damit ausgelöste ISR,
dass der Zähler
der GPIF 42 nicht „NULL" ist, liegt ein Fehlverhalten
vor. Dies wird durch einen USB-Interrupt-Transfer dem Host 12 mitgeteilt.
Der Host muss dann über
den USB-Vendor-Call „WR_START" das System zurücksetzten
und den Datentransfer neu starten.If the signal WR_FULL is displayed and the ISR triggered by it detects that the counter of the GPIF 42 is not "NULL", there is a misbehavior, which is due to a USB interrupt transfer to the host 12 communicated. The host must then reset the system via the USB vendor call "WR_START" and restart the data transfer.
Ein
weiteres Fehlverhalten liegt vor wenn der Zähler der GPIF 42 auf „NULL" läuft, aber
das Signal WR_FULL von der PLD 30 nicht gesetzt wird. Läuft die
GPIF dann auf „NULL" wird ein Interrupt
in der MCU 28 ausgelöst.
Dieser ist niedriger priorisiert als der Interrupt durch das Signal
WR_FULL. Deshalb wird im Normalfall der Interrupt „GPIF-Zähler NULL" durch die „ISR WR_FULL" ausmaskiert und
löst damit
nicht die ISR „GPIF-Zähler NULL" aus. Bei einem Fehlverhalten
wird die ISR „GPIF-Zähler NULL" aber aktiviert,
da kein Signal WR_FULL anliegt, um das Fehlverhalten anzeigen. Dies
wird durch einen USB-Interrupt-Transfer dem Host 12 mitgeteilt.
Der Host 12 muss dann über
den USB- Vendor-Call „WR_START" das System zurücksetzten
und den Datentransfer neu starten.Another misconduct is when the counter of the GPIF 42 running to "zero", but the signal WR_FULL from the PLD 30 not set. If the GPIF then runs "NULL", an interrupt in the MCU will occur 28 triggered. This is prioritized lower than the interrupt by the signal WR_FULL. Therefore, the "GPIF counter NULL" interrupt is normally masked out by the "ISR WR_FULL" and thus does not trigger the ISR "GPIF counter NULL." In the event of a malfunction, the ISR "GPIF counter NULL" is activated, however, because no Signal WR_FULL is present to indicate the fault. This is done through a USB interrupt transfer to the host 12 communicated. The host 12 must then reset the system via the USB vendor call "WR_START" and restart the data transfer.
Anhand
des in 4 gezeigten Flussdiagramms wird die gerade beschriebene
Funktionalität nochmals
verdeutlicht. Der Ablauf startet bei 100 durch einen USB-Vendor-Aufruf
(Call) und geht dann zu Block 102 (WR_START). Alternativ
kehrt der Ablauf aus einer Fehlerbehandlungsroutine zu dem Block 102 zurück, wie
dies bei Block 104 angedeutet ist. Im Block 102 wird
das Signal WR_START gesetzt. Damit wird der Adresszähler 60 in
der PLD 30 zurückgesetzt
und der Zähler
der GPIF 42 wird auf die Anzahl der zu übertragenden Pixel (hier 320×240 Pixel)
gesetzt.Based on the in 4 the flowchart just described is again clarified the functionality just described. The process starts 100 through a USB vendor call (call) and then goes to block 102 (WR_START). Alternatively, the flow returns from an error handling routine to the block 102 back, like this at block 104 is indicated. In the block 102 the signal WR_START is set. This will be the address counter 60 in the PLD 30 reset and the counter of GPIF 42 is set to the number of pixels to be transmitted (here 320 × 240 pixels).
Der
Ablauf geht dann weiter zum Block 106 (TRANSFER), der die Übertragung
der Bilddaten bewirkt. Die GPIF 42 überträgt die Bilddaten selbständig und
bei jedem übertragenen
Pixel (hier 16 Bit) wird der Zähler
der GPIF 42 dekrementiret.The process then continues to the block 106 (TRANSFER), which causes the transmission of the image data. The GPIF 42 transmits the image data independently and at each transmitted pixel (here 16 bits) the counter of the GPIF 42 dekrementiret.
Während der
Datenübertragung
werden das Signal WR_FULL und der Zählwert „count" des GPIF-Zählers überwacht. Im Block 108 wird
die Interrupt Service Routine „ISR
GPIF DONE" durch
die GPIF 42 aufgerufen. Die GPIF überträgt die Bilddaten bis der Datenzähler „count" auf Null läuft. Dies löst den Interrupt 4 aus.
Im Block 110 wird anhand des Signals WR_FULL überprüft, ob der
Bildspeicher vollständig
gefüllt
ist, nachdem alle Pixel übertragen wurden.
Ist dies nicht der Fall, so geht der Ablauf zum Fehlerblock 112,
der einen Fehler bei der Übertragung
anzeigt, die GPIF 42 und die PLD 30 zurücksetzt
und dem Host 12 den Fehler über den Interrupt-Transfer
anzeigt. Wird angezeigt, das der Bildspeicher 32 vollständig gefüllt ist,
nachdem alle Pixel übertragen
wurden, so geht der Ablauf zum Block 114 (CHANGE_EN).During data transmission, the signal WR_FULL and the count value "count" of the GPIF counter are monitored 108 is the interrupt service routine "ISR GPIF DONE" by the GPIF 42 called. The GPIF transmits the image data until the data counter "count" runs to zero, which triggers the interrupt 4 out. In the block 110 is checked by the signal WR_FULL, if the image memory is completely filled after all pixels have been transmitted. If this is not the case, then the process goes to the error block 112 indicating a transmission error, the GPIF 42 and the PLD 30 reset and the host 12 indicates the error via the interrupt transfer. The image memory is displayed 32 is completely filled after all the pixels have been transferred, the process goes to the block 114 (CHANGE_EN).
Läuft der
Adresszähler 60 der
PLD 30 über, so
wird dies durch das Signal WR_FULL angezeigt und bei Block 116 wird
der Interrupt 1 ausgelöst.
Ferner muss der Interrupt 4 maskiert und zurückgesetzt werden,
da dieser im Normalfall unmittelbar danach ausgelöst wird.
Da das Signal WR_FULL einen Zustand hat, der anzeigt, das der Bildspeicher
gefüllt
ist, wird anschließend
beim Block 118 überprüft, ob die erforderliche
Anzahl von Pixeln übertragen
wurde. Ist dies nicht der Fall, geht der Ablauf zum Block 120, der
einen Fehler bei der Übertragung
anzeigt, die GPIF 42 und die PLD 30 zurücksetzt
und dem Host 12 den Fehler über den Interrupt-Transfer
anzeigt. Wird angezeigt, das alle Pixel übertragen wurden („count" = NULL), so geht
der Ablauf zum Block 114 (CHANGE_EN).Runs the address counter 60 the PLD 30 via, this is indicated by the signal WR_FULL and at block 116 becomes the interrupt 1 triggered. Furthermore, the interrupt must 4 be masked and reset, as this is usually triggered immediately thereafter. Since the signal WR_FULL has a state indicating that the image memory is full, then at the block 118 checks if the required number of pixels has been transferred. If this is not the case, the process goes to the block 120 indicating a transmission error, the GPIF 42 and the PLD 30 reset and the host 12 indicates the error via the interrupt transfer. If it is displayed that all pixels have been transferred ("count" = NULL), the process goes to the block 114 (CHANGE_EN).
Im
Block 114 (CHANGE_EN) wird das Signal CHANGE_EN aktiviert,
um der PLD 30 zu erlauben, den Speicherbereich im Bildspeicher 32 zu
wechseln. Damit wird das übertragene
Bild angezeigt und der Speicherbereich des vorangegangenen Bildes frei
für eine
erneute Übertragung.In the block 114 (CHANGE_EN) the signal CHANGE_EN is activated to the PLD 30 to allow the memory area in image memory 32 switch. This will display the transferred image and free the memory area of the previous image for retransmission.
Im
Block 122 wird der Wechsel des Speicherbereichs und damit
des angezeigten Bildes in der Vertikalaustastlücke vorgenommen. Der Wechsel
wird mit dem Signal WR_RST angezeigt. Die PLD 32 setzt
dabei den Zähler 60 selbständig zurück. Das Signal
WR_RST löst
einen Interrupt aus, der beim Block 124 anzeigt, das der
Transfer ordnungsgemäß war, wobei
dem Host 12 beim Block 124 ferner über einen
Interrupt-Transfer der erfolgreiche Datentransfer einer Bitmap angezeigt
wird. Anschließend
wird im Block 122 das Signal CHANGE_EN wieder zurückgesetzt.In the block 122 the change of the memory area and thus the displayed image in the vertical blanking interval is made. The change is indicated by the signal WR_RST. The PLD 32 sets the counter 60 independently back. The signal WR_RST triggers an interrupt which occurs at the block 124 indicates that the transfer was correct, taking the host 12 at the block 124 Furthermore, the successful data transfer of a bitmap is displayed via an interrupt transfer. Subsequently, in the block 122 the signal CHANGE_EN is reset again.
Anschließend wird
im Block 126 festgestellt, dass ein freier Speicherplatz
für die Übertragung
bereitsteht. Der Zähler
der GPIF 42 wird wieder auf die Anzahl der Pixel eines
Bildes gesetzt (hier 320×249 Pixel).Subsequently, in the block 126 found that a free space for the transfer be riding is. The counter of the GPIF 42 is again set to the number of pixels of an image (here 320 × 249 pixels).
Im
Block 128 wird ein Rahmenzähler inkrementiert Der Zählerstand
dieses Rahmenzählers (Frame-Counter)
kann jederzeit über
einen Vendor-Call seitens des Hosts 12 abgefragt werden.
Damit kann der Host über
die USB-Verbindung 16 feststellen, welche Bilder (Frames) übertragen
und angezeigt worden sind und welche nicht.In the block 128 a frame counter is incremented The count of this frame counter (frame counter) can at any time via a vendor call by the host 12 be queried. This allows the host via the USB connection 16 determine which images (frames) have been transmitted and displayed and which are not.
Anschließend wird
bei Block 130 eine neue Übertragung von Bilddaten mit
der GPIF 42 gestartet und der Ablauf geht zurück zu Block 106 oder
endet bei 132 wenn eine Ende-Transfer-Anweisung vorliegt, die durch
einen USB-Vendor-Call
mitgeteilt wurde.Subsequently, at block 130 a new transfer of image data with the GPIF 42 started and the process goes back to block 106 or ends at 132 if there is an end transfer instruction given by a USB vendor call.
Anhand
der 3 und der 5 bis 8 wird
nachfolgend die Funktionalität
der PDL 30 näher erläutert. Die
PLD 30 erzeugt die für
den Bildschirm 18 erforderlichen Synchronsignale HSYNC
und VSYNC und erzeugt die Adressen für den Bildspeicherzugriff.
Das Taktsignal CLK wird aus dem Taktsignal MCUCLK der MCU 28 durch
Frequenzteilung erzeugt. Außerdem
steuert die PLD 30 das Signal OE (Output-Enable) für den Bildspeicher 32.
Der Ausgang des Bildspeichers 32 wird so frei geschalten, dass
der Bildschirm 18 die Pixeldaten zur fallenden Flanke des
Taktsignals CLK aus dem Bildspeicher 32 übernehmen
kann.Based on 3 and the 5 to 8th below is the functionality of the PDL 30 explained in more detail. The PLD 30 generates the for the screen 18 required sync signals HSYNC and VSYNC and generates the addresses for the image memory access. The clock signal CLK is made from the clock signal MCUCLK of the MCU 28 generated by frequency division. In addition, the PLD controls 30 the signal OE (output enable) for the image memory 32 , The output of the image memory 32 is so freely switched that the screen 18 the pixel data on the falling edge of the clock signal CLK from the image memory 32 can take over.
Es
sind die zwei Zählereinheiten 60 und 66 implementiert.
Die erste Einheit 60 ist für den Datentransport von der
MCU 28 zu dem Bildspeicher 32 zuständig. Die
andere Einheit 66 ist für
die Ansteuerung des Bildschirms 18 zuständig. Aus den Zählerwerten wird
jeweils das Adress-Signal für
den Bildspeicher 32 generiert. Dazu bestehen die Zählereinheiten 60 und 66 aus
jeweils zwei Zählern,
dem Horizontal-Zähler und
dem Vertikal-Zähler.
Der Horizontalzähler
wird mit dem Taktsignal CLK inkrementiert. Der Wert des Zählers entspricht
somit der Position eines Pixels innerhalb einer Zeile. Der Vertikalzähler wird
durch den Überlauf
des Horizontalzählers
inkrementiert, also mit Zeilenfrequenz. Der Wert des Vertikalzählers entspricht
somit der Zeilenposition. Der Horizontal-Zähler und Vertikal-Zähler zusammen
ergeben zusammen eine Speicheradresse die der Pixelposition entspricht.
Wie in 5 bei 140 gezeigt ist, umfasst der Vertikal-Zähler einen
8 Bit Zählwert. Der
Horizontal-Zähler umfasst,
wie bei 142 gezeigt ist, einen 9 Bit Zählwert. Durch geeignete Verknüpfung der
Zählwerte
ergibt sich das 17 Bit Adresssignal, wie es bei 144 gezeigt
ist.It's the two meter units 60 and 66 implemented. The first unit 60 is for data transport from the MCU 28 to the image memory 32 responsible. The other unit 66 is for driving the screen 18 responsible. From the counter values in each case the address signal for the image memory 32 generated. For this there are the counter units 60 and 66 each of two counters, the horizontal counter and the vertical counter. The horizontal counter is incremented with the clock signal CLK. The value of the counter thus corresponds to the position of a pixel within a line. The vertical counter is incremented by the overflow of the horizontal counter, that is with line frequency. The value of the vertical counter thus corresponds to the line position. The horizontal counter and vertical counter together result in a memory address corresponding to the pixel position. As in 5 at 140 is shown, the vertical counter comprises an 8-bit count value. The horizontal counter includes, as in 142 shown is a 9 bit count. By suitable combination of the counts results in the 17-bit address signal, as it is at 144 is shown.
Durch
die Aufteilung in den Vertikal-Zähler und
den Horizontal-Zähler
lassen sich auch die Synchronsignale generieren. Die Zählereinheit 66 zur Ansteuerung
des Bildschirms generiert die Signale HSYNC und VSYNC. Komparatoren überwachen
die Zählerstände und
setzen bzw. rücksetzen
die Synchronsignale an den entsprechenden Positionen nach der Spezifikation
des TFT-Bildschirms 18.By dividing into the vertical counter and the horizontal counter can also generate the sync signals. The counter unit 66 to drive the screen generates the signals HSYNC and VSYNC. Comparators monitor the meter readings and set or reset the sync signals at the appropriate positions according to the specification of the TFT screen 18 ,
6 verdeutlicht
die Erzeugung der Synchronsignale. Mit jeder steigenden Flanke des
Taktsignals CLK wird bei Block 150 bestimmt, ob ein Zeilenende
erreicht wurde oder nicht. Wenn das Zeilenende noch nicht erreicht
wurde, so wird der Horizontal-Zähler
(„hcount") im Block 152 inkrementiert.
Ist das Ende der Zeile erreicht, so wird der Horizontal-Zähler im Block 154 auf
den Wert 1 gesetzt. Nachdem der Horizontal-Zähler im Block 154 auf
den Wert 1 gesetzt wurde, wird im Block 156 überprüft, ob das Bildende
erreicht worden ist oder nicht. Ist das Bildende noch nicht erreicht
worden, wird der Vertikalzähler
(„vcount") im Block 158 inkrementiert.
Ist das Bildende bzw. Rahmen-Ende erreicht, so wird der Vertikalzähler im
Block 160 auf den Wert 1 gesetzt. Anschließend wird
auf der Basis der so eingestellten Zählerwerte die Synchronisierung
des Bildschirms gesteuert. 6 illustrates the generation of the sync signals. With each rising edge of the clock signal CLK is at block 150 determines if a line end has been reached or not. If the end of the line has not yet been reached, the horizontal counter ("hcount") in the block 152 incremented. When the end of the line is reached, the horizontal counter in the block 154 set to the value 1. After the horizontal counter in the block 154 is set to the value 1, is in the block 156 checks whether the end of the picture has been reached or not. If the end of the picture has not yet been reached, the vertical counter ("vcount") in the block 158 incremented. If the end of the frame or frame has been reached, the vertical counter is in the block 160 set to the value 1. Then, on the basis of the counter values thus set, the synchronization of the screen is controlled.
Im
Block 162 wird basierend auf einer Spezifizierung für die SYNCH-Signale
des Bildschirms überprüft, ob der
Wert des Horizontal-Zählers („hcount") einem vorgegebenen
HSYNC-Bereich entspricht.
Ist dies der Fall, wird HSYNC im Block 164 auf den Wert
0 gesetzt. Ist dies nicht der Fall, wird HSYNC im Block 166 auf
den Wert 1 gesetzt.In the block 162 is checked, based on a specification for the SYNCH signals of the screen, whether the value of the horizontal counter ("hcount") corresponds to a predetermined HSYNC range, if so, HSYNC is in the block 164 set to the value 0. If not, HSYNC will be in the block 166 set to the value 1.
Im
Block 168 wird basierend auf einer Spezifizierung für die HSYNCH/SYNCH-Phasenverschiebung
des Bildschirms über prüft, ob der
Wert des Horizontal-Zählers
einen minimalen Phasenverschiebungswert unterschreitet oder nicht.
Unterschreitet der Wert des Horizontal-Zählers den minimalen Phasenverschiebungswert,
so wird keine weitere Aktion durchgeführt. Erreicht der Wert des
Horizontal-Zählers
den minimalen Phasenverschiebungswert oder überschreitet diesen, so wird
im Block 170 basierend auf einer Spezifizierung für die SYNCH-Signale
des Bildschirms überprüft, ob der
Wert des Vertikal-Zählers
(„vcount") einem vorgegebenen
VSYNC-Bereich entspricht. Ist dies der Fall, wird VSYNC im Block 172 auf
den Wert 0 gesetzt. Ist dies nicht der Fall, wird VSYNC im Block 174 auf
den Wert 1 gesetzt.In the block 168 is checked based on a specification for the HSYNCH / SYNCH phase shift of the screen over whether the value of the horizontal counter falls below a minimum phase shift value or not. If the value of the horizontal counter falls below the minimum phase shift value, then no further action is taken. If the value of the horizontal counter reaches or exceeds the minimum phase shift value, then in the block 170 Based on a specification for the SYNCH signals of the screen, it checks if the value of the vertical counter ("vcount") corresponds to a given VSYNC range, if so VSYNC is in the block 172 set to the value 0. If this is not the case, VSYNC is in the block 174 set to the value 1.
Abschließend wird
im Block 176 aus den Zählerwerten „vcount" und „hcount" die Speicheradresse
RD_ADDR ermittelt.Finally, in the block 176 the memory address RD_ADDR is determined from the counter values "vcount" and "hcount".
Die
Zählereinheit 60,
die für
den Transport der Bilddaten von der MCU 28 in den Bildspeicher 24 zuständig ist,
zeigt durch das Signal WR_FULL die vollständige Übertragung eines Bilds in den
Bildspeicher 32 an, wie dies anhand der 7 verdeutlicht wird.The counter unit 60 necessary for transporting the image data from the MCU 28 in the image memory 24 is responsible, shows by the signal WR_FULL the complete transmission of an image in the image memory 32 on how this is based on the 7 is clarified.
Zu
jeder steigenden Flanke des Taktsignals CLK wird im Block 180 basierend
auf dem Signal WR_EN überprüft, ob Daten
in den Speicher geschrieben werden bzw. ob die MCU 28 gültige Daten zur
Verfügung
stellt.At each rising edge of the clock signal CLK is in the block 180 based on the signal WR_EN checks whether data is written to the memory or whether the MCU 28 provides valid data.
Stehen
keine Daten zum Scheiben an (WR_EN ungleich 1), so wird die Speicheradresse
im Block 182 nicht verändert,
da die Zählwerte „vcount" und „hcount" nicht geändert werden.If there is no data for the slices (WR_EN not equal to 1), the memory address in the block becomes 182 not changed, because the counts "vcount" and "hcount" are not changed.
Liegen
Daten zum Schreiben in den Speicher vor, wird im Block 184 überprüft, ob das
Zeilenende erreicht wurde (Wert „hcount" ist größer oder gleich der Zeilenlänge) oder
nicht (Wert „hcount" ist kleiner der
Zeilenlänge).
Wurde das Zeilenende noch nicht erreicht, wird der Wert des Horizontal-Zählers im
Block 186 inkrementiert. Andernfalls wird im Block 188 überprüft, ob das
Bildende erreicht wurde (der Wert des Vertikal-Zählers „vcount" ist größer oder gleich der Zeilenanzahl)
oder nicht (der Wert des Vertikal-Zählers „vcount" ist kleiner der Zeilenanzahl). Ist das
Bildende noch nicht erreicht, so wird der Vertikal-Zähler im
Block 190 inkrementiert und der Horizontal-Zähler wird
im Block 192 auf den Wert 1 gesetzt, was bedeutet, dass
die Zeilennummer erhöht wird
und die Pixelnummer wieder auf den Anfang der Zeile gesetzt wird.If there are data to write to the memory, the block 184 checks whether the end of the line has been reached (value "hcount" is greater than or equal to the line length) or not (value "hcount" is smaller than the line length). If the end of the line has not yet been reached, the value of the horizontal counter is in the block 186 incremented. Otherwise, in the block 188 checks whether the end of the picture has been reached (the value of the vertical counter "vcount" is greater than or equal to the number of lines) or not (the value of the vertical counter "vcount" is smaller than the number of lines). If the end of the picture has not yet been reached, the vertical counter is in the block 190 increments and the horizontal counter is in the block 192 is set to 1, meaning that the line number is incremented and the pixel number is reset to the beginning of the line.
Wurde
das Bildende erreicht, so wird das Signal WR_FULL im Block 194 auf
den Wert 1 gesetzt, und der Wert des Horizontal-Zählers wird
im Block 196 auf eine ungenutzte Speicheradresse gesetzt. So
wird angezeigt, dass das komplette Bild im Speicher enthalten ist.When the end of the picture has been reached, the signal WR_FULL in the block 194 is set to the value 1, and the value of the horizontal counter is in the block 196 set to an unused memory address. This indicates that the entire image is in memory.
Anschließend werden
im Block 198 die Signale WR_START und WR_RST überprüft. Sind
diese nicht aktiviert (hier: niedriger logischer Pegel), d.h. es hat
keine neue Datenübertragung
begonnen, so werden keine weiteren Änderungen der Zählerwerte durchgeführt und
bei 182 die Speicheradresse gebildet. Andernfalls, also
wenn die Signale WR_START und WR_RST anzeigen, dass eine neue Datenübertragung
begonnen wird (neues Bild), wird im Block 200 der Wert
des Vertikal-Zählers auf
den Wert 1 gesetzt, im Block 202 wird der Wert des Horizontal-Zählers auf
den Wert 1 gesetzt und im Block 204 wird das Signal WR_FULL
deaktiviert, um die beiden Zähler auf
den Bildanfang zu setzen und das Signal WR_FULL zurückzusetzen.
Anschließend
wird bei Block 182 die Speicheradresse gebildet.Subsequently, in the block 198 checks the signals WR_START and WR_RST. If these are not activated (in this case: low logic level), ie no new data transmission has begun, then no further changes are made to the counter values and at 182 the memory address is formed. Otherwise, when the signals WR_START and WR_RST indicate that a new data transfer is started (new image), the block 200 the value of the vertical counter is set to the value 1, in the block 202 the value of the horizontal counter is set to the value 1 and in the block 204 the signal WR_FULL is deactivated to set the two counters to the beginning of the picture and to reset the signal WR_FULL. Subsequently, at block 182 the memory address is formed.
Um
so genannte Frame-Tears zu vermeiden wird mit dem "double Buffer"-Prinzip gearbeitet.
Hierfür
ist der Bildspeicher 32 in die zwei Bereiche 32a und 32b aufgeteilt,
die jeweils ein komplettes Bild fassen können. Das höchstwertigste Adressbit des
Bildspeichers 32 wird verwendet, um diesen in den oberen
und den unteren Speicherbereich 32a, 32b aufzuteilen.
Ein Bereich dient zur Versorgung des Bildschirms 18 mit
den Bilddaten und der andere nimmt die neuen Bilddaten, die von
der MCU 28 kommen, auf. Zwischen den Bereichen 32a, 32b wird
ständig hin
und her geschaltet. Zur steigenden Takt-Flanke ist der Bereich aktiv
der die neuen Daten von der MCU 28 aufnimmt und zur fallenden
Flanke der Bereich mit den anzuzeigenden Bilddaten. Ist ein neues Bild
komplett übertragen,
werden die Bereiche getauscht. Hierfür ist die Adressraum-Einheit 70 zuständig. Über das
Signal WR_FULL erkennt die Adressraum-Einheit 70, dass
eine neues Bild im Speicher 32 liegt. Durch das Signal
new_frame, das dem VSYNC-Signal entspricht, erkennt die Adressraum-Einheit 70 die
Vertikalaustastlücke.
Zu diesem Zeitpunkt kann ein Bildwechsel vorgenommen werden. Die
MCU 28 erteilt mit dem Signal CHANGE_EN die Erlaubnis zum
Bildwechsel. Werden die beiden Signale WR_FULL und new_frame angezeigt
und ist das Signal CHANGE_EN gesetzt, wird der Speicherbereich getauscht
und somit ein neues Bild auf dem Bildschirm ausgegeben. Der Wechsel
wird durch das Signal WR_RST angezeigt, dessen Erzeugung anhand
der 8 näher
erläutert
wird.In order to avoid so-called frame tears, the "double buffer" principle is used. This is the image memory 32 in the two areas 32a and 32b divided, each of which can capture a complete picture. The most significant address bit of the image memory 32 is used to place this in the upper and lower memory area 32a . 32b divide. An area is used to power the screen 18 with the image data and the other takes the new image data by the MCU 28 come from. Between the areas 32a . 32b is constantly switched back and forth. At the rising clock edge, the area is active the new data from the MCU 28 receives and to the falling edge of the area with the image data to be displayed. When a new image is completely transferred, the areas are swapped. This is the address space unit 70 responsible. The address space unit recognizes via the signal WR_FULL 70 that a new picture in memory 32 lies. The new_frame signal, which corresponds to the VSYNC signal, identifies the address space unit 70 the vertical blanking interval. At this time, a picture change can be made. The MCU 28 gives the permission to change the picture with the signal CHANGE_EN. If the two signals WR_FULL and new_frame are displayed and the signal CHANGE_EN is set, the memory area is exchanged and a new picture is displayed on the screen. The change is indicated by the signal WR_RST, the generation of which is based on the 8th is explained in more detail.
Mit
jeder steigenden Flanke eines Taktes wird im Block 210 bestimmt,
ob durch die Signale WR_FULL, new_frame und CHANGE_EN ein Wechsel
der Adressräume
angezeigt wird oder nicht. Soll ein Wechsel der Adressräume erfolgen,
so wird im Block 212 das Rücksetzsignal WR_RST aktiviert,
um den Zähler 60 zurückzusetzen
und der MCU 28 den Bildwechsel anzuzeigen. Andernfalls
wird das Signal WR_RST im Block 218 deaktiviert.With each rising edge of a bar is in the block 210 determines whether the signals WR_FULL, new_frame and CHANGE_EN indicate a change of the address spaces or not. If a change of the address spaces take place, then in the block 212 the reset signal WR_RST activates the counter 60 reset and the MCU 28 to display the picture change. Otherwise, the signal WR_RST is in the block 218 disabled.
Entsprechend
des gerade aktiven Adressbereichs wird das Adress-Signal der Zählereinheit
für den
Datentransport bzw. zur Ansteuerung des Bildschirms auf die Adressleitungen
des Bildspeichers 32 gelegt, was durch den Adressmultiplexer 64 (addrmux)
erfolgt.According to the currently active address range, the address signal of the counter unit for the data transport or for driving the screen to the address lines of the image memory 32 put what's happening through the address multiplexer 64 (addrmux) takes place.
Anhand
der 9 bis 11 wird ein Blockdiagramm eines
Ausführungsbeispiels
des in 1 gezeigten Computers 12 mit angeschlossenem
Anzeigesystem 14 erläutert.
Bei diesem Ausführungsbeispiel
ist eine Anwendung 250 vorgesehen, die auf dem Computer
abläuft
und die Bilddaten erzeugt. Die Anwendung gibt die Bilddaten an einen
Treiber 252, der mit einem USB-Teilsystem 254 des
Betriebssystems zusammenwirkt.Based on 9 to 11 is a block diagram of an embodiment of the in 1 shown computer 12 with connected display system 14 explained. In this embodiment is an application 250 provided that runs on the computer and generates the image data. The application sends the image data to a driver 252 that with a USB subsystem 254 of the operating system.
Auf
der Host-Seite 12 wird der Transfer von Grafik-Bitmap-Daten mit dem Softwaretreiber 252 bewerkstelligt.
Dieser bietet dem Anwendungs/Applikationsprogrammierer bzw. der
Anwendung/Applikation 250 die erforderlichen Schnittstellen
für die Übergabe
der Bitmaps und liefert Erfolgs- bzw. Fehlercodes.On the host page 12 is the transfer of graphic bitmap data with the software driver 252 accomplished. This provides the application / application programmer or the application / application 250 The necessary interfaces for the transfer of the bitmaps and provides success or error codes.
Anhand
der 10 werden die Schritte zum Öffnen und Schließen der
Schnittstelle und der Übertragung
von Daten näher
erläutert.
Nach dem anfänglichen Öffnen der
Schnittstelle wird im Block 256 eine Übertragung von dem Host 12 mit
dem "USB-Vendor-Call" gestartet, um den
Transfer zu initialisieren. Der Aufruf WR_START setzt das Signal WR_START
um die Adresszähler 60 (wr_count)
in der PLD 30 auf die Speicher-Start-Position/Adresse eines
Bildes zu setzten. Der Aufruf wird beim Öffnen der Treiber-Schnittstelle über den
Aufruf OPEN () (siehe 9) ausgeführt. Falls der USB-Vendor-Call im
Block 256 nicht ausgeführt
werden kann, so wird im Block 258 ein Fehlercode erzeugt
und zurückgegeben,
der ein nicht erfolgreiches Öffnen
des USB-Vendor-Calls anzeigt. Ansonsten, wenn also kein Fehler auftritt,
wird durch den Block 256 über einen Rückgabewert die erfolgreiche
Initialisierung an die Anwendung 250 bestätigt.Based on 10 The steps for opening and closing the interface and transferring data are explained in more detail. After the initial opening of the interface is in the block 256 a transmission from the host 12 started with the "USB vendor call" to initialize the transfer. The call WR_START sets the signal WR_START with the address counters 60 (wr_count) in the PLD 30 to the memory start position / address of an image. The call is made when the driver interface is opened via the OPEN () call (see 9 ). If the USB vendor call in block 256 can not be executed, so in the block 258 generates and returns an error code indicating an unsuccessful opening of the USB vendor call. Otherwise, if no error occurs, is through the block 256 via a return value the successful initialization to the application 250 approved.
Jetzt
können über die
Funktion WRITE() des Treibers Grafik-Bitmaps übergeben werden. Es können nur
Bitmaps im passenden Format, hier 320×240×16Bit, übergeben werden. Andere Formate werden
vom Treiber mit einem Fehlercode im Rückgabewert zurückgewiesen
und verworfen. Sollen andere Formate verwendet werden, so ist der
Treiber entsprechend zu modifizieren. Es kann auch vorgesehen sein,
das der Treiber 254 mehrere Formate unterstützt und
zunächst
das geeignete Format feststellt.Now graphic bitmaps can be transferred via the function WRITE () of the driver. Only bitmaps in the appropriate format, in this case 320 × 240 × 16 bit, can be transferred. Other formats are rejected by the driver with an error code in the return value and discarded. If other formats are to be used, the driver must be modified accordingly. It can also be provided that the driver 254 supports several formats and first determines the appropriate format.
11 verdeutlicht
den einen Ablauf des Datentransfers von dem Computer 12 an
das Anzeigesystem 14. Die Bitmap-Datenübertragung erfolgt über einen
USB-Bulk-Transfer. Der USB-Bus übernimmt
beim Bulk-Transfer die Datensicherung (siehe USB Spezifikation).
Deshalb kann man sich Treiber- und
Firmwareseitig auf einen fehlerfreien Datentransport verlassen.
Kann der USB-Host-Controller die Daten nicht zustellen, wird ein
Fehlercode zurückgegeben.
Die Fehler die zwischen der MCU 28 und der PLD 30 stattfinden
und von der MCU-Firmware erkannt werden, werden durch einen USB-Interrupt-Transfer übermittelt.
Erkennt der Treiber 252 einen Fehler wird die Datenübertragung
abgebrochen und ein Fehlercode zurückgegeben. Bei korrekter Übertragung
wartet der Treiber 252 solange, bis die MCU 28 die
Anzeige der neuen Bitmap mit einem USB-Interrupt-Transfer bestätigt. Wird
dies bestätigt, wird
die Anzahl der übertragenen
Bytes der schreibenden Anwendung/Applikation 250 zurückgegeben. Die
Anwendung 250 erkennt somit eine fehlerfreie Übertragung.
Dann kann ein neues Bild übertragen werden.
Im Fehlerfall muss die Treiberschnittstelle von der Anwendung geschlossen
und erneut geöffnet werden
um das System zurückzusetzen.
Alternativ kann das System auch über
die IOCTL() Funktion zurückgesetzt
werden. 11 illustrates the process of data transfer from the computer 12 to the display system 14 , The bitmap data transfer takes place via a USB bulk transfer. The USB bus takes over the data backup during the bulk transfer (see USB specification). Therefore, one can rely on drivers and firmware on an error-free data transport. If the USB host controller can not deliver the data, an error code will be returned. The errors between the MCU 28 and the PLD 30 and detected by the MCU firmware are transmitted through a USB interrupt transfer. Detects the driver 252 If an error occurs, the data transfer is aborted and an error code is returned. If correctly transmitted, the driver waits 252 until the MCU 28 confirmed the display of the new bitmap with a USB interrupt transfer. If this is confirmed, the number of bytes transferred will be the writing application / application 250 returned. The application 250 thus recognizes a faultless transmission. Then a new picture can be transmitted. In the event of an error, the driver interface must be closed by the application and reopened to reset the system. Alternatively, the system can also be reset via the IOCTL () function.
Wie
in 11 zu erkennen ist, wird im Block 260 nach
dem Write-Systemruf eine Grafik-Bitmap dem Treiber 252 übergeben.
Anschließend
wird die Bitmap im Block 262 übertragen. Nachdem die Bitmap
vollständig
dem USB-Host übergeben
wurde, wird im Block 262 gewartet, bis über einen Interrupt-Transfer
eine erfolgreiche Übermittlung
angezeigt wird. Im Block 266 wird eine erfolgreiche Übertragung
angezeigt, indem die Anzahl der übertragenen
Bytes, also eine komplette Bitmap, zurückgegeben wird (bei dem hier
beispielhaft beschriebenen 16 Bit System die Anzahl der Zeilen einer
Bitmap). Anschließend
wird die Schnittstelle geschlossen.As in 11 It can be seen in the block 260 after the write system call a graphics bitmap to the driver 252 to hand over. Subsequently, the bitmap is in the block 262 transfer. After the bitmap has been completely handed over to the USB host, it will appear in the block 262 waits until a successful transfer is displayed via an interrupt transfer. In the block 266 a successful transfer is indicated by returning the number of bytes transferred, ie a complete bitmap (in the case of the 16 bit system described here by way of example, the number of lines of a bitmap). Then the interface is closed.
Wird
beim Übergeben
der Bitmap im Block 260 festgestellt, dass die übergebene
Bitmap nicht die richtige Größe bzw.
nicht dass richtige Format hat, wird über den Block 268 ein
Fehlerwert bestimmt und beim Block 266 zurückgegeben.
Auch wenn beim Übertragen
der Bitmap ein Fehler auftritt, wird durch einen Interrupt-Transfer
ein Fehler angezeigt und die Übertragung
unterbrochen, über
den Block 268 ein Fehlerwert bestimmt und beim Block 266 zurückgegeben.
Gleiches gilt, wenn im Block 264 festgestellt wird, das
eine zulässige
Wartezeit überschritten
wurde.When passing the bitmap in the block 260 It determines that the passed bitmap is not the correct size or that the correct format is over the block 268 an error value is determined and at the block 266 returned. Even if an error occurs while transferring the bitmap, an error is indicated by an interrupt transfer and the transfer is interrupted via the block 268 an error value is determined and at the block 266 returned. The same applies if in the block 264 it is determined that a permissible waiting time has been exceeded.
Abhängig von
den Gegebenheiten kann das erfindungsgemäße Verfahren in Hardware oder
in Software implementiert werden. Die Implementierung kann auf einem
digitalen Speichermedium, insbesondere einer Diskette oder CD mit
elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem
programmierbaren Computersystem zusammenwirken können, dass das entsprechende
Verfahren ausgeführt
wird. Allgemein besteht die vorliegende Erfindung somit auch in
einem Computer-Programmprodukt mit auf einem maschinenlesbaren Träger gespeicherten
Programmcode zur Durchführung
des erfindungsgemäßen Verfahrens,
wenn das Computer-Programmprodukt
auf einem Rechner abläuft.
Mit anderen Worten kann die Erfindung somit als ein Computerprogramm
mit einem Programmcode zur Durchführung des Verfahrens realisiert
werden, wenn das Programm auf einem Computer abläuft.Depending on
the circumstances, the inventive method in hardware or
be implemented in software. The implementation can be done on one
digital storage medium, in particular a floppy disk or CD with
electronically readable control signals, which are so with a
programmable computer system that can interact
Procedure executed
becomes. In general, the present invention thus also consists in
a computer program product stored on a machine-readable medium
Program code for execution
of the method according to the invention,
if the computer program product
runs on a computer.
In other words, the invention can thus be considered as a computer program
implemented with a program code for carrying out the method
when the program runs on a computer.
Obwohl
oben ein bevorzugtes Ausführungsbeispiel
der vorliegenden Erfindung anhand des USB-Formats beschrieben wurde,
ist die vorliegende Erfindung nicht hierauf beschränkt. Auch
andere Schnittstellenformate, z.B. RS232, Parallelanschluss, Ethernet,
etc., können
verwendet werde. Auch können
die Bilddaten in Bitmaps mit anderer Auflösung oder in anderer Form übergeben
werden.Even though
above a preferred embodiment
of the present invention has been described with reference to the USB format,
the present invention is not limited thereto. Also
other interface formats, e.g. RS232, parallel port, Ethernet,
etc., can
used. Also can
transfer the image data to bitmaps with a different resolution or in another form
become.
Bei
dem oben beschriebenen Ausführungsbeispiel
werden über
die Schnittstelle lediglich Pixel-Bilddaten, vorzugsweise in der
Form von Bitmaps übertragen.
Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt. So
kann es bei bestimmten Anwendungsfällen erwünscht sein, zunächst eine Adressierung
des Bildspeichers 32 über
die Schnittstelle zu steuern. In diesem Fall wird dann vor dem eigentlichen
Bilddatenpaket eine Speicheradresse über die Schnittstelle gesendet.
Anschließend
wird das eigentliche Bilddatenpaket gesendet und die darin enthaltenen
Daten basierend auf der vorab erhaltenen Speicheradresse in den
Bildspeicher weitergeleitet.In the embodiment described above, only pixel image data, preferably in the form of bitmaps, is transmitted via the interface. However, the present invention is not limited to this. Thus, it may be desirable in certain applications, first an addressing of the image memory 32 to control over the interface. In this case, a memory address is then sent via the interface before the actual image data packet. Subsequently, the actual image data packet is sent and the data contained therein forwarded based on the previously received memory address in the image memory.
Wie
die obige Beschreibung zeigt, ist die erfindungsgemäße Lösung vorteilhaft,
da hier direkt verwendbare Bilddaten (Pixel) übertragen werden, die ohne
weitere Umwandlung angezeigt werden können, wodurch der software-
und hardwaretechnische Aufwand reduziert wird.As
the above description, the solution according to the invention is advantageous,
since directly usable image data (pixels) are transmitted without
further conversion can be displayed, whereby the software
and hardware complexity is reduced.