基于CPLD的PLC背板總線協議接口芯片的設計
主機和從機協議芯片的內部結構框圖相同,如圖3 所示。
協議芯片內部有狀態(tài)機控制器、幀控制器、移位寄存器、接收/發(fā)送FIFO 和讀寫緩存。單片機發(fā)送的周期性、非周期性數據幀,首先都寫到寫緩存,在發(fā)送FIFO 中進行排隊發(fā)送,在SPI 時鐘SCLK 的驅動下數據幀被轉換為串行數據發(fā)送到背板總線;在SPI 時鐘的作用下, 接收來自背板總線上的串行數據;在狀態(tài)機和幀控制器的協調下,接收FIFO 中的有效數據幀被提取并放進讀緩存區(qū),等待單片機來讀取,如果是非周期性數據則發(fā)中斷信號通知單片機來取數據。讀緩存中的周期性數據是可以覆蓋的,新接收到的周期性數據直接覆蓋舊的周期性數據,而非周期性數據是單獨存放的,不能覆蓋,由單片機讀取并清除。
圖3 協議芯片內部結構框圖
協議芯片使得外接的單片機可以在空閑的情況下訪問讀緩存和寫緩存,單片機不必頻繁地通過中斷技術處理周期性數據,也使得PLC 主機可以無等待地訪問從機的周期性數據。
3 基于CPLD 的協議芯片實現
3.1 CPLD 芯片選型。
本設計選用lattice 公司的MachXO 系列芯片,該系列CPLD 集成了部分FPGA 的功能, 除了內置豐富的LUT 資源以外,還有大量分布式的SRAM 位和嵌入式的專用于FIFO 設計的SRAM 塊, 并有模擬鎖相環(huán)(PLL)支持時鐘信號的倍頻、分頻等,I/O引腳可配置成1.2/1.5/1.8/3.3V 電平兼容。
評論