基于FPGA的RS485接口誤碼測(cè)試儀的設(shè)計(jì)和實(shí)現(xiàn)
(2) FPGA邏輯設(shè)計(jì)[5-6]
本系統(tǒng)大部分功能通過(guò)FPGA實(shí)現(xiàn),使用Verilog編寫(xiě)程序。由于采用的是逐位比較式方案,因此,首先由m序列產(chǎn)生模塊產(chǎn)生4.096 Mb/s碼率的m序列,送入反相器作為源端。反相器是為了人為產(chǎn)生誤碼而設(shè)置的。當(dāng)按下按鍵時(shí),反相器使能,將m序列1位反相后輸出,即相當(dāng)于產(chǎn)生了1個(gè)誤碼。m序列和時(shí)鐘同時(shí)輸出給被測(cè)系統(tǒng),經(jīng)被測(cè)系統(tǒng)后再返回給誤碼測(cè)試儀。誤碼測(cè)試儀對(duì)輸入的m序列和本地產(chǎn)生的m序列進(jìn)行同步,同步以后,在固定寄存器中置入64位m序列數(shù)據(jù)。在源端,固定寄存器和移位寄存器不斷進(jìn)行比較,直到兩者一致,則啟動(dòng)延時(shí)計(jì)數(shù)器,同時(shí)接收端移位寄存器與固定寄存器進(jìn)行比較,當(dāng)兩者一致時(shí)關(guān)閉計(jì)數(shù)器,此時(shí)計(jì)數(shù)器中的數(shù)值即為被測(cè)系統(tǒng)的延時(shí)。另一方面,同步以后,開(kāi)始進(jìn)行誤碼統(tǒng)計(jì)。若在設(shè)置的測(cè)試周期內(nèi)誤碼率大于設(shè)定的門(mén)限值,則認(rèn)為失步,重新開(kāi)始同步。最后,將誤碼數(shù)和系統(tǒng)延時(shí)數(shù)通過(guò)SPI接口送給單片機(jī),進(jìn)行誤碼率和系統(tǒng)延時(shí)的計(jì)算,將計(jì)算結(jié)果顯示在LCD上。SPI接口是通過(guò)軟件進(jìn)行模擬的。整個(gè)FPGA內(nèi)部的模塊框圖如圖4所示。
5 系統(tǒng)設(shè)計(jì)仿真
對(duì)設(shè)計(jì)完成后的主要功能模塊進(jìn)行了仿真以驗(yàn)證其功能的正確性。
(1) m序列產(chǎn)生器仿真
本設(shè)計(jì)采用了23級(jí)m序列以確保偽隨機(jī)序列的特性,其本原多項(xiàng)式為f(x)=1+x5+x23,仿真波形如圖5所示。
(2) SPI接口仿真
FPGA與單片機(jī)之間采用SPI接口進(jìn)行通信。外圍設(shè)備接口SPI通常有3~4條信號(hào)線,本文采用3線方式,即片選線SS、時(shí)鐘線SCK和數(shù)據(jù)線SDIO。SS為低時(shí)有效,在SCK的同步下傳送數(shù)據(jù),仿真波形如圖6所示。
(3) 系統(tǒng)仿真
系統(tǒng)開(kāi)始工作并正確同步后,開(kāi)始誤碼和延時(shí)的統(tǒng)計(jì)。每當(dāng)單片機(jī)發(fā)送1個(gè)請(qǐng)求數(shù)據(jù)信號(hào),就送出當(dāng)前的誤碼數(shù)和延時(shí)數(shù),單片機(jī)進(jìn)行計(jì)算后送顯示器顯示。系統(tǒng)仿真波形如圖7所示。
6 調(diào)試
調(diào)試是整個(gè)設(shè)計(jì)實(shí)現(xiàn)的關(guān)鍵步驟。經(jīng)過(guò)調(diào)試,最終實(shí)現(xiàn)了設(shè)計(jì)的所有功能。下面給出在設(shè)計(jì)和調(diào)試中的一些經(jīng)驗(yàn)教訓(xùn)以供參考。
(1) 51單片機(jī)的Port 1端口默認(rèn)情況下沒(méi)有上拉電阻,因此需要特別注意。在調(diào)試初期就是因?yàn)闆](méi)有在外部加上拉電阻而導(dǎo)致與FPGA通信不正常。
(2) RS485接口芯片對(duì)于差分線的輸入輸出阻抗匹配要求比較嚴(yán)格,需要根據(jù)手冊(cè)要求選擇合適的匹配電阻,否則會(huì)導(dǎo)致輸入輸出差分信號(hào)質(zhì)量嚴(yán)重劣化,影響系統(tǒng)正常工作。
(3) FPGA與單片機(jī)通信等功能需要特別注意時(shí)序的配合問(wèn)題,否則可能導(dǎo)致通信不正常。可以通過(guò)選擇適當(dāng)?shù)挠|發(fā)沿來(lái)調(diào)整時(shí)序。
本文介紹了一種基于FPGA的RS485接口的誤碼測(cè)試儀的設(shè)計(jì)原理和實(shí)現(xiàn)過(guò)程。與傳統(tǒng)的誤碼測(cè)試儀相比,本誤碼測(cè)試儀具有原理簡(jiǎn)單、接口獨(dú)特、可測(cè)試系統(tǒng)延時(shí)等特點(diǎn)。此外,由于FPGA良好的可擴(kuò)展性,可以在不改變硬件電路的基礎(chǔ)上方便地增加或修改相應(yīng)的功能,增加了系統(tǒng)的可擴(kuò)展性。
評(píng)論