新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)(二)

基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)(二)

作者: 時(shí)間:2013-05-25 來(lái)源:網(wǎng)絡(luò) 收藏

3.2 基于Verilog HDL 語(yǔ)言的硬件程序設(shè)計(jì)

  本設(shè)計(jì)采用Verilog HDL 語(yǔ)言進(jìn)行協(xié)議芯片的程序設(shè)計(jì),Verilog HDL 語(yǔ)言是一種硬件描述語(yǔ)言,設(shè)計(jì)數(shù)字芯片時(shí)可以按照層次描述,并可以進(jìn)行時(shí)序建模。本設(shè)計(jì)采用混合設(shè)計(jì)模式,主要設(shè)計(jì)的模塊有狀態(tài)機(jī)、協(xié)議幀檢測(cè)、FIFO 控制器設(shè)計(jì)等。

  1)狀態(tài)機(jī)設(shè)計(jì)。

  協(xié)議芯片的頂層模塊是狀態(tài)控制器部分,協(xié)議芯片共有四個(gè)狀態(tài), 分別處理基于Verilog HDL 程序語(yǔ)言的狀態(tài)機(jī)描述偽代碼如下:

  2)協(xié)議幀檢測(cè)。

  本協(xié)議芯片的幀校驗(yàn)和采用簡(jiǎn)單的加和形式進(jìn)行,在接收一方,如果數(shù)據(jù)幀中有用數(shù)據(jù)的加和同后續(xù)的校驗(yàn)和字節(jié)相同,則協(xié)議是正確的,否則丟棄該幀。協(xié)議幀校驗(yàn)和計(jì)算的代碼如下:

  3)FIFO 設(shè)計(jì)。

  FIFO 利用了MachXO 系列 的嵌入式SRAM 塊的資源,Lattice 公司的ispLEVER 7.0 軟件提供了可配置的IP 軟核,該軟核可以采用基于嵌入式SRAM 塊實(shí)現(xiàn), 也可以使用查找表實(shí)現(xiàn),F(xiàn)IFO 的IP 核框圖如圖4 所示,F(xiàn)IFO 的可配置參數(shù)包括FIFO字節(jié)深度、EmptyFull、Almostempty 和AlmostFull觸發(fā)字節(jié)深度、數(shù)據(jù)寬度、大小端模式等。

基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)(二)

  圖4 可配置FIFO 控制器IP 軟核框圖

3.3 協(xié)議芯片綜合

  Verilog HDL 程序通過(guò)Lattice 公司的 開(kāi)發(fā)軟件ispLEVER 7.0 進(jìn)行編譯、綜合,多次嘗試后最終選擇了Lattice 公司MachXO 系列 中的MachXO2280 芯片, 綜合后的主機(jī)協(xié)議芯片占用CPLD 資源的60%左右, 從機(jī)協(xié)議芯片占用CPLD資源的45%左右,F(xiàn)IFO 控制器充分利用了MachXO2280芯片內(nèi)部的嵌入式RAM 塊, 同時(shí)利用了鎖相環(huán)實(shí)現(xiàn)高頻率的時(shí)鐘工作。最后通過(guò)LSC ispVM(R)System 燒寫(xiě)軟件經(jīng)JTAG 口下載到CPLD 芯片中進(jìn)行協(xié)議芯片功能驗(yàn)證測(cè)試。

  4 結(jié)語(yǔ)

  本文設(shè)計(jì)的背板芯片在背板串行總線時(shí)鐘頻率為25MHz、信號(hào)電平為L(zhǎng)VTTL,底板引線長(zhǎng)度為40cm,1 臺(tái)主機(jī)連接3 臺(tái)擴(kuò)展模塊的情況下工作穩(wěn)定并通過(guò)了群脈沖試驗(yàn),驗(yàn)證了這一組協(xié)議芯片的設(shè)計(jì)是成功的。由于該組協(xié)議芯片是針對(duì) 的周期性和非周期性數(shù)據(jù)傳送專(zhuān)門(mén)設(shè)計(jì)的,硬件實(shí)現(xiàn)的協(xié)議幀控制器支持高速率通信、支持?jǐn)?shù)據(jù)幀檢驗(yàn)功能,避免了數(shù)據(jù)傳送的錯(cuò)誤,大大降低了外圍的軟件開(kāi)銷(xiāo),增強(qiáng)了可靠性,是一組非常適合用于 背板總線或者需要多模塊協(xié)同工作的背板總線系統(tǒng)協(xié)議芯片。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