優(yōu)勝?gòu)倪x擇開(kāi)始,我們是您最好的選擇!—— 中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)
0373-5939925
2851259250@qq.com
我要檢測(cè) 我要投稿 合法期刊查詢

基于FSMC總線的嵌入式系統(tǒng)多顯示終端驅(qū)動(dòng)設(shè)計(jì)

作者:黃克亞來(lái)源:《液晶與顯示》日期:2022-08-09人氣:1406

嵌入式系統(tǒng)均需配備顯示設(shè)備以指示程序運(yùn)行狀態(tài)和輸出控制結(jié)果。薄膜晶體管液晶顯示器(TFT-LCD)因?yàn)楣牡?、輻射小、顏色鮮艷、顯示內(nèi)容豐富等優(yōu)點(diǎn)而成為嵌入式系統(tǒng)的主流,但是其控制復(fù)雜,需要移植廠家提供的底層驅(qū)動(dòng)程序1-2。數(shù)碼管亮度高、穩(wěn)定可靠、價(jià)格便宜,在家用電器、工業(yè)控制和傳感檢測(cè)等領(lǐng)域有著廣泛的應(yīng)用,是嵌入式學(xué)習(xí)的經(jīng)典器件。

為提高數(shù)據(jù)傳輸速度,降低軟硬件設(shè)計(jì)難度,并行接口是數(shù)碼管、液晶顯示器與微控制器(MCU)連接的首選。但并口需要占用大量I/O口資源,以6位數(shù)碼管為例,共有6個(gè)位選信號(hào)和8個(gè)段選信號(hào),TFT-LCD顯示模塊則有6個(gè)控制信號(hào)和16位數(shù)據(jù)線。設(shè)計(jì)系統(tǒng)時(shí),為了編程方便,一般希望位選信號(hào)、段選信號(hào)、LCD數(shù)據(jù)線分別占用連續(xù)的16位端口,而這些I/O引腳又離散地分布于芯片的四周,上述技術(shù)需求給微控制器引腳資源分配和PCB布線帶來(lái)極大的挑戰(zhàn),同時(shí)降低了實(shí)驗(yàn)裝置的可靠性,而破解這一難題的方法就是將二者均掛接在FSMC總線上,同時(shí)進(jìn)行信號(hào)線復(fù)用。

2 FSMC總線

靈活靜態(tài)存儲(chǔ)控制器(Flexible Static Memory Controller, FSMC)能夠連接同步、異步存儲(chǔ)器和16位PC存儲(chǔ)卡,支持SRAM、NAND Flash、NOR Flash和PSRAM等類型存儲(chǔ)器。FSMC連接的所有外部存儲(chǔ)器共享地址、數(shù)據(jù)和控制信號(hào),但有各自的片選信號(hào),所以FSMC一次只能訪問(wèn)一個(gè)外部器件3-4。

圖1所示,F(xiàn)SMC將外部存儲(chǔ)器1 GB空間劃分為固定大小為256 MB的4個(gè)存儲(chǔ)塊(Bank),Bank1可連接多達(dá)4個(gè)NOR Flash或PSRAM/SRAM存儲(chǔ)器件,Bank2和Bank3用于訪問(wèn)NAND Flash存儲(chǔ)器,每個(gè)存儲(chǔ)區(qū)域連接一個(gè)設(shè)備,Bank4用于連接PC Card設(shè)備。其中Bank1又被分為4個(gè)區(qū)(Sector),每個(gè)區(qū)管理64 MB空間,每個(gè)區(qū)都有獨(dú)立的寄存器對(duì)所連接的存儲(chǔ)器進(jìn)行配置。

圖1  FSMC存儲(chǔ)區(qū)域劃分

Fig.1  Division of FSMC storage area


表1所示,Bank1的256 MB空間由28根地址線(HADDR[27:0])尋址。這里HADDR是內(nèi)部AHB總線地址,其中HADDR[25:0]來(lái)自外部存儲(chǔ)器地址FSMC_A[25:0],對(duì)應(yīng)引腳地址信號(hào);而HADDR[27: 26]對(duì)4個(gè)區(qū)進(jìn)行尋址,由系統(tǒng)自動(dòng)完成,無(wú)外部引腳對(duì)應(yīng)信號(hào)。

