新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的RS485接口誤碼測試儀的設(shè)計

基于FPGA的RS485接口誤碼測試儀的設(shè)計

作者: 時間:2010-05-25 來源:網(wǎng)絡(luò) 收藏

  3 硬件設(shè)計

  本系統(tǒng)用單片機作為主控芯片,由完成誤碼測試的工作,將得到的誤碼信息傳送給單片機,單片機進行誤碼率的計算后送液晶屏進行顯示。m序列的發(fā)送和接收都是通過接口進行的。本系統(tǒng)單片機選用的是51系列的STC89LE58RD+,3.3 V供電,可以減小系統(tǒng)功耗。選用了Xilinx公司的SPARTNANII-E系列的XC2S300E,其內(nèi)部包括了30萬個邏輯門和其他豐富的資源,可以滿足本系統(tǒng)的需要。接口芯片選用Analog Device公司的ADM4857,它是一款10 Mb/s碼率、全雙工的485接口芯片[3-4]。系統(tǒng)的硬件框圖如圖2所示。

基于FPGA的RS485接口誤碼測試儀的設(shè)計

  4 軟件設(shè)計

  軟件部分是該系統(tǒng)功能實現(xiàn)的核心,主要包括了單片機和兩大部分。

  (1) 單片機軟件

  單片機作為該系統(tǒng)的主控芯片,主要完成FPGA通信控制、誤碼率計算、液晶顯示控制等功能。開機后,單片機控制系統(tǒng)進入掛起狀態(tài),等待按下start按鈕。開始工作后,單片機每隔1 s向FPGA請求刷新1次誤碼數(shù)據(jù),F(xiàn)PGA則將誤碼數(shù)據(jù)通過SPI總線傳送給單片機。單片機將取得的誤碼數(shù)據(jù)換算成誤碼率連同得到的系統(tǒng)傳輸延遲時間一起送到LCD顯示。單片機軟件的流程圖如圖3所示。

基于FPGA的RS485接口誤碼測試儀的設(shè)計

  (2) FPGA邏輯設(shè)計[5-6]

  本系統(tǒng)大部分功能通過FPGA實現(xiàn),使用Verilog編寫程序。由于采用的是逐位比較式方案,因此,首先由m序列產(chǎn)生模塊產(chǎn)生4.096 Mb/s碼率的m序列,送入反相器作為源端。反相器是為了人為產(chǎn)生誤碼而設(shè)置的。當按下按鍵時,反相器使能,將m序列1位反相后輸出,即相當于產(chǎn)生了1個誤碼。m序列和時鐘同時輸出給被測系統(tǒng),經(jīng)被測系統(tǒng)后再返回給對輸入的m序列和本地產(chǎn)生的m序列進行同步,同步以后,在固定寄存器中置入64位m序列數(shù)據(jù)。在源端,固定寄存器和移位寄存器不斷進行比較,直到兩者一致,則啟動延時計數(shù)器,同時接收端移位寄存器與固定寄存器進行比較,當兩者一致時關(guān)閉計數(shù)器,此時計數(shù)器中的數(shù)值即為被測系統(tǒng)的延時。另一方面,同步以后,開始進行誤碼統(tǒng)計。若在設(shè)置的測試周期內(nèi)誤碼率大于設(shè)定的門限值,則認為失步,重新開始同步。最后,將誤碼數(shù)和系統(tǒng)延時數(shù)通過SPI接口送給單片機,進行誤碼率和系統(tǒng)延時的計算,將計算結(jié)果顯示在LCD上。SPI接口是通過軟件進行模擬的。整個FPGA內(nèi)部的模塊框圖如圖4所示。

基于FPGA的RS485接口誤碼測試儀的設(shè)計



關(guān)鍵詞: FPGA RS485 誤碼測試儀

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