目錄
一、項(xiàng)目目標(biāo)
1.設(shè)計(jì)目標(biāo)
2.技術(shù)指標(biāo)
二、項(xiàng)目分析
1.需求分析
2.實(shí)驗(yàn)原理
三、項(xiàng)目設(shè)計(jì)
1.系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.1技術(shù)方案
1.2設(shè)計(jì)要點(diǎn)
1.3系統(tǒng)結(jié)構(gòu)圖
1.4硬件連接圖
1.5系統(tǒng)硬件配置設(shè)計(jì)(硬件模塊介紹)
1.5.1 8×8點(diǎn)陣塊LG7088BH
1.5.2 四塊點(diǎn)陣級聯(lián)電路
1.6系統(tǒng)軟件配置設(shè)計(jì)(軟件模塊介紹)
1.6.1軟件原理圖
1.6.2分模塊介紹
1.6.2.1時鐘生成模塊
1.6.2.2復(fù)位生成模塊
1.6.2.3七段數(shù)碼管顯示模塊
1.6.2.4信號解析模塊
1.6.2.5接收器模塊
1.6.2.6字符緩存模塊
1.6.2.7滾動顯示控制模塊
1.6.2.8點(diǎn)陣顯示模塊
1.6.2.9回環(huán)控制模塊
1.6.2.10分頻模塊
?2.系統(tǒng)參數(shù)設(shè)計(jì)
3.系統(tǒng)設(shè)計(jì)流程
3.1每個模塊的說明
3.2模塊間的協(xié)同邏輯與設(shè)計(jì)流程
4.實(shí)驗(yàn)器材
4.1實(shí)驗(yàn)儀器:
4.2實(shí)驗(yàn)材料:
4.3實(shí)驗(yàn)軟件:
5.實(shí)驗(yàn)步驟
四、項(xiàng)目實(shí)施
1.系統(tǒng)測試流程
1.1仿真testbench代碼:
1.2仿真測試結(jié)果圖?
2.系統(tǒng)實(shí)施與調(diào)試
2.1實(shí)施過程
2.2實(shí)施要點(diǎn)
2.3外圍電路連接圖
2.4點(diǎn)陣顯示電路
?2.5軟件參數(shù)配置
2.6故障排除方法
2.7系統(tǒng)運(yùn)行操作
2.8實(shí)施效果
2.8.1四個點(diǎn)陣屏滾動顯示
2.8.2兩個點(diǎn)陣屏滾動顯示
2.8.3滾動速度改變
2.8.4滾動方向改變
3.系統(tǒng)工程信息
3.1綜合階段分析:
3.2實(shí)現(xiàn)階段分析
五、項(xiàng)目總結(jié)與心得體會
1.設(shè)計(jì)思路與要點(diǎn):
2.特色與效果:
3.實(shí)驗(yàn)對學(xué)生的作用:
4.存在的問題與改進(jìn)方向:
一、項(xiàng)目目標(biāo)
1.設(shè)計(jì)目標(biāo)
????????(1)點(diǎn)陣驅(qū)動電路設(shè)計(jì):使用8×8點(diǎn)陣塊LG7088BH,設(shè)計(jì)外圍電路,確保點(diǎn)陣能夠被正確驅(qū)動。
????????(2)FPGA接口設(shè)計(jì):使用ego1-J5接口連接FPGA,提供必要的電源和IO驅(qū)動。
????????(3)點(diǎn)陣顯示模塊設(shè)計(jì):在FPGA內(nèi)部設(shè)計(jì)邏輯,用于控制點(diǎn)陣顯示漢字或其他圖形。
????????(4)點(diǎn)陣移動模塊設(shè)計(jì):通過FPGA內(nèi)部邏輯控制數(shù)據(jù)序列,實(shí)現(xiàn)在點(diǎn)陣上滾動顯示多漢字信息。
????????(5)藍(lán)牙模塊設(shè)計(jì):利用板卡上的藍(lán)牙模塊與支持藍(lán)牙4.0的外部設(shè)備(本次采用智能手機(jī)),進(jìn)行交互,使用UART串口通信協(xié)議處理數(shù)據(jù)。
????????(6)點(diǎn)陣級聯(lián)電路設(shè)計(jì):設(shè)計(jì)級聯(lián)4個8×8點(diǎn)陣模塊,形成16×16的顯示屏。
2.技術(shù)指標(biāo)
????????(1)FPGA 功能與接口:FPGA 具備足夠的 I/O 端口以驅(qū)動 8×8 點(diǎn)陣,同時提供穩(wěn)定的時鐘源和電源管理。ego1-J5-35、36提供3.3V,ego1-J5-33、34提供GND,ego1-J5的其他GPIO提供點(diǎn)陣的驅(qū)動IO。
?????????(2)點(diǎn)陣顯示分辨率:采用 8×8 LED 點(diǎn)陣,每個點(diǎn)陣包含 64 個 LED,能夠清晰顯示單個字符或圖形。8×8點(diǎn)陣塊LG7088BH,其引腳排列如下。其中L(列)低電平點(diǎn)亮,H(行)高電平點(diǎn)亮。
????????(3)藍(lán)牙模塊性能:基于 TI CC2541 芯片,支持低功耗藍(lán)牙(BLE)4.0 協(xié)議,有效通信距離至少 10 米。
????????(4)數(shù)據(jù)傳輸與處理速度:藍(lán)牙模塊與 FPGA 之間的數(shù)據(jù)傳輸速率滿足無延遲顯示的要求,F(xiàn)PGA 處理數(shù)據(jù)的速度能夠?qū)崟r更新顯示內(nèi)容。
????????(5)顯示模式與控制:系統(tǒng)能夠在 FPGA 的控制下實(shí)現(xiàn)靜態(tài)顯示、垂直滾動多種顯示模式。
????????(6)耗電量與電源管理:整個系統(tǒng)的功耗控制在合理范圍內(nèi),電源管理部分能夠保證長時間穩(wěn)定工作。
????????(7)實(shí)驗(yàn)環(huán)境:
?????????? ①硬件環(huán)境:聯(lián)想拯救者Y7000P2021、CPU i7-11800H、GPU RTX3050Ti
?? ????????②軟件環(huán)境:vivado 2017.4 matlab2023b 立創(chuàng)EDA網(wǎng)頁版
二、項(xiàng)目分析
1.需求分析
????????(1)項(xiàng)目任務(wù)分析:項(xiàng)目的核心任務(wù)是創(chuàng)建一個能夠通過藍(lán)牙接收信號,并在LED點(diǎn)陣屏上實(shí)時顯示相應(yīng)文字和圖形的系統(tǒng)。這不僅需要精確的硬件設(shè)計(jì),如高效能的FPGA和穩(wěn)定的藍(lán)牙模塊,也需要考慮軟件上的數(shù)據(jù)處理。此外,系統(tǒng)應(yīng)具備多樣化的顯示功能,如動態(tài)滾動、靜態(tài)展示等,以適應(yīng)不同的應(yīng)用場景。
????????(2)綜合社會與環(huán)境要素的全面考量:在設(shè)計(jì)過程中,應(yīng)全面考慮對社會、健康、安全及環(huán)境的影響。例如,電磁輻射水平必須符合國際安全標(biāo)準(zhǔn),以保護(hù)用戶健康;在材料選擇和制造過程中,應(yīng)著眼于環(huán)境保護(hù),減少廢物和污染。此外,產(chǎn)品應(yīng)符合可持續(xù)發(fā)展的原則,強(qiáng)調(diào)長期的可用性和維護(hù)的方便性。
????????(3)軟硬件設(shè)計(jì)的可行性與創(chuàng)新性分析:在軟硬件設(shè)計(jì)方面,需精心評估各部件的集成與協(xié)同工作能力,確保整個系統(tǒng)的穩(wěn)定性和效率。同時,探索創(chuàng)新的解決方案,以提高系統(tǒng)的性能和用戶體驗(yàn)。例如,可以研究如何通過優(yōu)化FPGA內(nèi)部邏輯設(shè)計(jì)來提高數(shù)據(jù)處理速度,此外也需要設(shè)計(jì)更為完善穩(wěn)定的外圍硬件電路,使得整個系統(tǒng)的結(jié)構(gòu)更為簡單,邏輯更為清晰,使用更加方便。
????????(4)優(yōu)化策略的制定:包括硬件上的改進(jìn),如選擇更高效能的FPGA芯片或更穩(wěn)定的藍(lán)牙模塊;軟件上的優(yōu)化,如改進(jìn)數(shù)據(jù)處理算法以減少延遲,或者開發(fā)更加人性化的用戶界面;以及成本控制,通過精心的材料和組件選擇,實(shí)現(xiàn)成本效益的最大化。
2.實(shí)驗(yàn)原理
????????(1)點(diǎn)陣驅(qū)動電路原理:使用8×8點(diǎn)陣塊LG7088BH,其工作原理基于行列控制,其中列低電平點(diǎn)亮,行高電平點(diǎn)亮。通過對行列電平的精確控制,可以實(shí)現(xiàn)復(fù)雜圖案和文字的顯示。
????????(2)FPGA接口原理:FPGA提供必要的電源和IO驅(qū)動。通過利用ego1-J5接口的多個GPIO,F(xiàn)PGA可以有效驅(qū)動點(diǎn)陣顯示。
????????(3)點(diǎn)陣顯示模塊原理:基于FPGA內(nèi)部邏輯,實(shí)現(xiàn)對LED點(diǎn)陣的控制。漢字和圖形首先被轉(zhuǎn)化為8×8的像素點(diǎn)陣圖,然后通過FPGA編程實(shí)現(xiàn)這些圖案的顯示。
????????(4)點(diǎn)陣移動模塊原理:通過FPGA內(nèi)部邏輯控制數(shù)據(jù)序列的釋放,實(shí)現(xiàn)漢字信息在點(diǎn)陣上的滾動顯示??刂茢?shù)據(jù)序列的地址指針可以調(diào)節(jié)滾動速度和顯示穩(wěn)定性。
????????(5)藍(lán)牙模塊原理:基于TI公司CC2541芯片的藍(lán)牙4.0模塊,通過串口協(xié)議與FPGA通信。用戶無需深入研究藍(lán)牙協(xié)議,只需處理發(fā)送和接收的數(shù)據(jù)。
????????(6)點(diǎn)陣級聯(lián)電路原理:將多個8×8點(diǎn)陣模塊級聯(lián),形成更大的顯示屏。通過適當(dāng)?shù)碾娐吩O(shè)計(jì)和編程,可以實(shí)現(xiàn)更大范圍的圖形和文字顯示。
三、項(xiàng)目設(shè)計(jì)
1.系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.1技術(shù)方案
????????本項(xiàng)目采用EGO1開發(fā)板作為控制核心,設(shè)計(jì)了一個基于藍(lán)牙的點(diǎn)陣顯示系統(tǒng)。系統(tǒng)主要包括點(diǎn)陣驅(qū)動電路、點(diǎn)陣級聯(lián)電路、點(diǎn)陣顯示模塊、點(diǎn)陣移動模塊以及藍(lán)牙模塊。使用的點(diǎn)陣塊型號為LG7088BH,藍(lán)牙模塊基于TI公司CC2541芯片的藍(lán)牙4.0模塊。
1.2設(shè)計(jì)要點(diǎn)
????????(1)點(diǎn)陣驅(qū)動電路:使用8×8點(diǎn)陣塊LG7088BH,需要配置適當(dāng)?shù)尿?qū)動電路。
????????(2)EGO1開發(fā)板:作為系統(tǒng)的控制核心,負(fù)責(zé)處理數(shù)據(jù)和控制信號。
????????(3)點(diǎn)陣顯示模塊:實(shí)現(xiàn)在點(diǎn)陣屏上顯示漢字或圖形的功能。
????????(4)點(diǎn)陣移動模塊:能夠?qū)崿F(xiàn)點(diǎn)陣上內(nèi)容的動態(tài)移動。
????????(5)藍(lán)牙模塊的應(yīng)用:使用基于CC2541芯片的藍(lán)牙4.0模塊進(jìn)行數(shù)據(jù)通信。
????????(6)級聯(lián)電路設(shè)計(jì):考慮多個點(diǎn)陣塊的級聯(lián)連接,實(shí)現(xiàn)更大的顯示效果。
1.3系統(tǒng)結(jié)構(gòu)圖
????????該實(shí)驗(yàn)系統(tǒng)分為四個模塊,四塊8×8點(diǎn)陣屏、外圍電路(接口電路)、EGO1板、藍(lán)牙設(shè)備。
?
1.4硬件連接圖
????????該實(shí)驗(yàn)由于EGO1板卡功能豐富,外圍電路相對簡單。包含:
????????(1) 8×8點(diǎn)陣塊LG7088BH的連接:根據(jù)LG7088BH的16個引腳分配正確連線,使其能夠正常工作。
????????(2)點(diǎn)陣級聯(lián)PCB設(shè)計(jì):根據(jù)四塊點(diǎn)陣屏的級聯(lián)關(guān)系,設(shè)計(jì)一塊拼接好的PCB電路板方便與RGO1板卡連接。
????????(3)與板卡連接:根據(jù)EG01板卡結(jié)構(gòu)圖,確定FPGA接口含義,正確提供VCC、GND、IO引腳分配。
?
?
1.5系統(tǒng)硬件配置設(shè)計(jì)(硬件模塊介紹)
1.5.1 8×8點(diǎn)陣塊LG7088BH
????????8×8點(diǎn)陣塊LG7088BH由64個LED燈組成,排列成8行8列的格式。它們可以用于顯示簡單的圖形、字符或者動畫,每個LED可以單獨(dú)控制,通常通過行列掃描的方式來減少所需的控制引腳數(shù)量。
1.5.2 四塊點(diǎn)陣級聯(lián)電路
根據(jù)級聯(lián)電路的設(shè)計(jì)指標(biāo)與點(diǎn)陣屏幕的引腳分配可以繪制出下面這個PCB,優(yōu)勢在于可以簡單地實(shí)現(xiàn)和EGO1的連接
由于時間限制,并未完成打板,此處僅展示EDA繪制的模型。
?
1.6系統(tǒng)軟件配置設(shè)計(jì)(軟件模塊介紹)
1.6.1軟件原理圖
????????下圖是vivado軟件,在代碼寫完整后所生成的原理圖和程序分層。
?????????由于程序較為繁雜,所以形成的原理圖也就很復(fù)雜,圖片顯示并不清晰,因此下面將詳細(xì)分模塊介紹。
1.6.2分模塊介紹
1.6.2.1時鐘生成模塊
????????clk_gen是一個Verilog時鐘生成模塊,用于從主時鐘源(clk_pin)生成多個時鐘信號。它包括對發(fā)送時鐘(clk_tx)的分頻控制,接收時鐘(clk_rx)的生成,以及采樣時鐘(clk_samp)的管理。此模塊還包括時鐘穩(wěn)定性指示(clock_locked),以及對這些時鐘信號的使能控制。簡而言之,clk_gen在數(shù)字系統(tǒng)中扮演著關(guān)鍵的時鐘管理和分配角色。
1.6.2.2復(fù)位生成模塊
????????rst_gen是一個Verilog復(fù)位生成模塊,用于根據(jù)不同的時鐘域(clk_rx、clk_tx 和 clk_samp)產(chǎn)生相應(yīng)的復(fù)位信號。該模塊結(jié)合了外部復(fù)位輸入(rst_i)和時鐘穩(wěn)定性指示(clock_locked)來生成內(nèi)部復(fù)位信號。它包含多個 reset_bridge 實(shí)例,每個實(shí)例負(fù)責(zé)為一個特定的時鐘域生成復(fù)位信號,以確保系統(tǒng)的穩(wěn)定運(yùn)行。
?
1.6.2.3七段數(shù)碼管顯示模塊
????????seg7decimal 是一個Verilog模塊,用于驅(qū)動7段數(shù)碼管顯示。它接收一個16位的二進(jìn)制輸入 x,并將其轉(zhuǎn)換為相應(yīng)的數(shù)碼管顯示。模塊使用時鐘信號 clk 來周期性更新顯示內(nèi)容,并通過 clr 信號來清除或重置顯示。內(nèi)部邏輯包括數(shù)字的選擇和7段數(shù)碼顯示的控制,使得每一位數(shù)字能夠在數(shù)碼管上正確顯示。
?
?
1.6.2.4信號解析模塊
????????cmd_parse 模塊是一個用于解析UART接收到的命令并生成相應(yīng)響應(yīng)的Verilog模塊。它根據(jù)接收到的數(shù)據(jù),通過內(nèi)部狀態(tài)機(jī)處理不同的命令(如讀取、寫入),并生成確認(rèn)或錯誤響應(yīng)。該模塊還負(fù)責(zé)將接收到的字符數(shù)據(jù)轉(zhuǎn)換為數(shù)字,并存儲在相應(yīng)的寄存器中。
1.6.2.5接收器模塊
????????uart_rx 模塊是一個UART接收器模塊,用于處理來自UART通信的數(shù)據(jù)。它包括波特率生成(控制數(shù)據(jù)接收的速率)和接收控制(管理數(shù)據(jù)的接收過程)。該模塊接收串行數(shù)據(jù),處理并轉(zhuǎn)換為8位并行數(shù)據(jù)輸出,同時提供數(shù)據(jù)接收就緒信號和可能的幀錯誤信號。
?
?
1.6.2.6字符緩存模塊
????????這個模塊用于緩存字符數(shù)據(jù),支持讀寫操作。它通過端口連接接收數(shù)據(jù)輸入、輸出數(shù)據(jù),并根據(jù)讀寫時鐘信號進(jìn)行操作。此模塊還包含空和滿標(biāo)志,用于指示其存儲狀態(tài)。
1.6.2.7滾動顯示控制模塊
????????該gundon模塊是一個用于點(diǎn)陣顯示的滾動顯示控制器。它使用時鐘信號(clk)和復(fù)位信號(rst)來控制顯示內(nèi)容的滾動。模塊內(nèi)部定義了一些預(yù)設(shè)的顯示數(shù)據(jù)(id1和id2),并根據(jù)輸入信號rl選擇顯示哪一種數(shù)據(jù)。在每個時鐘周期,數(shù)據(jù)會在內(nèi)部寄存器press中移位,以實(shí)現(xiàn)滾動效果。輸出out是截取的部分?jǐn)?shù)據(jù),用于驅(qū)動點(diǎn)陣顯示器,顯示滾動的圖案或文字。
1.6.2.8點(diǎn)陣顯示模塊
????????xianshi模塊,用于控制一個16×16的LED點(diǎn)陣顯示。模塊接收一個時鐘信號(clk)、一個復(fù)位信號(rst)和一個256位的輸入數(shù)據(jù)(d_in)。它輸出兩個16位的寄存器:hang和lie,分別代表點(diǎn)陣的行和列??傮w而言,xianshi模塊通過快速地在行和列之間切換(由于時鐘頻率的速度,這種切換對人眼來說是不可見的),從而能夠在點(diǎn)陣上顯示復(fù)雜的圖案或文字。這種方法通常稱為動態(tài)掃描,在LED點(diǎn)陣顯示技術(shù)中非常常見。
?
1.6.2.9回環(huán)控制模塊
模塊 lb_ctl 在Verilog中用于實(shí)現(xiàn)環(huán)回控制功能。它的主要作用是根據(jù)環(huán)回選擇信號 lb_sel_i 決定是否將接收到的數(shù)據(jù)(rxd_clk_rx)直接傳輸?shù)捷敵觯╰xd_o),或者傳輸原始的待發(fā)送數(shù)據(jù)(txd_tx)。這種機(jī)制通常用于通信系統(tǒng)的測試和調(diào)試,確保接收和發(fā)送的數(shù)據(jù)處理邏輯正常工作。此外,模塊還包含去抖動(debouncer)和信號穩(wěn)定化(meta_harden)功能,以確保處理的信號穩(wěn)定可靠。
?
1.6.2.10分頻模塊
????????模塊 fenpina 主要功能是生成兩個不同頻率的時鐘信號(1Hz 和 1KHz)以及基于接收到的數(shù)據(jù)產(chǎn)生控制信號。它包含兩個主要的計(jì)數(shù)器(couner_1Hz 和 couner_1KHz)用于產(chǎn)生這些時鐘信號,并根據(jù)輸入的 rx_data 以及讀取標(biāo)志 rd 來設(shè)置控制信號 rl。這種類型的模塊通常用于需要精確時鐘控制和基于條件的信號生成的應(yīng)用場景。
?
?2.系統(tǒng)參數(shù)設(shè)計(jì)
????????根據(jù)設(shè)計(jì)指標(biāo),我們需要對16*16點(diǎn)陣的顯示字符進(jìn)行取模操作,需要將想要現(xiàn)實(shí)的字符變?yōu)?6進(jìn)制代碼輸入給FPGA,至于如何設(shè)計(jì)這個16進(jìn)制代碼,我進(jìn)行了如下仿真設(shè)計(jì):
????????仿真案例使用A B C G四個英文字母。
????????首先是借助python進(jìn)行字符的圖像處理與取樣,代碼如下:
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image, ImageDraw, ImageFont
def generate_bitmap_for_letter(character, image_size):
image = Image.new('1', image_size, 1)
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
text_bbox = draw.textbbox((0, 0), character, font=font)
text_width = text_bbox[2] - text_bbox[0]
text_height = text_bbox[3] - text_bbox[1]
text_x = (image_size[0] - text_width) // 2
text_y = (image_size[1] - text_height) // 2
draw.text((text_x, text_y), character, font=font, fill=0)
bitmap = np.array(image)
return bitmap
def generate_hex_bitmap(bitmap):
hex_list = []
for row in bitmap:
binary_string = ''.join(['1' if bit else '0' for bit in row])
hex_string = format(int(binary_string, 2), '0x').upper()
hex_list.append(hex_string)
return hex_list
def format_hex_values_for_verilog(hex_list):
formatted_hex = ','.join(['0x{:02X}'.format(int(h, 16)) for h in hex_list])
return '{' + formatted_hex + '}'
letters = ['A', 'B', 'C', 'G']
hex_bitmaps = {}
for letter in letters:
bitmap = generate_bitmap_for_letter(letter, (16, 16))
hex_bitmap = generate_hex_bitmap(bitmap)
formatted_hex_bitmap = format_hex_values_for_verilog(hex_bitmap)
hex_bitmaps[letter] = formatted_hex_bitmap
print(f"Bitmap for '{letter}':")
print(formatted_hex_bitmap)
print()
plt.imshow(bitmap, cmap='gray', interpolation='none')
plt.title(f"Bitmap for '{letter}'")
plt.axis('off')
plt.show()
?????????下面是借助matlab進(jìn)行最后的數(shù)據(jù)處理:
A = [
0x10,0x94,0x53,0x32,0x1E,0x32,0x52,0x10,0x00,0x7E,0x42,0x42,0x42,0x7E,0x00,0x00
];
B = [
0x08,0xCC,0x4A,0x49,0x48,0x4A,0xCC,0x18,0x00,0x7F,0x88,0x88,0x84,0x82,0xE0,0x00
];
C = [
0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00
];
G = [
0x00,0xFE,0x22,0x5A,0x86,0x10,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x14,0x0C,0x00
];
% 初始化輸出字符串
output_hex = '';
% 處理每個字母的點(diǎn)陣
hanzis = {A, B, C, G};
for k = 1:length(hanzis)
hanzi_matrix = hanzis{k};
for i = 1:length(hanzi_matrix)
% 將每個數(shù)值轉(zhuǎn)換為十六進(jìn)制字符串,并保持固定的字符長度
output_hex = strcat(output_hex, sprintf('%04x', hanzi_matrix(i)));
end
% 在除了最后一個字母之外的每個字母后添加下劃線分隔符
if k < length(hanzis)
output_hex = strcat(output_hex, '_');
end
end
% 格式化輸出,添加前綴和后綴
output_for_verilog = strcat('1024''h', output_hex, ';');
% 輸出結(jié)果
disp(output_for_verilog);
????????下面是最終的輸出結(jié)果:
????????1024'h0010009400530032001e0032005200100000007e004200420042007e00000000_000800cc004a00490048004a00cc00180000007f008800880084008200e00000_0040003000110096009000900091009600900090009800140013005000300000_000000fe0022005a00860010000c0024002400250026002400240014000c0000;?
3.系統(tǒng)設(shè)計(jì)流程
3.1每個模塊的說明
uart_rx(UART接收)模塊:
這個模塊負(fù)責(zé)接收UART通信中的數(shù)據(jù)。它通過一系列的子模塊處理接收的數(shù)據(jù),包括波特率檢測、字符解碼和錯誤檢測。其核心功能是從串行數(shù)據(jù)中恢復(fù)出并行數(shù)據(jù),供系統(tǒng)進(jìn)一步處理。
uart_tx(UART發(fā)送)模塊:
這個模塊管理數(shù)據(jù)的串行發(fā)送。它將并行數(shù)據(jù)轉(zhuǎn)換為串行格式,并按照設(shè)定的波特率進(jìn)行發(fā)送。此模塊確保了數(shù)據(jù)能夠被正確地序列化并發(fā)送給外部設(shè)備或系統(tǒng)。
藍(lán)牙控制模塊 (bt_uart):
bt_uart模塊是整個系統(tǒng)中的關(guān)鍵組成部分,它負(fù)責(zé)管理與藍(lán)牙模塊的交互。這個模塊的核心功能包括:
數(shù)據(jù)傳輸:通過UART接收和發(fā)送數(shù)據(jù),連接藍(lán)牙模塊和主控制器。
控制信號管理:包括電源控制(bt_pw_on)、主從模式切換(bt_master_slave)、軟硬件選擇(bt_sw_hw)等。
狀態(tài)反饋:通過一系列輸出信號,如seg7_0_7bit、seg7_1_7bit等,顯示藍(lán)牙模塊的狀態(tài)信息。
點(diǎn)陣顯示控制:利用fenpina、gundong和xianshi子模塊控制點(diǎn)陣顯示。
點(diǎn)陣顯示控制模塊 (fenpina, gundong, xianshi):
fenpina模塊:負(fù)責(zé)產(chǎn)生點(diǎn)陣顯示所需的控制信號,如不同頻率的時鐘信號。它控制顯示的更新頻率,影響圖案的滾動速度。
gundong模塊:管理點(diǎn)陣顯示的滾動行為。它根據(jù)輸入的命令或數(shù)據(jù)調(diào)整顯示的圖案,實(shí)現(xiàn)字符或圖形的滾動顯示。
xianshi模塊:直接驅(qū)動點(diǎn)陣顯示,控制每個LED的亮滅。它將處理后的數(shù)據(jù)轉(zhuǎn)換為視覺圖案,展示在點(diǎn)陣屏上。
數(shù)碼管顯示模塊 (seg7decimal):
數(shù)據(jù)轉(zhuǎn)換:將輸入的二進(jìn)制數(shù)字轉(zhuǎn)換為7段數(shù)碼管可以顯示的格式。
多位顯示控制:可以控制多個數(shù)碼管,顯示較大的數(shù)值或更復(fù)雜的信息。
動態(tài)顯示:通過快速切換顯示的數(shù)字,創(chuàng)建動態(tài)顯示效果。
seg7decimal模塊使得數(shù)字和簡單字符能夠在數(shù)碼管上直觀地顯示出來。
信號處理和穩(wěn)定化模塊 (meta_harden, debouncer):
meta_harden模塊:這個模塊用于減少高速數(shù)字信號傳輸中的亞穩(wěn)態(tài)風(fēng)險。通過兩級觸發(fā)器結(jié)構(gòu)實(shí)現(xiàn)信號穩(wěn)定化,保證信號在目標(biāo)時鐘域內(nèi)穩(wěn)定有效。
debouncer模塊:負(fù)責(zé)處理物理開關(guān)或按鈕輸入的信號抖動。它確保輸入信號的穩(wěn)定。
環(huán)回控制 (lb_ctl) 模塊:
這個模塊用于在特定情況下,如測試或調(diào)試時,將接收到的UART數(shù)據(jù)直接反饋到發(fā)送端。它的主要功能是:
選擇性環(huán)回:通過檢測控制信號(lb_sel_i),決定是否激活環(huán)回模式。
數(shù)據(jù)路由:在環(huán)回模式下,接收到的數(shù)據(jù)(rxd_clk_rx)被直接路由到UART發(fā)送端(txd_o),否則使用正常的發(fā)送數(shù)據(jù)(txd_tx)。
波特率生成(uart_baud_gen)模塊:
這個模塊是UART通信的關(guān)鍵組成部分,負(fù)責(zé)生成適當(dāng)?shù)牟ㄌ芈蕰r鐘信號,確保數(shù)據(jù)以正確的速率進(jìn)行傳輸。其功能包括:
波特率計(jì)算:根據(jù)預(yù)設(shè)的波特率和系統(tǒng)時鐘頻率計(jì)算出必要的時鐘分頻值。
時鐘分頻:生成一個比系統(tǒng)時鐘慢的時鐘信號,其頻率與設(shè)定的波特率相匹配。
uart_baud_gen模塊確保UART通信在預(yù)定波特率下穩(wěn)定運(yùn)行,對于保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性至關(guān)重要。
二進(jìn)制到BCD轉(zhuǎn)換(to_bcd)模塊:
這個模塊的作用是將二進(jìn)制數(shù)字轉(zhuǎn)換為二進(jìn)制編碼的十進(jìn)制(BCD)格式,這在顯示數(shù)字信息時非常重要。其主要功能包括:
數(shù)字分解:將較大的二進(jìn)制數(shù)分解為更小的單元,方便在數(shù)碼管或其他顯示設(shè)備上顯示。
BCD轉(zhuǎn)換:通過一系列算法,將每個二進(jìn)制數(shù)字單元轉(zhuǎn)換為相應(yīng)的BCD表示。
to_bcd模塊使得數(shù)字信息能夠被直觀且準(zhǔn)確地顯示在數(shù)碼管或類似的顯示設(shè)備上。
環(huán)回控制 (lb_ctl):lb_ctl模塊主要負(fù)責(zé)在特定場景下實(shí)現(xiàn)UART數(shù)據(jù)的環(huán)回功能。其關(guān)鍵功能包括:環(huán)回選擇:通過檢測環(huán)回選擇信號(lb_sel_i),決定是否啟用環(huán)回模式。數(shù)據(jù)路由:在環(huán)回模式下,接收到的數(shù)據(jù)(rxd_clk_rx)會直接發(fā)送到UART發(fā)送端(txd_o)。否則,使用常規(guī)的發(fā)送數(shù)據(jù)路徑(txd_tx)。
信號硬化 (meta_harden) 模塊:
meta_harden模塊的主要功能是減少信號傳輸過程中的亞穩(wěn)態(tài)風(fēng)險,特別是在高速數(shù)字電路中。它通過下述方式確保信號的穩(wěn)定性:
雙級觸發(fā)器:使用兩級觸發(fā)器結(jié)構(gòu)來穩(wěn)定化信號。首先,原始信號被捕獲在一個中間寄存器(signal_meta),然后傳遞到最終輸出(signal_dst)。
減少亞穩(wěn)態(tài):這種方法可以顯著減少信號在高速操作中的亞穩(wěn)態(tài),提高系統(tǒng)的可靠性和穩(wěn)定性。
字符FIFO (char_fifo)模塊:
char_fifo(First-In-First-Out)模塊在UART通信中用于暫存字符數(shù)據(jù)。其作用包括:
數(shù)據(jù)緩沖:存儲即將通過UART發(fā)送的字符,或者暫存剛接收的字符。
流控制:通過控制字符的讀取和寫入,幫助管理數(shù)據(jù)流,避免發(fā)送或接收過程中的數(shù)據(jù)溢出或丟失。
時鐘生成 (clk_gen) 和 復(fù)位生成 (rst_gen) 模塊:
clk_gen模塊:負(fù)責(zé)生成系統(tǒng)所需的各種時鐘信號。它包含一個時鐘分頻器,用于從主時鐘信號產(chǎn)生不同頻率的子時鐘信號。
rst_gen模塊:生成系統(tǒng)的復(fù)位信號。當(dāng)系統(tǒng)需要重新初始化或在檢測到錯誤時,這個模塊確保系統(tǒng)能夠安全地重置到初始狀態(tài)。
命令解析 (cmd_parse) 模塊:
這個模塊負(fù)責(zé)解析通過UART接收到的命令和數(shù)據(jù)。它的作用包括:命令識別:識別和處理不同的命令,如讀取、寫入或配置操作。參數(shù)提?。簭慕邮盏降臄?shù)據(jù)中提取參數(shù),用于執(zhí)行相應(yīng)的命令。響應(yīng)生成:根據(jù)命令的執(zhí)行結(jié)果,生成相應(yīng)的響應(yīng)數(shù)據(jù)發(fā)送回UART通信。
響應(yīng)生成 (resp_gen) 模塊:
resp_gen模塊負(fù)責(zé)根據(jù)系統(tǒng)狀態(tài)或命令處理結(jié)果生成響應(yīng)。它的作用包括:響應(yīng)格式化:將數(shù)據(jù)或狀態(tài)信息格式化為標(biāo)準(zhǔn)的響應(yīng)消息。FIFO管理:將格式化后的響應(yīng)數(shù)據(jù)放入FIFO隊(duì)列,準(zhǔn)備通過UART發(fā)送。發(fā)送控制:控制響應(yīng)數(shù)據(jù)的發(fā)送時機(jī),確保數(shù)據(jù)在正確的時刻被發(fā)送。
去抖動 (debouncer) 模塊:
信號穩(wěn)定化過程:為了確保信號的準(zhǔn)確讀取,去抖動模塊監(jiān)測輸入信號在一定時間內(nèi)的狀態(tài)。如果輸入信號在這段時間內(nèi)保持穩(wěn)定(即沒有改變),則認(rèn)為是有效的輸入動作。計(jì)時器功能:去抖動模塊內(nèi)通常包含一個計(jì)時器,用于監(jiān)測輸入信號在預(yù)定時間閾值內(nèi)的狀態(tài)。如果輸入信號在這段時間內(nèi)沒有改變,計(jì)時器會重置。
輸出信號的決定:如果輸入信號在整個監(jiān)測周期內(nèi)保持不變,則去抖動模塊的輸出會更新為這個穩(wěn)定的信號狀態(tài)。反之,如果輸入在監(jiān)測期間變化,則輸出不更新,等待下一個穩(wěn)定周期。
這種機(jī)制有效地過濾了由于物理接觸不良或其他原因造成的短暫信號波動,確保系統(tǒng)只響應(yīng)真正的用戶輸入。信號同步與硬化:為了防止亞穩(wěn)態(tài),去抖動模塊可能會包括信號硬化的步驟,特別是當(dāng)信號跨越不同的時鐘域時。通過在信號路徑中添加一兩級觸發(fā)器實(shí)現(xiàn)。
消抖參數(shù)的配置:去抖動時間閾值(在debouncer模塊中作為FILTER參數(shù)),決定了信號穩(wěn)定所需的最小時間。這個值可以根據(jù)具體應(yīng)用場景調(diào)整,以適應(yīng)不同的物理輸入特性。
3.2模塊間的協(xié)同邏輯與設(shè)計(jì)流程
1.數(shù)據(jù)接收:通過 UART 接收模塊(uart_rx),系統(tǒng)接收來自外部(如藍(lán)牙模塊)的數(shù)據(jù)。
2.命令解析:接收到的數(shù)據(jù)被傳送到命令解析模塊(cmd_parse),在這里進(jìn)行解析和處理。
3.顯示控制:解析后的數(shù)據(jù)根據(jù)需要被發(fā)送到點(diǎn)陣顯示控制模塊(fenpina, gundong, xianshi)或數(shù)碼管顯示模塊(seg7decimal)進(jìn)行可視化展示。
4.數(shù)據(jù)發(fā)送:通過 UART 發(fā)送模塊(uart_tx),系統(tǒng)可以將數(shù)據(jù)發(fā)送到外部設(shè)備(如藍(lán)牙模塊)。
5.信號處理:所有進(jìn)出的信號通過信號處理模塊(meta_harden, debouncer)進(jìn)行穩(wěn)定化和消抖,以確保數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性。
6.時鐘和復(fù)位管理:時鐘生成模塊(clk_gen)和復(fù)位生成模塊(rst_gen)保證系統(tǒng)正常運(yùn)行,提供必要的時鐘和復(fù)位信號。
7.環(huán)回測試:環(huán)回控制模塊(lb_ctl)在調(diào)試過程中用于檢查和驗(yàn)證數(shù)據(jù)的完整性 ?。
4.實(shí)驗(yàn)器材
4.1實(shí)驗(yàn)儀器:
EGO1開發(fā)板,聯(lián)想拯救者Y7000P2021
4.2實(shí)驗(yàn)材料:
面包板一個,8×8點(diǎn)陣塊LG7088BH四個,杜邦線若干
4.3實(shí)驗(yàn)軟件:
Windows10(x86),vivado 2017.4,MATLAB 2023b,pycharm2022,立創(chuàng)EDA網(wǎng)頁版,藍(lán)牙助手微信小程序
5.實(shí)驗(yàn)步驟
1.準(zhǔn)備工作:首先,收集和組裝所有必要的硬件,包括FPGA開發(fā)板、藍(lán)牙模塊、8×8點(diǎn)陣顯示模塊。檢查所有的硬件連接是否正確,保證它們處于工作狀態(tài)。
2.設(shè)計(jì)與編程:根據(jù)項(xiàng)目需求,使用Verilog語言編寫程序。確保程序包含所有必要的模塊,并正確實(shí)現(xiàn)預(yù)定的功能。
3.代碼編譯與仿真:在集成開發(fā)環(huán)境中編譯所寫程序,并執(zhí)行仿真測試,以檢查邏輯正確性和性能指標(biāo)。
4.硬件調(diào)試:將編譯好的程序燒錄到FPGA開發(fā)板上,對硬件進(jìn)行測試和調(diào)試,確保程序在真實(shí)硬件上的有效運(yùn)行。
5.功能測試:啟動藍(lán)牙模塊,測試其與其他設(shè)備的通信功能。同時,檢查8×8點(diǎn)陣模塊是否能夠正確顯示數(shù)據(jù)。
6.性能優(yōu)化:根據(jù)功能測試的結(jié)果,對程序或硬件配置進(jìn)行必要的調(diào)整和優(yōu)化,以提高系統(tǒng)的整體性能和穩(wěn)定性。
7.綜合測試:在所有調(diào)整和優(yōu)化完成后,進(jìn)行全面的系統(tǒng)測試,確保所有模塊協(xié)同工作無誤,系統(tǒng)運(yùn)行平穩(wěn)。
8.文檔記錄:詳細(xì)記錄實(shí)驗(yàn)過程中的每一個步驟,包括遇到的問題和解決方案,以便未來參考和項(xiàng)目的進(jìn)一步開發(fā)。
四、項(xiàng)目實(shí)施
1.系統(tǒng)測試流程
1.1仿真testbench代碼:
????????定義了一個模塊sim2,首先,聲明了一系列輸入和輸出端口,包括時鐘信號(clk_pin)、復(fù)位信號(rst_pin)、接收數(shù)據(jù)信號(rxd_pin)等。然后,在初始化塊中,時鐘被設(shè)置為1,復(fù)位被設(shè)置為0,接收數(shù)據(jù)信號經(jīng)過一系列時間延遲后在不同的時刻被置為0或1。隨后,通過時鐘反轉(zhuǎn)邏輯,每5個時間單位時鐘信號取反一次。最后,該模塊實(shí)例化了bt_uart的模塊,連接了各個輸入和輸出信號。包含了與UART通信相關(guān)的邏輯。
`timescale 1ns / 1ps
module sim2;
reg clk_pin;
reg rst_pin;
reg rxd_pin;
wire txd_pin;
wire lb_sel_pin;
wire bt_pw_on;
wire bt_master_slave;
wire bt_sw_hw;
wire bt_rst_n;
wire bt_sw;
wire [5:0] sw_pin;
wire [6:0] seg7_0_7bit;
wire [6:0] seg7_1_7bit;
wire [3:0] seg7_0_an;
wire [3:0] seg7_1_an;
wire seg7_0_dp;
wire seg7_1_dp;
wire [15:0] led_pins;
wire [15:0] hang;
wire [15:0] lie;
initial
begin
clk_pin = 1'b1;
rst_pin = 1'b0;
rxd_pin = 1'b1;
#1000 rxd_pin = 1'b0;
#8600 rxd_pin = 1'b1;
#8600 rxd_pin = 1'b1;
#8600 rxd_pin = 1'b1;
#8600 rxd_pin = 1'b0;
#8600 rxd_pin = 1'b1;
#8600 rxd_pin = 1'b0;
#8600 rxd_pin = 1'b0;
#8600 rxd_pin = 1'b0;
#8600 rxd_pin = 1'b1;
end
always@( clk_pin)
#5 clk_pin <= ~clk_pin;
bt_uart bt_uart_instance (
clk_pin,
rst_pin,
rxd_pin,
txd_pin,
lb_sel_pin,
bt_pw_on,
bt_master_slave,
bt_sw_hw,
bt_rst_n,
sw_pin,
seg7_0_7bit,
seg7_1_7bit,
seg7_0_an,
seg7_1_an,
seg7_0_dp,
seg7_1_dp,
led_pins,
hang,
lie
);
endmodule
1.2仿真測試結(jié)果圖?
仿真結(jié)果如上圖所示。?
2.系統(tǒng)實(shí)施與調(diào)試
2.1實(shí)施過程
????????該系統(tǒng)實(shí)施過程操作相對簡單,首先連接好電路后,將所寫代碼的比特流文件寫入EGO1當(dāng)中,燒錄完成之后,點(diǎn)陣屏上即可顯示出預(yù)先設(shè)置好的字符,然后使用手機(jī)連接好EGO1的藍(lán)牙之后,通過給藍(lán)牙不同的信號,使得點(diǎn)陣屏上的內(nèi)容發(fā)生改變。
2.2實(shí)施要點(diǎn)
(1)確保四個點(diǎn)陣屏均能夠正常工作,EGO1內(nèi)置藍(lán)牙模塊能正常工作;
(2)EGO1板完好無損,能正常工作;
(3)連接正確的藍(lán)牙設(shè)備;
(4)確保電路圖連接正確。
2.3外圍電路連接圖
????????外圍電路是由EGO1開發(fā)板,四個16*16點(diǎn)陣屏和面包板組成,面包板的作用是將EGO1的IO口引出來,這樣才能實(shí)現(xiàn)點(diǎn)陣屏的共行和共列連接。?
2.4點(diǎn)陣顯示電路
?
圖23 點(diǎn)陣顯示電路
????????點(diǎn)陣顯示電路是將四塊點(diǎn)陣屏按照共行和共列的解法級聯(lián)到一起,然后按照順序拼好而成.
2.5軟件參數(shù)配置
????????char_fifo 模塊作為字符緩沖區(qū),用于處理系統(tǒng)中的字符流。能夠臨時存儲數(shù)據(jù),保證數(shù)據(jù)的有序傳輸和處理。在 UART(通用異步收發(fā)傳輸器)系統(tǒng)中, char_fifo 可用于暫存接收或發(fā)送的字符,確保在數(shù)據(jù)處理和傳輸中的穩(wěn)定性和效率。
2.6故障排除方法
????????故障排除時,需要逐個模塊進(jìn)行分析,觀察該模塊能否正常工作,首先檢查點(diǎn)陣屏是否損壞;之后檢查EGO1板子的IO口是否輸出正常;點(diǎn)陣屏和EGO1的連接是否正確。如果上述模塊均無問題,則考慮代碼是否正確。
2.7系統(tǒng)運(yùn)行操作
(1)正確連接好點(diǎn)陣屏和EGO1開發(fā)板;
(2)在Vivado上編寫好程序,配置好調(diào)用的模塊的軟件部分;
(3)連接板卡,燒錄程序;
(4)觀察點(diǎn)陣屏顯示內(nèi)容;
(5)總結(jié)實(shí)驗(yàn)設(shè)計(jì)過程,撰寫實(shí)驗(yàn)報(bào)告;
2.8實(shí)施效果
2.8.1四個點(diǎn)陣屏滾動顯示
????????程序燒錄好即可顯示成功
2.8.2兩個點(diǎn)陣屏滾動顯示
????????通過修改如下代碼可以實(shí)現(xiàn)只顯示兩個點(diǎn)陣屏
2.8.3滾動速度改變
????????將下面分頻模塊代碼的1Hz更改為10Hz即可改變字符滾動速度
2.8.4滾動方向改變
????????通過修改如下代碼可以實(shí)現(xiàn)字符滾動方向的改變
3.系統(tǒng)工程信息
3.1綜合階段分析:
????????LUT (Look-Up Tables):圖表顯示LUT的使用率約為2%。這意味著當(dāng)前設(shè)計(jì)只使用了可用LUT的很小一部分,表明邏輯復(fù)雜度較低且設(shè)計(jì)被高度優(yōu)化。
????????LUTRAM:本實(shí)驗(yàn)中使用的FPGA芯片允許其LUT資源被用作小容量的隨機(jī)訪問存儲器(RAM)。LUTRAM的使用率為1%,這表明設(shè)計(jì)中使用了一些小的狀態(tài)機(jī)或需要少量的內(nèi)存資源。
????????FF (Flip-Flops):這些是用于存儲一位信息的基本存儲單元。它們在時序邏輯中非常重要,用于實(shí)現(xiàn)寄存器、計(jì)數(shù)器等。FF的使用率為3%,這表明時序邏輯不是資源限制的瓶頸。
????????IO (Input/Output Ports):這些端口用于FPGA與外部世界的通信。IO的使用率是所有資源中最高的,達(dá)到了41%。這指示該設(shè)計(jì)與外部設(shè)備有大量的數(shù)據(jù)交換,需要許多輸入輸出引腳來滿足設(shè)計(jì)要求。
????????BUFG (Global Buffer):BUFGs是用于分配全局時鐘信號或其他高扇出信號的專用資源。BUFG的使用率為6%,這表明設(shè)計(jì)利用了一些全局信號,但仍有較多的全局緩沖資源可供使用。
3.2實(shí)現(xiàn)階段分析
????????LUT (Look-Up Tables):使用率為3%,比綜合階段略高。在實(shí)現(xiàn)階段,LUT的使用率因?yàn)閮?yōu)化算法或物理布局的改變而略有增加。
????????LUTRAM:依然保持1%的利用率,這說明在綜合到實(shí)現(xiàn)階段,對于LUTRAM的需求并沒有顯著變化。
????????FF (Flip-Flops):使用率增加到了4%,這表明在考慮了時序和物理布局后,需要更多的觸發(fā)器來滿足設(shè)計(jì)要求。
????????BRAM (Block RAM):這是一個新出現(xiàn)的資源類型,使用率為1%。BRAM是較大的存儲塊,用于存儲大量數(shù)據(jù)。即使在綜合階段BRAM的使用不明顯,但在實(shí)現(xiàn)階段,具體的存儲需求和布局會導(dǎo)致BRAM的使用。
????????IO (Input/Output Ports):使用率維持在41%,這表明外部接口的需求從綜合到實(shí)現(xiàn)階段沒有變化,設(shè)計(jì)對外部通信的需求依然很高。
????????BUFG (Global Buffer):顯著增加到19%的使用率,這是因?yàn)閷?shí)現(xiàn)階段更細(xì)致的時鐘網(wǎng)絡(luò)設(shè)計(jì)和優(yōu)化所需。
????????MMCM (Mixed-Mode Clock Manager):使用率為2%,MMCM是用于生成、分配和管理時鐘在FPGA內(nèi)部的復(fù)雜資源。這表明設(shè)計(jì)需要多個時鐘域,或者需要對時鐘信號進(jìn)行特殊的處理,如頻率合成或調(diào)整。
????????從實(shí)現(xiàn)階段資源占用率圖可以看出,在實(shí)現(xiàn)階段后,全局緩沖器(BUFG)和混合模式時鐘管理器(MMCM)的使用率有顯著增長,這是由于時鐘網(wǎng)絡(luò)的復(fù)雜性和優(yōu)化需求導(dǎo)致的。此外,F(xiàn)F的輕微增加也指出了時序要求導(dǎo)致更多的存儲元素被使用。LUT和BRAM的使用表明邏輯和存儲需求在實(shí)現(xiàn)階段得到了具體化。
五、項(xiàng)目總結(jié)與心得體會
1.設(shè)計(jì)思路與要點(diǎn):
????????本項(xiàng)目旨在設(shè)計(jì)一個基于藍(lán)牙控制的點(diǎn)陣顯示系統(tǒng)。
????????重點(diǎn)包括點(diǎn)陣驅(qū)動電路的設(shè)計(jì)、FPGA接口的開發(fā),以及藍(lán)牙模塊的集成。
????????系統(tǒng)設(shè)計(jì)考慮了顯示效果的多樣性,支持文本和圖形的顯示。
2.特色與效果:
????????該系統(tǒng)的特色在于其無線控制功能,用戶可以通過藍(lán)牙設(shè)備發(fā)送顯示內(nèi)容。
????????實(shí)現(xiàn)了較高的顯示靈活性和用戶交互性。
3.實(shí)驗(yàn)對學(xué)生的作用:
????????通過這個項(xiàng)目,學(xué)生在電子技術(shù)和系統(tǒng)整合方面得到了實(shí)際的鍛煉。
????????提高了學(xué)生在電路設(shè)計(jì)、編程以及問題解決方面的能力。
????????增強(qiáng)了創(chuàng)新思維和團(tuán)隊(duì)合作能力。
4.存在的問題與改進(jìn)方向:
????????系統(tǒng)可能存在能耗和穩(wěn)定性方面的問題,需要進(jìn)一步優(yōu)化。
????????用戶界面和交互設(shè)計(jì)方面還有提升空間,以提高用戶體驗(yàn)。
????????在技術(shù)上,可以探索更多顯示效果和功能,如動態(tài)圖形顯示等。文章來源:http://www.zghlxwxcb.cn/news/detail-795091.html
????????綜上所述,這個項(xiàng)目不僅提升了學(xué)生在電子技術(shù)領(lǐng)域的實(shí)踐經(jīng)驗(yàn),還激發(fā)了對未來技術(shù)創(chuàng)新的思考,同時也揭示了項(xiàng)目在實(shí)現(xiàn)更高級功能和更好用戶體驗(yàn)方面的潛在改進(jìn)空間。文章來源地址http://www.zghlxwxcb.cn/news/detail-795091.html
到了這里,關(guān)于使用EGO1的FPGA開發(fā)板的基于藍(lán)牙的點(diǎn)陣顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!