《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 帶硬件地址識別的UART IP的設計和實現
帶硬件地址識別的UART IP的設計和實現
繆眾林 丁克忠
摘要: 本UART IP全部采用Verilog HDL設計,可以在采用FPGA實現的通訊和控制系統中作為系統多點通訊控制器,也可以用于片上系統(SoC)的設計。用于多點通信時,可以有效降低CPU的額外負擔,提高CPU系統的利用率。由于采用語言描述,移植性強,可以用于不同廠家、不同型號的FPGA芯片中,提高了系統的設計速度和效率。
Abstract:
Key words :

    摘 要: 在通信和控制系統中,常使用異步串行通信控制器(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的數據位。數據位后面是1bit的地址信息位。如果此位是1,表示發送的字節是地址信息;如果此位是0,傳輸的是正常數據信息。地址指示位后是串行數據的停止位。

 


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

 


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

 


    空閑狀態:狀態機不斷檢測發送使能位、UART使能位和發送FIFO空/滿標志位,如果使能位為高、UART使能打開且FIFO空標志位為低,串行發送進入取數狀態。
    取數狀態:在此狀態,分兩個周期從發送FIFO中取出待發送的數據或者地址,然后進入發送狀態。
    發送狀態:在此狀態,狀態機按照九位串行數據的格式依次發送開始位、數據位、地址指示位。待停止位發送完畢后,返回空閑狀態。一個字節的數據發送完畢后,進行下一個字節數據的發送流程。
1.2 串行數據接收模塊
    串行數據接收模塊用于檢測串行數據的開始位,將串行總線上的串行數據轉換成并行數據并輸出。接收邏輯也采用有限狀態機實現,分為空閑狀態、尋找開始位、接收數據和保存數據四個狀態。其狀態遷移圖如圖4所示。各個狀態說明如下:

 


    空閑狀態:在此狀態,不斷檢測接收使能、UART使能和串行輸入信號的狀態。如果串行輸入信號出現由高到低的電平變化且UART使能和接收使能都為高,則將采樣計數器復位,并進入尋找開始位狀態。
    尋找開始位:在此狀態,狀態機等待半個波特率的時間,然后重新檢測串行輸入的電平。如果為低,則判斷收到的開始位有效,進入接收數據狀態;否則認為數據總線上出現干擾,開始位無效,重新返回空閑狀態。
    接收數據:在此狀態,依次接收串行數據線上的數據位、地址指示位和停止位,結束后進入保存數據狀態。
    保存數據:此狀態將收到的串行數據以并行方式從接口的并行總線輸出,然后返回空閑狀態,準備進行下一個字節數據的搜索和接收。
    為提高對串行輸入上突發干擾的抵抗能力,對于接收數據,在脈沖的中間位置連續采樣三次,較多的電平作為接收的有效數據。所有接收數據的采樣頻率為接收波特率的16倍。
1.3  硬件地址識別模塊
    硬件地址識別模塊用于從接收到的數據中判斷出地址和數據,在地址識別功能打開時,選擇數據通過或者丟棄;而該功能關閉時,所有數據都會通過。地址識別模塊是一個有兩個狀態的有限狀態機,分為地址和數據兩個狀態。其狀態遷移圖如圖5所示。狀態說明如下:

 


    地址狀態:在此狀態時,判斷接收到的數據以及地址識別使能位。如果地址識別功能沒有打開,對于接收的任何地址,都進入數據狀態。如果地址識別功能打開,則將收到的地址和本地地址比較,如果相等,則保存此地址,進入數據狀態;否則繼續在此狀態接收數據和地址,將收到的數據忽略。
    數據狀態:將接收到的數據輸出,直到收到地址位時,返回地址狀態,處理地址。
    為實現監聽和廣播功能,將地址255作為特殊地址,它可以和任何地址匹配。若本站的地址為255,此站點可以接收任何地址的數據,此功能可以用于監聽總線上的數據;若發送數據的目的地址為255,則任何站點都會接收到此數據,此功能可以用于發送廣播數據。
1.4  FIFO設計
    FIFO由控制邏輯和雙口RAM組成,控制邏輯用來實現將一個雙口RAM轉換成兩個FIFO的功能,這兩個FIFO分別用于發送和接收數據緩存;中斷控制用于在中斷工作方式時管理UART內部的中斷狀態和控制信息。
    為減少所需塊RAM的數量,接收和發送FIFO使用同一個塊RAM實現,使用仲裁機制保證兩個FIFO的四個端口,在同一時刻最多只有兩個操作,不影響對FIFO的讀寫。
1.5  總線接口
    UART采用同步接口,所有信號都在系統時鐘的上升沿采樣,設備的握手用一位應答信號完成。
    數據總線寬度采用8+2的方式。和16位或者32位寬度的數據總線連接時,可以一次讀取接收數據的數據和地址指示位,減少總線操作次數;若和8位系統連接,可以只連接低8位數據線,接收數據的地址信息可以通過內部的狀態寄存器讀取。
1.6  寄存器和控制邏輯
    寄存器部分實現UART內部所有數據的收發、控制和狀態寄存,用于設置UART的數據格式、收發波特率、FIFO控制、本地地址、地址識別、中斷控制和狀態寄存,實現對UART工作的控制。
    控制邏輯產生所需的所有波特率信號及對應的上升和下降沿指示信號,并根據實際工作所選擇的波特率輸出與系統時鐘同步的對應信號。波特率產生邏輯的組成框圖如圖6所示。

 


2  功能和時序仿真
    首先結合功能仿真設計系統的仿真平臺。仿真平臺如圖7所示。系統仿真平臺和仿真激勵采用Verilog HDL語言設計,可同時用于功能仿真和時序仿真,不能用于二者的綜合。寄存器級模型為用于UART IP設計的RTL描述,全部采用可以綜合的Verilog HDL語句編寫。仿真使用的軟件為ModelSim。

 


    功能仿真包括以下幾個方面:
    (1)基本模塊連線時序的仿真。首先用描述方式設計UART的接口模型,利用仿真激勵進行簡單的讀寫操作,設計出仿真激勵信號和系統仿真平臺。然后結合仿真激勵信號逐步完成UART的各個子模塊的設計。仿真時,需要逐步觀察UART接口信號的波形、UART內部模塊的接口信號波形、各種狀態機的狀態遷移和數據指針的值以及狀態位的值,逐步完成寄存器傳輸級的UART設計。

    (2)UART的工作仿真。完成RTL的寄存器傳輸級模型后,根據系統軟件工作的模式,用HDL設計出數據收發的仿真激勵,打開自環功能,進行數據的發送和接收。仿真可以分為仿真查詢和中斷兩種工作方式。對于中斷工作方式,需要用HDL語言模擬軟件的中斷機制,進行中斷工作方式的仿真。最后打開地址識別功能,發送不同目的地址的數據,觀察UART的硬件地址識別情況。
    完成功能仿真后,將設計進行布局布線,生成Verilog HDL形式的時序仿真模型和標準時延文件,利用與功能仿真相同的仿真平臺進行時序仿真。時序仿真只需要仿真工作方式。功能仿真和時序仿真使用相同的仿真平臺和激勵向量,這樣便于比較二者的差異,發現設計代碼存在的問題。
3 綜合和測試結果
    本設計用Synplicity公司的Synplify Pro作為綜合工具,用Xilinx ISE5.2作為布局布線工具,采用器件為XC2S100IIE-7。綜合結果顯示,該UART IP占用資源情況為:SLICE 275個、內部塊RAM 1個、I/O 24個,HOST總線可以達到的頻率為73.2MHz。
    測試程序參考仿真激勵的生成,用C語言在vxWorks操作系統下設計。測試所用方法和工作仿真完全相同,只是仿真激勵對應測試程序,而RTL模型對應實際的FPGA器件。
    多點測試使用了五塊單板,采用半雙工總線方式,定義簡單的數據包格式,用于檢測數據錯誤并返回數據。數據包的格式為地址開頭,后面是最大255Byte的數據;數據部分包括發送方的地址、數據校驗和及包的長度。另外,還定義簡單的驅動程序格式,完成基本數據的收發和控制,然后在上層加載多點通信協議。其中的一塊加載主設備程序,其它單板加載從設備程序。主設備周期性地向其它從設備發送測試數據,并在規定的時間內等待接收目標單板的數據。從設備軟件只接收發給本單板的數據,如果校驗正確,將收到的數據發給主設備;如果有錯誤,則不進行任何操作。主設備若在規定時間內無法接收從設備的數據或者接收數據錯誤,則判斷通信異常,進行下一個設備的測試。
    測試時,數據包長為240Byte,波特率為115200。常溫和高低溫環境下的測試結果表明,UART IP工作穩定可靠,達到了設計要求。
    本UART IP全部采用Verilog HDL設計,可以在采用FPGA實現的通訊和控制系統中作為系統多點通訊控制器,也可以用于片上系統(SoC)的設計。用于多點通信時,可以有效降低CPU的額外負擔,提高CPU系統的利用率。由于采用語言描述,移植性強,可以用于不同廠家、不同型號的FPGA芯片中,提高了系統的設計速度和效率。
參考文獻
1 Spartan-IIE 1.8V FPGA Family Product Specification.Xilinx Corp. July 9, 2003
2 戴梅萼.微型計算機技術及應用.北京:清華大學出版社,1994.1
3 張 明.Verilog HDL實用教程.成都:電子科技大學出版社,1999.11
4 孫涵芳,徐愛卿.MCS-51/96系列單片機原理及應用.北京:北京航空航天大學出版社,1999.5

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久精品一区二区国产| 亚洲一区三区在线观看| 午夜免费电影一区在线观看| 久久久女女女女999久久| 亚洲激情影院| 久久不射电影网| 在线国产欧美| 久久男人av资源网站| 亚洲国产99精品国自产| 欧美一区午夜视频在线观看| 亚洲毛片网站| 欧美日韩国产亚洲一区| 久久亚洲私人国产精品va媚药| 在线欧美福利| 亚洲欧美综合精品久久成人| 影音先锋亚洲电影| 亚洲国产精品久久久久婷婷老年| 国产伦精品一区| 伊人色综合久久天天五月婷| 亚洲国产aⅴ天堂久久| 欧美好吊妞视频| 欧美福利视频在线观看| 国产一区二区三区免费观看| 亚洲欧美日韩精品| 国产精品久久久久久久9999| 亚洲免费电影在线| 亚洲电影免费在线观看| 欧美日韩综合在线免费观看| 国产日本欧美一区二区三区在线| 欧美日韩在线电影| 欧美金8天国| 亚洲免费精彩视频| 久久久久久免费| 亚洲高清视频在线观看| 欧美日韩精品二区| 久久久人成影片一区二区三区观看| 一区在线免费| 久久久噜噜噜久久久| 欧美中文字幕在线| 欧美视频中文字幕| 亚洲精品永久免费| 欧美日韩一区二区视频在线| 亚洲网站啪啪| 亚洲国产精品精华液网站| 加勒比av一区二区| 欧美激情成人在线视频| 日韩视频永久免费观看| 欧美网站在线观看| 久久精品99国产精品日本| 欧美日韩免费一区二区三区视频| 欧美视频精品在线| 欧美日韩一区二区三区在线| 欧美大色视频| 国产日韩欧美一区在线| 国产乱码精品一区二区三区五月婷| 亚洲一区精彩视频| 亚洲男人的天堂在线aⅴ视频| 国产一区二区三区成人欧美日韩在线观看| 国产精品久久久久国产精品日日| 一区二区三区视频免费在线观看| 欧美一区二区三区在线| 国产精品va在线播放我和闺蜜| 亚洲一区二区三区欧美| 国内精品免费午夜毛片| 国产一区欧美| 欧美伊人精品成人久久综合97| 日韩一级视频免费观看在线| 国产一区二区三区电影在线观看| 免费视频亚洲| 欧美黑人国产人伦爽爽爽| 久久精品夜夜夜夜久久| 欧美成人xxx| 亚洲精品之草原avav久久| 欧美与黑人午夜性猛交久久久| 亚洲无线观看| 久久免费午夜影院| 最新国产乱人伦偷精品免费网站| 欧美系列电影免费观看| 国产亚洲观看| 国产拍揄自揄精品视频麻豆| 亚洲欧美韩国| 久久久亚洲成人| 亚洲美女黄网| 国产一区二区日韩精品欧美精品| 久久亚洲私人国产精品va媚药| 欧美精品一区三区| 亚洲一区二区精品在线观看| 在线观看亚洲视频啊啊啊啊| 国产精品一级在线| 免费观看成人| 欧美一级二级三级蜜桃| 欧美老女人xx| 国产伦精品一区二区三区在线观看| 裸体丰满少妇做受久久99精品| 国产欧美日韩一区二区三区在线| 亚洲成在人线av| 欧美精品午夜视频| 久久九九国产精品怡红院| 一区二区三区四区五区精品视频| 国产精品日韩在线一区| 亚洲国产精品一区二区www| 久久先锋资源| 欧美天堂亚洲电影院在线观看| 亚洲国产精品一区二区www在线| 欧美www视频| 永久久久久久| 久久中文精品| 国产精品久久网| 狠狠色狠狠色综合日日91app| 欧美国产1区2区| 国产精品日产欧美久久久久| 一区二区三区在线观看欧美| 永久免费精品影视网站| 久久福利电影| 亚洲国产精选| 黄色精品一区二区| 欧美伦理91i| 国产精品极品美女粉嫩高清在线| 国产片一区二区| 一本大道久久a久久精品综合| 狠狠入ady亚洲精品| 国内精品久久久久久影视8| 伊人成人在线| 99国产精品国产精品久久| 欧美在线观看一区二区| 亚洲最新视频在线| 午夜在线视频一区二区区别| 久久精品免视看| 狼人社综合社区| 国产精品盗摄久久久| 国内外成人免费视频| 久久激情婷婷| 国内成人精品一区| 国产精品任我爽爆在线播放| 国产婷婷97碰碰久久人人蜜臀| 99视频超级精品| 欧美在线一二三区| 欧美在线地址| 欧美国产大片| 午夜精品久久久久久久99樱桃| 欧美中文在线字幕| 国产精品女主播| 亚洲精品免费一区二区三区| 国产精品毛片a∨一区二区三区|国| 一本高清dvd不卡在线观看| 亚洲影院污污.| 亚洲美女精品久久| 国产日韩精品视频一区| 在线视频亚洲欧美| 欧美二区不卡| 一区二区三区导航| 午夜精品久久久久久久99热浪潮| 性刺激综合网| 欧美激情第10页| 国产精品国产三级国产aⅴ浪潮| 一区免费观看| 亚洲激情一区二区| 国产伦一区二区三区色一情| 国产欧美精品一区aⅴ影院| 国产一区二区三区免费观看| 伊人色综合久久天天| 国产午夜精品一区二区三区视频| 亚洲一本视频| 国产精品成人一区二区艾草| 亚洲一卡二卡三卡四卡五卡| 女同性一区二区三区人了人一| 亚洲免费观看高清完整版在线观看| 韩国v欧美v日本v亚洲v| 国产精品国产自产拍高清av王其| 黄色精品网站| 欧美在线www| 欧美日韩亚洲三区| 夜夜嗨av一区二区三区网站四季av| 亚洲激情一区二区| 欧美在线播放一区| 国产日韩成人精品| 欧美日韩免费网站| 久久亚洲一区二区三区四区| 国产精品日韩欧美一区二区三区| 极品av少妇一区二区| 欧美日韩一区二区视频在线观看| 国产网站欧美日韩免费精品在线观看| 久久午夜精品一区二区| 国产麻豆精品在线观看| 久久精品一二三区| 久久久久久久久综合| 国内久久婷婷综合| 最新国产成人av网站网址麻豆| 亚洲欧美精品中文字幕在线| 一区二区三区精品久久久| 国产日韩视频| 欧美成人激情在线| 久久精品成人欧美大片古装| 午夜精品视频在线观看| 欧美揉bbbbb揉bbbbb| 美女精品视频一区| 激情欧美一区二区| 欧美日本一道本| 久久精品国产99精品国产亚洲性色| 9i看片成人免费高清| 国产欧美日本一区视频| 一区二区在线视频观看| 欧美在线你懂的| 亚洲深夜福利| 久久综合综合久久综合| 亚洲自拍偷拍福利| 国产精品国产三级国产aⅴ浪潮| 国产综合色在线视频区| 最新日韩精品| 亚洲一区二区三区成人在线视频精品| 国产欧美日韩精品一区| 欧美激情综合五月色丁香小说| 国产精品亚洲а∨天堂免在线| 欧美视频在线看| 国产精品久久久久9999吃药| 亚洲欧美影院| 国产日产高清欧美一区二区三区| 欧美色综合天天久久综合精品| 欧美激情 亚洲a∨综合| 国产精品九九| 国产一区二区三区av电影| 欧美一区二区观看视频| 国产日韩精品一区二区三区在线| 在线日韩一区二区| 亚洲午夜三级在线| 国产精品hd| 欧美精品免费视频| 在线日韩日本国产亚洲| 欧美激情在线观看| 久久久91精品国产| 国产精品私拍pans大尺度在线| 欧美午夜www高清视频| 久久久91精品国产一区二区精品| 国产亚洲精品一区二555| 99综合电影在线视频| 欧美与黑人午夜性猛交久久久| 国产精品成人免费| 欧美在线视频导航| 久久久精品日韩| 国产欧美日韩91| 久久精品一本久久99精品| 亚洲一区精品在线| 香蕉成人伊视频在线观看| 国内精品久久久久久久影视麻豆| 国产精品日韩| 久久精品论坛| 国产亚洲成年网址在线观看| 亚洲精品一区二区三区不| 小嫩嫩精品导航| 极品av少妇一区二区| 欧美另类视频在线| 欧美a级理论片| 国产精品久久久久久久久久妞妞| 午夜在线视频一区二区区别| 欧美日韩免费观看一区=区三区| 日韩视频免费观看高清完整版| 最新国产の精品合集bt伙计| 欧美三级第一页| 久久爱www| 中国日韩欧美久久久久久久久| 久久免费精品视频| 国产午夜精品美女视频明星a级| 91久久国产综合久久| 国产精品一二三视频| 亚洲自拍都市欧美小说| 欧美激情2020午夜免费观看| 欧美专区亚洲专区| 国产一区二区三区四区在线观看| 亚洲自拍偷拍福利| 亚洲美女中文字幕| 欧美日韩国产在线播放| 久久精品国产久精国产思思| 日韩一级黄色片| 欧美a级在线| 国产精品久久久久久久久久久久| 先锋影音久久久| 蜜臀99久久精品久久久久久软件| 国产一区二区三区免费在线观看| 欧美日韩日韩| 精品动漫3d一区二区三区免费版| 亚洲国产精品嫩草影院| 夜夜嗨av色综合久久久综合网| 欧美日韩天堂| 国产一区高清视频| 欧美日韩精品是欧美日韩精品| 一区视频在线播放| aa亚洲婷婷| 国产目拍亚洲精品99久久精品| 国产精品扒开腿做爽爽爽软件| 韩国一区二区三区在线观看| 亚洲美洲欧洲综合国产一区| 国产一区二区三区在线观看视频| 一本综合久久| 久久全国免费视频| 欧美日韩一卡二卡| 欧美日韩国产一区| 欧美日韩美女在线| 欧美在线一二三区| 亚洲一区二区免费在线| 午夜在线一区二区| 欧美午夜在线| 欧美极品一区| 一区二区三区在线看| 欧美日韩大陆在线| 亚洲精品九九| 国产精品99久久久久久白浆小说| 一区久久精品| 国产精品国产三级国产aⅴ入口| 亚洲美女尤物影院| 久久综合狠狠综合久久综合88| 国产在线国偷精品产拍免费yy| 99国产精品视频免费观看一公开| 欧美激情精品久久久久久| 久久aⅴ国产紧身牛仔裤| 国产人妖伪娘一区91| 亚洲电影在线看| 久久久精品五月天| 男女精品网站| 亚洲免费视频成人| 久久夜色精品国产欧美乱| 久久免费视频一区| 在线成人激情视频| 久久久综合精品| 国产精品v欧美精品v日韩精品| 夜夜爽99久久国产综合精品女不卡| 亚洲免费网址| 亚洲小说区图片区| 一区二区黄色|