色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 通用異步串行接口的VHDL實用化設計

          通用異步串行接口的VHDL實用化設計

          作者: 時間:2012-10-10 來源:網(wǎng)絡 收藏

          摘 要:通用(Universal AsynchrONous Receiver TraNSmitter,UART)在通信、控制等領域得到了廣泛應用。根據(jù)UART特點和應用需求,以提高設計的穩(wěn)定性和降低功耗為目標,本文討論了UART中時鐘域劃分、時鐘分頻、亞穩(wěn)態(tài)、同步FIFO設計等問題和解決方案。

          本文引用地址:http://cafeforensic.com/article/189859.htm

          關鍵詞:通用接口 亞穩(wěn)態(tài) 現(xiàn)場可編程邏輯陣列

          1 引言

          FPGA從實現(xiàn)粘合邏輯逐步發(fā)展成為設計平臺的核心,在電子、通信以及航空航天等領域得到了廣泛應用。本人最近實現(xiàn)的中頻軟件無線電硬件平臺,就以FPGA為核心,實現(xiàn)上變頻、下變頻等中頻數(shù)字信號處理,并且構成A/D/A、DSP和ARM模塊之間的通信中心。這種以FPGA為核心的架構使得硬件平臺結構靈活,具有可重構性,為軟件無線電的各種算法分配方案提供了有力支撐。

          除了和TMS320C6416之間的數(shù)據(jù)流采用EMIF接口外,F(xiàn)PGA的其它接口均采用UART。為了軟件開發(fā)和移植的便利,UART設計要做到兼容ST16C550的功能。穩(wěn)定可靠則是作為軟件無線電硬件平臺關鍵接口的基本要求。考慮到嵌入式系統(tǒng)的特點,在設計中應盡量降低功耗。本文圍繞這些目標,介紹了在UART實用化設計中所遇到的一些重要問題、解決方案以及最終結果。

          2 UART及ST16C550概述

          UART是廣泛使用的串行數(shù)據(jù)傳輸協(xié)議,它在收發(fā)分離的串行鏈路上進行全雙工異步通信。發(fā)送過程接收來自數(shù)據(jù)總線上的并行數(shù)據(jù),按照低位序方式并串轉換,然后根據(jù)控制寄存器的設置生成串行數(shù)據(jù)流;相應的,接收過程把串行數(shù)據(jù)流轉換成并行數(shù)據(jù),產(chǎn)生中斷以及狀態(tài)信息,并對數(shù)據(jù)傳輸過程中的異常進行處理。

          ST16C550是廣泛使用的一款UART接口芯片,是NS16C550的改進版本。它收發(fā)均帶有16字節(jié)的FIFO,可以通過設定波特率設置寄存器來進行收發(fā)時鐘的分頻控制,傳輸速率從50bps到1.5Mbps。具體內(nèi)容可參見數(shù)據(jù)手冊[1]。

          3 實用化設計的主要問題和解決方案

          3.1 框架設計

          根據(jù)UART的功能和數(shù)據(jù)流特點,系統(tǒng)劃分為5個模塊:時鐘生成模塊,完成時鐘分頻和時鐘分配;界面模塊,完成UART其它模塊和數(shù)據(jù)總線的交互;發(fā)送模塊,緩沖接收到的數(shù)據(jù)并按照設置生成串行信號;接收模塊,按照設置將接收信號串并變換并將數(shù)據(jù)送到FIFO中;Modem模塊完成與Modem信息交互和控制,功能相對簡單獨立。

          3.2 時鐘域的劃分

          在同步電路設計中,減小時鐘數(shù)量可簡化設計,提高系統(tǒng)的穩(wěn)定性。不相關的時鐘域之間的數(shù)據(jù)傳遞不可避免的存在亞穩(wěn)態(tài)問題,帶來穩(wěn)定性能的下降。時鐘速率與功耗呈線性關系,當工藝一定時,低功耗設計要求我們降低時鐘頻率和信號翻轉次數(shù)。下面從這些設計策略和通信效率來分析不同時鐘域劃分方案。

          方案一:低速時鐘方案。首先根據(jù)控制寄存器的設置對外部提供的時鐘進行分頻,生成全局唯一的時鐘。這種方案的優(yōu)點是系統(tǒng)實現(xiàn)簡單、面積最小、功耗最低。缺點也很明顯,CPU時鐘遠遠高于芯片的工作時鐘,與UART傳遞數(shù)據(jù)時將占用CPU過多的時間。

          方案二:高速時鐘方案。系統(tǒng)直接采用外部提供的時鐘為唯一時鐘,根據(jù)控制寄存器的設置生成收發(fā)模塊的同步時鐘使能信號,來達到分頻的目的。這種方案全局只有一個時鐘,設計簡單。唯一缺點是功耗較大。

          在實際設計中,綜合考慮效率和功耗的要求,采用了兩個關聯(lián)時鐘的方案。與CPU的接口界面直接采用外部提供的最高時鐘信號,而其它模塊采用由波特率設置寄存器控制的分頻時鐘。這樣在系統(tǒng)中存在兩個關聯(lián)的時鐘域,設計時需要對兩個時鐘域邊界的邏輯進行分析和處理。

          3.3 時鐘分頻

          同步數(shù)字電路設計中,時鐘是整個電路中最重要的信號。時鐘信號上的毛刺會引起系統(tǒng)的邏輯混亂,大規(guī)模的數(shù)字芯片還對時鐘歪斜(Clock skew)和負載提出了要求。為了適應這些需求,F(xiàn)PGA內(nèi)部一般設有數(shù)量不等的全局時鐘網(wǎng)絡。

          使用同步計數(shù)器或狀態(tài)機進行時鐘分頻是一種較好的方案。在設計中計數(shù)器或狀態(tài)機應直接產(chǎn)生分頻時鐘信號,而不應該對計數(shù)器或狀態(tài)機進行譯碼來產(chǎn)生時鐘信號,因為譯碼等組合邏輯可能給時鐘帶來毛刺,引起系統(tǒng)不穩(wěn)定。UART當波特率設置寄存器為0或1時,時鐘信號不需要分頻,故分頻電路中使用了一個多路選擇器。

          3.4 異步時鐘與亞穩(wěn)態(tài)

          UART使用獨立的時鐘信號,使得CPU與UART以及UART之間的信號都處在不同的時鐘域。為了減少時序上的沖突,跨時鐘域的數(shù)據(jù)傳遞首先需要同步處理。但由于時鐘頻率和相位的差異,就不可避免存在亞穩(wěn)態(tài)問題[2]。所謂亞穩(wěn)態(tài),是指觸發(fā)器/鎖存器的輸入信號時序不能滿足設置時間和保持時間的要求,將有可能使得觸發(fā)器/鎖存器的輸出沒有正確的鎖定到邏輯0或邏輯1,處在一個未知的狀態(tài),如滯留在中間狀態(tài),或者震蕩。這里以SN74ABT7819的參數(shù)為例來分析亞穩(wěn)態(tài)、說明提高系統(tǒng)穩(wěn)定性的方法[3]。

          亞穩(wěn)態(tài)滯留時間是隨機的,服從參量為的負指數(shù)分布。T0表示器件進入亞穩(wěn)態(tài)可能性的孔徑時間。SN74ABT7819在室溫、5V電壓時,t=0.30ns,T0=7ps,輸入信號建立時間TSU1=5ns,傳播延時TPD1=9ns,芯片內(nèi)部觸發(fā)器建立時間以及傳播延時約TPD2+TSU2=1.3ns。設定觸發(fā)器異步輸入信號邊沿頻率FD=10MHz,芯片工作頻率即觸發(fā)器時鐘FC=50MHZ。則每個接收外界輸入信號的觸發(fā)器平均失效時間MTBF(the Mean Time Between Failures)為:

          系統(tǒng)中有多路并行信號跨越不同的時鐘域,這樣系統(tǒng)總的MTBF會很小,將以小時或分鐘計??梢妴斡|發(fā)器同步電路不能滿足穩(wěn)定性的要求。為了減小亞穩(wěn)態(tài)的影響,將亞穩(wěn)態(tài)控制在時鐘域邊界,可以采用傳統(tǒng)的握手通訊方式[4]或者雙觸發(fā)器同步電路,前一方案在通信速率較低時有效,后者則在實踐中廣泛使用,這里僅對后者進一步說明。三級觸發(fā)器同步電路一般是不必要的。

          異步輸入經(jīng)過兩級觸發(fā)器同步生成同步輸出。即使第一個觸發(fā)器輸出存在亞穩(wěn)態(tài),經(jīng)過一個時鐘周期后,第二個觸發(fā)器輸出仍處于亞穩(wěn)態(tài)的概率非常小,此電路的平均失效時間MTBF已經(jīng)是一個無限長的時間:

          Xilinx未給出Virtex II系列的亞穩(wěn)態(tài)描述參數(shù),它能工作在更高的時鐘頻率上,亞穩(wěn)態(tài)的參數(shù)會比SN74ABT7819優(yōu)秀。但以上分析和設計規(guī)則依然適用。


          上一頁 1 2 下一頁

          關鍵詞: VHDL 異步串行 接口

          評論


          相關推薦

          技術專區(qū)

          關閉