基于fpga多路uart的擴展模件及擴展方法
【專利摘要】本發(fā)明提供一種基于FPGA多路UART的擴展模件,包括:電源模塊、信號處理模塊、總線通訊模塊、電平轉(zhuǎn)換模塊和接收發(fā)送信號模塊。本發(fā)明所述的基于FPGA多路UART的擴展模件,通過集成FPGA芯片、RS485芯片,解決串口擴展模件無法進行高速通訊的問題,同時此板件在機構(gòu)上采用標(biāo)準(zhǔn)3U插(165mm*100mm),適用于3U機箱,具有非常強的通用性,實現(xiàn)了多路高速UART擴展。
【專利說明】
基于FPGA多路UART的擴展模件及擴展方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種基于FPGA多路UART的擴展模件,具體涉及關(guān)于一種配電自動化中高速UART擴展模件,且特別關(guān)于MAXl O型FPGA、總線、UART、RS485、電力系統(tǒng)中使用。
【背景技術(shù)】
[0002]UART英文全稱 “Universal Asynchronous Receiver/Transmitter”,中文全稱通用異步收發(fā)傳輸器,一種異步收發(fā)傳輸器,將數(shù)據(jù)由串行通訊與并行通訊件做傳輸轉(zhuǎn)換,通常繼承與通訊接口的連接上。因為CPU內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)送到Modem,必須經(jīng)過串并轉(zhuǎn)化進行異步傳輸,由于UART總線具有抗干擾性強、工作范圍寬、連接簡單、穩(wěn)定性高的特點,因此被廣泛應(yīng)用于配電自動化領(lǐng)域。在配電自動化系統(tǒng)中,一臺主機設(shè)備往往需要和多臺從機設(shè)備之間通訊,由于主機設(shè)備的CPU集成的UART口較少,就需要擴展UART口,傳統(tǒng)方法多為SPI擴展多路串口,由于受SPI通訊速度所限,擴展后的UART波特率較慢,以I路SPI擴展8路UART為例,UART的波特率在1K以下,很難實現(xiàn)UART的告訴通訊。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問題是提供一種基于FPGA多路UART的擴展模件,克服上述缺陷,解決上述問題。
[0004]為解決上述技術(shù)問題,本發(fā)明提供一種基于FPGA多路UART的擴展模件,包括:電源模塊、信號處理模塊、總線通訊模塊、電平轉(zhuǎn)換模塊和接收發(fā)送信號模塊,
[0005]所述電源模塊的一端與所述信號處理模塊連接,所述電源模塊向所述信號處理模塊提供電源,所述總線通訊模塊的一端與所述信號處理模塊連接,所述信號處理模塊將接收到的信號通過所述總線通訊模塊向外界傳輸,所述電平轉(zhuǎn)換模塊的一端連接所述信號處理模塊,所述電平轉(zhuǎn)換模塊的另一端連接所述接收發(fā)送信號模塊,所述電平轉(zhuǎn)換模塊將所述信號處理模塊的電平信號轉(zhuǎn)換后傳至所述接收發(fā)送信號模塊,由所述接收發(fā)送信號模塊發(fā)送基準(zhǔn)時間信號,所述電平轉(zhuǎn)換模塊將所述接收發(fā)送信號模塊接收的數(shù)據(jù)轉(zhuǎn)換成電平信號后傳輸至所述信號處理模塊。
[0006]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述電源模塊包括MAX1951芯片,
[0007]所述信號處理模塊包括MAXlO型FPGA芯片,
[0008]所述總線通訊模塊包括EPT端子,
[0009]所述電平轉(zhuǎn)換模塊包括RS485芯片,所述RS485芯片具有TX和RX,
[0010]所述接收發(fā)送信號模塊包括TXA、TXB、RXA和RXB,
[0011]所述FPGA芯片的一端與所述MAX1951芯片連接,所述FPGA芯片的另一端與所述EPT端子連接,所述RS485芯片的一端連接所述FPGA芯片,所述RS485芯片的另一端連接所述接收發(fā)送信號模塊,所述RS485芯片的TX將所述FPGA芯片的基準(zhǔn)時間信號由TTL電平轉(zhuǎn)換成RS485電平后通過TXA和TXB發(fā)送基準(zhǔn)時間信號,所述RS485芯片的RX將所述RXA和RXB中接收的數(shù)據(jù)轉(zhuǎn)換成TTL電平后傳輸至所述FPGA芯片。
[0012]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述FPGA芯片包括UART模塊、配置寄存器模塊和FIFO模塊,
[0013]所述UART模塊由8個UART組成,依次為1^1^1至1^1^8,
[0014]所述配置寄存器模塊由波特率配置寄存器和校驗配置寄存器組成,所述波特率配置寄存器由用于配置波特率的八個位寄存組成,依次對應(yīng)UARTl到UART8,所述校驗配置寄存器由用于配置校驗方式的八個位寄存組成,依次對應(yīng)UARTl到UART8,
[0015]所述FIFO模塊包括8800個八位寄存器,地址為0-8799,其中,地址0-3999為發(fā)送數(shù)據(jù)區(qū),地址4000-7999為接收數(shù)據(jù)區(qū),地址8000-8799為指令區(qū)組。
[0016]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述地址0-3999為發(fā)送數(shù)據(jù)區(qū)具體包括地址0-499為UARTl發(fā)送數(shù)據(jù)區(qū);地址500-999為UART2發(fā)送數(shù)據(jù)區(qū);地址1000-1499為UART3發(fā)送數(shù)據(jù)區(qū);地址1500-1999為UART4發(fā)送數(shù)據(jù)區(qū);地址2000-2499為UART5發(fā)送數(shù)據(jù)區(qū);地址2500-2999為UART6發(fā)送數(shù)據(jù)區(qū);地址3000-3499為UART7發(fā)送數(shù)據(jù)區(qū);地址3500-3999為UART8發(fā)送數(shù)據(jù)區(qū)。
[0017]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述地址4000-7999為接收數(shù)據(jù)區(qū)具體包括:地址4000-4499為UARTl接收數(shù)據(jù)區(qū);地址4500-4999為UART2接收數(shù)據(jù)區(qū);地址5000-5499為UART3接收數(shù)據(jù)區(qū);地址5500-5999為UART4接收數(shù)據(jù)區(qū);地址6000-6499為UART5接收數(shù)據(jù)區(qū);地址6500-6999為UART6接收數(shù)據(jù)區(qū);地址7000-7499為UART7接收數(shù)據(jù)區(qū);地址7500-7999為UART8接收數(shù)據(jù)區(qū)。
[0018]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述地址8000-8799為指令區(qū)組具體包括:8000-8099為UARTl的指令區(qū);其中8100-8199為UART2的指令區(qū);其中8200-8299為UART3的指令區(qū);其中8300-8399為UART4的指令區(qū);其中8400-8499為UART5的指令區(qū);其中8500-8599為UART6的指令區(qū);其中8600-8699為UART7的指令區(qū);其中8700-8799為UART8的指令區(qū)。
[0019]作為本發(fā)明所述一種基于FPGA多路UART的擴展模件的一種優(yōu)選方案,所述UART模塊包括波特率發(fā)生器模塊、發(fā)送功能模塊和接收功能模塊,
[0020]所述波特率發(fā)送器模塊根據(jù)所述配置寄存器模塊7配置的波特率,生產(chǎn)UART工作所需要的時鐘,
[0021]所述發(fā)送功能模塊根據(jù)裝置CPU已經(jīng)配置好的波特率及奇偶校驗,生成相應(yīng)的校驗位,并以相應(yīng)的波特率將數(shù)據(jù)發(fā)送出去,
[0022]所述接收功能模塊根據(jù)已配置的波特率,檢測開始位,并接收數(shù)據(jù),當(dāng)數(shù)據(jù)接收完后,根據(jù)已配置的校驗類型,檢驗接收到的數(shù)據(jù)是否正確。
[0023]本發(fā)明還提供一種基于FPGA多路UART的擴展模件的擴展方法,
[0024]發(fā)送功能模塊首先讀取發(fā)送數(shù)據(jù)區(qū)中的數(shù)據(jù),將數(shù)據(jù)存入Sbit數(shù)據(jù)寄存器;校驗計算器讀取所述Sbit數(shù)據(jù)寄存器中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入奇偶校驗寄存器;9bit數(shù)據(jù)寄存器根據(jù)所述Sbit數(shù)據(jù)寄存器和所述奇偶校驗寄存器中的數(shù)據(jù),形成一為9bit的數(shù)據(jù),其中高8位一次對應(yīng)所述Sbit數(shù)據(jù)寄存器中的數(shù)據(jù),最低位對應(yīng)所述奇偶校驗寄存器中的數(shù)據(jù);所述9bi t數(shù)據(jù)寄存器進入移位寄存器,所述移位寄存器依次送數(shù)據(jù)到發(fā)送狀態(tài)機進行數(shù)據(jù)發(fā)送,并對數(shù)據(jù)進行相應(yīng)的移位,一直到數(shù)據(jù)發(fā)送完成;
[0025]接收功能模塊首先將數(shù)據(jù)接收至接收狀態(tài)機,由移位寄存器將數(shù)據(jù)傳至9bit數(shù)據(jù)寄存器,校驗計算器讀取所述9bit數(shù)據(jù)寄存器中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入所述奇偶校驗寄存器;Sbit數(shù)據(jù)寄存器根據(jù)所述奇偶校驗寄存器中的數(shù)據(jù),形成一為8bit的數(shù)據(jù)。
[0026]與現(xiàn)有技術(shù)相比,本發(fā)明提出的一種基于FPGA多路UART的擴展模件,通過集成FPGA芯片、RS485芯片,解決串口擴展模件無法進行高速通訊的問題,同時此板件在機構(gòu)上采用標(biāo)準(zhǔn)3U插(165mm*100mm),適用于3U機箱,具有非常強的通用性,實現(xiàn)了多路高速UART擴展。
【附圖說明】
[0027]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。其中,
[0028]圖1是本發(fā)明的一種基于FPGA多路UART的擴展模件的硬件框圖;
[0029]圖2是本發(fā)明的一種基于FPGA多路UART的擴展模件的系統(tǒng)框圖;
[0030]圖3是本發(fā)明的一種基于FPGA多路UART的擴展模件的UART模塊的系統(tǒng)框圖;
[0031]圖4是本發(fā)明的一種基于FPGA多路UART的擴展模件的波特率發(fā)生器模塊系統(tǒng)框圖;
[0032]圖5是本發(fā)明的一種基于FPGA多路UART的擴展模件的發(fā)送狀態(tài)機的系統(tǒng)框圖;
[0033]圖6是本發(fā)明的一種基于FPGA多路UART的擴展模件的接收狀態(tài)機的系統(tǒng)框圖。
[0034]其中:I為電源模塊、2為信號處理模塊、3為總線通訊模塊、4為電平轉(zhuǎn)換模塊、5為接收發(fā)送信號模塊、6為UART模塊、7為配置寄存器模塊、71為波特率配置寄存器、72為校驗配置寄存器、8為FIFO模塊、81為發(fā)送數(shù)據(jù)區(qū)、82為接收數(shù)據(jù)區(qū)、83為指令區(qū)組、9為波特率發(fā)生器模塊、10為發(fā)送功能模塊、101為8bit數(shù)據(jù)寄存器、102為校驗計算器、103為奇偶校驗寄存器、104為9bit數(shù)據(jù)寄存器、105為移位寄存器、106為發(fā)送狀態(tài)機、11為接收功能模塊、111為接收狀態(tài)機、112為移位寄存器、113為9bi t數(shù)據(jù)寄存器、114為校驗計算器、115為奇偶校驗寄存器、116為8bit位數(shù)據(jù)寄存器。
【具體實施方式】
[0035]本發(fā)明所述的一種基于FPGA多路UART的擴展模件,其包括:電源模塊1、信號處理模塊2、總線通訊模塊3、電平轉(zhuǎn)換模塊4和接收發(fā)送信號模塊5。
[0036]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0037]首先,此處所稱的“一個實施例”或“實施例”是指可包含于本發(fā)明至少一個實現(xiàn)方式中的特定特征、結(jié)構(gòu)或特性。在本說明書中不同地方出現(xiàn)的“在一個實施例中”并非均指同一個實施例,也不是單獨的或選擇性的與其他實施例互相排斥的實施例。
[0038]其次,本發(fā)明利用結(jié)構(gòu)示意圖等進行詳細描述,在詳述本發(fā)明實施例時,為便于說明,表示FPGA多路UART的擴展模件結(jié)構(gòu)的示意圖會不依一般比例作局部放大,而且所述示意圖只是實例,其在此不應(yīng)限制本發(fā)明保護的范圍。此外,在實際制作中應(yīng)包含長度、寬度及深度的三維空間。
[0039]請參閱圖1,圖1是本發(fā)明的一種基于FPGA多路UART的擴展模件的硬件框圖。如圖1所示,F(xiàn)PGA多路UART的擴展模件,包括:電源模塊1、信號處理模塊2、總線通訊模塊3、電平轉(zhuǎn)換模塊4和接收發(fā)送信號模塊5。電源模塊I負責(zé)為板件供電,電源模塊I的控制芯片為MAX1951,輸入電壓DC24V,經(jīng)過DC-DC電路產(chǎn)生DC3.3V和DC5V,其中DC3.3V為MAXlO芯片、晶振等供電,5V為光纖頭等供電;信號處理模塊2為MAXlO型FPGA芯片,負責(zé)板件的信號處理;總線通訊模塊3為EPT端子,負責(zé)裝置的CPU板進行總線通訊;電平轉(zhuǎn)換模塊4為RS485芯片,負責(zé)電平轉(zhuǎn)換。所述RS485芯片的TX將基準(zhǔn)時間信號由TTL電平轉(zhuǎn)換RS485電平后,通過接收發(fā)送信號模塊5的TXA和TXB發(fā)送基準(zhǔn)時間信號,并將所述接收發(fā)送信號模塊5中的RXA和RXB中接收的數(shù)據(jù)轉(zhuǎn)換為TTL電平,在板件的四周可以設(shè)置安裝孔,負責(zé)安裝用于和機箱連接的安裝塊。
[0040]請參閱圖2,圖2是本發(fā)明的一種基于FPGA多路UART的擴展模件的系統(tǒng)框圖。如圖2所示,由UART模塊6、配置寄存器模塊7、FIFO模塊8三部分組成。所述UART模塊6由8個UART組成,依次為UARTI至UART8,他們依次負責(zé)I至8通道。配置寄存器模塊7由波特率配置寄存器71和校驗配置寄存器72組成。所述波特率配置寄存器71由八個位寄存組成,依次對應(yīng)UARTl到UART8,可以獨立為各個UART配置波特率。所述校驗配置寄存器72由八個位寄存組成,依次對應(yīng)UARTl到UART8,可以獨立為各個UAirr配置校驗方式。所述FIFO模塊8共有8800個八位寄存器,地址為0-8799。地址0-3999為發(fā)送數(shù)據(jù)區(qū)81,其中地址0-499為UARTl發(fā)送數(shù)據(jù)區(qū);地址500-999為UART2發(fā)送數(shù)據(jù)區(qū);地址1000-1499為UART3發(fā)送數(shù)據(jù)區(qū);地址1500-1999為UART4發(fā)送數(shù)據(jù)區(qū);地址2000-2499為UART5發(fā)送數(shù)據(jù)區(qū);地址2500-2999為UART6發(fā)送數(shù)據(jù)區(qū);地址3000-3499為UART7發(fā)送數(shù)據(jù)區(qū);地址3500-3999為UART8發(fā)送數(shù)據(jù)區(qū)。地址4000-7999為接收數(shù)據(jù)區(qū)82,其中地址4000-4499為UARTl接收數(shù)據(jù)區(qū);地址
[0041 ] 4500-4999為UART2接收數(shù)據(jù)區(qū);地址5000-5499為UART3接收數(shù)據(jù)區(qū);地址5500-5999為UART4接收數(shù)據(jù)區(qū);地址6000-6499為UART5接收數(shù)據(jù)區(qū);地址6500-6999為UART6接收數(shù)據(jù)區(qū);地址7000-7499為UART7接收數(shù)據(jù)區(qū);地址7500-7999為UART8接收數(shù)據(jù)區(qū)。地址8000-8799為指令區(qū)組83,其中8000-8099為UARTl的指令區(qū);其中8100-8199為UART2的指令區(qū);其中8200-8299為UART3的指令區(qū);其中8300-8399為UART4的指令區(qū);其中8400-8499為UART5的指令區(qū);其中8500-8599為UART6的指令區(qū);其中8600-8699為UART7的指令區(qū);其中8700-8799為UART8的指令區(qū)。
[0042]所述UART模塊中的8個UART發(fā)送接收機制相同,此處以UARTl為例。裝置CPU先通過配置寄存器模塊7分別配置UARTl的波特率和校驗方式。從地址O開始寫入數(shù)據(jù),每個周期寫入一個Sbit數(shù)據(jù),最多可以寫入500個,當(dāng)發(fā)送數(shù)據(jù)全部寫入發(fā)送寄存器后,再向地址為8000的UARTl的指令寄存器中寫入0x01,在地址為8001-8002寄存器中寫入需要發(fā)送的數(shù)據(jù)個數(shù)。此時FPGA開始通過UARTl發(fā)送數(shù)據(jù),當(dāng)全部發(fā)送完UARTl發(fā)送數(shù)據(jù)區(qū)中的數(shù)據(jù)后,會對此段地址的寄存器清零,同時對地址為8000-8002的UARTl的指令寄存器清零,并在UARTl的指令寄存器地址為8003的寄存器寫入0x01。當(dāng)裝置CHJ讀到地址為8003寄存器中的值為0x01時,即表示裝置CPU可以進行下次數(shù)據(jù)的發(fā)送,同時會對地址為8003的寄存器清零。
[0043]當(dāng)外部通過UARTl向裝置發(fā)送數(shù)據(jù),UARTI會將數(shù)據(jù)進行串并轉(zhuǎn)換,從地址4000向UARTl的數(shù)據(jù)接收區(qū)寫入接收到的數(shù)據(jù),最大接收長度為500個,當(dāng)接收完外部數(shù)據(jù)后,F(xiàn)PGA會在地址為再向地址為8010的UARTl的指令寄存器中寫入0x01,在地址為8011-8012寄存器中寫入需要發(fā)送的數(shù)據(jù)個數(shù)。當(dāng)裝置CHJ檢測到地址為8010寄存器的值為0x01,并根據(jù)地址為8011-8012此時會讀取UARTl接收數(shù)據(jù)區(qū)的數(shù)據(jù),當(dāng)讀取完后,會對此段地址的寄存器清零,同時對地址為8010-8013的UARTl的指令寄存器清零,并在UARTl的指令寄存器地址為8013的寄存器寫入0x01。當(dāng)裝置CPU讀到地址為8013寄存器中的值為0x01時,即表示FPGA可以進行下次數(shù)據(jù)的接收,同時會對地址為8003的寄存器清零。
[0044]請參閱圖3,圖3是本發(fā)明的一種基于FPGA多路UART的擴展模件的UART模塊的系統(tǒng)框圖。如圖3所示,所述UART模塊包括:波特率發(fā)生器模塊9、發(fā)送功能模塊10和接收功能模塊11組成。所述波特率發(fā)送器模塊9根據(jù)所述配置寄存器模塊7配置的波特率,生產(chǎn)UART工作所需要的時鐘;發(fā)送功能模塊10根據(jù)裝置CPU已經(jīng)配置好的波特率及奇偶校驗,生成相應(yīng)的校驗位,并以相應(yīng)的波特率將數(shù)據(jù)發(fā)送出去;所述接收功能模塊11指根據(jù)已配置的波特率,檢測開始位,并接收數(shù)據(jù),當(dāng)數(shù)據(jù)接收完后,根據(jù)已配置的校驗類型,檢驗接收到的數(shù)據(jù)是否正確。
[0045]發(fā)送功能模塊10首先讀取圖2中發(fā)送數(shù)據(jù)區(qū)81中的數(shù)據(jù),將數(shù)據(jù)存入Sbit數(shù)據(jù)寄存器101;校驗計算器102讀取所述Sbit數(shù)據(jù)寄存器101中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入奇偶校驗寄存器103;9bit數(shù)據(jù)寄存器104根據(jù)所述8bit數(shù)據(jù)寄存器101和所述奇偶校驗寄存器103中的數(shù)據(jù),形成一為9bit的數(shù)據(jù),其中高8位一次對應(yīng)所述Sbit數(shù)據(jù)寄存器101中的數(shù)據(jù),最低位對應(yīng)所述奇偶校驗寄存器103中的數(shù)據(jù);所述9bit數(shù)據(jù)寄存器104進入移位寄存器105,所述移位寄存器105依次送數(shù)據(jù)到發(fā)送狀態(tài)機106進行數(shù)據(jù)發(fā)送,并對數(shù)據(jù)進行相應(yīng)的移位,一直到數(shù)據(jù)發(fā)送完成。換句話說從發(fā)送數(shù)據(jù)區(qū)81把它輸出的Sbit數(shù)據(jù)讀出來,然后存在移位寄存器105里面;然后,用就檢驗方法計算出Ibit的奇偶校驗值,并在所述奇偶校驗寄存器103中進行存儲,之后,從兩個寄存器里面讀取出存儲的數(shù)據(jù),根據(jù)前面寫的高八位低一位的方法拼成9bit的數(shù)據(jù),使用移位寄存器輸出。
[0046]接收功能模塊11首先將數(shù)據(jù)接收至接收狀態(tài)機111,由移位寄存器112將數(shù)據(jù)傳至9bit數(shù)據(jù)寄存器113,校驗計算器114讀取所述9bit數(shù)據(jù)寄存器113中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入所述奇偶校驗寄存器115;8bit數(shù)據(jù)寄存器116根據(jù)所述奇偶校驗寄存器115中的數(shù)據(jù),形成一為Sbit的數(shù)據(jù)。換句話說,也就是通過移位寄存器112—次性接收到的9bit數(shù)據(jù),然后進行存儲;之后,根據(jù)計算得到奇偶校驗位;然后把奇偶校驗位去掉發(fā)送Sbit數(shù)據(jù),送至圖2的接收數(shù)據(jù)區(qū)82。
[0047]請參閱圖5,圖5是本發(fā)明的一種基于FPGA多路UART的擴展模件的發(fā)送狀態(tài)機106的系統(tǒng)框圖。如圖5所示,其功能是將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)向TX線上發(fā)送,依次為I位起始位、8位數(shù)據(jù)位、I位校驗位和I位停止位共11位。在“待機態(tài)”時,UART發(fā)送功能模塊10不工作;一但有發(fā)送指令,即進入“發(fā)送態(tài)”,依次發(fā)送I位開始位、8位數(shù)據(jù)位、I位結(jié)束位;數(shù)據(jù)發(fā)送完后回到“待機態(tài)”,等待下一次數(shù)據(jù)發(fā)送。
[0048]請參閱圖6,圖6是本發(fā)明的一種基于FPGA多路UART的擴展模件的接收狀態(tài)機的系統(tǒng)框圖。如圖6所示,其功能是將RX線上接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。在“待機態(tài)”下,當(dāng)檢測到低電平,會確認是否為數(shù)據(jù)的開始位,一旦確定為開始,進入“接收態(tài)”。在“接收態(tài)”下依次接收8bit數(shù)據(jù),Ibit校驗位,接收完后后進入“數(shù)據(jù)校驗”。在“數(shù)據(jù)校驗”中當(dāng)計算的校驗值和校驗位吻合時,將數(shù)據(jù)存入數(shù)據(jù)接收區(qū)同時進入“待機態(tài)”,準(zhǔn)備接收下一個數(shù)據(jù);當(dāng)計算的校驗值和校驗位不吻合,拋棄接收數(shù)據(jù),同時進入“待機態(tài)”,準(zhǔn)備接收下一個數(shù)據(jù)。
[0049]請參閱圖4,圖4是本發(fā)明的一種基于FPGA多路UART的擴展模件的波特率發(fā)生器模塊系統(tǒng)框圖。如圖4所示,波特率發(fā)生器模塊9可以產(chǎn)生八種波特率時鐘,依次為2400bps、4800bps、9600bps、38400bps、43000bps、56000bps、57600bps,115200bps。它們的發(fā)送機制相同,此處以2400bps為例。“2400分頻器”首先對系統(tǒng)時鐘(Fl)進行分頻,分頻倍數(shù)為Fl/2400*16;“2400計數(shù)器”對系統(tǒng)時鐘進行計數(shù),在(0-$1/2400*16-2))時,數(shù)據(jù)為0,當(dāng)卩1/2400* 16-1時,輸出高電平,數(shù)據(jù)為I ; “2400波特率時鐘”根據(jù)“2400計數(shù)器”數(shù)據(jù)數(shù)據(jù)輸出高低電平,若數(shù)據(jù)為O為低電平,若數(shù)據(jù)為I為高電平。
[0050]所屬領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該能夠理解的是,本發(fā)明的特點或目的之一在于:本發(fā)明所述的基于FPGA多路UART的擴展模件,通過集成FPGA芯片、RS485芯片,解決串口擴展模件無法進行高速通訊的問題,同時此板件在機構(gòu)上采用標(biāo)準(zhǔn)3U插(165mm*100mm),適用于3U機箱,具有非常強的通用性,實現(xiàn)了多路高速UART擴展。
[0051]應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【主權(quán)項】
1.基于FPGA多路UART的擴展模件,其特征在于,包括:電源模塊、信號處理模塊、總線通訊模塊、電平轉(zhuǎn)換模塊和接收發(fā)送信號模塊, 所述電源模塊的一端與所述信號處理模塊連接,所述電源模塊向所述信號處理模塊提供電源,所述總線通訊模塊的一端與所述信號處理模塊連接,所述信號處理模塊將接收到的信號通過所述總線通訊模塊向外界傳輸,所述電平轉(zhuǎn)換模塊的一端連接所述信號處理模塊,所述電平轉(zhuǎn)換模塊的另一端連接所述接收發(fā)送信號模塊,所述電平轉(zhuǎn)換模塊將所述信號處理模塊的電平信號轉(zhuǎn)換后傳至所述接收發(fā)送信號模塊,由所述接收發(fā)送信號模塊發(fā)送基準(zhǔn)時間信號,所述電平轉(zhuǎn)換模塊將所述接收發(fā)送信號模塊接收的數(shù)據(jù)轉(zhuǎn)換成電平信號后傳輸至所述信號處理模塊。2.如權(quán)利要求1所述的基于FPGA多路UART的擴展模件,其特征是: 所述電源模塊包括MAX1951芯片, 所述信號處理模塊包括MAX1型FPGA芯片, 所述總線通訊模塊包括EPT端子, 所述電平轉(zhuǎn)換模塊包括RS485芯片,所述RS485芯片具有TX和RX, 所述接收發(fā)送信號模塊包括TXA、TXB、RXA和RXB, 所述FPGA芯片的一端與所述MAX1951芯片連接,所述FPGA芯片的另一端與所述EPT端子連接,所述RS485芯片的一端連接所述FPGA芯片,所述RS485芯片的另一端連接所述接收發(fā)送信號模塊,所述RS485芯片的TX將所述FPGA芯片的基準(zhǔn)時間信號由TTL電平轉(zhuǎn)換成RS485電平后通過TXA和TXB發(fā)送基準(zhǔn)時間信號,所述RS485芯片的RX將所述RXA和RXB中接收的數(shù)據(jù)轉(zhuǎn)換成TTL電平后傳輸至所述FPGA芯片。3.如權(quán)利要求2所述的基于FPGA多路UART的擴展模件,其特征是:所述FPGA芯片包括UART模塊、配置寄存器模塊和FIFO模塊, 所述UART模塊由8個UART組成,依次為UARTI至UART8, 所述配置寄存器模塊由波特率配置寄存器和校驗配置寄存器組成,所述波特率配置寄存器由用于配置波特率的八個位寄存組成,依次對應(yīng)UARTl到UART8,所述校驗配置寄存器由用于配置校驗方式的八個位寄存組成,依次對應(yīng)UARTl到UART8, 所述FIFO模塊包括8800個八位寄存器,地址為0-8799,其中,地址0-3999為發(fā)送數(shù)據(jù)區(qū),地址4000-7999為接收數(shù)據(jù)區(qū),地址8000-8799為指令區(qū)組。4.如權(quán)利要求3所述的基于FPGA多路UART的擴展模件,其特征是:所述地址0-3999為發(fā)送數(shù)據(jù)區(qū)具體包括地址0-499為UARTl發(fā)送數(shù)據(jù)區(qū);地址500-999為UART2發(fā)送數(shù)據(jù)區(qū);地址1000-1499為UART3發(fā)送數(shù)據(jù)區(qū);地址1500-1999為UART4發(fā)送數(shù)據(jù)區(qū);地址2000-2499為UART5發(fā)送數(shù)據(jù)區(qū);地址2500-2999為UART6發(fā)送數(shù)據(jù)區(qū);地址3000-3499為UART7發(fā)送數(shù)據(jù)區(qū);地址3500-3999為UART8發(fā)送數(shù)據(jù)區(qū)。5.如權(quán)利要求3所述的基于FPGA多路UART的擴展模件,其特征是:所述地址4000-7999為接收數(shù)據(jù)區(qū)具體包括:地址4000-4499為UARTl接收數(shù)據(jù)區(qū);地址4500-4999為UART2接收數(shù)據(jù)區(qū);地址5000-5499為UART3接收數(shù)據(jù)區(qū);地址5500-5999為UART4接收數(shù)據(jù)區(qū);地址6000-6499為UART5接收數(shù)據(jù)區(qū);地址6500-6999為UART6接收數(shù)據(jù)區(qū);地址7000-7499為UART7接收數(shù)據(jù)區(qū);地址7500-7999為UART8接收數(shù)據(jù)區(qū)。6.如權(quán)利要求3所述的基于FPGA多路UART的擴展模件,其特征是:所述地址8000-8799為指令區(qū)組具體包括:8000-8099為UARTl的指令區(qū);其中8100-8199為UART2的指令區(qū);其中8200-8299為UART3的指令區(qū);其中8300-8399為UART4的指令區(qū);其中8400-8499為UART5的指令區(qū);其中8500-8599為UART6的指令區(qū);其中8600-8699為UART7的指令區(qū);其中8700-8799為UART8的指令區(qū)。7.如權(quán)利要求3所述的基于FPGA多路UART的擴展模件,其特征是:所述UART模塊包括波特率發(fā)生器模塊、發(fā)送功能模塊和接收功能模塊, 所述波特率發(fā)送器模塊根據(jù)所述配置寄存器模塊7配置的波特率,生產(chǎn)UART工作所需要的時鐘, 所述發(fā)送功能模塊根據(jù)裝置CPU已經(jīng)配置好的波特率及奇偶校驗,生成相應(yīng)的校驗位,并以相應(yīng)的波特率將數(shù)據(jù)發(fā)送出去, 所述接收功能模塊根據(jù)已配置的波特率,檢測開始位,并接收數(shù)據(jù),當(dāng)數(shù)據(jù)接收完后,根據(jù)已配置的校驗類型,檢驗接收到的數(shù)據(jù)是否正確。8.如權(quán)利要求7所述的基于FPGA多路UART的擴展模件的擴展方法,其特征是: 發(fā)送功能模塊首先讀取發(fā)送數(shù)據(jù)區(qū)中的數(shù)據(jù),將數(shù)據(jù)存入8bi t數(shù)據(jù)寄存器;校驗計算器讀取所述Sbit數(shù)據(jù)寄存器中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入奇偶校驗寄存器;9bit數(shù)據(jù)寄存器根據(jù)所述8bi t數(shù)據(jù)寄存器和所述奇偶校驗寄存器中的數(shù)據(jù),形成一為9bit的數(shù)據(jù),其中高8位一次對應(yīng)所述8bi t數(shù)據(jù)寄存器中的數(shù)據(jù),最低位對應(yīng)所述奇偶校驗寄存器中的數(shù)據(jù);所述9bit數(shù)據(jù)寄存器進入移位寄存器,所述移位寄存器依次送數(shù)據(jù)到發(fā)送狀態(tài)機進行數(shù)據(jù)發(fā)送,并對數(shù)據(jù)進行相應(yīng)的移位,一直到數(shù)據(jù)發(fā)送完成; 接收功能模塊首先將數(shù)據(jù)接收至接收狀態(tài)機,由移位寄存器將數(shù)據(jù)傳至9bit數(shù)據(jù)寄存器,校驗計算器讀取所述9bit數(shù)據(jù)寄存器中數(shù)據(jù),并根據(jù)配置的校驗方式,計算出校驗值,并存入所述奇偶校驗寄存器;8bi t數(shù)據(jù)寄存器根據(jù)所述奇偶校驗寄存器中的數(shù)據(jù),形成一為8bit的數(shù)據(jù)。
【文檔編號】G06F13/38GK106066838SQ201610460639
【公開日】2016年11月2日
【申請日】2016年6月22日 公開號201610460639.7, CN 106066838 A, CN 106066838A, CN 201610460639, CN-A-106066838, CN106066838 A, CN106066838A, CN201610460639, CN201610460639.7
【發(fā)明人】吳軍, 陳栩, 李進, 張官勇, 倪家健, 任寶軍, 張磊, 饒劍波
【申請人】南京大全自動化科技有限公司