info@panadisplay.com
Contrôleur d'écran tactile LCD

Contrôleur d'écran tactile LCD

Dec 13, 2017

Le contrôleur d'écran tactile LCD comprend un module d'interface de données, un module de mémoire (FSMC_Ctrl (SDRAM_Ctrl), un module d'affichage à cristaux liquides (TFT_Ctrl) et un module de commande tactile (TOUCH_Ctrl), le schéma fonctionnel de la figure 2.

2.png

Processus de travail LCD contrôleur d'écran tactile: microprocesseur (STM32F407) via le bus FSMC pour envoyer des données au FPGA, le module FSMC_Ctrl pour recevoir des données, le module de contrôle de synchronisation SDRAM_Ctrl écriture mémoire SDRAM, le contrôle de synchronisation du module TFT_Ctrl de SDRAM pour lire les données dans affichage en temps réel. Le module TOUCH_Ctrl pilote la puce de contrôle tactile ADS7843 et envoie les coordonnées collectées au module FSMC_Ctrl pour attendre que ARM le lise régulièrement.


1. Module d'interaction de données

Le module d'échange de données est la clé pour réaliser une transmission de données bidirectionnelle, un bus FSMC comprenant un signal de sélection de puce CS et un signal d'écriture WR, un signal d'opération de lecture RD, le bus d'adresse AB 25: 0 (mode multiplexage) signal de commande de multiplexage d'adresses / données NADV (utilisant une ligne d'adresse multiplexée). Parmi ceux-ci, le signal de sélection de puce CS, les opérations de lecture et d'écriture du signal RD du signal WR sont généralement efficaces à faible puissance. Lors de l'écriture du signal de fonctionnement WR pour une faible puissance, ARM envoie l'adresse et les données d'affichage à cristaux liquides au bus DB, l'adresse de verrouillage sur le front montant du signal NADV et les données correspondantes sur le front montant du signal WR qui est affiché sur le LCD après le cache SDRAM. Lorsque le signal d'opération de lecture RD est faible, le FPGA envoie les coordonnées tactiles au bus DB. ARM réalise l'opération tactile en fonction de la valeur de coordonnée du registre d'espace d'adresse de mappage, et le diagramme de séquence de travail du bus FSMC est représenté sur la figure 3.

3.png


2. Module d'affichage à cristaux liquides

Selon le principe d'affichage de l'écran à cristaux liquides, le signal commandé par ce module comprend principalement un signal d'horloge de pixel, un signal synchrone ligne / champ et un signal de validation. Selon l'exigence de synchronisation de l'affichage LCD, le calendrier de contrôle LCD est conçu par FPGA, et le contrôle du signal de ligne, le signal de trame et le signal caché est réalisé.

Parmi ceux-ci, la séquence temporelle de balayage de trame est basée sur HSYNC comme horloge de référence, HSYNC est utilisée comme signal de balayage de ligne, et VSYNC est un signal de synchronisation de trame, et le niveau bas est efficace. Chaque trame est scannée, la zone active de l'extrémité avant du signal VSYNC est un épaulement de suppression de trame (VBPD + 1), il y a un épaulement avant de suppression de trame arrière (VFPD + 1), le signal VSYNC effectif avant qu'il y ait un niveau (VSPW + 1), ledit signal de largeur d'impulsion de synchronisation de trame. Parmi eux, VBPD, VFPD et VSPW sont basés sur l'horloge de référence HSYNC. De même, pour chaque rangée de signaux de balayage, il y a également un épaulement arrière caché (HBPD + 1), un épaulement avant caché (HFPD + 1), une largeur d'impulsion de signal synchrone de rangée (HSPW + 1), et une horloge de pixel VCLK comme une unité. Pour les écrans LCD à résolution différente, la synchronisation de l'affichage est différente de celle de l'épaulement avant, de l'épaulement caché et de la largeur d'impulsion du signal. Le pilote d'affichage ne peut changer les différents écrans LCD qu'en changeant ces paramètres.

Afin de faire le pilote d'affichage d'écran LCD pour une variété de différentes résolutions, dans le langage matériel FPGA Verilog avec pré VCLK, VBPD, VFPD, VSPW, HBPD, HFPD, HSPW paramètres de différents écrans LCD, en utilisant la ligne d'adresse de bus FSMC 2 comme les paramètres de contrôle d'un écran LCD. Dans l'application, nous avons seulement besoin de changer l'adresse du registre de la carte de bits de contrôle pour réaliser la configuration des paramètres, ce qui est approprié pour différents écrans LCD et améliore la portabilité du contrôleur. Le diagramme de séquence temporelle de l'affichage à cristaux liquides est représenté sur la figure 4.

4.png

3. Module de mémoire

Le module de mémoire comprend un module de prétraitement de données, un contrôleur SDRAM et un module de mémoire cache, principalement pour compléter le stockage de données d'entrée et lire des données d'affichage. La structure du module de mémoire représentée sur la figure 5.

5.png

4. Module de prétraitement des données

Le module de prétraitement de données comprend principalement l'intégration et la mise en cache de données. Parce que le débit de transmission de données du bus FSMC est beaucoup plus faible que la fréquence de travail de SDRAM, afin de résoudre le décalage de débit entre eux, les données sont mises en cache avant que les données sont écrites en SDRAM pour éviter la perte de données.

Afin d'assurer la correspondance entre les données d'affichage et l'adresse, empêcher l'erreur d'affichage, l'adresse et les informations de données affichées par épissure, épissage après que les données sont écrites dans un tampon FIFO (premier entré, premier sorti, FIFO), l'opération d'écriture pour SDRAM.


5. Module de cache

