莫太平 王 丹 張明志
(桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院,廣西桂林 541004)
近年來(lái),芯片的設(shè)計(jì)不斷向著功能增強(qiáng)和集成度提高的方向發(fā)展,IP核的重用是設(shè)計(jì)人員贏得迅速上市時(shí)間的主要策略。隨著CPLD/FPGA的規(guī)模越來(lái)越大,設(shè)計(jì)越來(lái)越復(fù)。IP軟核是用VHDL等硬件描述語(yǔ)言描述的功能塊,但是并不涉及具體電路元件實(shí)現(xiàn)這些功能。軟IP核進(jìn)行系統(tǒng)設(shè)計(jì)可以提高設(shè)計(jì)性能,降低開(kāi)發(fā)成本,縮短設(shè)計(jì)周期,其靈活性強(qiáng)、仿真方便,降低了設(shè)計(jì)風(fēng)險(xiǎn)。由于不涉及物理實(shí)現(xiàn),為后續(xù)設(shè)計(jì)留有很大的發(fā)揮空間,增大了IP的靈活性和適應(yīng)性,因此使用基于FPGA的IP軟核實(shí)現(xiàn)PROFIBUS-DP從站的設(shè)計(jì)。
PROFIBUS-DP從站運(yùn)用自上而下的設(shè)計(jì)思路,先確定電路的總體框架,然后設(shè)計(jì)各個(gè)模塊,并對(duì)IP模塊功能仿真。需要用Verilog編寫(xiě)模塊測(cè)試激勵(lì)文件,如為串口通信接收[1]模塊編寫(xiě)輸入信號(hào)波形,并搭建PC機(jī)與模塊之間的串行通信環(huán)境。通過(guò)頂層文件將功能驗(yàn)證正確的模塊組合起來(lái)形成一個(gè)整體設(shè)計(jì),并對(duì)整體設(shè)計(jì)中的IP軟核進(jìn)行功能仿真和綜合后仿真,最后將綜合后的系統(tǒng)文件下載到目標(biāo)FPGA芯片中進(jìn)行實(shí)際功能驗(yàn)證。系統(tǒng)的整體框架結(jié)構(gòu)及其組成模塊如圖1所示。
PROFIBUS-DP從站接口采用功能模塊設(shè)計(jì),系統(tǒng)主要由擴(kuò)展模塊及FPGA芯片組成,構(gòu)成其核心部分,其他還有RS485、開(kāi)關(guān)設(shè)定地址及電源模塊、USB接口、有源晶振等部分組成。
HDL文本形式提交給用戶,不含任何具有物理信息,經(jīng)過(guò)RTL級(jí)設(shè)計(jì)、優(yōu)化以及功能驗(yàn)證,用戶運(yùn)用IP軟核與綜合正確的門(mén)電路設(shè)計(jì)網(wǎng)表,借助于FPGA綜合工具可以很容易地與PROFIBUS-DP合成一體。能同時(shí)提高設(shè)計(jì)效率和節(jié)約硬件資源。
FPGA[2]的設(shè)計(jì)開(kāi)發(fā)流程主要包括行為綜合、邏輯綜合、技術(shù)映射和布局布線。一般情況,設(shè)計(jì)者使用描述語(yǔ)言(如VHDL,Verilog)描述電路。FPGA部分的主要任務(wù)是完成對(duì)PROFIBUS報(bào)文的組幀、拆幀、FCS校驗(yàn)以及對(duì)報(bào)文最基本的分析,對(duì)應(yīng)的是PROFIBUS的鏈路層功能。主要由鎖相環(huán)模塊、串口時(shí)鐘模塊、接收模塊和發(fā)送模塊及相應(yīng)的緩沖模塊、處理模塊、定時(shí)器模塊和寄存器模塊組成。
DP從站是進(jìn)行輸入和輸出信息采集和發(fā)送的外圍設(shè)備(VO設(shè)備、驅(qū)動(dòng)器、HMI、閥門(mén)等)?;贔PGA的PROFIBUS-DP[3]從站通信控制器要實(shí)現(xiàn)的功能目標(biāo)是,在加入總線系統(tǒng)后,能作為一個(gè)從站節(jié)點(diǎn)進(jìn)行正常的總線通信。通信控制器的工作過(guò)程可以概括為在PROFIBUS-DP通信端,將總線上傳送的串行數(shù)據(jù)轉(zhuǎn)換為從站用戶層的數(shù)據(jù),同時(shí)將從站用戶層的數(shù)據(jù)進(jìn)行分析打包并轉(zhuǎn)換成符合UART規(guī)范的串行數(shù)據(jù)返回到總線。
如圖2所示,軟 IP[4]是以綜合形式交付的,因而必須在目標(biāo)工藝中實(shí)現(xiàn),并由系統(tǒng)設(shè)計(jì)者驗(yàn)證。其優(yōu)點(diǎn)是源代碼靈活,可重定目標(biāo)于多種制作工藝,在新功能中重新配置。
(1)看門(mén)狗時(shí)鐘分頻器
看門(mén)狗的作用在于監(jiān)視總線通信端[5]是否在看門(mén)狗溢出時(shí)間內(nèi)收到主站的通信請(qǐng)求。溢出時(shí)間以1 ms為時(shí)基,系數(shù)由主站發(fā)送的參數(shù)幀進(jìn)行設(shè)置。
(2)波特率發(fā)生模塊
PROFIBUS-DP支持9.6 K~12 M之間的多級(jí)波特率傳輸。一共有10級(jí)。在同一網(wǎng)絡(luò)上所選用的傳輸波特率必須相同。
(3)485接口模塊
PROFIBUS-DP的物理層,用與總線連接,接收和發(fā)生信息;有波特率自適應(yīng)功能協(xié)議處理模塊:根據(jù)接收到的幀信息分析處理;實(shí)現(xiàn)從站狀態(tài)的轉(zhuǎn)換。
(4)協(xié)議處理模塊
通過(guò)RS485接口實(shí)現(xiàn)RS485信息的接收,然后在接收緩沖模塊中實(shí)現(xiàn)完整的PROFIBUS-DP幀的接收。當(dāng)一個(gè)完整的幀被接收后,通過(guò)請(qǐng)求分析模塊分析出所接收的幀的類型,并作相應(yīng)的處理。答分析模塊結(jié)合接收到的幀信息和從站所處析出應(yīng)答類型以及作相應(yīng)的處理。得出應(yīng)答發(fā)送緩沖中組成要發(fā)送的幀結(jié)構(gòu),再通過(guò)485接口發(fā)送出去。MCU接口用與用戶程序通信,數(shù)據(jù)的輸入輸出等。
如圖3。
根據(jù)請(qǐng)求分析模塊分析幀[64]在傳輸完成時(shí)的幀類型,具體判斷流程圖如圖4所示。
當(dāng)幀傳輸完成后,根據(jù)是否滿足SD2的條件來(lái)進(jìn)行幀的分類,最后會(huì)分為三種類型:rep_type=fdl_rep;識(shí)別SAP服務(wù)點(diǎn);rep_type=data_exchang。因而產(chǎn)生相對(duì)應(yīng)的應(yīng)答分析模塊的數(shù)據(jù)。
如圖5。模塊完成應(yīng)答分析,以及從站狀態(tài)轉(zhuǎn)換。
在本設(shè)計(jì)中,IP核[7]的應(yīng)用仿真,將利用所設(shè)計(jì)的IP核實(shí)現(xiàn)發(fā)送接收模塊之間的仿真?;贔PGA的PROFIBUS從站IP軟核設(shè)計(jì)的布局布線后仿真波形圖如圖6所示,成功完成仿真。
本文介紹了一種FPGA芯片PROFIBUS-DP從站的設(shè)計(jì)方法。從仿真效果上看,運(yùn)行穩(wěn)定、控制精度高、系統(tǒng)響應(yīng)速度快,系統(tǒng)采用軟IP核代替?zhèn)鹘y(tǒng)專用芯片,設(shè)計(jì)靈活、調(diào)試方便,大大縮短了開(kāi)發(fā)周期,提高了系統(tǒng)可靠性。利用FPGA的信號(hào)處理性能提高了系統(tǒng)的整體性能。
[1]劉欣.FlexRay通信控制器原型IP設(shè)計(jì)[D].北京:中國(guó)科學(xué)院,2007.
[2]石曉亮.基于FPGA的PROFIBUS-DP從站設(shè)計(jì)[D].杭州:浙江大學(xué),2008.
[3]THOMESSE JP.Field bus technology in industrial automation[J].Proceedings of the IEEE,2005,93(6):1073-1101.
[4]錢小輝.基于IP核的CPCI總線多通道數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.
[5]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2003:120-128.
[6]白光澤,邢燕.基于Verilog HDL的SPI IP核的設(shè)計(jì)及仿真實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2010,33(12).
[7]潘勇,袁慧梅,侯長(zhǎng)宏.基于FPGA的誤碼儀IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2009(3).