表1  Bank1存儲(chǔ)區(qū)選擇表
Tab.1  Bank1 storage area selection table
Bank1所選區(qū)片選信號(hào)地址范圍HADDR
[27:26][25:0]
第1區(qū)FSMC_NE10X6000 0000-0X63FF FFFF00FSMC_A[25:0]
第2區(qū)FSMC_NE20X6400 0000-0X67FF FFFF01
第3區(qū)FSMC_NE30X6800 0000-0X6BFF FFFF10
第4區(qū)FSMC_NE40X6C00 0000-0X6FFF FFFF11

在設(shè)計(jì)或分析系統(tǒng)時(shí)需要特別注意HADDR[25:0]的對(duì)應(yīng)關(guān)系。

當(dāng)Bank1連接的是8位寬度存儲(chǔ)器時(shí),總線和外設(shè)均采用字節(jié)編址,二者一一對(duì)應(yīng),即:HADDR[25:0]→FSMC_A[25:0]。

當(dāng)Bank1連接的是16位寬度存儲(chǔ)器時(shí),總線字節(jié)編址,存儲(chǔ)器雙字節(jié)尋址,此時(shí)總線26地址中最低位HADDR[0]用來(lái)表示16位數(shù)據(jù)的高位或低位,高25位HADDR[25:1]對(duì)應(yīng)16位寬的存儲(chǔ)器單元地址,即:HADDR[25:1]→FSMC_A[24:0],相當(dāng)于總線地址右移了一位5-6

3 系統(tǒng)硬件設(shè)計(jì)

作者設(shè)計(jì)的嵌入式系統(tǒng)實(shí)驗(yàn)裝置結(jié)構(gòu)框圖如圖2所示,其重點(diǎn)展示TFT-LCD和數(shù)碼管的FSMC總線連接關(guān)系,其他模塊,如CMSIS-DAP調(diào)試器、LED流水燈、獨(dú)立/矩陣按鍵等雖也為實(shí)驗(yàn)裝置重要組成部分,但不是本文討論重點(diǎn),故未繪制。實(shí)驗(yàn)裝置主控芯片選擇基于ARM Cortex-M4內(nèi)核,性能出色的STM32F407ZGT6微控制器,該芯片擁有完備的FSMC接口系統(tǒng),塊1的4個(gè)子區(qū)可同時(shí)連接4個(gè)NOR Flash/PSRAM/SRAM存儲(chǔ)設(shè)備。實(shí)驗(yàn)裝置配備雙顯示終端,數(shù)碼顯示器為6位14.22 mm (0.56 in)共陽(yáng)數(shù)碼管,PNP三極管S8550驅(qū)動(dòng);液晶顯示器為70.82 mm (2.8 in)全彩TFT-LCD顯示模塊,240像素×320像素,2.8~3.3 V供電,ILI9341驅(qū)動(dòng),16位8080并行接口。

圖2  實(shí)驗(yàn)裝置FSMC連接結(jié)構(gòu)框圖

Fig.2  FSMC connection structure block diagram of experimental device


3.1 FSMC與TFT-LCD連接

在STM32內(nèi)部,F(xiàn)SMC起到橋梁作用,其一端通過(guò)內(nèi)部高速總線AHB連接到Cortex內(nèi)核,另一端則是面向擴(kuò)展存儲(chǔ)器的外部總線,既能夠進(jìn)行信號(hào)類型的轉(zhuǎn)換,又能夠進(jìn)行信號(hào)寬度和時(shí)序的調(diào)整,提供多種讀寫(xiě)模式,使之對(duì)內(nèi)核而言沒(méi)有區(qū)別7-8。模式A比較適合連接至Bank1的NOR Flash/PSRAM/SRAM存儲(chǔ)器,其讀寫(xiě)時(shí)序如圖3所示9。信號(hào)線主要包括26位地址線A[25:0],16位數(shù)據(jù)線D[15:0],片選信號(hào)NE[x],輸出使能NOE,寫(xiě)入使能NEW。

圖3  FSMC模式A讀寫(xiě)時(shí)序

Fig.3  Read and write timing of FSMC mode A


TFT-LCD顯示模塊信號(hào)線包括:數(shù)據(jù)線D[15:0],寄存器/存儲(chǔ)器選擇RS,讀使能RD,寫(xiě)使能WR,片選CS,復(fù)位RST。通常使用標(biāo)準(zhǔn)的16位8080并口與微控制器連接,其讀寫(xiě)時(shí)序如圖4所示10

