A kijelzőtechnológia folyamatos fejlődésével a valódi színes LCD-kijelzők fokozatosan fontos helyet foglalnak el a beágyazott kijelzőrendszerekben a nagy felbontás, a nagy kontraszt és a nagy felbontás előnyeivel. Jelenleg két fő módja van a beágyazott platformon alapuló LCD kijelző vezérlési technológia megvalósításának: ARM beágyazott LCD vezérlő és független vezérlőeszköz. Ennek a két megvalósításnak azonban vannak hiányosságai. A beágyazott vezérlők használata növelheti a processzor terheit, és korlátozhatja a képernyő képkockasebességét. A külső vezérlőberendezések nem csak költségesek, hanem specifikusak és nehezen adaptálhatók a különböző típusú LCD képernyőkre.
Ezen a problémán alapulva itt van egy ARM és FPGA alapú LCD vezérlő tervezési sémája. Ez a tervezési séma egyrészt növelheti a videomemória írási sebességét és csökkentheti a processzor terheit, ha a Framebuffer eszközt LINUX OS alatt működteti. Egyrészt az FPGA-t a rövid fejlesztési ciklussal, alacsony energiafogyasztással és rugalmas hordozhatósággal rendelkező LCD-vezérlők tervezésének megvalósítására használják, amely különféle kis és közepes méretű{0}}LCD-képernyőkre alkalmazható.
1 A rendszer összetétele és működési elve
A rendszer főként mikrokontrollerből, FPGA-ból (LCD-vezérlőből), tárolóegységből és periféria interfészből áll. A rendszer blokkvázlata az 1. ábrán látható.
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
A rendszer működési folyamata: az FPGA-n belüli időzítést generáló áramkör által generált időzítési vezérlőjel hatására az LCD vezérlő a Framebuffer interfészen keresztül kiolvassa a mikrokontrollerből a megjelenítéshez szükséges adatokat és eltárolja azokat a SRAM kijelzőpufferben. Ezzel egyidejűleg az LCD-kijelző beolvassa a kijelzőn lévő adatokat az SRAM kijelzőmemóriából, és közvetlenül, valós időben jeleníti meg az adatinformációkat az adatformátum-konverziós áramkörön keresztül.
2 Rendszer hardver tervezés
2.1 LCD vezérlő
Az LCD vezérlő FPGA-n alapul. Ez a program az Altera Cvclone (hurrikán) EPlC6Q240 sorozatát használja. Az FPGA rendelkezik a nagy sebességű adatátviteli Ugyanakkor az FPGA egy programozható logikai eszköz, amely összetett logikai műveleteket valósít meg, és összetett vezérlési időzítést biztosít. Az LCD-kijelző az LQ035Q3DG01 típusú TFT{7}}LCD folyadékkristályos kijelzőt használja, a felbontás 320×240, a képjel RGB formátumú.
Mivel az SRAM nagyobb olvasási és írási sebességgel rendelkezik, az ilyen kialakítású kijelző-gyorsítótár 1 darab IS61LV51216AL SRAM-ot fogad be, kapacitása 512 KB, az olvasási és írási sebesség pedig körülbelül 10 ns. Egy képkocka megjelenítési mérete pedig 125 KB (320x240x2/l024), az FPGA olvasási és írási sebessége a kijelző memóriájába körülbelül 200 ns, tehát megfelel a rendszerkövetelménynek. A 2. ábra az LCD vezérlő kapcsolási rajzát mutatja.
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
2.2 ARM9 mikrokontroller
Ennek a rendszernek a fő vezérlőegysége az ATMEL cég AT9lRM9200 (rövidítve 9200) MCU-t használ, ez a processzor az ARM920T kernelen alapul, a működési frekvencia 180 MHz. A teljesítmény elérheti a 200 MI/s-ot, és a rendszer nyílt forráskódú LINUX operációs rendszert használ. Az ARM9-nek, mint a rendszer vezérlőtermináljának azonban számos feladatot kell elvégeznie, például információgyűjtést, feldolgozást és külső kommunikációt, és ha az LCD vezérlő a memóriából is olvas adatokat a megjelenítéshez, az a processzort terheli, ezáltal a kijelző gyorsítótárának csökkentése Az adatok olvasási sebessége befolyásolja az LCD valós idejű -kijelzését. Ezért itt egy Framebuffer interfészen alapuló alkalmazási módszert javasolunk LINUX OS alatt, amely nagymértékben megnöveli az adatok kiolvasási sebességét a kijelző memóriájából, ezáltal javítva a teljes megjelenítési rendszer valós idejű teljesítményét. A 3. ábra az AT91RM9200 interfész áramkör csatlakozását mutatja.
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
3 Rendszerszoftver tervezés
A rendszer szoftveres kialakítása alapvetően két részre oszlik: FPGA alapú LCD vezérlő tervezésre és LINUX OS alatti Framebuffer driver tervezésre.
3.1 LCD vezérlő kialakítása
3.1.1 Az LCD vezérlő felépítése
Ennek a tervezési sémának az LCD vezérlője főként olyan modulokból áll, mint a gyorsítótár olvasása és írása, MCU interfész és LCD időzítés. A konkrét összetétel a 4. ábrán látható.
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
3.1.2 LCD vezérlő tervezési elve
A TFT{0}}LCD folyadékkristályos képernyő megjelenítési elve szerint a megjelenítéshez szükséges fő vezérlőjelek közé tartozik a pixel órajel, a vonal/mező szinkronjel és az engedélyezési jel. Ennek a sémának a képernyőjének felbontása 320x240, és az LCD kijelző frissítési frekvenciáját 60 Hz-re kell tervezni, azaz a mezőszinkronizációs jel (VSYNC) 60 Hz. Vonalszinkronizáló jelből áll, ekkor egy vonalszinkronizáló jel periódusa 1/(60x240) s, majd a vonalszinkronizáló jel (HSYNC) 15 kHz. Ugyanígy a pixel órajel (CK) 5 MHz.
Az FPGA beépített -fázis-zárolt hurkú IP-modulja (PLL) az FPGA 50 MHz-es F_CLK órajelét 10-zel osztja 5 MHz-es pixeles órajelre. Állapotgép módszert alkalmazva, Verilog hardverleíró nyelvet használva az időzítésvezérlő modul megtervezéséhez, az LCD-t az időzítési követelményeknek megfelelő VSYNC, HSYNC és ENAB vezérlőjelekkel látja el. A tervezés befejezése után az időzítési szimuláció a QuatuslI környezetben befejeződik, és a kapott szimulációs eredmények megfelelnek az időzítési követelményeknek. A szimulációs diagram az 5. ábrán látható.
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
Az SRAM egy videomemória modul. A 2. ábrán látható, hogy az LCD vezérlő és a mikrokontroller közötti adatátvitelt az ARM óravezérlése mellett, míg az LCD képernyőt az SRAM-ból a CK pixel órajel vezérlése mellett olvassuk be. Adatok beszerzése. A különböző óratartományok közötti adatátvitel problémáját célzó megoldás FPGA-tervezést alkalmaz az aszinkron FIFO megvalósításához.
3.2 Framebuffer meghajtó kialakítása
A Framebuffer egy illesztőprogram-interfész a Linux kernelben, amely a megjelenítőeszközöket keretpufferekként képezi le. A platform Linux 2. 6.25 kernelt használ. A Linux 2. 6 rendszermagban általában hierarchikus illesztőprogram-tervezési keretrendszert használnak. Az eszközök hierarchikus és minősített kezelése, a meghajtó alsó rétege a buszmeghajtó, a felső réteg pedig az adott eszközmeghajtó. A Framebuffer illesztőprogramban a szoftver tervezési folyamata a következő: Először regisztrálja a busz típusát, és kérjen rendszerbusz-erőforrásokat az adott eszközhöz és hardverkapcsolathoz; másodszor, regisztrálja az adott eszközillesztőt a buszkapcsolati listába, és a Linux kernelt az eszközmeghajtónak megfelelően. A biztosított észlelési funkció érzékeli a busz eszköz típusát; végül az adott eszköztípus regisztrációja az illesztőprogram-felismerés funkcióban valósul meg. A következő a konkrét megvalósítási folyamat.
1) Erőforrás alkalmazás A rendszerben a 9200 a külső busz interfész BANK7-jén keresztül csatlakozik az FPGA FIFO interfészhez, és a FIFO adatok 16 bites statikus busz módban íródnak. Az illesztőprogram-tervezési keretrendszer szerint az illesztőprogram-tervezés első lépésében a rendszerhívási platform_device_register funkcióján keresztül busz-erőforrásokat kell igényelni. A kód a következő:
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
2) Az illesztőprogram regisztrálva van az adott eszközillesztőben, a modul_init macro és a module{2}}exit használatával meghatározva az illesztőprogram-modul be- és kirakodási módszereit, valamint a platformot{{3} A }driver_register funkció a modul regisztrációs funkciójában az adott eszköz platformjának_illesztőprogram-struktúrájának regisztrálására szolgál a rendszerbusz-hivatkozások listájában, platform_illesztőprogram Adja meg a szondát és távolítsa el specifikus eszközök működési módjai a buszhoz. A sematikus kód a következő:
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
LCD folyadékkristályos kijelzőhöz alkalmas vezérlő tervezési séma
3) Framebuffer eszköz regisztráció Linux esetén a framebuffer eszköz információit az fb_információs szerkezet írja le. Az fb_infoban a fontosabb szerkezetek az fb_var_scree-ninfo, fb_var_screeninfo és fb _ops. Ezek közül az fb_var_screeninfo rögzíti a kijelzővezérlő azon paramétereit, amelyeket a felhasználó módosíthat, beleértve a képernyőfelbontást is; Az fb_fix_screeninfo rögzíti a kijelzővezérlő azon paramétereit, amelyeket a felhasználó nem módosíthat, például a képernyőpuffer fizikai címét stb.; Az fb_ops rögzíti az adott megjelenítőeszköz IO-műveleteinek megvalósítási módját. Az illesztőprogram az fb_info által rögzített megjelenítőeszköz-információkat a register_-framebuffer funkción keresztül regisztrálja a Framebuffer eszközök hivatkozási listájába.
A Linux fájlrendszerben a Framebuffer eszköz fő eszközszáma 29, a mellékeszköz száma pedig a keretpuffer sorszáma. A Framebuffer eszköz regisztrálása után az mknod utasítással létrejön a Framebuffer eszközfájl csomópont a rendszer dev könyvtárában, és az alkalmazási réteg programja a Framebuffer eszközfájlon keresztül tudja megvalósítani a Framebuffer eszköz elérését és működését.
4 Következtetés
Az ilyen kialakítású LCD-vezérlő megfelel a valós-idő és a képernyő képkockasebességének követelményeinek, és másodpercenként legalább 25 képkockát jelenít meg. Az FPGA tervezésen alapuló LCD vezérlőtechnológia előnye a széles körű alkalmazás, az erős hordozhatóság, a rövid fejlesztési ciklus és az alacsony költség, és számos olyan rendszerben vagy alkalomban alkalmazható, amelyek LCD folyadékkristályos kijelzőt igényelnek.

