基于fpga的hdlc收發(fā)控制器的制造方法
【技術(shù)領(lǐng)域】
[0001]本實(shí)用新型涉及通信技術(shù)領(lǐng)域和軌道交通領(lǐng)域,尤其涉及一種基于FPGA的HDLC收發(fā)控制器。
【背景技術(shù)】
[0002]高級(jí)數(shù)據(jù)鏈路控制(High-Level Data Control,以下簡(jiǎn)稱:HDLC)是一種同步數(shù)據(jù)傳輸、面向比特的數(shù)據(jù)鏈路層協(xié)議,具有差錯(cuò)檢測(cè)功能強(qiáng)大、高效和同步傳輸?shù)奶攸c(diǎn),目前HDLC協(xié)議已成為是通信領(lǐng)域中應(yīng)用最廣泛的協(xié)議之一。HDLC收發(fā)控制器完成了 HDLC幀的編碼和解碼功能,負(fù)責(zé)HDLC協(xié)議幀數(shù)據(jù)的發(fā)送和接收。
[0003]現(xiàn)有的HDLC收發(fā)控制器主要是通過(guò)使用HDLC專用芯片和軟件編程的方式來(lái)實(shí)現(xiàn)。HDLC專用芯片有很多資源使用不上,造成了資源浪費(fèi),而且在電路設(shè)計(jì)時(shí)不得不考慮其復(fù)雜的布局布線,此外,HDLC專用芯片升級(jí)速度太快,通用性差。軟件編程實(shí)現(xiàn)方式是通過(guò)處理器的應(yīng)用程序?qū)崿F(xiàn)HDLC收發(fā)控制,但是使用該方法會(huì)占用處理器的資源從而降低處理器的執(zhí)行速度,其次不易預(yù)測(cè)信號(hào)的時(shí)延和同步性,針對(duì)不同時(shí)序的處理器,需要重新修改程序和調(diào)試。
【實(shí)用新型內(nèi)容】
[0004]本實(shí)用新型提供一種基于FPGA的HDLC收發(fā)控制器,可兼容不同時(shí)序的處理器進(jìn)行HDLC幀收發(fā)控制,兼?zhèn)滠浖幊毯虷DLC專用芯片的優(yōu)點(diǎn),不占用處理器的資源,通用性好。
[0005]本實(shí)用新型提供的基于FPGA的HDLC收發(fā)控制器,所述HDLC收發(fā)控制器在FPGA上實(shí)現(xiàn)HDLC的收發(fā)控制功能,所述HDLC收發(fā)控制器包括:
[0006]處理器接口模塊、HDLC發(fā)送模塊和HDLC接收模塊;
[0007]所述處理器接口模塊用于:為處理器提供接口,與所述處理器進(jìn)行數(shù)據(jù)交換,控制所述HDLC發(fā)送模塊和HDLC接收模塊,若所述處理器的處理周期小于所述HDLC收發(fā)控制器的處理周期,在所述處理器執(zhí)行完一次讀/寫(xiě)操作后所述處理器接口模塊即回歸空閑狀態(tài),若所述處理器的處理周期大于或等于所述HDLC收發(fā)控制器的處理周期,在所述處理器執(zhí)行一次讀/寫(xiě)操作時(shí)所述處理器接口模塊進(jìn)入寫(xiě)等待狀態(tài),直至所述讀/寫(xiě)操作結(jié)束才回歸空閑狀態(tài);
[0008]所述HDLC發(fā)送模塊用于:接收所述處理器寫(xiě)入的數(shù)據(jù)并編碼成HDLC幀,向與所述處理器通信的裝置發(fā)送編碼后的HDLC幀;
[0009]所述HDLC接收模塊用于:接收與所述處理器通信的裝置發(fā)送的HDLC幀并進(jìn)行解碼,存儲(chǔ)解碼后的數(shù)據(jù),并向所述處理器發(fā)送中斷信號(hào)以使所述處理器讀取所述解碼后的數(shù)據(jù)。
[0010]進(jìn)一步地,所述HDLC發(fā)送模塊包括:
[0011]HDLC發(fā)送狀態(tài)寄存器,用于標(biāo)識(shí)所述HDLC發(fā)送模塊的狀態(tài);
[0012]第一數(shù)據(jù)緩存器,用于接收并存儲(chǔ)所述處理器寫(xiě)入的數(shù)據(jù);
[0013]校驗(yàn)碼生成單元,用于將所述第一數(shù)據(jù)緩存器中存儲(chǔ)的數(shù)據(jù)生成循環(huán)冗余檢查CRC-16校驗(yàn)碼;
[0014]時(shí)鐘同步單元,用于對(duì)所述校驗(yàn)碼進(jìn)行時(shí)鐘同步;
[0015]數(shù)據(jù)插0單元,用于對(duì)時(shí)鐘同步后的校驗(yàn)碼進(jìn)行并/串轉(zhuǎn)換和插0處理;
[0016]標(biāo)志位插入單元,用于對(duì)進(jìn)行并/串轉(zhuǎn)換和插0操作后的數(shù)據(jù)插上幀頭幀尾,得到編碼后的HDLC幀;
[0017]發(fā)送單元,用于向與所述處理器通信的裝置發(fā)送編碼后的HDLC幀。
[0018]進(jìn)一步地,所述HDLC接收模塊包括:
[0019]接收單元,用于接收與所述處理器通信的裝置發(fā)送的HDLC幀;
[0020]幀識(shí)別單元,用于對(duì)接收到的HDLC幀進(jìn)行幀識(shí)別并去掉幀頭幀尾;
[0021]去除零碼單元,用于對(duì)幀識(shí)別后的HDLC幀數(shù)據(jù)進(jìn)行去除零碼處理和串/并轉(zhuǎn)換;
[0022]時(shí)鐘同步單元,用于對(duì)去除零碼處理和串/并轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行時(shí)鐘同步;
[0023]校驗(yàn)單元,用于對(duì)時(shí)鐘同步后的數(shù)據(jù)進(jìn)行CRC校驗(yàn);
[0024]第二數(shù)據(jù)緩存器,用于存儲(chǔ)進(jìn)行CRC校驗(yàn)后的數(shù)據(jù),并在滿足預(yù)設(shè)條件時(shí)向所述處理器發(fā)送中斷信號(hào)以使所述處理器讀取所述解碼后的數(shù)據(jù);
[0025]HDLC接收狀態(tài)寄存器,用于標(biāo)識(shí)所述HDLC接收模塊的狀態(tài)。
[0026]進(jìn)一步地,所述處理器接口模塊包括:地址線、數(shù)據(jù)線、片選信號(hào)、寫(xiě)信號(hào)、讀信號(hào)和中斷信號(hào)。
[0027]本實(shí)用新型提供的基于FPGA的HDLC收發(fā)控制器,通過(guò)處理器接口模塊的特殊處理,可兼容不同時(shí)序的處理器進(jìn)行HDLC幀收發(fā)控制,具備軟件編程和HDLC專用芯片的優(yōu)點(diǎn),由于HDLC收發(fā)控制器是通過(guò)FPGA實(shí)現(xiàn)的,因此不占用處理器的資源,且可以在不同型號(hào)的FPGA芯片移植代碼,從而能夠適應(yīng)在不同場(chǎng)景的HDLC幀收發(fā)控制,通用性好。
【附圖說(shuō)明】
[0028]為了更清楚地說(shuō)明本實(shí)用新型或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本實(shí)用新型的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0029]圖1為本實(shí)用新型基于FPGA的HDLC收發(fā)控制器實(shí)施例一的結(jié)構(gòu)示意圖;
[0030]圖2為本實(shí)用新型基于FPGA的HDLC收發(fā)控制器實(shí)施例一中處理器接口模塊的工作狀態(tài)示意圖;
[0031]圖3為本實(shí)用新型基于FPGA的HDLC收發(fā)控制器實(shí)施例二的結(jié)構(gòu)示意圖;
[0032]圖4為本實(shí)用新型硬件系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]為使本實(shí)用新型的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本實(shí)用新型中的附圖,對(duì)本實(shí)用新型中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本實(shí)用新型一部分實(shí)施例,而不是全部的實(shí)施例?;诒緦?shí)用新型中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本實(shí)用新型保護(hù)的范圍。
[0034]本實(shí)用新型提供一種基于FPGA的HDLC收發(fā)控制器,通過(guò)FPGA實(shí)現(xiàn)HDLC幀收發(fā)控制功能。對(duì)不同工作時(shí)序的處理器能夠很好地適應(yīng),不需要修改FPGA代碼就可直接使用,作為一獨(dú)立硬件模塊,不存在占用處理器資源的情況,且硬件電路設(shè)計(jì)基本不用更改,可以在不同型號(hào)的FPGA芯片移植代碼,能夠適應(yīng)不同場(chǎng)景的HDLC幀收發(fā)控制,通用性好,同時(shí)具備軟件編程和HDLC專用芯片的優(yōu)點(diǎn)。下面結(jié)合附圖詳細(xì)進(jìn)行說(shuō)明。
[0035]圖1為本實(shí)用新型基于FPGA的HDLC收發(fā)控制器實(shí)施例一的結(jié)構(gòu)示意圖,如圖1所示,本實(shí)施例的HDLC收發(fā)控制器可以包括:處理器接口模塊10、HDLC發(fā)送模塊11和HDLC接收模塊12,其中,處理器接口模塊10用于:為處理器提供接口,與處理器進(jìn)行數(shù)據(jù)交換,控制HDLC發(fā)送模塊11和HDLC接收模塊12,圖2為本實(shí)用新型基于FPGA的HDLC收發(fā)控制器實(shí)施例一中處理器接口模塊的工作狀態(tài)示意圖,圖2中以HDLC收發(fā)控制器的處理周期為8個(gè)時(shí)鐘周期為例,如圖2所示,若處理器的處理周期小于HDLC收發(fā)控制器的處理周期,在處理器執(zhí)行完一次讀/寫(xiě)操作后處理器接口模塊10即回歸空閑狀態(tài);若處理器的處理周期大于或等于HDLC收發(fā)控制器的處理周期,在處理器執(zhí)行一次讀/寫(xiě)操作時(shí)處理器接口模塊10進(jìn)入寫(xiě)等待狀態(tài),直至讀/寫(xiě)操作結(jié)束才回歸空閑狀態(tài),這樣做保證了處理器讀/寫(xiě)HDLC收發(fā)控制器的唯一、準(zhǔn)確。如此以來(lái),對(duì)于不同時(shí)序的處理器,本實(shí)用新型的HDLC收發(fā)控制器都可以正常工作,因此可兼容不同時(shí)序的處理器進(jìn)行HDLC幀收發(fā)控制。
[0036]HDLC發(fā)送模塊11用于:接收處理器寫(xiě)入的數(shù)據(jù)并編碼成HDLC幀,向與處理器通信的裝置發(fā)送編碼后的HDLC幀。
[0037]具體地,當(dāng)處理器需要向HDLC收發(fā)控制器發(fā)送數(shù)據(jù)時(shí),通過(guò)讀HDLC發(fā)送模塊11以判斷HDLC發(fā)送模塊的狀態(tài),判斷其是否空閑,在判斷HDLC發(fā)送模塊11空閑時(shí),處理器可發(fā)送數(shù)據(jù)。
[0038]HDLC接收模塊12用于:接收與處理器通信的裝置發(fā)送的HDLC幀并進(jìn)行解碼,存儲(chǔ)解碼后的數(shù)據(jù),并向處理器發(fā)送中斷信號(hào)以使處理器讀取解碼后的數(shù)據(jù)。
[0039]具體地,當(dāng)HDLC接收模塊有供處理器讀取的數(shù)據(jù)時(shí),就會(huì)向處理器發(fā)出中斷信號(hào),然后處理器通過(guò)讀HDLC接收模塊12以判斷HDLC接收模塊的狀