圖4  8080接口讀寫(xiě)時(shí)序

Fig.4  Read and write timing of 8080 interface


對(duì)比圖3、圖4讀寫(xiě)時(shí)序和二者控制信號(hào)可以發(fā)現(xiàn),TFT-LCD模塊,除了已連接至系統(tǒng)復(fù)位電路的RST信號(hào)外,其他信號(hào)均可由FSMC接口提供,所以FSMC連接PSRAM/SRAM的工作模式適合于連接TFT-LCD顯示模塊。如圖2所示,項(xiàng)目實(shí)施時(shí)選擇FSMC總線的Bank1.Sector4連接TFT-LCD,F(xiàn)SMC_NE4接LCD片選信號(hào)CS,F(xiàn)SMC_NOE接LCD讀引腳RD,F(xiàn)SMC_NWE接LCD寫(xiě)引腳WR,選擇FSMC_A6地址線連接LCD的寄存器/存儲(chǔ)器選擇信號(hào)RS,F(xiàn)SMC_D[15:0]接LCD的16位數(shù)據(jù)線D15~D0,LCD工作于16位8080接口模式。

3.2 FSMC與數(shù)碼管連接

圖2所示,數(shù)碼管和TFT-LCD同時(shí)掛接在STM32F4的FSMC總線上,二者共享數(shù)據(jù)線,為使二者輸出信號(hào)互不影響,需要將向數(shù)碼管送出的數(shù)據(jù)信號(hào)進(jìn)行鎖存,鎖存器選擇2片74HC573D,鎖存引腳LE高電平傳輸,低電平封鎖。選擇FSMC總線的Bank1.Sector3連接6位共陽(yáng)數(shù)碼管,所以FSMC_NE3作為數(shù)碼管的片選信號(hào),但是NE3是低電平有效,與鎖存器傳輸信號(hào)正好相反,所以FSMC_NE3需要經(jīng)反相器U2連接U3的兩片74HC573D的鎖存引腳LE。由于只需要一路反相器,系統(tǒng)實(shí)施時(shí)采用由1個(gè)PMOS管和1個(gè)NMOS管構(gòu)成的單路CMOS反相器。數(shù)碼管8個(gè)段選線和6個(gè)位選線共14條信號(hào)線由FSMC_D[13:0]控制,需要經(jīng)過(guò)鎖存模塊U3鎖存,F(xiàn)SMC_D[7:0]接一片鎖存器輸入端,鎖存器輸出端接數(shù)碼管段選線dp~a,F(xiàn)SMC_D[13:8]接另一片鎖存器的輸入端,鎖存器的輸出端接數(shù)碼管位選線DS6~DS1。

上述設(shè)計(jì)實(shí)現(xiàn)了數(shù)碼管和TFT-LCD數(shù)據(jù)線和控制線的時(shí)分復(fù)用,減少了微控制器GPIO需求,節(jié)約了CPU資源,降低了PCB布線難度,提升了系統(tǒng)可靠性。

4 系統(tǒng)軟件設(shè)計(jì)

4.1 FSMC初始化

系統(tǒng)底層軟件設(shè)計(jì)的任務(wù)是完成顯示設(shè)備的讀寫(xiě),因?yàn)轱@示設(shè)備均掛接在FSMC總線上,所以要實(shí)現(xiàn)顯示設(shè)備數(shù)據(jù)訪問(wèn),首先就需要FSMC初始化。

4.1.1 FSMC讀寫(xiě)時(shí)序

FSMC有多種時(shí)序模型用于NOR Flash/PSRAM/SRAM的訪問(wèn),對(duì)TFT-LCD來(lái)說(shuō),讀取操作比較慢,寫(xiě)入操作比較快,使用模式A的讀寫(xiě)分離時(shí)序控制比較方便,可以使讀寫(xiě)操作均獲得較高性能表現(xiàn)。數(shù)碼管控制只涉及寫(xiě),且沒(méi)有速度要求,任何模式均可以滿足要求,為了和LCD保持一致,也采用模式A進(jìn)行控制。

