<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于SOPC技術(shù)的異步串行通信IP核的設計與實(shí)現

基于SOPC技術(shù)的異步串行通信IP核的設計與實(shí)現

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

3. 3.1 波特率模塊
波特率模塊根據PLB總線(xiàn)提供的時(shí)鐘產(chǎn)生需要的發(fā)送時(shí)鐘和接收時(shí)鐘。由于UABT在發(fā)送數據時(shí)只需要按照發(fā)送波特率將數據地發(fā)出就可以了,因此發(fā)送時(shí)鐘就等于發(fā)送波特率。而當UART在接收數據時(shí),需要對數據進(jìn)行采樣以判斷接收數據。由于接收方和發(fā)送方的時(shí)鐘不可能完全同步,所以需要對每一位接收數據持續電平的時(shí)間進(jìn)行分段。分段越多,接收出現誤判的概率就越低,但系統開(kāi)銷(xiāo)也越大。在實(shí)際的中通常采用發(fā)送時(shí)鐘的16倍作為接收時(shí)鐘。波特率模塊的分頻功能由兩個(gè)16位計數器,它將PLB總線(xiàn)時(shí)鐘按配置寄存器的設定進(jìn)行分頻,產(chǎn)生發(fā)送時(shí)鐘和接收時(shí)鐘。
3.3.2 發(fā)送模塊
發(fā)送模塊主要包括發(fā)送FIFO和發(fā)送單元兩部分,如圖5(a)所示。發(fā)送FIFO數據位寬度為8bit,深度為16字節。發(fā)送FIFO緩存MicroBlaze處理器需要發(fā)送的數據。當FIFO空間滿(mǎn)時(shí),發(fā)送模塊將狀態(tài)寄存器中“發(fā)送FIFO滿(mǎn)”標志位置1,MicroBlaze處理器通過(guò)查詢(xún)該位以判斷UART 核是否可以接收下一個(gè)發(fā)送數據。

本文引用地址:http://dyxdggzs.com/article/154802.htm

g.jpg


發(fā)送單元的用有限狀態(tài)機的方法,其狀態(tài)轉換圖如圖5(b)所示。系統在復位后,發(fā)送單元處于空閑狀態(tài)。當FIFO有發(fā)送數據時(shí)(Empty管腳為低),發(fā)送單元發(fā)出讀FIFO操作,并進(jìn)入數據準備狀態(tài)。當數據從FIFO中讀出,發(fā)送單元首先發(fā)送起始位,進(jìn)入發(fā)送狀態(tài)。在發(fā)送狀態(tài)下,發(fā)送單元依次發(fā)送8比特數據,并計算當前的奇偶校驗碼。在數據發(fā)送結束后,若配置寄存器中奇偶校驗位為1,則發(fā)送奇偶校驗位。最后發(fā)送單元發(fā)送停止位,回到空閑狀態(tài),完成次數據發(fā)送。
3.3.3 接收模塊
接收模塊由接收FIFO和接收單元兩部分組成,如圖6(a)所示。接收FIFO數據位寬度為8bit,深度16字節,它負責緩存接收單元收到的數據,并在收到數據后將狀態(tài)寄存器中“接收數據有效”標志位置1。MicroBlaze處理器通過(guò)查詢(xún)該位來(lái)判斷是否有數據到達。

h.jpg


接收單元的同樣采用了有限狀態(tài)機的方法,其狀態(tài)轉換圖如圖6(b)所示。系統在復位后接收單元處于就緒狀態(tài)。當接收單元在接收管腳連續檢測到8個(gè)低電平時(shí)認為起始位有效,進(jìn)入接收狀態(tài)。在接收狀態(tài)下,接收單元每16個(gè)接收時(shí)鐘采集一次接收數據。8個(gè)接收數據都采集完成后,接收單元根據配置寄存器中“奇偶校驗位”是否為1決定是否進(jìn)行奇偶校驗。若奇偶校驗通過(guò),接收單元將接收到的數據寫(xiě)入接收FIFO。若奇偶校驗未通過(guò)接收FIFO滿(mǎn),接收單元丟棄收到的數據,并在狀態(tài)寄存器中置“奇偶校驗出錯”位或“接收FIFO滿(mǎn)”位為1。

4 實(shí)驗驗證
4. 1 系統硬件介紹
本文采用Xilinx公司提供的ML505 V5 FPGA Demo板作為SoPC系統硬件平臺。ML505 FPGA演示驗證板主要由一塊Virtex-5 XC5VLX50T FPGA構成,此外還包括RAM、Flash、以太網(wǎng)接口芯片、USB接口芯片以及ADM3202 RS-232電平轉換芯片等外圍擴展芯片,其中ADM3202電路原理圖如圖7所示。

i.jpg


實(shí)驗采用Xilinx公司ISE工具完成UART 核的邏輯綜合和仿真,仿真波形如圖8所示,發(fā)送數據為0x01。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>