RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA實現(xiàn)多路UART/SPI通信系統(tǒng)

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2023-02-20 11:10 ? 次閱讀

第一部分 設(shè)計概述 /Design Introduction

本次的設(shè)計為多路UART/SPI通信系統(tǒng),可以實現(xiàn)一對多的通信。系統(tǒng)可以運行在UART模式,也可以運行在SPI模式。我選擇這一課題的原因主要是目前我所在的實驗室需要寫基于UART的快速通信。這一課題既可以幫助我鞏固之前學(xué)習(xí)的知識,又可以為我后面的項目做準(zhǔn)備。在完成課題的過程中,主要用到了FPGA狀態(tài)機、總線等方面的知識。這一課題可以應(yīng)用在需要高速異步串行或同步串行通信的應(yīng)用場合,如實時控制、監(jiān)測等。

當(dāng)系統(tǒng)運行在UART模式下,可以實現(xiàn)一個發(fā)送端最多向四個接收端發(fā)送信息,且有效信息中包含地址碼,接收端可以根據(jù)發(fā)送端發(fā)送的地址碼判斷該信息是否是發(fā)送給自己的,實現(xiàn)信號線復(fù)用。UART通信簡單,僅需要一根信號線,但是其缺點是只能實現(xiàn)單向通信,接收端無法給發(fā)送端反向發(fā)送數(shù)據(jù)。但是這一缺點也可以通過采用兩個UART系統(tǒng)來彌補。

當(dāng)系統(tǒng)運行在SPI模式下,可以實現(xiàn)一個主機與多個從機之間的通信,且在通信過程中,系統(tǒng)是全雙工的。主機通過選擇性拉低某一個或者某幾個從機的片選信號,實現(xiàn)對于從機的選擇。

ce247f6c-b013-11ed-bfe3-dac502259ad0.png

ce610914-b013-11ed-bfe3-dac502259ad0.png

第二部分 系統(tǒng)組成及功能說明 /System Construction & Function Description

計劃功能

程序?qū)崿F(xiàn)UART和SPI的通信,并可以通過按鍵的方式在兩種模式之間切換。在UART模式下,發(fā)送端給接收端發(fā)送一串?dāng)?shù)據(jù),接收端判斷是否和已知數(shù)據(jù)相符。如果相符則點亮LED,如果不符則不點亮。在SPI模式下,主機給從機、從機給主機同時發(fā)送數(shù)據(jù),若接收到的數(shù)據(jù)和已知數(shù)據(jù)相符,則點亮LED,如果不符,則不點亮。同時,UART和SPI均有尋址功能。UART的尋址方式是在數(shù)據(jù)位前面加兩位地址位,實現(xiàn)對最多四個接收端的區(qū)分;SPI的尋址方式是通過拉低需要選定的從機的SS信號,實現(xiàn)對最多四個接收端的區(qū)分。

目前所有的功能均已實現(xiàn)。最初計劃通信系統(tǒng)在兩個不同的FPGA板上實現(xiàn),但是另外一塊板出了問題,目前只能在一塊板上驗證。發(fā)送端和接收端、主機和從機均寫在一塊板子里,內(nèi)部的通信線也直接用FPGA內(nèi)部的線連接??偟目驁D如下。其中,inst_clkwiz是系統(tǒng)自帶的分頻器,將外部100M的始終編程10M,降低了通信速率,但是可以使通信系統(tǒng)更加穩(wěn)定;inst_SPIpart是SPI通信模塊;inst_UART是UART通信模塊;inst_modeselection是通信模式選擇模塊。

cf127cd0-b013-11ed-bfe3-dac502259ad0.png

SPI內(nèi)部的構(gòu)造如下。其中,inst_SPItop為從機;inst_SPItop1為主機。當(dāng)主機的信號選擇信號為0111時系統(tǒng)中的從機被選中。在主機、從機內(nèi)部, inst_SPImaster為SPI主機端口,inst_SPIslave為SPI從機端口,inst_leddriver為led驅(qū)動電路,負(fù)責(zé)判斷接收到的信號和已知信號是否一致,當(dāng)接收到的信號和一直信號一致時,驅(qū)動LED點亮。