Le module de cache comprend deux mémoires à accès aléatoire (RAM) dont la fonction principale est d'obtenir des données d'opération de ping-pong en continu par deux RAM, le principe de fonctionnement ping-pong tel qu'illustré à la figure 6.

6.png

Afin de réaliser l'affichage continu des données de sortie, dans la profondeur de deux appel interne FPGA SDRAM back-end pour 2048, largeur 16 RAM, à travers l'unité de sélection de flux de données d'entrée "et" unité de sélection de flux de données de sortie " , après le cache RAM, le flux de données envoyé en continu au traitement de l'unité de traitement de flux de données.

Les données de chaque trame dans le processus d'affichage, dans le premier signal à deux lignes avant l'arrivée du signal synchrone lors de la pré-lecture des données dans la SDRAM, RAM1 et RAM2 pour écrire des données à l'avance, de sorte que dans un premier vient peut lire avec succès l'affichage des données RAM1 terminé immédiatement dans la pré SDRAM lit les données de la ligne suivante dans RAM1.

Dans les secondes régions d'activation de signal DE, RAM2 est lue et affichée, et le processus est le même que RAM1. À leur tour, RAM1 et RAM2 sont lus et écrits alternativement pour compléter la sortie continue des données.


6. contrôleur sdram

Parce que l'affichage LCD nécessite une sortie de données continue et aucune interruption de données pendant chaque signal d'activation, nous devons donc définir l'opération de lecture de SDRAM comme la plus haute priorité. Dans l'ensemble du contrôle SDRAM, nous devons nous concentrer sur le contrôle de lecture des données.

Le contrôleur SDRAM contrôle principalement les opérations d'initialisation, de rafraîchissement, de lecture et d'écriture de SDRAM, et le contrôle de lecture et d'écriture de SDRAM est le cœur de ce module. C'est la clé pour améliorer le taux de mise à jour des données et réduire le fardeau du traitement des données ARM.

Par conséquent, la conception du contrôleur SDRAM vise principalement à améliorer le taux de mise à jour des données et à réduire les deux aspects de la charge de traitement des données ARM.


Afin d 'améliorer le taux de mise à jour des données, la méthode de lecture et d' écriture en temps partagé est adoptée pour tirer pleinement parti du temps mort fourni par le tampon de données. Un compteur est également mis en place pendant l'opération de lecture de SDRAM. La valeur maximale du compteur est M (M est le pixel de ligne de différents cristaux liquides), de sorte que les données effectives peuvent être écrites RAM afin de lire commodément.

D'une part, le mode de lecture en rafale de lecture est utilisé dans le processus de fonctionnement en SDRAM, chaque jeu de données lu 256 attendant à nouveau la lecture suivante, jusqu'à ce qu'une donnée valide soit lue; d'autre part, selon l'opération de ping-pong mis en place un compteur séparé, la valeur maximale est Y / 2 (Y pour différents pixels LCD), chaque rempli 1 compteur d'opérations de ping-pong plus 1, accumulé au maximum zéro indique qu'un affichage de données est terminé, SDRAM doit attendre jusqu'à l'image suivante pour afficher les données.

Dans les deux attente contrôleur de contrôle d'intervalle pour récupérer le bus de données SDRAM, écriture opération de SDRAM, raccourcir le temps d'attente d'opération d'écriture SDRAM, une opération d'écriture par mode d'écriture burst, chaque rafale 1 écrit 8 données, alléger efficacement le problème de perte de données résultant de FSCM haute vitesse et ne peut pas entrer des données lors de l'enregistrement de la bande passante de SDRAM, améliore le taux de mise à jour des données.

Un temps d'opération de rafraîchissement fixe (N est ajusté en fonction de la résolution des cristaux liquides) dans la première période N de chaque trame, ce qui garantit que toutes les banques en SDRAM peuvent être rafraîchies en 64ms, afin d'éviter les conflits et écrire l'opération.


Afin d'améliorer le taux de mise à jour de l'affichage, réduire la charge de traitement des données de cristaux liquides ARM, sera en conformité avec l'espace mémoire tampon de la Banque est divisé en 4 couches, chaque couche a 2 Mo, SDRAM contrôleur multi SDRAM multi-tampon pour atteindre la conception de l'accélérateur matériel, son principe de fonctionnement comme le montre la figure 7.

7.png

L'accélérateur réalise un contrôle logique personnalisé grâce à des instructions personnalisées et des tables de recherche, et réalise diverses opérations de FPGA sur des données, telles que l'exécution de fonctions d'opérations mathématiques complexes, le transfert de données d'un endroit à un autre.

Dans le processus d'affichage à cristaux liquides, d'une part, SDRAM sera divisé en 4 niveaux, Bank1 en bas, à tour Bank2, Bank3, Bank4, à travers l'opération multi, ne peut pas changer la prémisse sous-jacente de l'affichage, modifier le zone tampon à travers la première adresse d'instruction pour mettre à jour une région sans données ARM pour envoyer des données;

D'autre part, SDRAM est divisé en 4 buffers. En envoyant des instructions personnalisées, nous utilisons une table de consultation pour effectuer des opérations mathématiques sur différentes données de zone tampon, et réaliser un affichage transparent et d'autres fonctions.

Stocker les données avant la trame d'affichage dans Bank1, stocker les données de trame à afficher dans Bank2 et Bank3, afficher la fin des dernières données de trame, afficher les données de trame suivantes directement à travers l'instruction, assurer l'intégrité des données de trame d'affichage et améliorer l'effet visuel de l'écran LCD. Grâce à un fonctionnement multicouche et multi-tampon, une partie du traitement des données est allouée au FPGA pour un traitement parallèle afin de réduire la charge du traitement des données ARM. Comparé au mode de traitement en série d'ARM, il peut améliorer le taux de mise à jour des données.