《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于LX9 Microboard的RS232的wishbone總線控制器設(shè)計(jì)
基于LX9 Microboard的RS232的wishbone總線控制器設(shè)計(jì)
摘要: 基于LX9Microboard的RS232的wishbone總線控制器設(shè)計(jì)前言:對(duì)FPGA的板極調(diào)試,對(duì)于大部分的工程師都是一個(gè)比較麻煩的事。這樣子的事情在開發(fā)的初期階段尤其突顯。我就常常有這樣子的困擾,比如說,對(duì)于一個(gè)SDRA
Abstract:
Key words :

前言:對(duì)FPGA的板極調(diào)試,對(duì)于大部分的工程師都是一個(gè)比較麻煩的事。這樣子的事情在開發(fā)的初期階段尤其突顯。我就常常有這樣子的困擾,比如說,對(duì)于一個(gè)SDRAM,我希望從我的PC發(fā)送一個(gè)指令,可以使得FPGA對(duì)SDRAM進(jìn)行寫操作或者讀操作,對(duì)于我還不是很熟悉的芯片,雖然我拿到硬件,也熟讀了數(shù)據(jù)手冊(cè),但我還是希望可以實(shí)時(shí)配置它,驗(yàn)證它的功能。就這樣子,趁著這個(gè)機(jī)會(huì)設(shè)計(jì)與驗(yàn)證了基于RS232wishbone控制器。

 

對(duì)于PCFPGA通信,首先想到的當(dāng)然是RS232了,即使說它的速度跟性能無法都跟其它的通信方式相比,但是,有兩點(diǎn)讓我們無法舍棄它:簡(jiǎn)單、穩(wěn)定。LX9 Microboard上邊的USB-UART更是使得RS232擺脫了DB9這樣龐大的接口器件以及使你不需要到處去找串口連接線,畢竟現(xiàn)在來說,找一個(gè)串口線比找一個(gè)USB線要困難n倍。對(duì)于FPGA內(nèi)部總線,我當(dāng)然是選擇了wishbone總線,相關(guān)的總線協(xié)議,可以參考資料:Combining WISHBONE interface signals.pdf 百度之即可。推薦中文介紹網(wǎng)頁:

http://www.shangshuwu.cn/index.php/OpenRisc_CPU%E7%9A%84Wishbone%E7%89%87%E4%B8%8A%E6%80%BB%E7%BA%BF

最推薦的方式當(dāng)然是:www.opencores.org 了。

 

一、控制器設(shè)計(jì)框圖:

 

 

 

二、發(fā)送接收方式

其中,每次發(fā)送數(shù)據(jù)之前,發(fā)送幾個(gè)數(shù)據(jù),表明是wishbone總線,我采用的方式是:

 

 

當(dāng)數(shù)據(jù)八位八位的接受了之后,使用狀態(tài)機(jī)提取地址以及數(shù)據(jù)即可。

 

三、仿真

仿真圖如下:使用uartmodel往設(shè)計(jì)模塊寫入地址以及數(shù)據(jù)

32'h0001_0108 , 32'h0000_0041

32'h0001_01ff , 32'h0000_0001

32'h0001_0109 , 32'h0000_00d1

32'h0001_0103 , 32'h0000_0006

32'h0001_0109 , 32'h0000_00c0                                               

32'h0000_0010 , 32'h0000_000E

32'h0000_0011 , 32'h0000_00E8

32'h0000_0012 , 32'h0000_00A8

32'h0000_0013 , 32'h0000_00C8

32'h0000_0014 , 32'h0000_00C6

32'h0000_0015 , 32'h0000_0005

32'h0000_0016 , 32'h0000_00c2

32'h0000_0017 , 32'h0000_0002

 

 

因?yàn)?a class="innerlink" href="http://ihrv.cn/tags/時(shí)間" title="時(shí)間" target="_blank">時(shí)間倉促,接收模塊還沒有怎么寫好,只是實(shí)現(xiàn)了從RS232wishbone總線單向。

 

 

四、板極功能驗(yàn)證:

首先,當(dāng)然要調(diào)通串口啦。安裝USB-UART驅(qū)動(dòng)以及下載驅(qū)動(dòng),這個(gè)直接看開發(fā)板資料就可以了,寫的非常清楚明了。串口測(cè)試是否正常,我是是使用了我很久以前寫的兩個(gè)個(gè)VHDL文件,只有直接發(fā)送模塊,這些模塊,在網(wǎng)絡(luò)上應(yīng)該到處都是。然后分別在電腦串口軟件以及chipscope上觀察數(shù)據(jù)是否正確即可,這個(gè)大家應(yīng)該都蠻熟的了。

然后,把自己曾經(jīng)用到的IP放進(jìn)去。為了方便使用示波器觀察數(shù)據(jù),我把一個(gè)I2C模塊以及一個(gè)SPI配置的DAC ( TLV5626 )的模塊放進(jìn)去,然后輸出到保留引腳上。

下面是應(yīng)用仿真

 

建立工程以及綜合下載那些瑣碎事,就不在這里多扯了。

 

結(jié)果驗(yàn)證:

下面是示波器觀察I2C的結(jié)果:

 

 

可以對(duì)比仿真結(jié)果與示波器的觀察結(jié)果,是一致的。

總結(jié):最近忙的東西比較多,時(shí)間也比較有限,自己對(duì)嵌入式那一塊也不是很熟,所以感覺沒辦怎么用到這個(gè)板子比較高級(jí)的地方,其實(shí),如果可以做一個(gè)網(wǎng)口控制器的話,那就相當(dāng)?shù)?/span>high

 

DB

2011.8.24

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。