cf488960-b013-11ed-bfe3-dac502259ad0.png

UART部分的框圖如下。其中,inst_UARTtop1為發(fā)送端;inst_UARTtop為接收端。發(fā)送端給接收端發(fā)送數(shù)據(jù)。當(dāng)接收端接收到的數(shù)據(jù)和已知數(shù)據(jù)相同,驅(qū)動LED點亮。

cf7a418a-b013-11ed-bfe3-dac502259ad0.png

第三部分 完成情況及性能參數(shù) /Final Design & Performance Parameters

除了兩塊板相互通信以外,所有的功能均可以在一塊板子上實現(xiàn)。

測試方法:

接通電源后,首先按動RST,對板卡進行復(fù)位,復(fù)位后的通信模式默認(rèn)為UART模式。紅色的LED被點亮。這證明在該模式下,接收端已經(jīng)完整接收到了十位信號,完成了地址的判斷。將接收到的信號傳送給LED驅(qū)動模塊后,經(jīng)過判斷符合已知的8’hbb。LED2信號置位,點亮紅色LED2,而在UART模式下,綠色的LED1不被點亮。綜合以上現(xiàn)象,UART模式可以運行。

按動KEY1,紅色和綠色的LED均被點亮,且綠色LED亮度弱于紅色LED。紅色LED點亮證明主機成功選中從機、發(fā)送給從機數(shù)據(jù)且從機已經(jīng)接收到主機發(fā)來的數(shù)據(jù),且經(jīng)過LED驅(qū)動模塊的判斷,和已知數(shù)據(jù)相符。綠色LED燈點亮證明從機給主機也成功發(fā)送數(shù)據(jù),且也和已知數(shù)據(jù)相符。綠色LED亮度弱于紅色LED的原因是,主機只接了一個從機,因此只有1/4的時間,接收到的信號和已知信號相同,在其他3/4時間中接收到的均為8’bzz,和已知信號不符,不點亮LED。因此亮度更弱。

KEY1,系統(tǒng)又轉(zhuǎn)換到UART模式,綠色LED熄滅,紅色LED點亮。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602977
  • 通信系統(tǒng)
    +關(guān)注

    關(guān)注

    6

    文章

    1187

    瀏覽量

    53324
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1706

    瀏覽量

    91501
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101352
  • 串行通信
    +關(guān)注

    關(guān)注

    4

    文章

    571

    瀏覽量

    35396

