基于FPGA的Picoblaze核实现Modbus通信协议[图]

摘要:给出了一种在Xinlinx的Spartan-3E评估板上实现Modbus通信协议的方法。该方法以PC为上位机,并在评估板上嵌入Picoblaze软核作为下位机来实现Modbus通信协议的功能。文中同时介绍了使用Xilinx ISE和Picoblaze软核进行开发的方法。

0 引言

目前,从各大FPGA厂商公布的销售数据来看,Xilinx的FPGA市场份额占到了近50%。Spartan-3E系列的器件密度范围为10万到160万系统门,其单位逻辑单元的成本是FPGA行业中最低的,能够以标准产品价格实现微处理器、微控制器和数字信号处理器的功能,并可支持18种通用I/O标准,还可通过ISE来操作PicoBlaze软核。Spartan-3E同时结合了强大的平台FPGA功能和超低价位。因而可使更多的设计人员享受可编程能力所带来的益处。

1 Picoblaze核结构

本文采用Xilinx公司的Spartan-3E评估板及其PicoBlaze IP核来进行基于Modbus通信协议的系统设计。该系统的整体结构是以PC做为上位机,并在评估板上嵌入Picoblaze软核作为下位机,从而实现Modbus通信协议。PicoBlaze是Xilinx公司的一款8bit微控制器软核,它非常之小。可以嵌入到Cool RunnerⅡ,Virtex-E,Virtex-II(Pro)和Spartan-3E的CPLD以及FPGA中。对于整个指令集,PicoBlaze执行一条指令需要2个时钟周期。

在对PicoBlaze进行开发时,首先需要将PicoBlaze认识并执行的程序经过Assembler转换成相应的HDL文件并存放在FPGA内部的Block Memory中(因此,PicoBlaze执行一条指令所需的时钟周期是固定的)。然后,微控制器核心KCPSM3再从Block Memory里面读取程序并按顺序执行。PicoBlaze的存储空间为1024x18bit,也就是说,它能够存放1024条位长为18的指令。而PicoBlaze支持的指令集也很精简(只有57条),其中包含程序控制类(跳转,调用,返回)、算数类(加,减,比较)、逻辑类(与,或,异或)、中断类(中断开启/关闭),移位/旋转类(左移/右移,左旋/右旋)和输入/输出类(输入,输出)。PicoBlaze核的结构框架如图1所示。

图2是微控制器核心KCPSM3的结构框架图。KCPSM3中一共有16个长度为8位的通用寄存器,每个寄存器都可以在汇编代码中分别命名。其中,Scratch Pad Memory的大小为64 Bytes,作用相当于一块临时存储区。KCPSM3只支持1个中断信号,但实际上可以将多个中断信号用逻辑组合的方式变成一个来使用(会降低单中断通道的性能)。

作者:同济大学 张晶磊 来源:电子元器件应用


微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 本周热点本月热点

     

      最热通信招聘

      最新招聘信息

    最新技术文章

    最新论坛贴子