下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Picoblaze软核的Modbus通信协议设计目前,从各大FPGA厂商公布的销售数据来看,Xilinx的FPGA市场份额占到了近50%。Spartan-3E系列的器件密度范围为10万到160万系统门,其单位逻辑单元的成本是FPGA行业中最低的,能够以标准产品价格实现微处理器、微控制器和数字信号处理器的功能,并可支持18种通用I/O标准,还可通过ISE来操作PicoBlaze软核。Spartan-3E同时结合了强大的平台FPGA功能和超低价位。因而可使更多的设计人员享受可编程能力所带来的益处。1Picoblaze核结构本文采用Xilinx公司的Spartan-3E*估板及其PicoBlazeIP核来进行基于Modbus通信协议的系统设计。该系统的整体结构是以PC做为上位机,并在*估板上嵌入Picoblaze软核作为下位机,从而实现Modbus通信协议。PicoBlaze是Xilinx公司的一款8bit微控制器软核,它非常之小。可以嵌入到CoolRunnerⅡ,Virtex-E,Virtex-II(Pro)和Spartan-3E的CPLD以及FPGA中。对于整个指令集,PicoBlaze执行一条指令需要2个时钟周期。在对PicoBlaze进行开发时,首先需要将PicoBlaze认识并执行的程序经过Assembler转换成相应的HDL文件并存放在FPGA内部的BlockMemory中(因此,PicoBlaze执行一条指令所需的时钟周期是固定的)。然后,微控制器核心KCPSM3再从BlockMemory里面读取程序并按顺序执行。PicoBlaze的存储空间为1024x18bit,也就是说,它能够存放1024条位长为18的指令。而PicoBlaze支持的指令集也很精简(只有57条),其中包含程序控制类(跳转,调用,返回)、算数类(加,减,比较)、逻辑类(与,或,异或)、中断类(中断开启/关闭),移位/旋转类(左移/右移,左旋/右旋)和输入/输出类(输入,输出)。PicoBlaze核的结构框架如图1所示。
图1PicoBlaze核的结构框架图图2是微控制器核心KCPSM3的结构框架图。KCPSM3中一共有16个长度为8位的通用寄存器,每个寄存器都可以在汇编代码中分别命名。其中,ScratchPadMemory的大小为64Bytes,作用相当于一块临时存储区。KCPSM3只支持1个中断信号,但实际上可以将多个中断信号用逻辑组合的方式变成一个来使用(会降低单中断通道的性能)。
图2微控制器核心KCPSM3的结构框架图2Modbus协议2.1Modbus协议简介Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以实现通信。标准的Modbus接口使用RS-232C兼容串行接口,控制器通信使用主从技术,它仅有一个设备(主设备)能初始化传输(查询)。其他设备(从设备)则根据主设备查询提供的数据作出相应反应。2.2串行传输模式在标准Modbus上,控制器可使用ASCII或RTU通讯模式来进行通讯。在本设计采用的是RTU模式。当控制器以RTU模式在Modbus总线上进行通讯时,信息中的每8位字节可分成2个4位16进制的字符,该模式的主要优点是在相同波特率下,其传输的字符密度高于ASCII模式,但每个信息必须连续传输。其RTU模式的数据传输格式如表1所列。表1RTU模式的数据传输格式
在RTU模式中,每个字节格式的编码系统可以为8位二进制、十六进制0~9和A~F。其数据位包括1位起始位,8位数据(低位先送)、奇/偶校验时1位/无奇偶校验时0位、带校验时1位停止位/无校验时2位停止位。本系统的错误校验采用循环冗余校验(CRC)。2.3Modbus的信息帧无论是ASCII模式还是RTU模式,Modbus信息都以帧的方式传输,每帧有确定的起始点和结束点。表2所列即为RTU模式时的消息帧格式。表2RTU模式时的消息帧格式
使用时,接收设备在信息的起点开始读地址,并确定要寻址的设备(广播时对全部设备)以及信息传输的结束时间。也可以检测部分信息,有错误也可作为一种结果设定。本文使用的是RTU消息帧。在RTU模式中,信息开始至少需要3.5个字符的静止时间。依据使用的波特率,很容易计算这个静止的时间(如表2中的T1-T2-T3-T4)。之后,第一个区的数据即为设备地址。各个区允许发送的字符均为16进制的0—9,A—F。网络上的设备可连续监测网络上的信息,包括静止时间等。当接收到第一个地址数据时,每台设备都立即对它解码,以决定是否是自己的地址。发送完最后一个字符号后,也将有一个3.5个字符的静止时间,然后才能发送一个新的信息。整个信息必须连续发送。如果在发送帧信息期间出现大于1.5个字符的静止时间,则接收设备将刷新不完整的信息,并假设下一个地址数据。同样,若在一个信息后立即发送一个新信息(若无3.5个字符的静止时间),将会产生一个错误。这是因为合并信息的CRC校验码无效而产生的错误。RTU方式时,可采用CRC方法计算错误校验码,即用CRC校验传送的全部数据。它会忽略信息中单个字符数据的奇偶校验方法。2.4错误检测方法标准的Modbus串行网络采用奇偶校验和帧检测两种错误检测方法,其中奇偶校验对每个字符都可用,而帧检测(LRC或CRC)则应用于整个消息。由于本文采用RTU模式进行数据传输,故使用CRC校验方法,它可校验传送的全部数据。其具体实现方法如下:CRC码为2个字节/16位的二进制值。通常由发送设备计算CRC值,并把它附到信息中去;接收设备则在接收信息过程中再次计算CRC值并与CRC的实际值进行比较。若二者不一致,则产生一个错误。校验开始时,先把16位寄存器的各位都置为“1”,然后把信息中的相邻2个8位字节数据放到当前寄存器中处理。一般只有每个字符的8位数据用于CRC处理,而起始位、停止位和校验位不参与CRC计算。CRC校验时,每个8位数据先与该寄存器的内容进行异或运算,然后向最低有效位(LSB)方向移位,当用零填入最高有效位(MSB)后,再对LSB检查,若LSB=1,则寄存器与预置的固定值进行异或,若LSB=0,则不作异或运算。之后,重复上述处理过程,直至移位8次。最后一次(第8次)移位后,下一个8位字节数据再与寄存器的当前值进行异或,然后再重复上述过程。全部处理完信息中的数据字节后,最终得到的寄存器值即为CRC值。CRC值附加到信息时,低位在先,高位在后。CRC生成的多项式是:。2.5功能选择本文选择03读保持寄存器和06预置单个寄存器来进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钼矿排水系统改造协议
- 污水管道疏通清洗协议
- 铁艺雨棚施工合同
- 大坝结构修复合同
- 社区居民合租活动室合同
- 青年发展援助捐赠协议
- 医疗卫生工程合同
- 景区个人车位租赁合同范本
- 大理石博物馆展柜制作合同
- 水利信息化建设项目水务施工合同
- 学校学生会学生干部工作素质提升培训教学课件
- 2023年辽阳市宏伟区事业单位考试真题
- 环境工程专业英语 课件
- 四川美丰梅塞尔气体产品有限公司5000吨-年干冰技术改造项目环境影响报告
- 教学工作中存在问题及整改措施
- 2013部编版九年级物理全一册《测量小灯泡的电功率》评课稿
- 人教版九年级数学上册《二次函数与一元二次方程》评课稿
- 锻造焊接铸造缺陷课件
- 钢管静压桩质量监理细则
- 新生儿科品管圈-降低新生儿红臀发生率课件
- 弯垫板级进模的设计本科毕业论文
评论
0/150
提交评论