訪問(wèn)NOR Flash/PSRAM/SRAM的模式A的讀取時(shí)序如圖3(a)所示,寫(xiě)入時(shí)序如圖3(b)所示,在這兩個(gè)時(shí)序中都只需要設(shè)置地址建立時(shí)間ADDSET和數(shù)據(jù)建立時(shí)間DATAST這兩個(gè)參數(shù),它們都用HCLK的時(shí)鐘周期個(gè)數(shù)表示,其中ADDSET最小值為0,最大值為15,DATAST最小值為1,最大值為255。根據(jù)參考文獻(xiàn)[9]說(shuō)明,實(shí)際的地址建立時(shí)間是ADDSET個(gè)HCLK周期,數(shù)據(jù)建立時(shí)間是(DATAST+1)個(gè)HCLK周期。

4.1.2 FSMC初始化

FSMC工作模式靈活多變,控制寄存器眾多,直接操作寄存器很難完成,一般采用基于庫(kù)函數(shù)的開(kāi)發(fā)方式,而庫(kù)函數(shù)又分為標(biāo)準(zhǔn)庫(kù)和硬件抽象層(Hardware Abstraction Layer,HAL)庫(kù)。借助STM32推出的圖形化配置軟件STM32CubeMX的HAL庫(kù)開(kāi)發(fā),只需要輸入幾個(gè)關(guān)鍵參數(shù),即可自動(dòng)完成FSMC接口初始化工作。自動(dòng)化程度高,是未來(lái)嵌入式開(kāi)發(fā)的技術(shù)方向。

(1) 數(shù)碼管FSMC初始化設(shè)置

在STM32CubeMX軟件中,打開(kāi)圖5所示的設(shè)置界面,首先設(shè)置Mode選項(xiàng)內(nèi)容,配置NOR Flash/PSRAM/SRAM/ROM/LCD 3,即選擇Bank1.Sector3連接數(shù)碼管,片選信號(hào):NE3,存儲(chǔ)器類型:LCD Interface,LCD的RS信號(hào):A6,數(shù)據(jù)寬度:16位。隨后配置Configuration選項(xiàng)內(nèi)容,其中大部參數(shù)采用默認(rèn)即可,使能擴(kuò)展模式,使其支持分開(kāi)設(shè)置讀寫(xiě)時(shí)序。對(duì)數(shù)碼管的訪問(wèn)只有寫(xiě)不需要讀,所以讀時(shí)序參數(shù)可以任意設(shè)置;寫(xiě)時(shí)序中無(wú)需送出地址信號(hào),所以寫(xiě)時(shí)序地址建立時(shí)間設(shè)置為0,以使其選中芯片后立即送出數(shù)據(jù)。因片選信號(hào)需要經(jīng)過(guò)反相器送給鎖存芯片以完成數(shù)據(jù)傳輸,所以數(shù)據(jù)送出后需要保持一定的時(shí)間,數(shù)據(jù)建立時(shí)間需要設(shè)置大一些,作者設(shè)置的是160。所有需要配置的信息在圖5中均使用紅色框線標(biāo)出。

圖5  數(shù)碼管FSMC初始化界面

Fig.5  FSMC initialization interface of digital tube


(2) LCD的FSMC初始化設(shè)置

圖6所示,TFT-LCD的FSMC初始化基本上和圖5的數(shù)碼管FSMC初始化設(shè)置是一樣的,不同的地方均使用藍(lán)色框線標(biāo)出。LCD連接到FSMC的Bank1.Sector4,所以此時(shí)需要配置NOR Flash/PSRAM/SRAM/ROM/LCD 4,片選信號(hào)也相應(yīng)地調(diào)整為NE4。FSMC總線選擇模式A分開(kāi)設(shè)置讀寫(xiě)時(shí)序控制LCD顯示屏,由于LCD讀速度要比寫(xiě)速度慢得多,所以在設(shè)置讀時(shí)序時(shí)時(shí)間參數(shù)盡量設(shè)置大一些,作者將ADDSET和DATAST分別設(shè)置為15和59。對(duì)于STM32F407微控制器,在168 MHz主頻時(shí),HCLK約為6 ns,其對(duì)應(yīng)的地址建立時(shí)間為15×6 ns=90 ns,數(shù)據(jù)建立時(shí)間為(59+1)×6 ns=360 ns。LCD寫(xiě)時(shí)序的時(shí)間參數(shù)設(shè)置適當(dāng)小一些,作者將ADDSET和DATAST分別設(shè)置為9和8,兩個(gè)參數(shù)對(duì)應(yīng)的時(shí)間數(shù)值均約為54 ns。上述參數(shù)設(shè)置對(duì)70.82 mm (2.8 in)TFT-LCD的常規(guī)驅(qū)動(dòng)芯片ILI9341來(lái)說(shuō)可以保證其穩(wěn)定運(yùn)行,并留有足夠的裕量。

