劉巖俊,閆海霞
(1.中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春130033;2.吉林大學(xué) 電子學(xué)院,吉林 長(zhǎng)春130012)
HDLC(High Level Date Link Control)協(xié)議是通信領(lǐng)域中應(yīng)用最廣泛的協(xié)議之一,它是一種面向比特的鏈路層協(xié)議,其最大特點(diǎn)是數(shù)據(jù)不必為規(guī)定字符集,對(duì)任何一種比特流均可以實(shí)現(xiàn)透明的傳輸。目前,市場(chǎng)上有很多專用HDLC芯片,但其控制復(fù)雜,通道數(shù)目有限,通訊速度低,不能滿足某測(cè)控平臺(tái)的設(shè)計(jì)要求。
FPGA能對(duì)任意數(shù)據(jù)寬度的信號(hào)進(jìn)行處理,內(nèi)部的功能模塊可以并行處理,因此,采用FPGA技術(shù)設(shè)計(jì)HDLC協(xié)議控制器可以均衡整個(gè)系統(tǒng)的負(fù)荷,實(shí)現(xiàn)多通道的高性能HDLC協(xié)議控制器,保證通信的可靠性。
本文使用FPGA設(shè)計(jì)并實(shí)現(xiàn)了六通道HDLC協(xié)議,并且使用RS485的半雙工工作模式,實(shí)現(xiàn)的1 Mb/s串行通信,滿足某測(cè)控系統(tǒng)的使用要求。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
為滿足某測(cè)控平臺(tái)的高速通信、多通道收發(fā)、易于擴(kuò)展的任務(wù)要求,設(shè)計(jì)了以FPGA為接收控制模塊,DSP為中央處理器的通信控制系統(tǒng)。系統(tǒng)利用RS485總線通信,采用 DS96F175ME、DS96F174ME進(jìn)行 TTL信號(hào)與差分信號(hào)轉(zhuǎn)換,HDLC協(xié)議的發(fā)送模塊、接收模塊、CRC校驗(yàn)等功能由FPGA實(shí)現(xiàn),DSP與FPGA之間數(shù)據(jù)交換采用XINTF接口。DSP與FPGA芯片之間數(shù)據(jù)通過數(shù)據(jù)線、地址線、片選信號(hào)、讀寫控制信號(hào)連接。系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
本系統(tǒng)采用Xilinx公司Spartan III系列XC3S 400TQFP144芯片[1-2],它具有 400K個(gè)系統(tǒng)門,8064個(gè)邏輯單元,896個(gè) CLB,56KB分布式 RAM,288KB塊 RAM,4個(gè)DCM(時(shí)鐘管理器),97個(gè)用戶I/O。其內(nèi)部資源可支持六通道HDLC所需要資源。
采用TI公司定點(diǎn)DSP芯片TMS320F2812來完成信號(hào)處理工作,以滿足系統(tǒng)對(duì)精度和速度的要求。TMS320F2812是TI公司為實(shí)現(xiàn)低功耗、高速實(shí)時(shí)信號(hào)處理而專門設(shè)計(jì)的32位定點(diǎn)數(shù)字信號(hào)處理器,采用改進(jìn)的哈佛結(jié)構(gòu),具有高度的操作靈活性和運(yùn)行速度,可滿足實(shí)時(shí)嵌入式應(yīng)用的需要。TMS320F2812主要由中央處理器CPU、內(nèi)部總線控制、特殊功能寄存器、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器 ROM、I/O接口擴(kuò)展功能、串行口、主機(jī)通信接口HPI、定時(shí)器、中斷系統(tǒng)等 10個(gè)部分組成。TMS320F2812的結(jié)構(gòu)是以8組16位總線為核心,形成了支持高速指令執(zhí)行的硬件基礎(chǔ)。8組總線分為1組程序總線、3組數(shù)據(jù)總線和4組地址總線[3-4]。
DSP作為控制中心,接收到FPGA發(fā)送的中斷請(qǐng)求后,讀取接收SRAM中的數(shù)據(jù),處理后,更新發(fā)送數(shù)據(jù),并向FPGA發(fā)送控制信號(hào)。FPGA接收信號(hào)后,按HDLC協(xié)議發(fā)送數(shù)據(jù)。DSP處理器通過分時(shí)處理,分別控制六通道的HDLC通信。DSP與FPGA連接原理框圖如圖2所示。
RS485總線采用半雙工的工作模式,數(shù)據(jù)與時(shí)鐘通過LVDS與設(shè)備連接,LVDS信號(hào)與本系統(tǒng)之間采用光耦隔離,接口電壓采用5 V,光耦隔離后,電壓采用 3.3 V,與系統(tǒng)電壓一致,RS485接口轉(zhuǎn)換原理圖如圖3所示。
系統(tǒng)工作過程如下:系統(tǒng)工作方式采用半雙工的RS485通信方式,采用NRM的HDLC操作方式,當(dāng)FPGA檢測(cè)到屬于該地址的數(shù)據(jù)時(shí),F(xiàn)PGA按HDLC協(xié)議接收數(shù)據(jù),并保存到FPGA的內(nèi)部FIFO1中,同時(shí)向DSP處理器發(fā)出中斷信號(hào),DSP收到中斷后,讀取FIFO1中數(shù)據(jù),并向FIFO2中寫入需要發(fā)出的數(shù)據(jù),DSP寫完數(shù)據(jù)后,向FPGA發(fā)送“開始發(fā)送數(shù)據(jù)”信號(hào),F(xiàn)PGA收到該信號(hào)后,從FIFO2中讀取數(shù)據(jù),并通過HDLC協(xié)議發(fā)送[5-6]。
圖2 DSP與FPGA連接原理框圖
系統(tǒng)以TI公司的DSP處理器TMS320F2812為數(shù)據(jù)處理核心,采用FPGA作為串行通信控制器控制六通道HDLC協(xié)議的通信控制。
下面以一個(gè)通道的收發(fā)控制為例來介紹通信軟件。通信的實(shí)現(xiàn)以HDLC協(xié)議為基礎(chǔ),下面簡(jiǎn)單介紹一個(gè)HDLC幀格式。
在HDLC通信協(xié)議中,所以信息都是以幀形式傳送的,HDLC幀格式如表1所示。
表1 HDLC幀格式
通過表1可以看到HDLC幀包括幀頭、站址、數(shù)據(jù)、CRC校驗(yàn)、幀尾5部分。
FPGA完成HDLC協(xié)議的轉(zhuǎn)換,需要完成HDLC協(xié)議數(shù)據(jù)接收、CRC校驗(yàn)、HDLC協(xié)議數(shù)據(jù)發(fā)送等工作,F(xiàn)PGA內(nèi)部由2個(gè)模塊組成,一是接收模塊,另一個(gè)是發(fā)送模塊。數(shù)據(jù)發(fā)送包括表1所示的5部分。
數(shù)據(jù)發(fā)送狀態(tài)圖如圖4所示。接收狀態(tài)機(jī)與發(fā)送狀態(tài)機(jī)基本一致,這里不詳細(xì)論述。
圖4 數(shù)據(jù)發(fā)送流程圖
DSP作為系統(tǒng)的核心處理器,完成系統(tǒng)的運(yùn)算處理,并且需要通過RS485使用HDLC協(xié)議完成與其他系統(tǒng)之間的數(shù)據(jù)交互。DSP首先完成上電初始化,并進(jìn)行參數(shù)設(shè)置,完成中斷源XINT設(shè)置,GPIO設(shè)置,然后進(jìn)入主循環(huán)程序,進(jìn)行系統(tǒng)需要的運(yùn)算處理過程中,DSP以中斷方式接收FPGA提供的中斷信號(hào),接收到中斷信號(hào)后,完成通信數(shù)據(jù)處理工作。DSP軟件流程圖如圖5所示。
圖5 DSP軟件流程圖
本文提出了一種基于FPGA控制的6通道HDLC協(xié)議通信系統(tǒng),詳細(xì)說明了FPGA與DSP、RS485總線的接口關(guān)系及系統(tǒng)軟件實(shí)現(xiàn)。通過PC機(jī)的PCI接口的RS485采集卡進(jìn)行測(cè)試,系統(tǒng)通信速度可達(dá)1 Mb/s。系統(tǒng)設(shè)計(jì)簡(jiǎn)單、工作穩(wěn)定可靠。
[1]XILINX.DevicePackage UserGuide[S].2007.
[2]XILINX.Xilinx Spartan-3 Generation FPGA User Guide[S].2008.
[3]TEXAS INSTRUMENTS.TMS320F2810,TMS320F2812 Digital Signal Processors Data Manual[S].2003.
[4]關(guān)宗安,仲叢久,張芝賢,等.基于 TMS320F2812 DSP的網(wǎng)絡(luò)通信系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2009,35(3):94-96.