Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;

Jun 15, 2021

Laat een bericht achter

Met de voortdurende ontwikkeling van weergavetechnologie nemen echte kleuren LCD-schermen geleidelijk een belangrijke positie in in embedded weergavesystemen met hun voordelen van hoge resolutie, hoog contrast en hoge definitie. Op dit moment zijn er twee manieren om LCD-schermbesturingstechnologie te realiseren op basis van een ingebed platform: ARM ingebedde LCD-controller en onafhankelijk besturingsapparaat. Deze twee implementaties hebben echter tekortkomingen. Het gebruik van ingebouwde controllers kan de belasting van de processor verhogen en de framesnelheid van het beeldscherm beperken. De externe bedieningsapparaten zijn niet alleen duur, maar ook specifiek en moeilijk aan te passen aan verschillende typen LCD-schermen.


Op basis van dit probleem is hier een ontwerpschema van een LCD-controller op basis van ARM en FPGA. Aan de ene kant kan dit ontwerpschema de schrijfsnelheid van het videogeheugen verhogen en de belasting van de processor verminderen door het Framebuffer-apparaat onder LINUX OS te laten werken. Enerzijds wordt FPGA gebruikt om het ontwerp van een LCD-controller te realiseren, met een korte ontwikkelingscyclus, een laag stroomverbruik en flexibele draagbaarheid, die kan worden toegepast op verschillende kleine en middelgrote-grote LCD-schermen.


1 Systeemsamenstelling en werkingsprincipe

Het systeem bestaat voornamelijk uit een microcontroller, FPGA (LCD-controller), opslageenheid en perifere interface. Het systeemblokschema wordt getoond in figuur 1.


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


Het werkproces van het systeem: onder invloed van het timingbesturingssignaal dat wordt gegenereerd door het timinggenererende circuit in de FPGA, leest de LCD-controller de gegevens die nodig zijn voor weergave van de microcontroller via de Framebuffer-interface en slaat deze op in de weergavebuffer SRAM. Tegelijkertijd leest het LCD-scherm de weergavegegevens uit het weergavegeheugen SRAM en geeft de gegevensinformatie direct in realtime weer via het conversiecircuit voor gegevensindeling.


2 Ontwerp van systeemhardware

2.1 LCD-controller

De LCD-controller is geïmplementeerd op basis van FPGA. Dit programma maakt gebruik van Altera's Cvclone (hurricane) serie EPlC6Q240. FPGA heeft de hoge-snelheid datatransmissie I/O-interface, kan de hoge-snelheid displaygeheugenleessnelheid realiseren, en de framesnelheid van het LCD-scherm aanzienlijk verbeteren. Tegelijkertijd is FPGA een programmeerbaar logisch apparaat dat complexe logische bewerkingen kan implementeren en complexe besturingstiming kan bieden. Het LCD-scherm gebruikt het LQ035Q3DG01 type TFT-LCD liquid crystal display, de resolutie is 320×240 en het beeldsignaal is in RGB-formaat.


Omdat SRAM een hogere lees- en schrijfsnelheid heeft, gebruikt de display-cache van dit ontwerp 1 stuk IS61LV51216AL SRAM, de capaciteit is 512 KB en de lees- en schrijfsnelheid is ongeveer 10ns. En de grootte van het weergeven van een afbeeldingsframe is 125 KB (320x240x2/l024), de FPGA-lees- en schrijfsnelheid naar het displaygeheugen is ongeveer 200 ns, dus voldoe aan de systeemvereisten. Afbeelding 2 toont het aansluitschema van het LCD-controllercircuit.


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


2.2 ARM9-microcontroller

