基于FPGA的LCD顯示遠(yuǎn)程更新
·幀存控制模塊
本文引用地址:http://cafeforensic.com/article/265115.htm幀存控制模塊實(shí)現(xiàn)2個(gè)幀存SRAM的“乒乓”切換,當(dāng)DSP向其中一個(gè)幀存寫顯示信息時(shí),由FPGA構(gòu)成的幀存控制模塊將另一個(gè)幀存的控制權(quán)交給LCD顯示控制器圖像處理模塊,反之亦然。
·軟件設(shè)計(jì)
TCP/IP是一種網(wǎng)絡(luò)通信協(xié)議,它規(guī)范了網(wǎng)絡(luò)上所有通信設(shè)備,尤其是一個(gè)主機(jī)與另一個(gè)主機(jī)之間的數(shù)據(jù)往來格式及傳送方式。TCP/IP是Internet的基礎(chǔ)協(xié)議,也是一種計(jì)算機(jī)數(shù)據(jù)打包和尋址的標(biāo)準(zhǔn)方法。在Intemet中幾乎可以無差錯(cuò)地傳送數(shù)據(jù)。
LWIP是瑞士計(jì)算機(jī)科學(xué)院的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。LWIP既可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨(dú)立運(yùn)行。LWIP TCP/IP實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對(duì)RAM的占用,一般它只需要幾十kB的RAM和50 kB左右的ROM就可以運(yùn)行,使得LWIP協(xié)議棧適合在嵌入式系統(tǒng)中使用。
LWIP的特性如下:
(1)支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā);
(2)支持ICMP協(xié)議;
(3)包括實(shí)驗(yàn)性擴(kuò)展的的UDP(用戶數(shù)據(jù)報(bào)協(xié)議);
(4)包括阻塞控制,I T估算,以及快速恢復(fù)和轉(zhuǎn)發(fā)的TCP(傳輸控制協(xié)議);
(5)提供專門的內(nèi)部回調(diào)接口(Raw API)用于提高應(yīng)用程序性能;
(6)可選擇的Berkeley接121API(多線程情況下);
(7)在最新的版本中支持PPP;
(8)新版本中增加了的IP fragment的支持;
(9)支持DHCP協(xié)議,動(dòng)態(tài)分配IP地址。
在Xilinx的Spartan 6 FPGA上實(shí)現(xiàn)的LWIP TCP/IP采用的是LWIP的版本V1.1.1,提出和采用以下幾種移植和運(yùn)行方式:
(1 )TCP/IP協(xié)議的每一層是一個(gè)單獨(dú)進(jìn)程,鏈路層是一個(gè)進(jìn)程,IP層是一個(gè)進(jìn)程,TCP層是一個(gè)進(jìn)程。這樣的優(yōu)勢(shì)是網(wǎng)絡(luò)協(xié)議的每一層都非常清晰,代碼的調(diào)試和理解都非常容易;最大的缺點(diǎn)是數(shù)據(jù)跨層傳遞時(shí)會(huì)引起上下文切換。接收一個(gè)TCP信息段要引起3次上下文切換(從網(wǎng)卡驅(qū)動(dòng)程序到鏈路層進(jìn)程,從鏈路層進(jìn)程到IP層進(jìn)程,從IP層進(jìn)程~]TCP進(jìn)程)。對(duì)于操作系統(tǒng)來說,任務(wù)切換是要浪費(fèi)時(shí)間的。過頻的上下文切換使得系統(tǒng)運(yùn)行比較沉重,這是不可取的。
(2) TCP/IP協(xié)議棧在操作系統(tǒng)內(nèi)核當(dāng)中,應(yīng)用程序通過操作系統(tǒng)的系統(tǒng)調(diào)用和協(xié)議棧來進(jìn)行通訊,這樣TCP/IP的協(xié)議棧就限定于特定的操作系統(tǒng)內(nèi)核了。此法理論上可以實(shí)現(xiàn),但代碼不具有通用性,不便于將來的維護(hù)和再移植,同樣也是不太可取的。
(3)TCP/IP協(xié)議棧都在一個(gè)進(jìn)程當(dāng)中,這樣TCP/IP協(xié)議棧就和操作系統(tǒng)內(nèi)核分開了,而應(yīng)用層程序既可以是單獨(dú)的進(jìn)程也可以駐留在TCP/IP進(jìn)程中。如果應(yīng)用程序是單獨(dú)的進(jìn)程,可以通過操作系統(tǒng)的郵箱、消息隊(duì)列等和TCP/IP進(jìn)程進(jìn)行通訊。此種方式移植層次清晰,移植代碼量適中,是比較好的思路,并且在此基礎(chǔ)上移植調(diào)試成功,證明此思路是切實(shí)可行的,但缺點(diǎn)是依賴于操作系統(tǒng)的任務(wù)通信機(jī)制,不能得到很高的性能。
(4)把應(yīng)用層程序駐留TCP/IP進(jìn)程中,則應(yīng)用層程序就利用內(nèi)部回調(diào)函數(shù)口(Raw API)和TCP/IP協(xié)議棧通訊。應(yīng)用層程序既可以是獨(dú)立的任務(wù),也可以在TCP/IP線程中利用內(nèi)部回調(diào)函數(shù)n(Raw API)和TCP/IP協(xié)議棧通訊。此方式不依賴實(shí)時(shí)操作系統(tǒng),能在無操作系統(tǒng)的情況下運(yùn)行。經(jīng)過對(duì)LWIP協(xié)議棧源碼的徹底消化,改寫其接口代碼,經(jīng)多次調(diào)試移植成功,測(cè)試性能得到了很大提升。
2.4 軟件設(shè)計(jì)流程圖
軟件設(shè)計(jì)分為發(fā)送部分和接受部分。
程序流程圖如下:
發(fā)送端流程圖 接收端流程圖
LCD顯示屏相關(guān)文章:lcd顯示屏原理
tcp/ip相關(guān)文章:tcp/ip是什么
lcd相關(guān)文章:lcd原理
評(píng)論