国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

基于FPGA技術(shù)實(shí)現(xiàn)與PC串行通信

發(fā)布時(shí)間:2011-1-23 22:30    發(fā)布者:conniede
關(guān)鍵詞: FPGA , PC , 通信
1 引言

串行通信即串行數(shù)據(jù)傳輸,實(shí)現(xiàn)FPGA與PC的串行通信在實(shí)際中,特別是在FPGA的調(diào)試中有著很重要的應(yīng)用。調(diào)試過程一般是先進(jìn)行軟件編程仿真,然后將程序下載到芯片中驗(yàn)證設(shè)計(jì)的正確性,目前還沒有更好的工具可以在下載后實(shí)時(shí)地對(duì)FPGA的工作情況和數(shù)據(jù)進(jìn)行分析。通過串行通信,可以向FPGA發(fā)控制命令讓其執(zhí)行相應(yīng)的操作,同時(shí)把需要的數(shù)據(jù)通過串口發(fā)到PC上進(jìn)行相應(yīng)的數(shù)據(jù)處理和分析,以此來判斷FPGA是否按設(shè)計(jì)要求工作。這樣給FPGA的調(diào)試帶來了很大方便,在不需要DSP等其他額外的硬件條件下,只通過串口就可以完成對(duì)FPGA的調(diào)試。本文采用QuartusⅡ3.0開發(fā)平臺(tái),使用Altera公司的FPGA,設(shè)計(jì)實(shí)現(xiàn)了與PC的串行通信。

2 總體設(shè)計(jì)

主要設(shè)計(jì)思想:PC向串口發(fā)送命令,F(xiàn)PGA通過判斷接收的控制字執(zhí)行相應(yīng)的操作,總體框圖如圖1所示。


圖1 總體框圖

設(shè)計(jì)包括三部分:

1)、通過向I/O端口發(fā)送高低電平以達(dá)到控制外部硬件的要求。

2)、完成芯片內(nèi)部邏輯的變化。

3)、將需要的數(shù)據(jù)先存起來(一般采用內(nèi)部或外部FIFO),然后通過串口將數(shù)據(jù)發(fā)送到PC,PC將接收的數(shù)據(jù)進(jìn)行處理和分析。串口采用標(biāo)準(zhǔn)的RS-232協(xié)議,主要參數(shù)的選擇:波特率28800bit/s、8位有效位、無奇偶校驗(yàn)位、1位停止位。

3 FPGA中各模塊的實(shí)現(xiàn)

3.1 分頻模塊

設(shè)計(jì)中需要將3.6864MHz的時(shí)鐘進(jìn)行64分頻變?yōu)?7600 波特作為其他模塊的時(shí)鐘基準(zhǔn)。具體實(shí)現(xiàn)時(shí)采用一個(gè)6位計(jì)數(shù)器,將計(jì)數(shù)器的溢出作為時(shí)鐘的輸出即可實(shí)現(xiàn)整數(shù)分頻。

3.2 發(fā)送接收模塊

此模塊是整個(gè)設(shè)計(jì)的核心部分。設(shè)計(jì)流程如圖2所示。


圖2 發(fā)送接收流程圖

在串行通信中,無論發(fā)送或接收,都必須有時(shí)鐘脈沖信號(hào)對(duì)所傳送的數(shù)據(jù)進(jìn)行定位和同步控制,設(shè)計(jì)中采用的時(shí)鐘頻率是波特率的兩倍(57600 bit/s)。接收過程:初始狀態(tài)是等待狀態(tài),當(dāng)檢測(cè)到0時(shí)進(jìn)入檢驗(yàn)狀態(tài),在檢驗(yàn)狀態(tài)下如果再檢測(cè)到0則進(jìn)入接收數(shù)據(jù)狀態(tài),當(dāng)接收完8位比特?cái)?shù)后判斷是否有停止位,如果有則結(jié)束接收過程重新進(jìn)入等待狀態(tài)。發(fā)送過程:初始狀態(tài)是等待狀態(tài),當(dāng)接收到開始發(fā)送的信號(hào)則進(jìn)入發(fā)送過程,先發(fā)送起始位,再發(fā)送8位比特?cái)?shù),每位寬度為2個(gè)周期,當(dāng)一個(gè)字節(jié)發(fā)送完畢后發(fā)送一個(gè)停止位,發(fā)送結(jié)束,重新回到等待狀態(tài)。

3.3 控制模塊

主要實(shí)現(xiàn)的功能是:判斷從PC接收的數(shù)據(jù),根據(jù)預(yù)先設(shè)計(jì)的邏輯進(jìn)行相應(yīng)的狀態(tài)轉(zhuǎn)換。例如:給端口預(yù)置一個(gè)狀態(tài);送開始發(fā)送的標(biāo)志位,送準(zhǔn)備發(fā)送的數(shù)據(jù);給DDS送配置信號(hào),控制FIFO的讀寫。程序中狀態(tài)機(jī)設(shè)計(jì)如圖3所示。



圖3 狀態(tài)機(jī)變換



