91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-08-02 08:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、概述

在基于FPGA的SOC設(shè)計(jì)中,常使用串口作為通信接口,但直接用FPGA進(jìn)行串口通信數(shù)據(jù)的處理是比較繁雜的,特別是直接使用FPGA進(jìn)行串口通信的協(xié)議的解釋和數(shù)據(jù)打包等處理,將會(huì)消耗大量的FPGA硬件資源。為簡(jiǎn)化設(shè)計(jì),降低硬件資源開(kāi)銷,可以在FPGA中利用IP核實(shí)現(xiàn)的嵌入式微處理器來(lái)對(duì)串口數(shù)據(jù)進(jìn)行處理。

本文中的設(shè)計(jì)采用了XILINX的FPGA,可選用的嵌入式微處理器IP核種類繁多,但基于對(duì)硬件資源開(kāi)銷最少的考慮,最終選用了Picoblaze。

嵌入式微處理器PicoBlaze適用于Spartan-II/E、CoolRunner-II和Virtex系列FPGA,運(yùn)行速度可達(dá)到40MIPS以上,提供49個(gè)不同的指令,16個(gè)寄存器,256個(gè)地址端口,1個(gè)可屏蔽的中斷。其性能超過(guò)了傳統(tǒng)的8bit微處理器。

Picoblaze使用靈活,但其缺點(diǎn)是可尋址的存儲(chǔ)空間非常有限,因此為滿足實(shí)際需要本文同時(shí)也提出了使用片外SDRAM器件對(duì)其存儲(chǔ)能力進(jìn)行擴(kuò)展的設(shè)計(jì)方法。

2、串口收發(fā)接口設(shè)計(jì)

2.1串口收發(fā)接口硬件設(shè)計(jì)

嵌入式微處理器PicoBlaze本身并不具備串行接口,因此必須在FPGA中設(shè)計(jì)串口接收和發(fā)送模塊并通過(guò)總線結(jié)構(gòu)與Picoblaze連接。

串口接收和發(fā)送模塊的設(shè)計(jì)可采用成熟的IP核。實(shí)際設(shè)計(jì)中采用了XLINX的串口收發(fā)IP核,其特點(diǎn)是串口波特率,符號(hào)規(guī)則都可以靈活地定制,同時(shí)具有16字節(jié)的接收FIFO和16字節(jié)的發(fā)送FIFO。

使用Picoblaze和串口收發(fā)IP核構(gòu)成的串口收發(fā)系統(tǒng)結(jié)構(gòu)見(jiàn)圖1。

在設(shè)計(jì)中,發(fā)送模塊、接收模塊和標(biāo)志寄存器分別有不同的地址,Picoblaze通過(guò)地址端口對(duì)串口收發(fā)模塊進(jìn)行訪問(wèn)。設(shè)計(jì)中的標(biāo)志寄存器,可用于指示發(fā)送模塊和接收模塊中FIFO的狀態(tài),Picoblaze通過(guò)查詢標(biāo)志寄存器來(lái)完成對(duì)串口數(shù)據(jù)的收發(fā)控制。

2.2串口收發(fā)接口軟件設(shè)計(jì)

串口發(fā)送、接收子程序

Picoblaze通過(guò)對(duì)標(biāo)志寄存器的查詢,根據(jù)FIFO的狀態(tài)進(jìn)行操作。串口發(fā)送和接收子程序流程見(jiàn)圖2。

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

Picoblaze的編程,類似于匯編語(yǔ)言。

串口發(fā)送子程序代碼如下:

(1)串口接收子程序

receive:

INPUT s0,uartrxflag;查詢接收FIFO是否非空

AND s0,01

AND s0,s0

JUMP Z,receive;若FIFO為空時(shí)繼續(xù)查詢

INPUT rxdata,uartrx;若FIFO非空時(shí)讀取數(shù)據(jù)

RETURN

(2)串口接收子程序

translate:

INPUT s0,uarttxflag;查詢發(fā)送FIFO是否為空

AND s0,01

AND s0,s0

JUMP NZ,translate;若發(fā)送FIFO非空時(shí)繼續(xù)查詢

OUTPUTtxdata,uarttx;若發(fā)送FIFO為空時(shí)寫入數(shù)據(jù)

RETURN

協(xié)議處理子程序

本文應(yīng)用中的串口通信,采用應(yīng)答機(jī)制,數(shù)據(jù)具有一定的幀結(jié)構(gòu),Picoblaze需要對(duì)命令幀進(jìn)行拆包處理,并根據(jù)幀的內(nèi)容進(jìn)行相應(yīng)的操作,然后發(fā)送響應(yīng)幀。

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