圖6  LCD的FSMC初始化界面

Fig.6  FSMC initialization interface of LCD


完成上述配置后,STM32CubeMX會(huì)自動(dòng)將FSMC總線用到的GPIO引腳配置為FSMC復(fù)用推挽模式,無(wú)須上拉或下拉,并在FSMC初始化程序中完成調(diào)用,大大減輕了用戶編程工作量。

4.2 數(shù)碼管顯示程序設(shè)計(jì)

STM32CubeMX完成FSMC初始化后,生成Keil MDK工程,在工程的主函數(shù)中會(huì)自動(dòng)調(diào)用初始化函數(shù),此時(shí)就可以直接訪問(wèn)數(shù)碼管或LCD。6位共陽(yáng)數(shù)碼管采用PNP三極管S8550驅(qū)動(dòng),所以位選碼是低電平有效,段選碼也是低電平相應(yīng)筆劃點(diǎn)亮。假設(shè)我們需要將DS1、DS3、DS5三個(gè)數(shù)碼管上面均顯示的數(shù)字“1”,則應(yīng)送出的顯示碼如表2所示,即向FSMC總線送出一個(gè)16進(jìn)制數(shù)據(jù)0xEAF9,即可實(shí)現(xiàn)顯示控制。

表2  數(shù)碼管控制實(shí)例顯示碼對(duì)應(yīng)表
Tab.2  Corresponding table of digital tube control example display code
名稱//DS6DS5DS4DS3DS2DS1dpgfedcba
FSMCD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0
數(shù)值1110101011111001
HEXEAF9

數(shù)據(jù)管是掛接在FSMC總線的Bank1.Sector3上的,由表1可知,這一區(qū)域?qū)?yīng)的地址范圍為0x6800 0000-0x6BFF FFFF,只要向這個(gè)64 MB單元中任一地址送數(shù)據(jù),即可將顯示碼發(fā)送至數(shù)據(jù)線,并自動(dòng)產(chǎn)生片選信號(hào)FSMC_NE3,反相后形成鎖存信號(hào),完成數(shù)據(jù)鎖存。為此選擇這一區(qū)域的首地址0x6800 0000,轉(zhuǎn)換為指針型常量,將其賦值給uint16_t型指針型變量SEG_ADDR,向該地址寫(xiě)數(shù)據(jù)即可實(shí)現(xiàn)顯示控制,十分簡(jiǎn)單。

4.3 LCD顯示程序設(shè)計(jì)

相比于數(shù)碼管顯示控制,LCD顯示程序則要復(fù)雜得多,分為底層驅(qū)動(dòng)、基礎(chǔ)顯示和高層應(yīng)用3部分。基礎(chǔ)顯示程序和高層應(yīng)用程序一般由顯示屏廠家直接提供,且在移植了底層驅(qū)動(dòng)程序之后,一般無(wú)需任何更改,就可直接使用,所以本文重點(diǎn)討論的是基于FSMC的底層驅(qū)動(dòng)程序的實(shí)現(xiàn)。

對(duì)TFT-LCD寄存器和存儲(chǔ)器一體化控制簡(jiǎn)單、便捷的方法是定義一個(gè)LCD數(shù)據(jù)訪問(wèn)結(jié)構(gòu)體,包含寄存器和存儲(chǔ)器2個(gè)16位無(wú)符號(hào)型成員。并確定該結(jié)構(gòu)體的基地址為0x6C00007E,其中HADDR[27:?26]=11,表明選擇的是Bank1.Sector4,即片選信號(hào)FSMC_NE4有效。

結(jié)構(gòu)體第一個(gè)成員LCD_REG地址和LCD結(jié)構(gòu)體的基地址相同,即:0x6C00007E,第二個(gè)成員LCD_RAM地址為基地址加2,即:0x6C000080。如果只觀察HADDR低8位,即LCD->LCD_REG的HADDR[7:?0]=0111 1110,LCD->LCD_RAM?的?HADDR?[7:?0]?=1000 0000,由于FSMC外接16位存儲(chǔ)器時(shí)內(nèi)外地址對(duì)應(yīng)關(guān)系為HADDR[25:1]→FSMC_A[24:0],相當(dāng)于右移1位。由此可知LCD->LCD_REG的FSMC_A[6:?0]=011 1111,F(xiàn)SMC_A6(RS)=0,讀寫(xiě)LCD寄存器;LCD->LCD_RAM的FSMC_A[6:?0]=100 0000,F(xiàn)SMC_A6(RS)=1,讀寫(xiě)LCD存儲(chǔ)器。在FSMC配置過(guò)程中選擇不同的地址線連接LCD的RS信號(hào),其基地址的確定亦可舉一反三。

