91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 顯示光電

帶硬件地址識別的UART IP 的設計和實現 文章作者:繆眾林 丁克忠

發布時間:2007/8/23 0:00:00 訪問次數:1199

      摘要:在通信和控制系統中,常使用異步串行通信控制器(UART)實現系統輔助信息的傳輸。為實現多點通信,通常用軟件識別發往本站點或其它站點的數據,這會加大CPU的開銷。介紹了一種基于FPGA的UART IP,由硬件實現多點通信時的數據過濾功能,降低了CPU的負擔,提高了系統性能。

    關鍵詞:UART 多點通信 FPGA 知識產權

    在通信和控制系統中,常使用異步串行通信實現多塊單板之間的輔助通信,各個單板通過總線方式連接。為了實現點對點通信,需要由軟件定義一套較復雜的通信協議,過濾往來的數據,消耗了CPU較多的時間。89C51單片機有一種九位通信方式,采用一位地址位來實現通信對象的選擇,只對發往本地址的地址發生中斷進而接收數據。通用的UART芯片如16C550和89C51等構成總線式的通信系統時,需要由CPU通過軟件處理接收到的地址和產生九位的數據。本文介紹的UART采用Verilog HDL硬件描述語言設計,可以用FPGA實現,可應用于SoC設計中。其主要特性如下:
              
       ·全硬件地址識別,過濾數據不需要CPU的介入;支持一個特殊地址,可用于監聽和廣播。

  ·支持查詢和中斷兩種工作方式,中斷可編程。

  ·接收和發送通路分別有128Byte FIFO,每個接收字節附帶狀態信息。

  ·設計采用Verilog HDL語言,全同步接口,可移植性好。

  ·支持自環測試功能。

  ·波特率可以編程,支持八位或者九位兩種數據格式。

  設計的UART的九位串行數據格式如圖1所示。在空閑狀態,數據線處于高電平狀態。總線由高到低跳變,寬度為一個波特率時間的負脈沖為開始位,然后是8bit的數據位。數據位后面是lbit的地址信息位。如果此位是1,表示發送的字節是地址信息;如果此位是0,傳輸的是正常數據信息。地址指示位后是串行數據的停止位。

  1 UART設計

  UART采用模塊化、層次化的設計思想,全部設計都采用Verilog HDL實現,其組成框圖如圖2所示。整個UART IP由串行數據發送模塊、串行數據接收模塊、接收地址識別模塊、接收和發送HIFO、總線接口邏輯、寄存器和控制邏輯構成。串行發送模塊和接收完成并/串及串/并的轉換,接收地址的識別由接收地址識別模塊完成。發送和接收HIFO用于緩存發送和接收的數據。總線接口邏輯用于連接UART IP內部總線和HOST接口。寄存器和控制邏輯實現UART IP內部所有數據的收發、控制和狀態寄存器、內部中斷的控制及波特率信號的產生。以下詳細說明主要部分的設計原理。
                
      1.1 串行數據發送模塊

  串行數據發送模塊將數據或地址碼由并行轉換為串行,并從串行總線輸出。設計采用有限狀態機實現,分為空閑、取數、發送三個狀態。其狀態遷移如圖3所示。各個狀態說明如下:

  空閑狀態:狀態機不斷檢測發送使能位、UART使能位和發送FIFO空/滿標志位,如果使能位為高、UART使能打開且FIFO空標志位為低,串行發送進入取數狀態。

  取數狀態:在此狀態,分兩個周期從發送FIFO中取出待發送的數據或者地址,然后進入發送狀態。

  發送狀態:在此狀態,狀態機按照九位串行數據的格式依次發送開始位、數據位、地址指示位。待停止位發送完畢后,返回空閑狀態。一個字節的數據發送完畢后,進行下一個字節數據的發送流程。

  1.2 串行數據接收模塊

  串行數據接收模塊用于檢測串行數據的開始位,將串行總線上的串行數據轉換成并行數據并輸出。接收邏輯也采用有限狀態機實現,分為空閑狀態、尋找開始位、接收數據和保存數據四個狀態。其狀態遷移圖如圖4所示。各個狀態說明如下:

  空閑狀態:在此狀態,不斷檢測接收使能、UART使能和串行輸入信號的狀態。如果串行輸入信號出現由高到低的電平變化且UART使能和接收使能都為高,則將采樣計數器復位,并進入尋找開始位狀態。

  尋找開始位:在此狀態,狀態機等待半個波特率的時間,然后重新檢測串行輸入的電平。如果為低,則判斷收到的開始位有效,進入接收數據狀態;否則認為數據總線上出現干擾,開始位無效,重新返回空閑狀態。
                
    接收數據:在此狀態,依次接收

      摘要:在通信和控制系統中,常使用異步串行通信控制器(UART)實現系統輔助信息的傳輸。為實現多點通信,通常用軟件識別發往本站點或其它站點的數據,這會加大CPU的開銷。介紹了一種基于FPGA的UART IP,由硬件實現多點通信時的數據過濾功能,降低了CPU的負擔,提高了系統性能。

    關鍵詞:UART 多點通信 FPGA 知識產權

    在通信和控制系統中,常使用異步串行通信實現多塊單板之間的輔助通信,各個單板通過總線方式連接。為了實現點對點通信,需要由軟件定義一套較復雜的通信協議,過濾往來的數據,消耗了CPU較多的時間。89C51單片機有一種九位通信方式,采用一位地址位來實現通信對象的選擇,只對發往本地址的地址發生中斷進而接收數據。通用的UART芯片如16C550和89C51等構成總線式的通信系統時,需要由CPU通過軟件處理接收到的地址和產生九位的數據。本文介紹的UART采用Verilog HDL硬件描述語言設計,可以用FPGA實現,可應用于SoC設計中。其主要特性如下:
              
       ·全硬件地址識別,過濾數據不需要CPU的介入;支持一個特殊地址,可用于監聽和廣播。

  ·支持查詢和中斷兩種工作方式,中斷可編程。

  ·接收和發送通路分別有128Byte FIFO,每個接收字節附帶狀態信息。

  ·設計采用Verilog HDL語言,全同步接口,可移植性好。

  ·支持自環測試功能。

  ·波特率可以編程,支持八位或者九位兩種數據格式。

  設計的UART的九位串行數據格式如圖1所示。在空閑狀態,數據線處于高電平狀態。總線由高到低跳變,寬度為一個波特率時間的負脈沖為開始位,然后是8bit的數據位。數據位后面是lbit的地址信息位。如果此位是1,表示發送的字節是地址信息;如果此位是0,傳輸的是正常數據信息。地址指示位后是串行數據的停止位。

  1 UART設計

  UART采用模塊化、層次化的設計思想,全部設計都采用Verilog HDL實現,其組成框圖如圖2所示。整個UART IP由串行數據發送模塊、串行數據接收模塊、接收地址識別模塊、接收和發送HIFO、總線接口邏輯、寄存器和控制邏輯構成。串行發送模塊和接收完成并/串及串/并的轉換,接收地址的識別由接收地址識別模塊完成。發送和接收HIFO用于緩存發送和接收的數據。總線接口邏輯用于連接UART IP內部總線和HOST接口。寄存器和控制邏輯實現UART IP內部所有數據的收發、控制和狀態寄存器、內部中斷的控制及波特率信號的產生。以下詳細說明主要部分的設計原理。
                
      1.1 串行數據發送模塊

  串行數據發送模塊將數據或地址碼由并行轉換為串行,并從串行總線輸出。設計采用有限狀態機實現,分為空閑、取數、發送三個狀態。其狀態遷移如圖3所示。各個狀態說明如下:

  空閑狀態:狀態機不斷檢測發送使能位、UART使能位和發送FIFO空/滿標志位,如果使能位為高、UART使能打開且FIFO空標志位為低,串行發送進入取數狀態。

  取數狀態:在此狀態,分兩個周期從發送FIFO中取出待發送的數據或者地址,然后進入發送狀態。

  發送狀態:在此狀態,狀態機按照九位串行數據的格式依次發送開始位、數據位、地址指示位。待停止位發送完畢后,返回空閑狀態。一個字節的數據發送完畢后,進行下一個字節數據的發送流程。

  1.2 串行數據接收模塊

  串行數據接收模塊用于檢測串行數據的開始位,將串行總線上的串行數據轉換成并行數據并輸出。接收邏輯也采用有限狀態機實現,分為空閑狀態、尋找開始位、接收數據和保存數據四個狀態。其狀態遷移圖如圖4所示。各個狀態說明如下:

  空閑狀態:在此狀態,不斷檢測接收使能、UART使能和串行輸入信號的狀態。如果串行輸入信號出現由高到低的電平變化且UART使能和接收使能都為高,則將采樣計數器復位,并進入尋找開始位狀態。

  尋找開始位:在此狀態,狀態機等待半個波特率的時間,然后重新檢測串行輸入的電平。如果為低,則判斷收到的開始位有效,進入接收數據狀態;否則認為數據總線上出現干擾,開始位無效,重新返回空閑狀態。
                
    接收數據:在此狀態,依次接收

相關IC型號

熱門點擊

 

推薦技術資料

按鈕與燈的互動實例
    現在趕快去看看這個目錄卞有什么。FGA15N120AN... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
双柏县| 盈江县| 宁乡县| 玉溪市| 黔南| 资讯| 紫阳县| 凉山| 石景山区| 寿阳县| 南皮县| 柯坪县| 勃利县| 海阳市| 读书| 沁源县| 专栏| 义马市| 法库县| 湘乡市| 鄂托克旗| 雅江县| 海门市| 哈巴河县| 囊谦县| 泉州市| 东兴市| 高雄市| 龙海市| 曲阜市| 吉木乃县| 化德县| 洮南市| 合川市| 榕江县| 布拖县| 介休市| 东光县| 南郑县| 营山县| 洪江市|