De hoofdbesturingseenheid van dit systeemontwerp gebruikt ATMEL-bedrijf AT9lRM9200 (afgekort als 9200) als MCU, deze processor is gebaseerd op de ARM920T-kernel, de werkfrequentie is 180 MHz. De prestaties kunnen 200 MI/s bereiken en het systeem gebruikt open source LINUX OS. ARM9, als de bedieningsterminal van het systeem, moet echter veel taken uitvoeren, zoals informatieverzameling, verwerking en externe communicatie, en als de LCD-controller ook gegevens uit het geheugen leest voor weergave, zal dit de processor belasten, waardoor de weergavecache verminderen De snelheid waarmee gegevens worden gelezen, beïnvloedt de werkelijke-tijdweergave van het LCD-scherm. Daarom wordt hier een toepassingsmethode voorgesteld die is gebaseerd op de Framebuffer-interface onder LINUX OS, die de leessnelheid van gegevens uit het displaygeheugen aanzienlijk verhoogt, waardoor de werkelijke-tijdprestaties van het gehele displaysysteem worden verbeterd. Afbeelding 3 toont de AT91RM9200-interfacecircuitverbinding.


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


3 Ontwerp van systeemsoftware

Het softwareontwerp van het systeem is hoofdzakelijk verdeeld in twee delen: LCD-controllerontwerp op basis van FPGA en Framebuffer-stuurprogrammaontwerp onder LINUX OS.


3.1 Ontwerp van LCD-controller:

3.1.1 Samenstelling van LCD-controller

De LCD-controller van dit ontwerpschema bestaat voornamelijk uit modules zoals cache lezen en schrijven, MCU-interface en LCD-timingcontrole. De specifieke samenstelling is weergegeven in figuur 4.


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


3.1.2 Ontwerpprincipe van LCD-controller:

Volgens het weergaveprincipe van het TFT-LCD-LCD-scherm met vloeibare kristallen zijn de belangrijkste besturingssignalen die nodig zijn voor weergave het pixelkloksignaal, het lijn-/veldsynchronisatiesignaal en het activeringssignaal. De resolutie van het weergavescherm van dit schema is 320x240, en het is vereist om de verversingsfrequentie van het LCD-scherm te ontwerpen op 60 Hz, dat wil zeggen dat het veldsynchronisatiesignaal (VSYNC) 60 Hz is. Bestaat uit een lijnsynchronisatiesignaal, dan is de periode van een lijnsynchronisatiesignaal 1/(60x240) s, en dan is het lijnsynchronisatiesignaal (HSYNC) 15 kHz. Op dezelfde manier is het pixelkloksignaal (CK) 5 MHz.


De ingebouwde -in fase-locked loop IP-module (PLL) van de FPGA wordt gebruikt om het FPGA 50 MHz kloksignaal F_CLK door 10 te delen in een 5 MHz pixelkloksignaal. Door de state-machinemethode toe te passen, waarbij gebruik wordt gemaakt van de hardwarebeschrijvingstaal van Verilog om de timingcontrolemodule te ontwerpen, wordt het LCD-scherm voorzien van de controlesignalen VSYNC, HSYNC en ENAB die voldoen aan de timingvereisten. Nadat het ontwerp is voltooid, wordt de timingsimulatie voltooid onder de QuatuslI-omgeving en voldoen de verkregen simulatieresultaten aan de timingvereisten. Het simulatiediagram wordt getoond in figuur 5.


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


SRAM is een videogeheugenmodule. Uit figuur 2 blijkt dat de gegevensoverdracht tussen de LCD-controller en de microcontroller wordt ingelezen onder de klokbesturing van ARM, terwijl het LCD-scherm wordt uitgelezen uit SRAM onder de besturing van het pixelkloksignaal CK. Gegevens verkrijgen. Deze oplossing is gericht op het probleem van gegevensoverdracht tussen verschillende klokdomeinen en gebruikt een FPGA-ontwerp om asynchrone FIFO te implementeren.


3.2 Framebuffer-schijfontwerp

