• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2023/12/08
3160
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來(lái)到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡?!爸缶蒲詺g”進(jìn)入IC技術(shù)圈,這里有近50個(gè)IC技術(shù)公眾號(hào)。

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

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

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

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

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

計(jì)劃功能

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

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

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

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

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

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

測(cè)試方法:

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

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

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

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
XC7A15T-2CSG324I 1 AMD Xilinx Field Programmable Gate Array, 1300 CLBs, PBGA324, BGA-324

ECAD模型

下載ECAD模型
$138.91 查看
XC6SLX16-3CSG225I 1 AMD Xilinx Field Programmable Gate Array, 1139 CLBs, 862MHz, 14579-Cell, CMOS, PBGA225, 13 X 13 MM, 0.80 MM PITCH, LEAD FREE, BGA-225
$286.32 查看
EP4CE55F23I8LN 1 Altera Corporation Field Programmable Gate Array, 3491 CLBs, 362MHz, 55856-Cell, PBGA484, 23 X 23 MM, 1 MM PITCH, LEAD FREE, FBGA-484
$173.1 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對(duì)于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。