• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的多串口通訊設(shè)計(jì)

    2016-07-23 10:18:24張春芳江南大學(xué)江蘇無錫214122安徽工商職業(yè)學(xué)院安徽合肥231131
    關(guān)鍵詞:綜合串口

    張春芳(江南大學(xué),江蘇 無錫 214122;安徽工商職業(yè)學(xué)院,安徽 合肥 231131)

    ?

    基于FPGA的多串口通訊設(shè)計(jì)

    張春芳
    (江南大學(xué),江蘇無錫214122;安徽工商職業(yè)學(xué)院,安徽合肥231131)

    摘要:在工程實(shí)現(xiàn)中,經(jīng)常需要一個(gè)系統(tǒng)與另一個(gè)系統(tǒng)進(jìn)行多串口通信,為此本文設(shè)計(jì)了基于FPGA的串行通訊模塊,詳述了各模塊的設(shè)計(jì)思路和方法.經(jīng)綜合、布局布線后,將程序下載到FPGA芯片中,經(jīng)測試運(yùn)行,數(shù)據(jù)接收正確無誤,模塊工作穩(wěn)定、可靠,通過復(fù)制基本模塊,可滿足需要多個(gè)串口場合的系統(tǒng)要求.

    關(guān)鍵詞:FPGA;串口;綜合;布局布線

    1 前言

    通用異步收發(fā)器因其簡單可靠而被廣泛使用,各種微處理器,不論是單片機(jī)、DSP、ARM等,UART都是基本外圍模塊,許多場合如系統(tǒng)監(jiān)控、數(shù)據(jù)采集、串口服務(wù)器都要用到多個(gè)串口通信,此時(shí)通常采用專用芯片擴(kuò)展串口,專用芯片使用簡單,然而缺乏靈活性,同時(shí)專用芯片集成的串口數(shù)量也有限,有時(shí)需使用多個(gè)芯片才能滿足要求,增加了系統(tǒng)的復(fù)雜度,降低了可靠性.關(guān)于FPGA串口的研究已有文獻(xiàn)[1-5],在此基礎(chǔ)上本文提出了一種基于FPGA串口設(shè)計(jì)方案,由于FPGA的可編程性、豐富的資源,可根據(jù)系統(tǒng)需要,在不用更改系統(tǒng)硬件的條件下,隨時(shí)實(shí)現(xiàn)多個(gè)串口,具有設(shè)計(jì)靈活、升級方便、集成度高等優(yōu)點(diǎn).

    在設(shè)計(jì)一款電磁干擾系統(tǒng)時(shí),系統(tǒng)監(jiān)控分系統(tǒng)需要通過串口對后級的激勵分機(jī)進(jìn)行控制和監(jiān)視,由于電磁干擾系統(tǒng)需要對多個(gè)頻段進(jìn)行全覆蓋,如對講機(jī)、WIFI、遙控器、2G移動通信、3G移動通信等各種頻段進(jìn)行干擾,系統(tǒng)需要多個(gè)激勵分機(jī),這樣就要求監(jiān)控分系統(tǒng)需多個(gè)串口和激勵分機(jī)通信,本系統(tǒng)需要12個(gè)串口,同時(shí)監(jiān)控系統(tǒng)還要和上位機(jī)通過串口通信,又需要1個(gè)串口,市面上無論是8位和32位單片機(jī)均沒有這么多的串口資源.

    為此我們選用由FPGA芯片來實(shí)現(xiàn)多串口的設(shè)計(jì),作為一種高速、靈活、可靠的可編程邏輯器件,不僅提高了系統(tǒng)的集成度、靈活性、可靠性,而且降低了產(chǎn)品的開發(fā)周期和成本.本設(shè)計(jì)的FPGA芯片選用的是Altera公司的CycloneIIFPGA系列中的產(chǎn)品EP2C35F484I8,這種低成本的FPGA芯片功耗大大低于同等容量的其他FPGA,待機(jī)功耗不到200mw,非常適合集成度高和需要低功耗的多種應(yīng)用.

    2 功能模塊設(shè)計(jì)

    2.1UART通訊原理

    UART即通用異步收發(fā)器是一個(gè)字符接一個(gè)字符傳輸,一個(gè)字符的信息由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成,如圖1所示.字符的前面是一位起始位,用時(shí)鐘下降沿通知接收方傳輸開始,緊跟著起始位之后的是數(shù)據(jù)位,一般由5~8位數(shù)據(jù)位組成.數(shù)據(jù)位后面是奇偶校驗(yàn)位,最后是停止位.停止位是高電平標(biāo)志一個(gè)字符的結(jié)束,并為下一個(gè)字符的開始傳送做準(zhǔn)備.停止位后面是不定長度的空閑位.停止位和空閑位都規(guī)定高電平,這樣可以保證起始位開始處有一個(gè)下降沿.方案中采用1位起始位,8位數(shù)據(jù)位,不設(shè)奇偶校驗(yàn)位,1位停止位,波特率可調(diào)的數(shù)據(jù)傳輸方式.

    圖1 串口幀格式

    2.2UART發(fā)送模塊

    圖2右邊是發(fā)送模塊VHDL生成的符號圖,其中writenot為上級模塊加載并行數(shù)據(jù)指示信號,txidle為一字節(jié)發(fā)送完指示信號,通知上一級發(fā)送下一字節(jié)數(shù)據(jù).Writenot、txidle可以說是串口發(fā)送模塊和上一級模塊的握手信號,因?yàn)楸驹O(shè)計(jì)的全局時(shí)鐘為10MHz,而串口的通信波特率一般為4800bps、9600bps、19200bps等速率,遠(yuǎn)低于10M時(shí)鐘速率,故需在發(fā)送模塊和上一級模塊之間建立握手信號. resetnot為全局復(fù)位信號,clk_10m為全局時(shí)鐘,dataout[7..0]為并行數(shù)據(jù)輸入端,txd為串行數(shù)據(jù)輸出端,baudrate[2..0]為發(fā)送模塊的波特率選擇信號.

    圖2 串口發(fā)送模塊符號圖

    發(fā)送模塊在每個(gè)全局時(shí)鐘上升沿檢測是否有加載數(shù)據(jù)指示信號(writenot),若檢測到其上升沿,則將并行8位數(shù)據(jù)鎖存進(jìn)發(fā)送寄存器,接下來在每個(gè)發(fā)送時(shí)鐘(即波特率時(shí)鐘)的觸發(fā)下,8位移位寄存器就可以將其中的數(shù)據(jù)逐次移位發(fā)出,當(dāng)一個(gè)字節(jié)數(shù)據(jù)發(fā)送結(jié)束,txidle反饋一個(gè)脈沖信號,通知上一級模塊(twochanelstxpartmp)可發(fā)送下一字節(jié),這樣依次串行發(fā)送一連串字節(jié)數(shù)據(jù).波特率的選擇計(jì)算如下:以9600bps的波特率為例,需對全局時(shí)鐘進(jìn)行計(jì)數(shù),并對10MHz時(shí)鐘進(jìn)行分頻,得到9600Hz頻率的時(shí)鐘,10MHz/9.6KHz=1042,即對10MHz時(shí)鐘進(jìn)行1042分頻.

    2.3UART接收模塊

    圖3左邊是接收模塊VHDL生成的符號圖,其中resetnot為全局復(fù)位信號,clk_10m為全局時(shí)鐘,baudrate[2..0]為發(fā)送模塊的波特率設(shè)置,dataout [7..0]為并行數(shù)據(jù)輸出端,rxd為串行數(shù)據(jù)輸入端.

    圖3 串口接收模塊符號圖

    UART接收模塊時(shí)時(shí)檢測線路,當(dāng)線路產(chǎn)生下降沿時(shí),即認(rèn)為線路有數(shù)據(jù)傳輸,啟動接收數(shù)據(jù)進(jìn)程進(jìn)行接收,按從低位到高位接收數(shù)據(jù).將接收數(shù)據(jù)的送入8位移位寄存器中,在8比特?cái)?shù)據(jù)采樣結(jié)束后,再間隔16個(gè)采樣周期采樣停止位.如果采樣得到的是高電平,則認(rèn)為該幀數(shù)據(jù)有效,同時(shí)將輸出數(shù)據(jù)標(biāo)識位(rxidle)置高,將移位寄存器中的數(shù)據(jù)并行送出到下一級模塊(rxpartmp)后,重新等待下一幀的到來.

    接收模塊設(shè)計(jì)時(shí),我們用一個(gè)有限狀態(tài)機(jī)來進(jìn)行數(shù)據(jù)的接收判斷,一共有S0、S1、S2、S3、S4、S5、S6、 S7、S8、send等10個(gè)狀態(tài),系統(tǒng)的初始狀態(tài)為S0,當(dāng)接收使能信號rxden為1時(shí),即檢測到數(shù)據(jù)下降沿來臨,將次態(tài)rxstate1置為s1,在下一個(gè)波特率時(shí)鐘上升沿來到時(shí),將次態(tài)rxstate1賦給現(xiàn)態(tài)rxstate0,狀態(tài)轉(zhuǎn)換為s2,依次進(jìn)行狀態(tài)轉(zhuǎn)換,當(dāng)現(xiàn)態(tài)rxstate0為send狀態(tài)時(shí),則模塊將接收到的一字節(jié)數(shù)據(jù)并行送出到下一級模塊(rxpartmp),從而保證了數(shù)據(jù)的完整接收.

    2.4系統(tǒng)測試結(jié)果

    將發(fā)送模塊和接收模塊組合起來,如圖4上圖所示,就能較容易地實(shí)現(xiàn)通用異步收發(fā)器總模塊設(shè)計(jì),如圖所示,再綜合、布局、布線,在PC機(jī)上安裝一個(gè)串口調(diào)試工具,通過串口調(diào)試工具向FPGA發(fā)送一串?dāng)?shù)據(jù),再在PC機(jī)上接受FPGA發(fā)送的數(shù)據(jù).試驗(yàn)結(jié)果顯示串口調(diào)試工具均能正確收到發(fā)送的數(shù)據(jù),QuartusⅡ的SignalTap數(shù)據(jù)采樣結(jié)果如圖4下圖所示,數(shù)據(jù)在輸入端和輸出端是一致的,表明設(shè)計(jì)的串口傳輸可靠、穩(wěn)定.

    圖4 接收發(fā)送總模塊及SignalTap采樣數(shù)據(jù)圖

    3 小結(jié)

    本文詳細(xì)地介紹了FPGA實(shí)現(xiàn)串口的整個(gè)過程,包括發(fā)送模塊、接收模塊的實(shí)現(xiàn).本設(shè)計(jì)可作為FPGA開發(fā)多串口設(shè)備的一個(gè)基本模塊,通過復(fù)制基本模塊,可在一片F(xiàn)PGA芯片上擴(kuò)展出多個(gè)串口,而數(shù)量僅與FPGA可用資源有關(guān),滿足多串口場合的需要,替代采用專用串口芯片的傳統(tǒng)設(shè)計(jì)方案,降低多串口系統(tǒng)的復(fù)雜度,提高系統(tǒng)可靠性.

    參考文獻(xiàn):

    〔1〕沈克寧,林錦瀘,等.基于的多串口服務(wù)器設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào),2011,33(2):204-206.

    〔2〕粟慧龍,肖遼亮.基于CPLD/FPGA的多串口設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,19(2):77-79.

    〔3〕劉鳳新,趙堅(jiān)固.基于FPGA的多路并行獨(dú)立串口的實(shí)現(xiàn) [J].儀表技術(shù)與傳感器,2010,11(6):45-46.

    〔4〕陳志逸,趙敏,等.基于并行控制的FPGA多串口拓展實(shí)現(xiàn) [J].機(jī)械制造與自動化,2014,43(1):124-127.

    〔5〕盧俊文,鄭鷺斌.等,基于IP核的多UART擴(kuò)展及其FPGA實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20 (6):188-191.

    中圖分類號:TP368.1

    文獻(xiàn)標(biāo)識碼:A

    文章編號:1673-260X(2016)06-0027-02

    收稿日期:2016-03-11

    基金項(xiàng)目:2015年安徽省高等學(xué)校自然科學(xué)研究重點(diǎn)項(xiàng)目 (KJ2015A450);2016年安徽省高等學(xué)校自然科學(xué)研究重點(diǎn)項(xiàng)目(KJ2016A081);2016年安徽省高等學(xué)校自然科學(xué)研究一般項(xiàng)目(KJ2016B001)

    猜你喜歡
    綜合串口
    淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
    讓“綜合與實(shí)踐”活動“活”起來
    對動漫藝術(shù)“綜合與表現(xiàn)”領(lǐng)域多元化應(yīng)用形式的探索
    戲劇之家(2016年20期)2016-11-09 23:52:39
    民用飛機(jī)機(jī)電綜合控制技術(shù)研究
    科技視界(2016年22期)2016-10-18 16:05:36
    弘揚(yáng)楊惟義生態(tài)理念 注重綜合立體防害蟲
    USB接口的多串口數(shù)據(jù)并行接收方法探索
    基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
    地礦測繪(2015年3期)2015-12-22 06:27:26
    基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
    武穴市| 井陉县| 龙岩市| 进贤县| 东方市| 黔南| 皮山县| 乌海市| 武平县| 方山县| 绍兴县| 芦溪县| 会昌县| 德兴市| 望江县| 射阳县| 宁海县| 肇东市| 高阳县| 招远市| 辉南县| 同心县| 项城市| 漳平市| 邯郸市| 临武县| 通江县| 永丰县| 玉溪市| 夏邑县| 余庆县| 安福县| 普定县| 花莲县| 内黄县| 邹平县| 绥棱县| 琼海市| 利辛县| 玛沁县| 池州市|