Framebuffer is een stuurprogramma-interface in de Linux-kernel, die weergaveapparaten als framebuffers toewijst. Het platform maakt gebruik van Linux 2. 6.25-kernel. In de Linux 2. 6-kernel wordt meestal een hiërarchisch raamwerk voor het ontwerpen van stuurprogramma's gebruikt. Hiërarchisch en geclassificeerd beheer van apparaten, de onderste laag van de driver is de busdriver en de bovenste laag is de specifieke device driver. In de Framebuffer-driver is het softwareontwerpproces als volgt: Registreer eerst het bustype en vraag systeembusbronnen aan voor het specifieke apparaat en de hardwareverbinding; ten tweede, registreer het specifieke apparaatstuurprogramma in de buslinklijst en de Linux-kernel volgens het apparaatstuurprogramma. De meegeleverde detectiefunctie detecteert het type busapparaat; ten slotte wordt de registratie van het specifieke apparaattype gerealiseerd in de driverdetectiefunctie. Het volgende is het specifieke implementatieproces.


1) Brontoepassing In het systeem is de 9200 verbonden met de FPGA FIFO-interface via de BANK7 van de externe businterface, en de FIFO-gegevens worden geschreven in de 16-bits statische busmodus. Volgens het ontwerpraamwerk van de stuurprogramma's moet de eerste stap van het ontwerp van de stuurprogramma's worden aangevraagd voor busbronnen via de functie voor systeemoproepplatform_apparaat_register. De code is als volgt:


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


2) Het stuurprogramma wordt geregistreerd in het specifieke apparaatstuurprogramma door de module_init macro en module_exit te gebruiken om de laad- en losmethoden van de stuurprogrammamodule en het platform te definiëren{{3} }stuurprogramma_registerfunctie wordt gebruikt in de moduleregistratiefunctie om het platform te registreren_stuurprogrammastructuur van het specifieke apparaat in de systeembuslinklijst, platform_stuurprogramma Zorg voor de sonde en verwijder bedieningsmethoden van specifieke apparaten voor de bus. De schematische code is als volgt:


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


Controller-ontwerpschema geschikt voor LCD-scherm met vloeibare kristallen;


3) Framebufferapparaatregistratie In Linux wordt de framebufferapparaatinformatie beschreven via de fb_info-structuur. In fb_info zijn de belangrijkste structuren fb_var_scree-ninfo, fb_var_screeninfo en fb _ops. Hiervan registreert fb_var_screeninfo de parameters van de beeldschermcontroller die door de gebruiker kunnen worden gewijzigd, inclusief de schermresolutie; fb_fix_screeninfo registreert de parameters van de beeldschermcontroller die niet door de gebruiker kunnen worden gewijzigd, zoals het fysieke adres van de schermbuffer, enz.; fb_ops registreert de implementatiemethode van specifieke IO-bewerkingen van het weergaveapparaat. Het stuurprogramma registreert de informatie van het weergaveapparaat die is vastgelegd door fb_info in de framebuffer-apparaatgekoppelde lijst via de register_-framebufferfunctie.


In het Linux-bestandssysteem is het hoofdapparaatnummer van het framebufferapparaat 29, en het secundaire apparaatnummer is het framebuffervolgnummer. Nadat het Framebuffer-apparaat is geregistreerd, wordt het bestandsknooppunt Framebuffer-apparaat gemaakt in de systeemdev-directory via de mknod-instructie en kan het applicatielaagprogramma de toegang en werking van het Framebuffer-apparaat realiseren via het Framebuffer-apparaatbestand.


4. Conclusie

De lcd-controller van dit ontwerp voldoet aan de vereisten van real-time en weergaveframesnelheid, met een weergave van ten minste 25 frames per seconde. LCD-controllertechnologie op basis van FPGA-ontwerp heeft de voordelen van brede toepassing, sterke draagbaarheid, korte ontwikkelingscyclus en lage kosten, en kan worden toegepast op vele systemen of gelegenheden waarvoor LCD-liquid crystal display vereist is.


Aanvraag sturen