原文標(biāo)題:往期精選:基于 FPGA 實現(xiàn)多路UART/SPI通信系統(tǒng)

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA實現(xiàn)多路UART/SPI通信系統(tǒng)

    本次的設(shè)計為多路UART/SPI通信系統(tǒng),可以實現(xiàn)一對多的
    發(fā)表于 10-24 10:55 ?1240次閱讀

    UARTSPI的速度比較

    。SPI協(xié)議比UART顯著更快。UART是一種提供全雙工串行通信的通用協(xié)議如果您使用嵌入式系統(tǒng),那么了解所使用的各種技術(shù)和
    的頭像 發(fā)表于 08-26 08:14 ?3178次閱讀
    <b class='flag-5'>UART</b>和<b class='flag-5'>SPI</b>的速度比較

    什么是串口(UART)?串口的組成和FPGA實現(xiàn)

    串口作為常用的三大低速總線(UART、SPI、IIC)之一,在設(shè)計眾多通信接口和調(diào)試時占有重要地位。
    的頭像 發(fā)表于 01-03 11:43 ?1.5w次閱讀
    什么是串口(<b class='flag-5'>UART</b>)?串口的組成和<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>

    怎么使用FPGA實現(xiàn)SPI總線的通信接口?

    受到限制。因此,我們采用ALTERA公司的FPGA器件設(shè)計SPI總線的通信接口,該總線接口具有高速、配置靈活等優(yōu)點,大大地縮短了系統(tǒng)的開發(fā)周期。
    發(fā)表于 08-09 08:14

    DSP和FPGASPI通信不能實現(xiàn)怎么辦

    用的貴公司的TL138F-EVM A2開發(fā)板。想利用SPI協(xié)議實現(xiàn)FPGA和DSP通信。看了核心板引腳說明 沒有看到FPGA這邊
    發(fā)表于 04-24 06:46

    基于FPGA和TOE架構(gòu)實現(xiàn)多路采集與切換系統(tǒng)的方案

    時間。針對上述研究現(xiàn)狀和分布式采集場景分析,本文介紹了一種基于FPGA和TOE架構(gòu),實現(xiàn)TCP/IP協(xié)議數(shù)據(jù)傳輸?shù)?b class='flag-5'>多路采集與切換系統(tǒng)。該系統(tǒng)
    發(fā)表于 07-12 08:30

    利用FPGA實現(xiàn)UART的設(shè)計

    利用 FPGA 實現(xiàn)UART 的設(shè)計引 言隨著計算機技術(shù)的發(fā)展和廣泛應(yīng)用,尤其是在工業(yè)控制領(lǐng)域的應(yīng)用越來越廣泛,計算機通信顯的尤為重要。串行通信
    發(fā)表于 03-24 09:23 ?49次下載

    異步收發(fā)通信端口(UART)的FPGA實現(xiàn)

    文章介紹了一種在現(xiàn)場可編程門陣列(FPGA)上實現(xiàn)UART 的方法。首先闡述了UART 異步串行通信原理,然后介紹了
    發(fā)表于 08-06 16:24 ?55次下載

    FPGA與CPLD實現(xiàn)UART

    UART 是廣泛使用的串行數(shù)據(jù)通訊電路。本設(shè)計包含UART 發(fā)送器、接收器和波特率發(fā)生器。設(shè)計應(yīng)用EDA 技術(shù),基于FPGA/CPLD 器件設(shè)計與實現(xiàn)
    發(fā)表于 12-17 00:15 ?59次下載
    <b class='flag-5'>FPGA</b>與CPLD<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>UART</b>

    如何使用FPGA和ARM設(shè)計和實現(xiàn)多路視頻采集系統(tǒng)

    提出了一種基于FPGA+ARM的多路視頻采集系統(tǒng)的設(shè)計與實現(xiàn)方法。該視頻采集系統(tǒng)不僅能對多路快速
    發(fā)表于 11-19 15:51 ?21次下載
    如何使用<b class='flag-5'>FPGA</b>和ARM設(shè)計和<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>多路</b>視頻采集<b class='flag-5'>系統(tǒng)</b>

    使用FPGA和模塊化設(shè)計方法實現(xiàn)UART的設(shè)計論文

    UART作為RS232協(xié)議的控制接口得到了廣泛的應(yīng)用,將UART的功能集成到FPGA芯片中,可使整個系統(tǒng)更為靈活、緊湊,減小整個電路的體積,提高系統(tǒng)
    發(fā)表于 07-07 17:28 ?10次下載
    使用<b class='flag-5'>FPGA</b>和模塊化設(shè)計方法<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>UART</b>的設(shè)計論文

    基于FPGAUART模塊設(shè)計與實現(xiàn)簡介

    基于FPGAUART模塊設(shè)計與實現(xiàn)介紹說明。
    發(fā)表于 06-01 09:43 ?20次下載

    基于FPGASPI協(xié)議及設(shè)計實現(xiàn)

    基于FPGASPI協(xié)議及設(shè)計實現(xiàn)博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨詢,歡迎大家前來投稿,謝謝!引言介紹在電子通信領(lǐng)域里采用的
    發(fā)表于 11-05 19:05 ?24次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SPI</b>協(xié)議及設(shè)計<b class='flag-5'>實現(xiàn)</b>

    FPGA實現(xiàn)SPI

    FPGA實現(xiàn)SPI協(xié)議
    發(fā)表于 03-20 10:35 ?2次下載

    UARTSPI、I2C比較 串口通信介紹

    ,較少用于遠距離通信。 SPI實現(xiàn)要簡單一些,UART需要固定的波特率,就是說兩位數(shù)據(jù)的間隔要相等,而SPI則無所謂,因為它是有時鐘的協(xié)議。
    的頭像 發(fā)表于 11-09 18:06 ?1389次閱讀
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、I2C比較 串口<b class='flag-5'>通信</b>介紹
    RM新时代网站-首页