根據(jù)幀格式,Picoblaze對(duì)串口數(shù)據(jù)的處理流程見(jiàn)圖3。

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

以上的Picoblaze程序流程所處理的數(shù)據(jù)幀結(jié)構(gòu)是較為簡(jiǎn)單的,當(dāng)需要處理復(fù)雜的通信協(xié)議時(shí)可以考慮采用多個(gè)Picoblaze并行處理。

3存儲(chǔ)器接口設(shè)計(jì)

Picoblaze的優(yōu)點(diǎn)是資源占用少,使用靈活,但可尋址的地址空間最多為256字節(jié),無(wú)法滿足對(duì)大量通信數(shù)據(jù)進(jìn)行存儲(chǔ)的需要。因此本文中采用了SDRAM器件來(lái)對(duì)Picoblaze的存儲(chǔ)能力進(jìn)行擴(kuò)展。

SDRAM器件的管腳分為控制信號(hào)、地址和數(shù)據(jù)三類。通常一個(gè)SDRAM中包含幾個(gè)BANK,每個(gè)BANK的存儲(chǔ)單元是按行和列尋址的。SDRAM的具體特性見(jiàn)參考文獻(xiàn)[3]。

SDRAM在使用時(shí)需要專用的控制器來(lái)產(chǎn)生滿足SDRAM所需的信號(hào)。FPGA中SDRAM控制器也有多種IP核可以選用。出于對(duì)設(shè)計(jì)通用性的考慮,本文中采用了一款Altera提供的SDRAM控制器IP核,并增加了必要的設(shè)計(jì)以滿足與Picoblaze的接口要求。SDRAM控制器IP核的功能、原理見(jiàn)參考文獻(xiàn)[4]。

對(duì)Picoblaze與SDRAM控制器的接口設(shè)計(jì)有以下幾個(gè)出發(fā)點(diǎn):

總線匹配

Picoblaze為8位處理器,數(shù)據(jù)線僅8bit,而SDRAM控制器總線寬度與SDRAM相同,可以為8、16或32bit。因此對(duì)于SDRAM控制器的數(shù)據(jù)Picoblaze必須以字節(jié)為單位進(jìn)行處理。

地址控制

Picoblaze地址線僅8位,無(wú)法直接對(duì)SDRAM進(jìn)行尋址。因此Picoblaze對(duì)SDRAM的尋址可借鑒先入先出存儲(chǔ)器FIFO的設(shè)計(jì),即設(shè)計(jì)專門的地址計(jì)數(shù)器,通過(guò)地址計(jì)數(shù)器實(shí)現(xiàn)對(duì)SDRAM的尋址。

時(shí)序匹配

Picoblaze的運(yùn)行速度不超過(guò)40MHz,而SDRAM的工作速度通常大于100MHz。因此為了滿足SDRAM的時(shí)序要求,要增加必要的緩沖機(jī)制。

3.1存儲(chǔ)器接口硬件設(shè)計(jì)

Picoblaze與SDRAM存儲(chǔ)器接口的硬件原理框圖見(jiàn)圖4。

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

控制狀態(tài)機(jī)控制的地址計(jì)數(shù)器為SDRAM控制器提供地址,同時(shí)控制狀態(tài)機(jī)還控制輸入數(shù)據(jù)緩沖區(qū)和輸出數(shù)據(jù)緩沖區(qū),并且根據(jù)Picoblaze的地址端口數(shù)據(jù)和讀/寫使能信號(hào)產(chǎn)生SDRAM控制器的命令字。

(1)SDRAM初始化

每次加電或復(fù)位后控制狀

態(tài)機(jī)執(zhí)行對(duì)SDRAM控制器的初始化操作,設(shè)置SDRAM的時(shí)間參數(shù)和刷新周期等。

(2)數(shù)據(jù)寫入SDRAM

輸出數(shù)據(jù)緩沖區(qū)由16×8bit的FIFO構(gòu)成,當(dāng)Picoblaze向輸出數(shù)據(jù)緩沖區(qū)寫入超過(guò)8個(gè)字節(jié)后,通過(guò)“半滿”信號(hào)使控制狀態(tài)機(jī)進(jìn)入SDRAM的長(zhǎng)度為8的突發(fā)寫模式,在寫入完成后控制狀態(tài)機(jī)將地址計(jì)數(shù)器增加8,以準(zhǔn)備好下一次的寫入。

(3)數(shù)據(jù)讀取

