摘要 : 根據(jù) L ED 顯示模塊的結(jié)構(gòu)特點(diǎn) , 結(jié)合 CPLD 技術(shù)實(shí)現(xiàn) L ED 屏的動態(tài)掃描顯示 , 設(shè)計(jì)了基于 ARM 和 FPGA 的 L ED 顯示屏控 制系統(tǒng) ; 該系統(tǒng)以 ARM 芯片 S3C2440 為控制核心 , 在可編程邏輯器件 EP1C6 輔助下 , 完成了數(shù)據(jù)存儲與更新、顯示畫面的刷新、動畫
處理、循環(huán)顯示 ; 并通過以太網(wǎng)實(shí)現(xiàn)與上位機(jī)的通信 ; 該系統(tǒng)支持 256 灰度級全彩 L ED 屏的文字、圖片和動畫的顯示 , 同時(shí)可以存儲豐
富的顯示內(nèi)容 , 能進(jìn)行遠(yuǎn)程傳輸數(shù)據(jù)。
關(guān)鍵詞 : L ED 顯示 ; 嵌入式 ; 可編程邏輯器件 ; 以太網(wǎng)
0 引言
近年來 , 隨著平板顯示技術(shù)不斷進(jìn)步 , 大屏幕 L ED 顯示
屏己廣泛用于體育場館、機(jī)場、車站等場所 , 用于顯示文字、
圖形、動畫及動態(tài)視頻影像等多媒體信息[1 ] 。為滿足顯示區(qū)域
較大、顯示內(nèi)容切換頻繁等相對較復(fù)雜的應(yīng)用場合 , 目前以 FPGA 為核心的 L ED 屏控制系統(tǒng)[2 ]和以 32 位微處理器為核心
的 L ED 顯示屏控制系統(tǒng)[3 ]已經(jīng)應(yīng)用于大屏 L ED 控制 , 但是以 FPGA 為核心的 L ED 顯示屏控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)起來比較復(fù)雜 , 并且需要以高性能的 FPGA 芯片作為基礎(chǔ)。而以 32 位微處理
器為核心的 L ED 顯示屏控制系統(tǒng)不夠靈活 , 在改變 L ED 屏幕
顯示尺寸時(shí) , 需要大幅修改系統(tǒng)設(shè)計(jì)。
本文提出了一種新型的嵌入式 L ED 彩色顯示屏控制器的
設(shè)計(jì)方案 , 該方案采用 ARM9 芯片為主控制單元 , FPGA 芯
片為掃描控制單元 , 采用這個(gè)方案 , 可以有效簡化顯示屏的電
路結(jié)構(gòu) , 提高整個(gè)控制系統(tǒng)的靈活性和可靠性。
1 系統(tǒng)的組成和工作原理
該系統(tǒng)采用基于 ARM 核的新一代 32 位嵌入式 RISC 微處 理器和 SDRAM 組成控制中心 , 由 FPGA 和雙體 RAM 組成掃 描控制模塊 , 以 FLASH 作為存儲器模塊 , 采用以太網(wǎng)傳輸數(shù)據(jù) , 組成 L ED 屏的控制系統(tǒng)。系統(tǒng)框圖如圖 1 所示。圖片燒 寫程序大致過程為 : 主機(jī)通過 TFTP 協(xié)議將圖片傳輸給系統(tǒng) 以太網(wǎng)接口模塊 , 以太網(wǎng)接口模塊解析協(xié)議 , 接收圖片數(shù)據(jù) , 然后將數(shù)據(jù)傳輸給 S3C2440 , S3C2440 將接收到的數(shù)據(jù)寫入存
儲模塊 NAND FLASH。在顯示時(shí) , S3C2440 讀取 FLASH 中
的數(shù)據(jù) , 通過 SPI 接口將數(shù)據(jù)傳輸給掃描控制模塊 , 經(jīng)掃描控
制模塊處理后傳輸?shù)?span> L ED 屏幕上顯示。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 ARM 微處理器的選型
S3C2440 是基于 ARM920 T 核的一款處理器。它的特點(diǎn)具
體如下 :
( 1 ) ARM920 T 核
由 ARM9 TDMI , 存
儲 管 理 單 元 (MMU) 和高速緩存三部分組成[4
] 。其中 MMU 可以管理虛
擬內(nèi)存 , 高速緩存由獨(dú)立的 16 KB 地址和 16 KB 數(shù)據(jù)高速Cache 組成。
(2) 片上有一個(gè) LCD 控制器 , 3 個(gè)通道的 UART、2 通道
的 SPI 和 4 通道的 DMA。
(3) 支持 NAND FLASH 系統(tǒng)引導(dǎo) , 系統(tǒng)管理器 (片選邏
輯和 SDRAM 控制器) 。
(4) 處理器工作頻率最高可以達(dá)到 400 M Hz。
綜合上述特點(diǎn) ,
S3C2440 處理器的工作頻率極大地提高系
統(tǒng)的運(yùn)行速度 , 這個(gè)頻率能夠使處理器輕松的運(yùn)行于 Win2 dows CE , Linux 等操作系統(tǒng)以及較為復(fù)雜的信息處理 , 可以
大大減少軟件開發(fā)時(shí)間 ; S3C2440 強(qiáng)大的內(nèi)部中斷 , 便于 TCP/ IP 的輪詢調(diào)用 ; S3C2440 有 117 個(gè)通用可編程多功能的 I/ O 端口可方便與以太網(wǎng)控制器 RTL8019AS 連接 ; S3C2440 有著豐富的外設(shè)資源 , 可以大大簡化外圍電路中的擴(kuò)展部分 , 降低了系統(tǒng)的復(fù)雜度 , 所以選定 S3C2440 為該系統(tǒng)的 CPU。
2.2 SDRAM 接口電路的設(shè)計(jì)
SDRAM (Synchronous DRAM) 即同步 DRAM。SDRAM 在系統(tǒng)中主要用作程序的運(yùn)行空間 , 當(dāng)系統(tǒng)啟動時(shí) , MCU 首
先從復(fù)位地址 0x0 處讀取啟動代碼 , 在完成系統(tǒng)的初始化后 , 程序代碼調(diào)入 SDRAM 中運(yùn)行 , 以提高系統(tǒng)的運(yùn)行速度。同
時(shí) , 系統(tǒng)及用戶堆棧、運(yùn)行數(shù)據(jù)也都放在 SDRAM 中。
本系統(tǒng)中 SDRAM 選用 SAMSUN G公司的 K4S561632D , 它是 4Mxl6bitx4bank 的同步 DRAM , 容量為 32MB [5 ] 。用 2 片 K4S561632D 并聯(lián)構(gòu)建 32 位 SDRAM 存儲器系統(tǒng) , 其中一
片為高 16 位 , 另一片為低 16 位 , 使數(shù)據(jù)總線寬度達(dá)到 32bit , 總?cè)萘窟_(dá)到 64MB , 將其地址空間映射在 S3C2440 的 bank6 , 即將 S3C2440 的 bank6 片選信號接至兩片 K4S561632D 的 CS 端。S3C2440 與其中一片 SDRAM 的連接如圖 2 所示。
2.3 以太網(wǎng)接口電路設(shè)計(jì)
為解決數(shù)據(jù)的遠(yuǎn)程傳輸問題 , 設(shè)計(jì)了以太網(wǎng)接口。以太網(wǎng)
電路模塊采用 Real Tek 公司生產(chǎn)的、帶有即插即用功能的全雙
工以太網(wǎng)控制器 RTL8019AS , 對 S3C2440 進(jìn)行以太網(wǎng)擴(kuò)展 , 其主要特征包括 : 支持 IEEE802. 3 ; 全雙工收發(fā)同時(shí)可達(dá) 10Mb/ s; 內(nèi)置 16 KB 的用于收發(fā)緩沖的 SRAM ; 支持 8/ 16 位
數(shù)據(jù)總線、8 個(gè)中斷申請線及 16 個(gè) I/ O 基地址選擇 ; 支持 10Base5、10Base2、10BaseT 并能自動的檢測所連接的介質(zhì)。 RTL8019AS 與 S3C2440 選擇跳線模式 , 不使用 EEPROM , 也
不使用 ISA 總線 , 各引腳接線方式為 J P 接高電平 , BS [ 4. . 0 ] 接地 , 只使用 BROM ; IOS [ 2. . 0 ] 接地 , 內(nèi)部寄存器基地址從 300
H 開始 ; 使用 IRQ2/ 9 做中斷請求引腳 ; AUI 接低
電平 , 接口采用 BNC 方式 , 使用雙絞線或同軸電纜 ; PL1 , PL0 接低電平 , 自動檢測以太網(wǎng)接口類型 ; TPIN 和 TPOU T 信號經(jīng)耦合器 FB202 后 , 通過 RJ45 連接到外部以太網(wǎng)。
2.4 存儲模塊的設(shè)計(jì)
屏控制系統(tǒng)需要存儲二進(jìn)制可執(zhí)行代碼 , 還需要存儲大量
文字和圖片等數(shù)據(jù)。它要求在系統(tǒng)掉電之后數(shù)據(jù)不丟失 , 而且
需要較大的存儲容量 , 因此系統(tǒng)選用 FLASH 存儲器。考慮到
大容量的 NOR FLASH 成本較高 , 而 NAND FLASH 具有良
好的性價(jià)比和系統(tǒng)接口 , 且 S3C2440 支持 NAND ROM 啟動
方式 , 所以本系統(tǒng)存儲模塊選用了三星公司的大容量、高可靠 NAND FLASH 存儲器 K9F1208。該器件存儲容量為 64MB , 除此之外還有 2048 KB 的空閑存儲區(qū)[6 ] 。其 I/ O 口為數(shù)據(jù)線和
地址線的復(fù)用端口。S3C2440 與 NAND FLASH 的接口電路如
圖 3 所示。
2.5 掃描控制模塊的設(shè)計(jì)
掃描控制模塊是 L ED 顯示控制系統(tǒng)中的重要組成部分 , 由
于 L ED 屏顯示是連續(xù)高速進(jìn)行的 , 在實(shí)時(shí)地完成圖像的高速掃
描的同時(shí)要接收新的數(shù)據(jù) , 以便更新屏幕 , 因此要有高速數(shù)據(jù)
緩存處理電路 , 以防止在掃描過程中丟失數(shù)據(jù)。該模塊由一片 FPGA 和雙體 RAM 構(gòu)成。實(shí)現(xiàn)對 S3C2440 輸出的 RGB 數(shù)據(jù)進(jìn)
行緩沖 , 然后在同步信號的控制下 , 對雙體 RAM 進(jìn)行乒乓讀
寫操作。所謂乒乓操作就是當(dāng) FPGA 讀取 X 體 RAM 中的數(shù)據(jù)
時(shí)[7 ] , 同時(shí)往 Y 體 RAM 中寫入數(shù)據(jù) , 反過來 FPGA 寫 X 體 RAM 時(shí)進(jìn)行 Y體 RAM 的讀操作 , 這樣提高了 FPGA 處理數(shù)據(jù)
的速度 , 實(shí)現(xiàn)了圖像的高速掃描和新數(shù)據(jù)的同時(shí)接收。
速度 , 實(shí)現(xiàn)了圖像的高速掃描和新數(shù)據(jù)的同時(shí)接收。 其中 , 模塊中的 FPGA 選用的是 Cyclone
EP1C6 [8 ] , 它是 Altera 推出的一款高性價(jià)比 FPGA , 其密度為 5980 個(gè)邏輯單元 (L E) , 包含 20 個(gè) 128 ×36 位的 RAM 塊 (M4 K 模塊) , 總的 RAM 空間達(dá)到 92160 位。內(nèi)嵌 2 個(gè)鎖相環(huán) ( PLL) 電路和一個(gè)
用于連接 SDRAM 的特定雙數(shù)據(jù)率接口 , 工作頻率高達(dá) 200 MHz。用戶可用 I/ 0 管腳為 185 個(gè) , 很好地滿足了系統(tǒng)需要。
系統(tǒng) L ED 的顯示分辨率 128 3
64 , 每幀圖像需要容量為 192k , 系統(tǒng)
選 擇 IDT 公 司 的 型 號 為 IDT71V3577 的 高 速 SRAM , 它的容量是 128
Kx32bit , 所以需要 2 片 IDT71V3577 方可存儲一幀圖像。因此系統(tǒng)采用 4 片 IDT71V3577 組成雙體 RAM 存放顯示數(shù)據(jù)。
掃描控制邏輯電路設(shè)計(jì)結(jié)構(gòu)如圖 4 所示。地址控制器產(chǎn)生
寫顯示存儲器的寫入地址和存儲器的讀出地址 , 由讀寫控制器
來決定是把寫數(shù)據(jù)及寫地址同存儲器連接還是把讀數(shù)據(jù)及讀地
址同存儲器連接。為滿足該屏圖像顯示的需要 , 顯示控制電路設(shè)計(jì)成灰度顯示模式。經(jīng)過灰度譯碼將 4 位并行數(shù)據(jù)轉(zhuǎn)換為 16 位 L ED 顯示屏所需的有灰度信息的串行數(shù)據(jù)。
由于 X , Y兩組存儲器進(jìn)行乒乓操作 , 在接收一幀并行數(shù)
據(jù)的時(shí)間內(nèi)把譯碼后的 16 位串行數(shù)據(jù)流送往 L ED 屏 , 輸入的
有效數(shù)據(jù)流速率為 2 Mbit/ s , 讀出數(shù)據(jù)流的速率就達(dá)到 32 Mbit/ s。若將 32Mbit/ s 的串行數(shù)據(jù)流直接送給顯示屏 , 則速
率太高而使得無法處理。此系統(tǒng)的顯示屏為 128 行 ×64 列 , 系統(tǒng)采用 8 行掃描方式 , 整個(gè)掃描區(qū)域由 16 個(gè) 8 行 ×64 列的
掃描單元組成。16 個(gè)掃描單元同時(shí)進(jìn)行掃描 , 則可以降低數(shù)
據(jù)流的速率。數(shù)據(jù)按時(shí)序?qū)懭氪鎯ζ?span> , 讀出后經(jīng)灰度譯碼變?yōu)?
紅、綠、藍(lán)三條 32 Mbit/ s 的串行數(shù)據(jù)流 , 供掃描顯示用。處
理后的串行數(shù)據(jù)流的速率為 32/ 16 = 2 (Mbit/ s) , 可供顯示電 路使用。當(dāng)時(shí)序?qū)懭氪鎯ζ骱?span>[9 ] , 不能按原地址順序讀出。要 控制讀出時(shí)序 , 讓地址跳動地讀出數(shù)據(jù) , 即讀出順序?yàn)?span> : 第 1 掃描單元中的第 1 個(gè)字節(jié) , 第 2 個(gè)單元的第 1 個(gè)字節(jié) , …, 第 16 個(gè)單元的第 1 個(gè)字節(jié) ; 再讀出 1~16 單元的第 2 個(gè)字節(jié) ; 然后讀出 1~16 單元的第 3 個(gè)字節(jié) , 以此類推 , 直至讀完為 止。這些操作都由讀寫控制器和地址控制器完成。同步控制器 同時(shí)產(chǎn)生時(shí)鐘信號、鎖存信號及行掃描信號。
3 系統(tǒng)軟件設(shè)計(jì)
整個(gè)系統(tǒng)的軟件包括兩部分 : 上位機(jī)應(yīng)用軟件和嵌入式控
制單元軟件。上位機(jī)軟件編輯在 L ED 顯示屏上顯示的數(shù)據(jù)信
息 , 并實(shí)現(xiàn)與下位機(jī)的通信 ; 嵌入式控制單元軟件實(shí)現(xiàn)了數(shù)據(jù)
接收和存儲、數(shù)據(jù)輸出和圖像顯示方式變換 , 從而實(shí)現(xiàn)了對 L ED 屏的控制。
3.1 上位機(jī)應(yīng)用軟件
上位機(jī)應(yīng)用軟件用 Visual C + + 編寫 , 主要實(shí)現(xiàn)顯示信息
的編輯與通訊的功能。該軟件運(yùn)行于 Windows 98/ N T 環(huán)境下 , 有友好的圖形用戶界面 , 方便用戶使用。完成的功能有 :
(1) 對顯示信息進(jìn)行編輯、修改功能 , 也可以直接調(diào)用 WINDOWS 中的 256 色畫圖文件 ( 3 . bmp) 。
(2) 在上位機(jī)上對顯示的內(nèi)容進(jìn)行預(yù)覽 , 以保證有較好的
顯示效果。
(3) 依照上位機(jī)與以太網(wǎng)接口模塊的協(xié)議 , 將信息傳輸給
系統(tǒng)以太網(wǎng)接口模塊 , 從而實(shí)現(xiàn)顯示數(shù)據(jù)的更新。
3.2 嵌入式控制單元的軟件
嵌入式控制單元的軟件實(shí)現(xiàn)以下三大功能 : 數(shù)據(jù)接收和存
儲、數(shù)據(jù)輸出和圖像顯示方式變換。
(1) 依照顯示屏與上位機(jī)之間的通訊協(xié)議 , 與上位機(jī)進(jìn)行
通訊 , 接收顯示數(shù)據(jù) , 存入 Flash 存儲器。
(2) 將待顯示的數(shù)據(jù)從 Flash 存儲器中取出 , 對數(shù)據(jù)進(jìn)行
處理 , 實(shí)現(xiàn)上移、下移、左移、右移等豐富多彩的圖像顯示
效果。
(3) 通過 SPI 接口將數(shù)據(jù)傳輸給掃描控制模塊 , FPGA 通
過串并轉(zhuǎn)換等將數(shù)據(jù)轉(zhuǎn)換成適合 L ED 屏驅(qū)動電路格式的數(shù)據(jù) , 然后傳到 L ED 屏幕上顯示出來。
4 總結(jié)
與傳統(tǒng)的基于普通單片機(jī)的 L ED 屏控制系統(tǒng)相比較 , 該
系統(tǒng)在不顯著增加系統(tǒng)成本的情況下 , 可支持 256 灰度級的全
彩圖文信息的顯示 , 可以播放全彩動畫 ; 可存儲較大容量的數(shù)
據(jù) (64MB) ; 通過以太網(wǎng)快速傳輸數(shù)據(jù) , 還可以組建局域網(wǎng) , 實(shí)現(xiàn)遠(yuǎn)程控制和管理。該系統(tǒng)為顯示區(qū)域較大、顯示內(nèi)容切換
頻繁的大屏幕 L ED 顯示控制系統(tǒng)提供了良好的解決方案。