有了上述定義并確定好基地址之后,通過(guò)選擇結(jié)構(gòu)體的不同成員,即可實(shí)現(xiàn)對(duì)不同存儲(chǔ)對(duì)象的訪問(wèn),編程簡(jiǎn)潔、高效、直觀。結(jié)合LCD驅(qū)動(dòng)芯片ILI934110控制時(shí)序,將讀寫(xiě)控制代碼封裝成LCD基本讀寫(xiě)函數(shù),即為L(zhǎng)CD底層驅(qū)動(dòng)程序,供基礎(chǔ)顯示程序和高層應(yīng)用程序調(diào)用。

由于技術(shù)發(fā)展歷史原因,一般LCD控制程序是用標(biāo)準(zhǔn)庫(kù)編寫(xiě)的,所以還需將標(biāo)準(zhǔn)庫(kù)程序向HAL庫(kù)程序移植,一般步驟為:在STM32CubeMX中配置并自動(dòng)生成FSMC初始化代碼,含LCD和數(shù)碼管兩部分;定義LCD結(jié)構(gòu)體、確定基地址,編寫(xiě)LCD底層驅(qū)動(dòng)程序;將原LCD初始化程序中的FSMC初始化和復(fù)用引腳配置代碼刪除,其余部分保留;移植基礎(chǔ)顯示和高層應(yīng)用代碼,經(jīng)過(guò)上述步驟即可完成LCD顯示代碼移植。

5 系統(tǒng)運(yùn)行測(cè)試

為檢驗(yàn)電路功能和觀察運(yùn)行效果,依據(jù)系統(tǒng)設(shè)計(jì)成果,完成樣品生產(chǎn)、組裝和測(cè)試工作。

第一步:數(shù)碼管顯示測(cè)試。編寫(xiě)數(shù)碼管動(dòng)態(tài)顯示時(shí)間程序,在6位數(shù)碼管上顯示時(shí)、分、秒數(shù)值,各占兩位數(shù)碼管,且在小時(shí)和分鐘的末尾顯示一個(gè)小數(shù)點(diǎn)。

第二步:LCD顯示測(cè)試。在完成顯示程序移植之后,調(diào)用顯示函數(shù)分別進(jìn)行字符、字符串、整型、浮點(diǎn)數(shù)等文字信息顯示測(cè)試;調(diào)用圖形處理函數(shù)進(jìn)行畫(huà)點(diǎn)、畫(huà)線、畫(huà)圓、矩形、三角形、指定區(qū)域填充等圖形顯示測(cè)試;制作漢字字庫(kù)并存于字庫(kù)文件當(dāng)中,調(diào)用中文顯示函數(shù)進(jìn)行多種字號(hào)漢字顯示測(cè)試。

第三步:綜合測(cè)試。設(shè)計(jì)了一個(gè)綜合實(shí)例,系統(tǒng)主程序是一個(gè)電子萬(wàn)年歷,實(shí)時(shí)采集現(xiàn)場(chǎng)溫濕度信息,合并實(shí)驗(yàn)裝置設(shè)計(jì)信息,所有信息均顯示于TFT-LCD顯示屏上,同時(shí)將當(dāng)前時(shí)間高亮顯示于數(shù)碼管,便于遠(yuǎn)距離觀看,測(cè)試結(jié)果如圖7所示。由于項(xiàng)目綜合性較強(qiáng),主程序處理任務(wù)較多,而數(shù)碼管動(dòng)態(tài)顯示是阻塞運(yùn)行的,CPU占有率較高,作者采用定時(shí)器中斷的方式依次刷新需要顯示的數(shù)碼管,在主程序中只需要對(duì)顯示數(shù)組賦值即可,使兩個(gè)顯示設(shè)備顯示控制方式基本相同,提升了系統(tǒng)運(yùn)行效率。

圖7  實(shí)驗(yàn)裝置綜合測(cè)試圖

Fig.7  Comprehensive test diagram of experimental device