數(shù)據(jù)讀取時(shí)Picoblaze首先向控制狀態(tài)機(jī)發(fā)送讀取請(qǐng)求,控制狀態(tài)機(jī)進(jìn)入SDRAM的長(zhǎng)度為1的突發(fā)讀模式,并將讀取的數(shù)據(jù)寫入輸入數(shù)據(jù)緩沖區(qū),此后Picoblaze再由輸入數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù)。在讀取后,地址計(jì)數(shù)器做相應(yīng)的增加,以實(shí)現(xiàn)先入先出功能。

以上的設(shè)計(jì)方法適用于需要數(shù)據(jù)連續(xù)寫入后再連續(xù)讀取的場(chǎng)合。

控制狀態(tài)機(jī)狀態(tài)圖見(jiàn)圖5。

在FPGA中利用IP核實(shí)現(xiàn)SOC系統(tǒng)中的串口收發(fā)接口的設(shè)計(jì)

3.2存儲(chǔ)器接口軟件設(shè)計(jì)

由于在SDRAM控制器與Picoblaze之間增加了控制狀態(tài)機(jī),簡(jiǎn)化了Picoblaze的程序設(shè)計(jì)。

(1)數(shù)據(jù)寫入

數(shù)據(jù)寫入時(shí)Picoblaze向輸出數(shù)據(jù)緩沖區(qū)直接寫入數(shù)據(jù)即可。

(2)數(shù)據(jù)讀取

數(shù)據(jù)讀取時(shí)Picoblaze首先向控制狀態(tài)機(jī)發(fā)出請(qǐng)求,然后等待輸入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)準(zhǔn)備就續(xù)后再讀取。

4結(jié)論

