章潔
(成都信息工程學(xué)院,四川成都 610225)
基于FPGA的曼徹斯特編解碼研究及IP核設(shè)計
章潔
(成都信息工程學(xué)院,四川成都 610225)
曼徹斯特碼在通信中有廣泛的應(yīng)用,其編解碼器的設(shè)計是影響整個總線系統(tǒng)的關(guān)鍵因素,但是曼徹斯特碼的時序很復(fù)雜。本文采用FPGA技術(shù),深入研究曼徹斯特編解碼原理,完成了曼徹斯特編解碼的IP核設(shè)計,經(jīng)過仿真驗證了設(shè)計方法的正確性和工程應(yīng)用性。
曼徹斯特編碼 FPGA 解碼器
曼徹斯特碼是一種雙向碼或分相碼,是常用二元碼的一種,曼徹斯特編碼是一種自動同步的編碼方式,常用于通信中對串行數(shù)據(jù)進行編碼,其特點是利用碼元中2種不同的電平跳變來對傳輸數(shù)據(jù)進行編碼的,此外編碼后每對碼元都存在著電平跳變,這種特性和時鐘信號的特性相同,可以在曼徹斯特碼中提取出時鐘信號;曼徹斯特碼的每對碼元都含有跳變,編碼不會出現(xiàn)3個或者3個以上的“1”或者“0”,所以采用曼徹斯特碼進行通信,可以確保數(shù)據(jù)在傳輸過程中沒有直流成分,而且編碼中暗含有時鐘信號,數(shù)據(jù)的接收端能提取出數(shù)據(jù)發(fā)送端的時鐘,因此,采用曼徹斯特碼可以實現(xiàn)數(shù)據(jù)在接收和發(fā)送的同步。曼徹斯特碼以其高穩(wěn)定性和同步性而被廣泛的應(yīng)用于通信中,且更適合用于傳輸條件較差的環(huán)境中進行信息傳輸。
本文對曼徹斯特碼的原理進行深入研究,選用VHDL或Verilog語言,編寫曼徹斯特碼的功能模塊,將各模塊組成一個通用的IP核,并用EDA設(shè)計工具進行仿真、綜合和驗證。不同于其他曼徹斯特編碼器設(shè)計,本文設(shè)計中引入了儲存器模塊,最后把各模塊組成一個通用的IP核。
曼徹斯特編解碼系統(tǒng)設(shè)計要完成的任務(wù)是實現(xiàn)數(shù)據(jù)的編碼發(fā)送,同時還能解碼接收,并進行整個通信過程的驗證,因此,必須有一個模塊化的整體設(shè)計。曼徹斯特編解碼IP內(nèi)核包括6個模塊,即時序信號產(chǎn)生模塊、存儲器模塊、曼徹斯特編解碼控制模塊、曼徹斯特編碼模塊、曼徹斯特解碼模塊、存儲器接收模塊,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
圖1 曼徹斯特編解碼系統(tǒng)結(jié)構(gòu)圖
其中時序信號產(chǎn)生器主要是為整個系統(tǒng)提供所需的各種時鐘信號和復(fù)位信號;曼徹斯特編解碼控制器是系統(tǒng)的核心,為系統(tǒng)提供輸入數(shù)據(jù)和各個部分的控制信號;編碼器是對傳輸?shù)臄?shù)據(jù)進行編碼輸出;解碼器是對接收到的曼徹斯特碼進行解碼和串并轉(zhuǎn)換;存儲接收器為接收的數(shù)據(jù)分配相應(yīng)的存儲空間;存儲器是在FPGA中開辟專門的存儲空間對數(shù)據(jù)進行暫時的存儲。
圖3 數(shù)據(jù)編碼和解碼的波形仿真
如圖4所示,當(dāng)存儲接收器開始向存儲器2發(fā)送數(shù)據(jù)后,會通w_en反饋給控制器,控制器開始接收數(shù)據(jù),控制器通過信號read_rama_en控制存儲器2發(fā)送數(shù)據(jù),存儲器2根據(jù)控制器發(fā)送的地址信號,把對應(yīng)存儲空間的數(shù)據(jù)發(fā)送給控制器。
圖4 控制器接收數(shù)據(jù)的波形仿真
至此系統(tǒng)的整個工作過程驗證完畢,仿真中沒有出現(xiàn)任何掉幀的問題,仿真和理論設(shè)計相符合。
本文對曼徹斯特碼的數(shù)據(jù)通信過程進行驗證。設(shè)計主要是完成數(shù)據(jù)從編碼—發(fā)送—接收—解碼的整個通信過程的驗證,整個系統(tǒng)的驗證如圖2所示。
本文設(shè)計了基于FPGA的曼徹斯特編解碼IP核,以通信功能為主,完成了系統(tǒng)各個模塊的設(shè)計,并對各個模塊進行了仿真和驗證。從中可以看出曼徹斯特碼的穩(wěn)定性是很高的,作為IP軟核,具有可兼容性及可擴展性,從仿真結(jié)果看,該曼徹斯特編解碼IP核能完全達到光纖通信的要求,有一定的工程意義。
系統(tǒng)的工作開始是從控制器向存儲器1發(fā)送數(shù)據(jù)開始的,存儲器1起到一個對數(shù)據(jù)暫時存儲的作用,控制器向存儲器1發(fā)送數(shù)據(jù)的同時也向編碼器發(fā)出控制信號,命令編碼器開始工作。
圖3是系統(tǒng)編碼發(fā)送和解碼輸出的仿真,圖中mdo是數(shù)據(jù)的曼徹斯特碼傳輸,在控制器發(fā)送數(shù)據(jù)給存儲器1時,也控制編碼器工作,編碼器一幀一幀的接收數(shù)據(jù)并對數(shù)據(jù)編碼輸出,當(dāng)解碼檢測到編碼中的同步字后,解碼器開始對編碼進行解碼輸出,rx_dword是解碼器解碼并進行串并轉(zhuǎn)換后輸出給存儲器接收器的數(shù)據(jù),存儲器接收模塊接收數(shù)據(jù)后,按照規(guī)定為數(shù)據(jù)分配相應(yīng)的地址信息,并把地址信號和數(shù)據(jù)發(fā)送給存儲器2。
[1]劉福奇.FPGA嵌入式項目開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2009.
[2]張劍,郭莉.基于Xilinx ISE的FPGA/CPLD設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2009.
[3]何建新,高勝.數(shù)字邏輯設(shè)計基礎(chǔ)[M].北京:高等教育出版社, 2012.
[4]何道君,譚明.FPGA的設(shè)計與應(yīng)用[M].北京:清華大學(xué)出版社,2006.
[5]張偉.基于FPGA的通信接口模塊設(shè)計與實現(xiàn)[J].電子科技, 2012,25(7):95-98.
Research on Manchester Encoding and Decoding Based on FPGA and Design on Its IP Core
ZHANG Jie
(Chengdu University of Information Technology,Chengdu Sichuan 610225,China)
Manchester code is used widely in field of communication.The design on codec is a key factor which affects the whole bus-system,and the time sequence of Manchester code is very complex.In this paper,the principle of Manchester code is studied in depth by using the FPGA technology,and the IP core design is completed for Manchester coding and decoding.The simulation results show that this design method is correct and has some engineering application value.
Manchester coding;FPGA;decoder
F224-39
A
1008-1739(2015)12-67-2
定稿日期:2015-05-26
四川省教育廳2013年自然科學(xué)基金課題(13ZB0082)