第四步:對(duì)比測(cè)試。分別使用FSMC總線、GPIO并口、SPI串口連接數(shù)碼管和TFT-LCD雙顯示設(shè)備,運(yùn)行測(cè)試程序,使用STM32定時(shí)器記錄LCD刷整屏?xí)r間,測(cè)試條件和測(cè)試結(jié)果如表3所示。由表3可知,SPI串口顯示速度很慢,對(duì)于有刷新頻率要求的場(chǎng)合原則上不使用。FSMC接口和GPIO并口測(cè)試時(shí)使用相同的TFT-LCD模塊和微控制器,工作于同一主頻,使測(cè)試數(shù)據(jù)更具可比性。由表中數(shù)據(jù)計(jì)算得出,F(xiàn)SMC接口相比于微控制器并口控制,減少了38.2%的GPIO引腳資源占有率,LCD刷屏速度提高了17.6倍。以上數(shù)據(jù)視軟硬件設(shè)置情況會(huì)有小幅波動(dòng),但是大致范圍不會(huì)變化。

表3  顯示終端驅(qū)動(dòng)接口對(duì)比測(cè)試
Tab.3  Comparison test of display terminal driver interface
驅(qū)動(dòng)接口TFT-LCD顯示模塊微控制器及主頻I/O引腳數(shù)刷屏?xí)r間/ms
FSMC70.82 mm (2.8 in) 240×320 ILI9341STM32F407ZGT6 168 MHz21 (20+01)2.9
并口70.82 mm (2.8 in) 240×320 ILI9341STM32F407ZGT6 168 MHz34 (20+14)53.9
SPI60.96 mm (2.4 in) 240×320 ILI9341STM32F103ZET6 72 MHz19 (05+14)1 497.2

測(cè)試結(jié)果表明,采用FSMC總線同時(shí)連接數(shù)碼管和TFT-LCD顯示屏各項(xiàng)顯示功能均很好完成,刷新速度快,畫(huà)面清晰流暢,系統(tǒng)穩(wěn)定可靠,項(xiàng)目設(shè)計(jì)達(dá)到了預(yù)期目標(biāo)。

6 結(jié)論

本文設(shè)計(jì)了一款嵌入式系統(tǒng)多顯示終端實(shí)驗(yàn)裝置,將數(shù)碼顯示器和TFT-LCD均掛接在STM32微控制器的高速FSMC總線上,實(shí)現(xiàn)數(shù)據(jù)信號(hào)和控制信號(hào)時(shí)分復(fù)用。LCD的8080控制時(shí)序和數(shù)碼顯示器地址鎖存信號(hào)均由硬件自動(dòng)產(chǎn)生,F(xiàn)SMC初始化亦可通過(guò)STM32CubeMX圖形化配置工具輕松完成,軟件設(shè)計(jì)工作量顯著減少。相比于微控制器直接并口控制,減少了38.2%的GPIO引腳資源占有率,LCD刷屏速度提高了17.6倍。系統(tǒng)設(shè)計(jì)方案具有較高的數(shù)據(jù)訪問(wèn)性能,降低了軟硬設(shè)計(jì)難度,提高了系統(tǒng)可靠性。


關(guān)鍵字:優(yōu)秀論文

網(wǎng)絡(luò)客服QQ: 沈編輯

投訴建議:0373-5939925????投訴建議QQ:

招聘合作:2851259250@qq.com (如您是期刊主編、文章高手,可通過(guò)郵件合作)

地址:河南省新鄉(xiāng)市金穗大道東段266號(hào)中州期刊聯(lián)盟 ICP備案號(hào):豫ICP備2020036848

【免責(zé)聲明】:中州期刊聯(lián)盟所提供的信息資源如有侵權(quán)、違規(guī),請(qǐng)及時(shí)告知。

版權(quán)所有:中州期刊聯(lián)盟(新鄉(xiāng)市博翰文化傳媒有限公司)

關(guān)注”中州期刊聯(lián)盟”公眾號(hào)
了解論文寫(xiě)作全系列課程

核心期刊為何難發(fā)?

論文發(fā)表總嫌貴?

職院?jiǎn)挝话l(fā)核心?

掃描關(guān)注公眾號(hào)

論文發(fā)表不再有疑惑

論文寫(xiě)作全系列課程

掃碼了解更多

輕松寫(xiě)核心期刊論文

在線留言