CPLD的PLC背板總線(xiàn)協(xié)議接口芯片的設計方案
3 基于CPLD 的協(xié)議芯片實(shí)現
3.1 CPLD 芯片選型。
本設計選用lattice 公司的MachXO 系列芯片,該系列CPLD 集成了部分FPGA 的功能, 除了內置豐富的LUT 資源以外,還有大量分布式的SRAM 位和嵌入式的專(zhuān)用于FIFO 設計的SRAM 塊, 并有模擬鎖相環(huán)(PLL)支持時(shí)鐘信號的倍頻、分頻等,I/O引腳可配置成1.2/1.5/1.8/3.3V 電平兼容。
3.2 基于Verilog HDL 語(yǔ)言的硬件程序設計
本設計采用Verilog HDL 語(yǔ)言進(jìn)行協(xié)議芯片的程序設計,Verilog HDL 語(yǔ)言是一種硬件描述語(yǔ)言,設計數字芯片時(shí)可以按照層次描述,并可以進(jìn)行時(shí)序建模。本設計采用混合設計模式,主要設計的模塊有狀態(tài)機、協(xié)議幀檢測、FIFO 控制器設計等。
1)狀態(tài)機設計。
協(xié)議芯片的頂層模塊是狀態(tài)控制器部分,協(xié)議芯片共有四個(gè)狀態(tài), 分別處理基于Verilog HDL 程序語(yǔ)言的狀態(tài)機描述偽代碼如下:
2)協(xié)議幀檢測。
本協(xié)議芯片的幀校驗和采用簡(jiǎn)單的加和形式進(jìn)行,在接收一方,如果數據幀中有用數據的加和同后續的校驗和字節相同,則協(xié)議是正確的,否則丟棄該幀。協(xié)議幀校驗和計算的代碼如下:
3)FIFO 設計。
FIFO 利用了MachXO 系列CPLD 的嵌入式SRAM 塊的資源,Lattice 公司的ispLEVER 7.0 軟件提供了可配置的IP 軟核,該軟核可以采用基于嵌入式SRAM 塊實(shí)現, 也可以使用查找表實(shí)現,FIFO 的IP 核框圖如圖4 所示,FIFO 的可配置參數包括FIFO字節深度、EmptyFull、Almostempty 和AlmostFull觸發(fā)字節深度、數據寬度、大小端模式等。
圖4 可配置FIFO 控制器IP 軟核框圖
用Verilog HDL 語(yǔ)言實(shí)現的發(fā)送和接收FIFO控制器的實(shí)例代碼如下:
3.3 協(xié)議芯片綜合
Verilog HDL 程序通過(guò)Lattice 公司的CPLD 開(kāi)發(fā)軟件ispLEVER 7.0 進(jìn)行編譯、綜合,多次嘗試后最終選擇了Lattice 公司MachXO 系列CPLD 中的MachXO2280 芯片, 綜合后的主機協(xié)議芯片占用CPLD 資源的60%左右, 從機協(xié)議芯片占用CPLD資源的45%左右,FIFO 控制器充分利用了MachXO2280芯片內部的嵌入式RAM 塊, 同時(shí)利用了鎖相環(huán)實(shí)現高頻率的時(shí)鐘工作。最后通過(guò)LSC ispVM(R)System 燒寫(xiě)軟件經(jīng)JTAG 口下載到CPLD 芯片中進(jìn)行協(xié)議芯片功能驗證測試。
4 結語(yǔ)
本文設計的背板總線(xiàn)協(xié)議芯片在背板串行總線(xiàn)時(shí)鐘頻率為25MHz、信號電平為L(cháng)VTTL,底板引線(xiàn)長(cháng)度為40cm,1 臺主機連接3 臺擴展模塊的情況下工作穩定并通過(guò)了群脈沖試驗,驗證了這一組協(xié)議芯片的設計是成功的。由于該組協(xié)議芯片是針對PLC 的周期性和非周期性數據傳送專(zhuān)門(mén)設計的,硬件實(shí)現的協(xié)議幀控制器支持高速率通信、支持數據幀檢驗功能,避免了數據傳送的錯誤,大大降低了外圍單片機的軟件開(kāi)銷(xiāo),增強了可靠性,是一組非常適合用于PLC 背板總線(xiàn)或者需要多模塊協(xié)同工作的背板總線(xiàn)系統協(xié)議芯片。
評論