基于最佳接收的UART的設計與實現
為了保證接收器能抵御一定程度的干擾而 進行正確的同步,檢測同步的門限不能取N。假定同步檢測的門限定為(N-3),則會出現這樣的問題:如果接收到的信號波形良好,而又采用(N-3)作為檢測同步門限,則同步模塊得到的判決信號實際上偏離了數字相關器的最佳判決時刻,使判決器誤判的可能性增加。較好的解決辦法是增大單個碼元周期內的采樣次數N,使同步檢測門限(N-3)與判決器判決門限N/2有較大距離,從而使后端的判決器有更好的抗干擾性能。根據實際測試的經驗,取N為16,以13作為同步檢測門限,以8作為判決門限。這樣既能有效防止因干擾而造成的漏同步,又能保證后端的數據判決有較好的抗干擾性能。
本文引用地址:http://m.ptau.cn/article/83208.htm由上所述,同步模塊實際上是對接收到的16個采樣值進行譯碼,當有13個0時表示檢測到同步,并將此時得到的判決信號提供給后端的判決器進行數據判決。在物理上這就是一個16輸入的組合電路。由于FPGA有豐富的時序邏輯資源而缺乏組合邏輯資源,因此該電路模塊若是在FPGA上實現要耗用大量的邏輯資源,所以需要對該模塊的邏輯設計進行優(yōu)化。
邏輯優(yōu)化的原則是充分利用FPGA 邏輯資源豐富的特點,以相同功能的時序電路替代這個龐大的組合電路。如圖8所示,輸入信號RXD經過D觸發(fā)器采樣并經過一個反相器后做為使能信號送給下一級的模13計數器(即對D觸發(fā)器采樣得到的低電平計數),這樣就可以用時序統(tǒng)計邏輯來替代原來的組合統(tǒng)計邏輯。對FPGA,這樣的時序電路只需要耗用少數幾個D觸發(fā)器,可以極大地節(jié)省資源。然而時序統(tǒng)計邏輯可能會由于對隨機脈沖干擾帶來的反常低電平的采樣積累而產生誤同步,所以需要同時對輸入信號RXD經過D觸發(fā)器的采樣得到的高電平進行計數。若得到連續(xù)多個不同長度(圖7中長度為8)的高電平,則說明正在接收的不是Sync位,即使采樣得到了低電平,也是干擾信號,這時就要對模13計數器復位,以防止干擾(低電平的干擾)的累積產生誤同步。
2.2 數字相關器的設計優(yōu)化
數字相關器的數學表達式為:
這時乘法器實際上是不需要的,數字相關器的輸出是最近的N(N=16)個輸入采樣(即輸入信號RXD的采樣)的疊加。輸入信號RXD的采樣是1比特量化,其值為邏輯1(高電平),或邏輯0(低電平)。所以對輸入采樣的疊加可以用計數器實現:邏輯1使計數器計數加1,邏輯0則保持計數器的值不變。這樣,復雜的數字相關器就可以用一個計數器實現。
圖9為經過邏輯優(yōu)化的數字相關器和判決器的電路。RXD經過D觸發(fā)器(一個碼元周期采樣N=16 次)送入數字相關器。該數字相關器在邏輯設計上被優(yōu)化為一個計數器,對D觸發(fā)器輸出的邏輯1進行統(tǒng)計計數。當同步模塊送來判決信號時,判決器根據當時數字相關器的計數結果進行硬判決:計數結果≥8(N/2)即為邏輯1,否則為邏輯0(邏輯上把計數結果的Count[3]和Count[4]作邏輯或運算為抽樣判決結果輸出)。判決信號同時還要對數字相關器(即計數器)復位,因為這同時是新碼元接收周期的開始,使數字相關器重新進行計數疊加。
3 基于FPGA的UART設計實現
UART根據功能劃分為波特率控制器、發(fā)送器和接收器三個模塊。圖10是UART的整體設計框圖。Out8_RxData[7..0]和Out_RxDateValid是接收器收到數據后輸出的數據及其使能信號。而In8_TxData[7..0]和In_TxDataEna是發(fā)送器要發(fā)送的數據及輸入使能信號。校驗參數設置包括是否需要校驗、奇偶校驗等。
3.1 波特率控制器的設計
波特率控制器根據波特率控制參數的設置,為接收器和發(fā)送器提供工作使能信號,這種工作使能信號的頻率決定了UART工作的波特率。從邏輯設計的角度看,波特率控制器實質上是一個可變模計數器,波特率控制參數調整計數器的模,從而為接收器和發(fā)送器提供各種符合通信波特率要求的工作使能信號。
3.2 發(fā)送器的設計
發(fā)送器在接收到并行發(fā)送數據后,將數據進行并串變換,按照波特率控制器提供的工作使能信號的速率,將數據及奇偶校驗位(是否發(fā)送校驗位根據參數設置)逐位發(fā)送。發(fā)送器在邏輯設計上是一個有限狀態(tài)機,圖11是發(fā)送器狀態(tài)跳轉圖。
3.3 接收器的設計
接收器的邏輯框圖見圖5,其中同步模塊、數字相關器和判決器已詳細介紹。下面介紹數據接收模塊。數據接收模塊負責將判決器的判決輸出逐位接收,然后將接收到的串行位串轉換成8位的字節(jié),根據校驗的參數進行設置。如果無需校驗,則直接輸出收到的字節(jié);如果需要校驗,則根據設置進行奇偶校驗。如果校驗顯示接收有錯誤,則直接丟棄接收結果;如果校驗無誤,將收到的字節(jié)輸出。數據接收模塊在邏輯上也是由一個有限狀態(tài)機實現,圖12是數據接收模塊的狀態(tài)跳轉圖。
評論