新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于SOPC技術的異步串行通信IP核的設計與實現

        基于SOPC技術的異步串行通信IP核的設計與實現

        作者: 時間:2012-05-30 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/154802.htm

        g.jpg


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

        h.jpg


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

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

        i.jpg


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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 易门县| 杭锦旗| 呼和浩特市| 唐河县| 兴仁县| 大城县| 双江| 铁岭县| 蒙城县| 烟台市| 蚌埠市| 文水县| 兴化市| 秀山| 南部县| 响水县| 广河县| 彭泽县| 宜川县| 德州市| 江西省| 鄂尔多斯市| 全州县| 高雄县| 资溪县| 祁东县| 怀安县| 徐汇区| 阆中市| 炉霍县| 台南市| 浑源县| 微山县| 民县| 浦县| 淳安县| 山东| 云浮市| 荣成市| 赤城县| 神木县|