[发明专利]一种基于FPGA技术实现PROFIBUS-PA总线通信的方法有效
申请号: | 201910182696.7 | 申请日: | 2019-03-12 |
公开(公告)号: | CN109901469B | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | 罗小易;李文娟;孙慧民 | 申请(专利权)人: | 北京鼎实创新科技股份有限公司 |
主分类号: | G05B19/042 | 分类号: | G05B19/042 |
代理公司: | 北京万科园知识产权代理有限责任公司 11230 | 代理人: | 杜澄心;张亚军 |
地址: | 100120 北京市西城*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于FPGA技术实现PROFIBUS‑PA总线通信的方法,步骤:①在FPGA芯片中实现了PA通信链路层、曼彻斯特编码调制解调、报文解析与拼接、共享存储器DPRAM、通信接口等功能;②接收的PA总线标准电平信号通过外围驱动电路进入FPGA芯片被解调为PA总线报文,发送的总线报文由FPGA芯片调制为曼彻斯特编码后由外围驱动电路转换为PA总线标准电平信号;③FPGA芯片实现了标准PROFIBUS通信状态机制;④FPGA芯片和微控制单元MCU之间通过通信接口完成共享存储器DPRAM中各种数据的相互传输;⑤上电后,微控制单元MCU将PA从站初始化信息通过共享存储器DPRAM发送给FPGA芯片;⑥FPGA芯片按照获得的PA从站初始化信息完成总线通信。本发明实现了一种以低功耗FPGA芯片为核心技术实现PROFIBUS‑PA通信的方法。 | ||
搜索关键词: | 一种 基于 fpga 技术 实现 profibus pa 总线 通信 方法 | ||
【主权项】:
1.一种基于FPGA技术实现PROFIBUS‑PA总线通信的方法,其硬件设备包括:FPGA芯片、微控制单元MCU和外围驱动电路;其具体步骤如下:步骤①:在FPGA芯片中,实现了标准PROFIBUS通信状态机制模块、曼彻斯特编码调制解调模块、报文解析模块、报文拼接模块、和共享存储器DPRAM模块和通信接口模块;其中,标准PROFIBUS通信状态机制模块负责在接收到总线报文之后,判断接收到的报文是否正确合理,并跳转到符合PROFIBUS通信标准的通信状态,并根据当前通信状态给出响应总线报文;曼彻斯特编码调制解调模块负责在接收到经过外围驱动电路进入FPGA芯片的PA总线标准电平信号后,按曼彻斯特编码完成解调,并在得到需要发送到PA总线上的报文时,将报文调制为曼彻斯特编码;报文解析模块负责在得到经过曼彻斯特编码解调的总线报文后,按照PROFIBUS总线报文格式对报文进行解析,以确定接收到的总线报文类型,并获取报文中的通信数据;报文拼接模块负责根据要发送的报文类型和报文数据,按照PROFIBUS总线报文格式进行拼接,以形成完全符合PROFIBUS通信标准的总线报文;共享存储器DPRAM模块是由FPGA芯片实现的可供FPGA芯片和微控制单元MCU共同进行读写操作的共享存储器DPRAM,用于在FPGA芯片和微控制单元MCU之间传输总线通信数据,包括:PA从站初始化信息数据、DPV0输入输出数据、DPV1读写数据与各种状态标志信息;通信接口模块中包含了FPGA芯片向用户微控制单元MCU提供的多种通信接口,包括DPRAM通信接口、SPI通信接口和UART通信接口三种常用的通信接口;步骤②:在PROFIBUS‑PA网络中,所有PA总线标准电平信号以曼彻斯特编码在总线物理层上传输,PROFIBUS‑PA总线物理信号线并不直接与FPGA芯片相连,而是经由外围驱动电路之后与FPGA芯片连接,所有在PA总线上传输的报文都需要由FPGA芯片内部的曼彻斯特编码调制解调模块完成调制解调;步骤③:PROFIBUS‑PA总线通信的链路层通信状态机制与PROFIBUS DP总线通信完全一致,FPGA芯片的标准PROFIBUS通信状态机制模块实现了完全符合中国国家标准GB/T 20540‑2006的PROFIBUS总线链路层通信状态机制,在接收到总线报文之后,标准PROFIBUS通信状态机制模块从当前通信状态跳转或维持到正确的通信状态,并提供正确的响应报文;标准PROFIBUS通信状态机制模块实现了PA从站与PROFIBUS主站之间的周期性DPV0通信和非周期性DPV1通信,其中非周期性DPV1通信又包括DPC1通信和DPC2通信;步骤④:FPGA芯片内部实现的共享存储器DPRAM模块使得FPGA芯片和微控制单元MCU可以共同读写同一片共享存储器DPRAM空间,使得PA从站初始化数据、各种通信数据、命令标志和状态标志能在FPGA芯片与微控制单元MCU之间相互传输;共享存储器DPRAM模块内部又分为基础信息区、状态字节区、命令字节区、初始化数据区、诊断数据区、参数化数据区、配置数据区、DPV0输入数据区、DPV0输出数据区、DPC1读写数据区、DPC2读写数据区;步骤⑤:设备上电后,微控制单元MCU周期性查询FPGA芯片有效标志,在查询到此标志置位之后,微控制单元MCU将PA从站初始化数据写入共享存储器DPRAM的初始化数据区,并将命令寄存器区中相应的标志位置位,以通知FPGA芯片及时读取此PA从站初始化数据;FPGA芯片在上电启动进入正常工作状态后将FPGA芯片有效标志置位,然后等待微控制单元MCU发送PA从站初始化数据,在查询到命令寄存器区中的PA从站初始化数据有效标志位后,FPGA芯片从共享存储器DPRAM的初始化数据区中将PA从站初始化数据取出并进行解析;步骤⑥:PA从站初始化数据被传输给FPGA芯片的标准DPV0/V1通信状态机制模块,在解析了PA从站初始化数据之后,标准DPV0/V1通信状态机制模块按照PA从站初始化数据中给出的总线配置完成与PROFIBUS主站之间的通信,在接收到报文之后,此模块按照报文类型将报文数据存储到共享存储器DPRAM相应的寄存器区中,并将相应的标志位置位;在通信进入周期性数据交换状态之后,标准DPV0/V1通信状态机制模块与PROFIBUS主站进行周期性DPV0输入输出数据交换,在接收到PROFIBUS主站发送的输出数据之后,标准DPV0/V1通信状态机制模块将DPV0输出数据存储进共享存储器DPRAM的DPV0输出数据区,标准DPV0/V1通信状态机制模块向PROFIBUS主站提供的输入数据来自于共享存储器DPRAM的DPV0输入数据区;在接收到PROFIBUS主站发送的非周期性DPC1读写请求或DPC2读写请求之后,标准DPV0/V1通信状态机制模块将非周期性读写请求中包含槽号、索引号在内的具体参数写入共享存储器DPRAM的DPC1读写数据区或DPC2读写数据区,并置位相应的标志位以通知微控制单元MCU处理此条非周期性读写请求,微控制单元MCU在查询到非周期性DPC1读写请求标志或DPC2读写请求标志之后,处理当前非周期性读写请求,并将非周期性读写响应存储进共享存储器DPRAM的DPC1读写数据区或DPC2读写数据区,微控制单元MCU同样需要置位相应的标志,以告知FPGA芯片非周期性读写请求处理完成,FPGA芯片的标准DPV0/V1通信状态机制模块处理与PROFIBUS主站之间的非周期性通信报文序列,直到查询到微控制单元MCU给出的DPC1读写响应标志或DPC2读写响应标志,用共享存储器DPRAM中给出的非周期性读写响应数据组成响应报文发送给PROFIBUS主站。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京鼎实创新科技股份有限公司,未经北京鼎实创新科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910182696.7/,转载请声明来源钻瓜专利网。