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