一种用于profibus的光纤接口转换模块的实现方法_2

文档序号:9508273阅读:来源:国知局
r>【具体实施方式】
[0039] 本发明通过FPGA算法对PR0FIBUS报文进行解析、和调制/解调,使PR0FIBUS信 号能在电网络和光纤网络上相互转换和传输,从而能方便的进行PR0FIBUS总线的光、电混 合组网,达到长距离、高速率、高可靠性数据传输的目的。
[0040] 同时,采用光纤接口转换模块后,可以改变PR0FIBUS的网络拓扑结构,除传统的 总线型结构外,还可以组成树形、星型,或混合型结构,组网更加方便灵活。本发明中,利 用FPGA实现光纤接口转换模块的方法,具有低成本、速度快、工作稳定可靠的特点,由于在 FPGA算法中采用了合理的模块划分和高效的数据处理机制,对PR0FIBUS通讯的可靠性提 供了保障。
[0041] 参照图1,在本发明中,光纤模块硬件主要有现场可编程逻辑门阵列FPGA、 PR0FIBUS总线RS-485接口芯片以及光纤收发器组成。
[0042] RS-485接口芯片通过串口差分信号线A线与B线连接PR0FIBUS总线,实现与 PR0FIBUS网络部件通讯,PR0FIBUS总线网络部件包括PR0FIBUS主站和从站等。
[0043] 光纤收发器的功能是将现场可编程逻辑门阵列FPGA输出的电信号转换为光信号 发送至光纤线缆,并能够将从光纤线缆接收到的光信号转换为电信号输入到现场可编程逻 辑门阵列FPGA。
[0044] 现场可编程逻辑门阵列FPGA和RS-485芯片之间的通信接口主要包括串行接收 RXD、串行发送TXD和发送请求RTS信号。
[0045] 现场可编程逻辑门阵列FPGA与光纤收发器之间的通信接口主要包括FPGA输出调 制报文数据线0P_D0UT和FPGA输入调制报文数据线0P_DIN。
[0046] 本发明使用的现场可编程逻辑门阵列FPGA为美国Lattice公司 LFXP2-8E-5TN144I 芯片。
[0047] 上述各硬件之间的通讯关系:RS-485芯片将接收到的PR0FIBUS总线A线与B线信 号转换成串行接收RXD信号,并将RXD信号发送至现场可编程逻辑门阵列FPGA。现场可编 程逻辑门阵列FPGA采样RXD信号,对采样数据进行调制运算,运算结果发送至光纤收发器, 光纤收发器将调制电信号(0P_D0UT)转换成光信号发送到光纤线缆。光纤收发器也可以将 光信号转换为调制电信号(〇P_DIN)发送至FPGA,现场可编程逻辑门阵列FPGA对0P_DIN进 行采样、解调运算,解调出的数据通过串行发送数据线TXD发送至RS-485芯片,并置发送请 求RTS为高电平,RS-485芯片将TXD信号发送至PR0FIBUS总线差分信号A线与B线。
[0048] 参照图2,本发明中,现场可编程逻辑门阵列FPGA程序模块按照实现功能可划分 为接收串口数据模块、发送串口数据模块、接收数据缓存模块、发送数据缓存模块、波特率 搜索与锁定模块、波特率发生器模块、报文帧判决模块以及调制模块和解调模块。
[0049] 接收串口数据模块按照波特率采样脉冲对串行接收数据RXD进行采样,并同时对 解调模块解调后的串行报文数据进行采样,将采样的数据进行串并转换,转换后的报文数 据发送至报文帧判决模块。
[0050] 在PFGA锁定当前PR0FIBUS总线波特率条件下,接收串口数据模块将采样的串行 报文数据存储至接收数据缓存。
[0051] 参照图3,接收串口数据模块处理流程:当采集到串行接收RXD信号下降沿后,根 据波特率采样脉冲采样第一位数据,并判断采样值是否为'〇',判断结果是:如果采样的第 一位数据不是'〇',表示采样的数据不是有效的起始位,接收串口数据模块重新等待串行接 收数据RXD下降沿;如果采样的第一位数据是'0',表示采样的数据是有效的起始位,开始 采样第一字节数据并计算偶校验和,待第一字节数据采样完成后,判断偶校验和是否正确, 判断结果是:如果偶校验和错误,等待33个波特率采样脉冲后结束本次采样;如果偶校验 和正确,开始采样下一位数据,判断该位数据是否为字节停止位,判断结果是:如果是'〇', 表示该位不是字节停止位,接收串口数据模块等待33个波特率采样脉冲后结束本次采样; 如果是' Γ,表示该位是字节停止位,需要继续采样第二字节数据,按照上述步骤反复执行。 如果接收信号来自光纤收发器解调后的结果,处理流程与此相同。
[0052] 报文帧判决模块主要功能是依据PR0FIBUS标准判断报文数据是否正确,将判断 结果告知波特率搜索与锁定模块。
[0053] 波特率搜索与锁定模块实现的主要功能是搜索并获取当前PR0FIBUS总线波特 率,模块状态分为搜索状态和锁定状态。
[0054] 当光纤模块没有获取当前PR0FIBUS总线波特率的情况下,波特率搜索与锁定 模块处于搜索状态,通过不断轮换波特率序号,搜索能使接收串口数据模块正确采样 PR0FIBUS报文数据的波特率值,具体方法是:波特率搜索与锁定模块不断轮换当前波特率 值,从而使得波特率发生器模块产生轮换的波特率采样脉冲信号。接收串口数据模块利用 不同波特率采样脉冲采样PR0FIBUS报文数据,并将数据发送至报文帧判决模块。报文帧判 决模块接收到正确的一帧报文数据时,将正确的判断结果告知波特率搜索与锁定模块,波 特率搜索与锁定模块锁定当前波特率,至此波特率搜索与锁定模块获取当前PR0FIBUS总 线波特率,转到锁定状态。
[0055] 参照图4,波特率搜索与锁定模块程序流程是:上电后,光纤模块没有获取当前总 线波特率,波特率搜索与锁定模块处于搜索状态,此时按照初始默认的波特率值12MBit/S对PR0FIBUS总线报文进行采样,启动波特率搜索定时器,等待报文帧判决模块发送报文 帧判断正确结果标识,如果在波特率搜索定时时间范围内没有收到报文帧判断结果正确标 识,波特率搜索与锁定模块更换当前总线波特率到6MBit/s,重新启动波特率搜索定时器, 等待报文帧判决模块发送报文帧判断正确标识,如果在波特率搜索定时时间范围内依然没 有收到报文帧判断正确标识,波特率搜索与锁定模块继续更换当前总线波特率,依次反复 直到波特率搜索与锁定模块收到报文帧正确标识为止,波特率搜索与锁定模块锁定当前 PR0FIBUS总线波特率值。
[0056] 如果在波特率搜索时间范围内收到报文帧判断正确结果标识,波特率搜索与锁定 模块锁定当前总线波特率,停止波特率搜索定时器,启动波特率锁定定时器,波特率搜索与 锁定模块进入锁定状态,如果在波特率锁定定时时间范围内依然没有收到来自报文帧判决 模块判断结果正确标识,波特率搜索与锁定模块返回到搜索状态,重复搜索波特率;如果在 波特率锁定定时时间范围内,波特率搜索与锁定模块收到来自报文帧判决模块报文帧判断 结果正确标识,复位并重新启动波特率锁定定时器。
[0057] 波特率发生器模块依据波特率搜索与锁定模块发送的波特率值产生对应的波特 率采样脉冲信号,接收串口数据模块利用波特率采样脉冲对串行接收RXD信号和解调串行 报文数据进行采样,发送串口数据模块利用波特率采样脉冲信号产生串行发送TXD信号。
[0058] 接收数据缓存模块主要功能是缓存接收串口数据模块采样的串行报文数据,调制 模块读取接收缓存中的串行报文数据并将数据进行调制运算。
[0059] 接收数据缓存采用先进先出栈FIFO实现,先写入的数据在读取时先被读出,先进 先出栈FIFO的存储宽度是IBit,深度是256Bit。
[0060] 调制模块主要功能是对缓存中的PR0FIBUS报文数据进行调制运算,将调制后的 报文数据0P_D0UT输出至光纤收发器,光纤收发器将电信号0P_D0UT转换成光信号发送至 光纤线缆。
[0061] 参照图5,本发明中,当接收数据缓存没有PR0FIBUS总线报文数据时,FPGA调制 模块默认向光纤收发器发送48MHz方波。当接收数据缓存中存有PR0FIBUS总线报文数据 时,FPGA调制模块首先向光纤收发器发送调制报文起始符OxFl,然后按位读取接收数据缓 存中的PROFIBUS串行报文数据,并对串行报文数据进行调制运算,将调制运算后的数据发 送至光纤收发器,直到接收数据缓存中的PR0FIBUS报文数据全部被读取为止,调制运算结 束,此时调制模块输出调制报文结束符0xC3,至此调制模块完成一帧数据报文的调制,继续 向光纤收发器发送48MHz方波,直到接收数据缓存中再次存储PROFIBUS总线报文数据时, 重复上述处理流程。
[0062] 参照图6,本发明中,现场可编程逻辑门阵列FPGA调制模块对PROFIBUS报文帧进 行调制运算后,将运算输出数据0P_D0UT发送至光纤收发器,光纤收发器将0P_D0UT电信号 转换为光信号发送至光纤线缆。调制运算方法是调制模块用12MHz方波,即24MBit/s信号 作为载频对PROFIBUS串行数据报文进行异或运算,运算结果为调制数据报文0P_D0U
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1