4 設(shè)計(jì)中需要注意的問題

波特率的選擇對(duì)于串口通信是很重要的,波特率不應(yīng)太大,這樣數(shù)據(jù)才會(huì)更穩(wěn)定。整個(gè)發(fā)送接收過程中起始位的判別和發(fā)送是數(shù)據(jù)傳輸?shù)那疤帷榱吮苊庹`碼的產(chǎn)生,在FPGA設(shè)計(jì)中的串行輸入和輸出端口都應(yīng)該加上一個(gè)數(shù)據(jù)鎖存器。

5 仿真結(jié)果

基本的發(fā)送接收如圖4所示,clk是時(shí)鐘信號(hào)(57600 bit/s);start_xmit是開始發(fā)送標(biāo)志位;sin是串行輸入;datain是并行輸出;read_bit是接收結(jié)束標(biāo)志位;xmit_bit是發(fā)送結(jié)束標(biāo)志位;sout是串行輸出;dataout是并行輸出;rcv_bit 是接收位數(shù)寄存器。發(fā)送接收模塊主要完成把從sin端口接收的串行數(shù)據(jù)變?yōu)椴⑿袛?shù)據(jù)送給dataout;把并行數(shù)據(jù)datain變成串行數(shù)據(jù)通過sout端口串行發(fā)送。


圖4 發(fā)送接收過程

接收:判斷接收的串行數(shù)據(jù)sin是否是連續(xù)的兩個(gè)0,如果是則進(jìn)入接收過程;每?jī)蓚(gè)時(shí)鐘周期接收1個(gè)比特的數(shù)據(jù),依次接收到01101010,如果接收到停 止位表明這個(gè)接收過程結(jié)束read_bit=1。根據(jù)串行通信協(xié)議,數(shù)據(jù)是按照先低位,后高位的順序發(fā)送的,所以實(shí)際接收的是01010110。發(fā)送:待發(fā)送的并行數(shù)據(jù)為01010110,當(dāng)start_xmit=1發(fā)送有效,進(jìn)入發(fā)送過程;首先發(fā)送兩個(gè)起始位0,保證長(zhǎng)度為兩個(gè)時(shí)鐘周期,然后依次發(fā)送01101010,每?jī)蓚(gè)時(shí)鐘周期發(fā)送1比特,最后發(fā)送停止位,發(fā)送過程結(jié)束xmit_bit為1。

5.1 發(fā)送控制字

圖5中clk是時(shí)鐘信號(hào);a是PC發(fā)來的16進(jìn)制的控制字,也就是圖4中的并行輸出dataout; ma1cnt、ma2cnt、ma3cnt是三個(gè)寄存器;clrr是系統(tǒng)清零信號(hào);ddsclr是DDS配置信號(hào);fifo_clk,fifo_rd,fifo_wr,ram_rst是FIFO的時(shí)鐘、讀、寫、清零信號(hào);start_xmit是發(fā)送開始標(biāo)志位;b是準(zhǔn)備發(fā)送的數(shù)據(jù)。當(dāng)接收a為1時(shí),fifo_wr置1;當(dāng)a為18時(shí),把ma1cnt的值送到b。其他的操作類似,主要是端口的置位,F(xiàn)IFO讀寫狀態(tài)的控制。



圖5 發(fā)送控制字過程

5.2 從FIFO中讀寫數(shù)據(jù)

圖6中SER_CLOCK是系統(tǒng)時(shí)鐘3.6864MHz,sa是分頻后的頻率57600bit/s;SIN是串行輸入;data是準(zhǔn)備輸出的數(shù)據(jù);SOUT是串行輸出;fifoclk、fifowr、fiford是FIFO的讀時(shí)鐘、寫、讀使能。讀過程:讀使能有效,先產(chǎn)生6個(gè)讀時(shí)鐘,但是不往SOUT發(fā)送數(shù)據(jù),因?yàn)镕IFO的前6個(gè)周期不是有效數(shù)據(jù)。然后產(chǎn)生一個(gè)讀時(shí)鐘,將FIFO的數(shù)據(jù)送到data,按照通信協(xié)議通過SOUT發(fā)送出去,發(fā)送結(jié)束再產(chǎn)生一個(gè)讀時(shí)鐘,讀取FIFO的數(shù)據(jù),進(jìn)行下一次串行輸出。



圖6 從FIFO讀數(shù)據(jù)的過程

6 結(jié)語

隨著可編程器件的不斷發(fā)展和廣泛應(yīng)用,F(xiàn)PGA與外圍設(shè)備的通信也越來越多。本文介紹的串行通信的實(shí)現(xiàn)具有可復(fù)制性,只需改變系統(tǒng)時(shí)鐘頻率和控制模塊就可以在其他場(chǎng)合下使用。
本文地址:http://m.4huy16.com/thread-50649-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Microchip第22屆中國技術(shù)精英年會(huì)上海首站開幕
  • 常見深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會(huì)深圳站回顧
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會(huì)圓滿收官!
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表