本文在XILINX FPGA中采用嵌入式處理器Picoblaze進(jìn)行SOC設(shè)計(jì),以較少的硬件資源實(shí)現(xiàn)了對(duì)串口通信數(shù)據(jù)的處理,同時(shí)采用SDRAM器件對(duì)Picoblaze的存儲(chǔ)能力進(jìn)行擴(kuò)展。所采用的設(shè)計(jì)已應(yīng)用于多個(gè)產(chǎn)品中。經(jīng)過(guò)了長(zhǎng)期的使用和測(cè)試證明文中的設(shè)計(jì)方法穩(wěn)定、可靠,并且具有資源占用少,設(shè)計(jì)靈活的優(yōu)點(diǎn)。


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

    關(guān)注

    1660

    文章

    22412

    瀏覽量

    636303
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334040
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2431

    瀏覽量

    85843
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA利用DMA IP核實(shí)現(xiàn)ADC數(shù)據(jù)采集

    DMA IP核來(lái)實(shí)現(xiàn)高效數(shù)據(jù)傳輸?shù)牟襟E,包括創(chuàng)建項(xiàng)目、配置ADC接口、添加和連接DMA IP核、設(shè)計(jì)控制邏輯、生成比特流、軟件開(kāi)發(fā)及系統(tǒng)集成
    的頭像 發(fā)表于 07-29 14:12 ?5103次閱讀

    USB_OTG_IPAMBA接口的設(shè)計(jì)與FPGA實(shí)現(xiàn)

    USB_OTG_IPAMBA接口的設(shè)計(jì)與FPGA實(shí)現(xiàn)
    發(fā)表于 08-06 11:40

    利用FPGA自帶的IP核實(shí)現(xiàn)雙口RAM用于2片MCU進(jìn)行數(shù)據(jù)交換時(shí)多次讀數(shù)據(jù)后RAM數(shù)據(jù)變?yōu)榱?

    利用FPGA自帶的IP核實(shí)現(xiàn)雙口RAM用于2片MCU進(jìn)行數(shù)據(jù)交換時(shí)多次讀數(shù)據(jù)后RAM數(shù)據(jù)變?yōu)榱?,是什么意思,打什么幫幫忙?。。。。。。?!
    發(fā)表于 01-15 16:22

    開(kāi)放核協(xié)議:IPSoC設(shè)計(jì)接口技術(shù)

    本文介紹了IP核的概念及其SoC設(shè)計(jì)的應(yīng)用,討論了為提高IP核的復(fù)用能力而采用的IP核與
    發(fā)表于 12-11 11:07

    采用IP核實(shí)現(xiàn)PCI總線接口設(shè)計(jì)

    消息。ICMP回復(fù)消息經(jīng)常被用來(lái)調(diào)用ping程序測(cè)試對(duì)方主機(jī)是否在線。嵌入式TCP/IP協(xié)議棧,ICMP回送消息用一種十分簡(jiǎn)單的方式實(shí)現(xiàn),即將ICMP類型的字段由echo類型改變?yōu)?/div>
    發(fā)表于 04-23 07:00

    采用IP核實(shí)現(xiàn)PCI總線接口設(shè)計(jì)

    嵌入式操作系統(tǒng) 和欣操作系統(tǒng)基于微內(nèi)核,服務(wù)動(dòng)態(tài)加載。內(nèi)核包括硬件驅(qū)動(dòng)(串口、USB、以太網(wǎng)卡、無(wú)線通信模塊)、內(nèi)存管理等系統(tǒng)基本服務(wù),如圖1所示。TCP/
    發(fā)表于 04-28 09:57

    求一種基于FPGASOC系統(tǒng)串口設(shè)計(jì)

    本文XILINX FPGA采用嵌入式處理器Picoblaze進(jìn)行SOC設(shè)計(jì),以較少的硬件資源實(shí)現(xiàn)了對(duì)
    發(fā)表于 04-29 06:22

    搭建一個(gè)SoC下載到FPGA開(kāi)發(fā)板設(shè)計(jì)實(shí)現(xiàn)

    SoC下載到安路FPGA開(kāi)發(fā)板,并編寫簡(jiǎn)單的匯編代碼,利用KeilSoC平臺(tái)上進(jìn)行調(diào)試運(yùn)行。
    發(fā)表于 08-09 17:09

    測(cè)控系統(tǒng)中用IP 核實(shí)現(xiàn)D/A 轉(zhuǎn)換

    采用數(shù)字化技術(shù), 測(cè)控系統(tǒng)中用IP 核實(shí)現(xiàn)D/A 轉(zhuǎn)換,并且1 片可編程邏輯器件
    發(fā)表于 04-16 08:51 ?11次下載

    測(cè)控系統(tǒng)中用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換

    采用數(shù)字化技術(shù), 測(cè)控系統(tǒng)中用IP 核實(shí)現(xiàn)D/A 轉(zhuǎn)換,并且1 片可編程邏輯器件
    發(fā)表于 05-15 15:09 ?12次下載

    基于FPGASOC系統(tǒng)串口設(shè)計(jì)

    基于FPGASOC 系統(tǒng)串口設(shè)計(jì) 作者:葛銳 歐鋼摘要:本文XILINX
    發(fā)表于 02-08 09:48 ?21次下載

    測(cè)控系統(tǒng)中用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換

    摘要:采用數(shù)字化技術(shù)、測(cè)控系統(tǒng)中用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換,并且1片可編程邏輯器件
    發(fā)表于 06-20 15:04 ?1235次閱讀
    <b class='flag-5'>在</b>測(cè)控<b class='flag-5'>系統(tǒng)</b>中用<b class='flag-5'>IP</b><b class='flag-5'>核實(shí)現(xiàn)</b>D/A轉(zhuǎn)換

    W5100FPGA系統(tǒng)實(shí)現(xiàn)TCP_IP網(wǎng)絡(luò)通信

    介紹了W5100現(xiàn)場(chǎng)可編程門陣列(FPGA)系統(tǒng)實(shí)現(xiàn)TCP/IP網(wǎng)絡(luò)通信的方法。描述了W51
    發(fā)表于 04-24 15:13 ?297次下載
    W5100<b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b>TCP_<b class='flag-5'>IP</b>網(wǎng)絡(luò)通信

    IPSoC設(shè)計(jì)接口技術(shù)解析

    接口標(biāo)準(zhǔn),因此,開(kāi)發(fā)統(tǒng)一的IP接口標(biāo)準(zhǔn)對(duì)提高IP核的復(fù)用意義重大。本文簡(jiǎn)單介紹IP核概念,然后從接口
    發(fā)表于 11-06 11:30 ?0次下載
    <b class='flag-5'>IP</b>核<b class='flag-5'>在</b><b class='flag-5'>SoC</b>設(shè)計(jì)<b class='flag-5'>中</b>的<b class='flag-5'>接口</b>技術(shù)解析

    如何使用FPGA進(jìn)行仿真系統(tǒng)數(shù)據(jù)采集控制器IP核設(shè)計(jì)的資料概述

    介紹了大型工業(yè)模擬仿真系統(tǒng)利用FPGA和軟IP核實(shí)現(xiàn)
    發(fā)表于 11-07 11:14 ?20次下載
    如何使用<b class='flag-5'>FPGA</b>進(jìn)行仿真<b class='flag-5'>系統(tǒng)</b>數(shù)據(jù)采集控制器<b class='flag-5'>IP</b>核設(shè)計(jì)的資料概述