在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA技術(shù)實(shí)現(xiàn)與PC串行通信

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

            作者: 時(shí)間:2009-05-26 來(lái)源:網(wǎng)絡(luò) 收藏

            控制模塊

            本文引用地址:http://www.biyoush.com/article/192024.htm

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



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

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

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

            仿真結(jié)果

            基本的發(fā)送接收如圖4所示,clk是時(shí)鐘信號(hào)(57600 bit/s);start_xmit是開(kāi)始發(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ù)通過(guò)sout端口串行發(fā)送。


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

            接收:判斷接收的串行數(shù)據(jù)sin是否是連續(xù)的兩個(gè)0,如果是則進(jìn)入接收過(guò)程;每?jī)蓚€(gè)時(shí)鐘周期接收1個(gè)比特的數(shù)據(jù),依次接收到01101010,如果接收到停 止位表明這個(gè)接收過(guò)程結(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ā)送過(guò)程;首先發(fā)送兩個(gè)起始位0,保證長(zhǎng)度為兩個(gè)時(shí)鐘周期,然后依次發(fā)送01101010,每?jī)蓚€(gè)時(shí)鐘周期發(fā)送1比特,最后發(fā)送停止位,發(fā)送過(guò)程結(jié)束xmit_bit為1。

            發(fā)送控制字

            圖5中clk是時(shí)鐘信號(hào);a是PC發(fā)來(lái)的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í)鐘、讀、寫(xiě)、清零信號(hào);start_xmit是發(fā)送開(kāi)始標(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讀寫(xiě)狀態(tài)的控制。



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

            從FIFO中讀寫(xiě)數(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í)鐘、寫(xiě)、讀使能。讀過(guò)程:讀使能有效,先產(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é)議通過(guò)SOUT發(fā)送出去,發(fā)送結(jié)束再產(chǎn)生一個(gè)讀時(shí)鐘,讀取FIFO的數(shù)據(jù),進(jìn)行下一次串行輸出。



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

            結(jié)語(yǔ)

            隨著可編程器件的不斷發(fā)展和廣泛應(yīng)用,與外圍設(shè)備的通信也越來(lái)越多。本文介紹的的實(shí)現(xiàn)具有可復(fù)制性,只需改變系統(tǒng)時(shí)鐘頻率和控制模塊就可以在其他場(chǎng)合下使用。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