一种fpga的vme总线多串口卡的制作方法

文档序号:6644687阅读:242来源:国知局
一种fpga的vme总线多串口卡的制作方法
【专利摘要】本实用新型涉及一种FPGA的VME总线多串口卡。本实用新型包括DB25连接器(1)、串行通讯接口模块(2)、隔离电路(3)、FPGA微控制器(4)、总线驱动电路(5)、VME背板连接器(6)、电源模块(7),其特点在于:FPGA微控制器(4)依据VME总线主模块的指令设置本地控制寄存器,运用VHDL语言实现多波特率、多数据位、多停止位的UART。FPGA微控制器(4)与串口通讯模块(2)之间通过光耦进行隔离,用于控制多个串口收发模块发送和接收串行数据。FPGA微控制器(4)通过总线驱动电路(5)与VME总线主模块交互数据。应用此串口卡,通过灵活适配串口收发模块的类型,可实现RS232、RS422、RS485等多种类别不同数量的串口,具有通讯模式多样化、稳定可靠、灵活性强、适用范围广等优点。
【专利说明】—种FPGA的VME总线多串口卡

【技术领域】
[0001]本实用新型涉及一种通讯【技术领域】,更具体地说涉及一种FPGA的VME总线多串口卡。

【背景技术】
[0002]随着计算机科学与自动控制技术的飞速发展,工业控制器呈现出通用性、智能化和开放性的发展趋势,目前广泛应用于过程控制、制造工业、通信等众多工业领域。RS232/RS422/RS485串行通信已经成为工业控制器领域常规的数据通信方式。VME总线是一种高性能的、支持多处理器计算机系统的通用模块背板总线。它允许总线上模块之间通信,但不影响模块内部的通信,通信准确可靠,具有宽松的设计自由,可以在性能上进行优化,并保持系统的兼容性。基于VME总线的模块化子卡,可以灵活组合以适应多种不同工业现场的应用。工业控制领域通常需要主控制器与多个现场设备通过串口进行通信,而现在的工控机大多只能提供数量有限,形式单一的串口。目前解决多串口通讯的方法是购买串口卡,然而,市面上的多串口卡存在以下缺点:①兼容性较差。例如,某型号的多串口卡,只能与该公司的主控板卡兼容。②接口的属性不可改变。串口有RS232、RS422、RS485等具体接口,而串口卡只具有固定的接口属性与固定的数量,不利于现场灵活多变的应用要求。③参数配置固定,不能够根据需要任意配置相应参数。④成本较高。
实用新型内容
[0003]本实用新型的目的是:克服现有技术存在的缺陷,提供一种能够有效实现多串口数据通信、扩展方便、安全可靠、功耗较低、数据传输速率较高、适用范围较为广泛的FPGA的VME总线多串口卡。
[0004]本实用新型包括DB25连接器、串行通讯接口模块、隔离电路、FPGA微控制器、总线驱动电路、VME背板连接器、电源模块,其特点在于:
[0005]a、DB25连接器通过串行通讯接口模块与基于FPGA的VME总线多串口卡进行通讯。FPGA微控制器接收来自VME总线主模块的指令,设置本地控制寄存器;FPGA微控制器与串行通讯接口模块之间通过光耦进行隔离,控制多个串口收发模块发送和接收串行数据,FPGA微控制器通过总线驱动电路与VME总线主模块交互数据。
[0006]b、隔离电路采用光耦隔离模块U14实现,U14的3脚通过电阻R21与RS485的接收端子连接,U14的6、7脚分别通过电阻R28、R27上拉。
[0007]C、串行通讯接口模块为接口芯片,藕接于FPGA控制器。串行通讯接口模块通过接口芯片U6,将TTL电平转化为串口 RS422所使用的电平。接口芯片U6的2、3脚分别与RS422的数据接收端子422-R0,发送端子422-DI连接;接口芯片U6的8脚与7脚之间通过电阻R9,瞬间电压抑制器M11、M12及防雷抗电管G16、G17、G18连接实现保护。接口芯片U6的6脚与5脚之间通过电阻R10,瞬间电压抑制器M13、M14及防雷抗电管G19、G20、G21连接实现保护。
[0008]d、基于FPGA微控制器实现的UART,由UART内核、信号监测器、移位寄存器、波特率发生器、计数器、总线选择器和奇偶校验器共7个模块组成。UART内核是整个设计的核心;数据接收时,UART内核负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率的驱动下同步的接收并且保存接收端口上的串行数据;数据发送时,UART内核模块首先根据待发送的数据和奇偶校验位的设置产生完整的发送序列,包括起始位、数据位、奇偶校验位和停止位,之后控制移位寄存器将序列加载到移位寄存器的内部寄存器里,最后在波特率发生器的驱动下移位寄存器将串行数据输出;信号监测器用于对各个串行接口的输入信号进行实时监测,一旦发现新的数据则立即通知UART内核;移位寄存器的作用是存储输入数据或者输出的数据,当UART接收到串行数据输入时,移位寄存器在波特率模式下采集输入信号,并且保存结果;当UART进行串行数据输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到各个串行端口上,波特率发生器产生符合UART传输波特率的时钟,同时完成异步时钟的同步问题;波特率是通过VME总线接口向波特率保持寄存器设定不同的数值实现的,在波特率指定后,输入移位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率进行移位,一般16个时钟脉冲移位一次;计数器的功能是记录串行数据发送或者接收的数目,在计数到某数值时通知UART内核模块;总线选择器用于选择奇偶校验器的输入是数据发送总线还是数据接收总线;在接收数据时总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查已接收数据的奇偶校验位是否正确;而在发送数据时总线选择器将数据发送总线连接到奇偶检验器的输入端,UART内核就能够获取并且保存待发送序列所需的奇偶校验位了 ;奇偶校验器是根据奇偶校验的设置和输入数据计算出相应的奇偶校验位,它是通过组合逻辑实现的。
[0009]本实用新型的优点是:FPGA微控制器依据VME总线主模块的指令设置本地控制寄存器,运用VHDL语言实现多波特率、多数据位、多停止位的UART。FPGA微控制器与串行通讯接口模块之间通过光耦进行隔离,用于控制多个串口收发模块发送和接收串行数据。FPGA微控制器通过总线驱动电路与VME总线主模块交互数据。应用此串口卡,通过灵活适配串口收发模块的类型,可实现RS232、RS422、RS485等多种类别不同数量的串口,具有通讯模式多样化、稳定可靠、灵活性强、适用范围广等优点。
[0010]

【专利附图】

【附图说明】
[0011]下面结合附图和【具体实施方式】对本实用新型作进一步详细说明。
[0012]图1为本实用新型一种FPGA的VME总线多串口卡的结构示意图。
[0013]图2为图1中隔离模块3的光耦隔离电路图。
[0014]图3为图1中隔离电路3的RS422接口电路图。
[0015]图4为基于FPGA实现的UART内核结构示意图。
[0016]图5为图4中信号监测器模块处理流程图。
[0017]图6为图5中UART接收状态机状态转换图。
[0018]图7为图5中UART发送状态机状态转换图。

【具体实施方式】
[0019]在图1中:DB25连接器I通过串行通讯接口模块2与FPGA的VME总线多串口卡进行通讯;FPGA微控制器4接收来自VME总线主模块的指令,设置本地控制寄存器。控制寄存器由16bit数据构成,其中数据位DOO-DOl用于进行停止位的选择,D02-D03用于进行数据位的选择,D04-D05用于进行校验位的选择,D07进行中断状态的设定,D08-D11用于进行波特率的设定,D12-D15用于进行板卡的识别(见控制寄存器设定示意表I) ;FPGA微控制器4与串行通讯接口模块2之间通过光耦进行隔离,控制多个串口收发模块发送和接收串行数据,FPGA微控制器4通过总线驱动电路5与VME总线主模块交互数据;VME总线主模块通过设定FPGA内部的状态寄存器,来改变UART的工作参数,如波特率、停止位和数据帧结束标志等,以实现多种串口工作模式。电源模块7由VME背板提供5V输入电压,通过DC-DC转换电路,为多串口卡上的各个集成电路芯片提供电源。
[0020]控制寄存器设定示意表I
[0021]
位号*.+ 115-DM*.++ M3-1 M2...| MO*.+ K?.' _*++
功能.板卡识■号<+波特率选择〃 +


0001: 2400; 0010: 4800; 0011: 9600;
选择..用户定义0100: 19200; 0101: 38400; 0110: 57600:.0111: 115200-? *
位号.DOS:「_麵.' PQ3>.「齡.PM..1 B00> _
Λ?.宇断状S* ?S.+校驗位》择,.数*位选择r #止位选
撕厶匕Oli鱗.校验冑1 Ols β位;Ij丄
I?- 0'? 瓜寄校靈,* ?ο= n....\
°!冗止*11:无校验,.11: 8 位,? 105 ^Um f
[0022]在图2中:图1的串行通讯接口模块2与FPGA控制器4通过隔离电路3进行隔离。隔离电路3采用光耦隔离模块U14实现,具有较高的数据传输速率、时序精度和瞬态共模抑制能力。U14的3脚通过电阻R21与RS485的接收端子连接,U14的6、7脚分别通过电阻R28、R27上拉。
[0023]在图3中:串行通讯接口模块2为接口芯片,藕接于FPGA微控制器4。该接口芯片具有电平转化逻辑电路。图1中串行通讯接口模块2可以通过接口芯片U6,将TTL电平转化为串口 RS422所使用的电平。因此,仅需要更换不同的接口芯片,就可以改变串行通讯接口的属性,将通讯接口配置成相对应的RS232、RS422或RS485接口。接口芯片U6的2、3脚分别与RS422的数据接收端子422-R0,发送端子422-DI连接;接口芯片U6的8脚与7脚之间通过电阻R9,瞬间电压抑制器Mil、M12及防雷抗电管G16、G17、G18连接实现保护;接口芯片U6的6脚与5脚之间通过电阻R10,瞬间电压抑制器M13、M14及防雷抗电管G19、G20、G21连接实现保护。
[0024]在图4中:基于FPGA微控制器4实现的UART由UART内核、信号监测器、移位寄存器、波特率发生器、计数器、总线选择器和奇偶校验器共7个模块组成。UART内核是整个设计的核心。数据接收时,UART内核负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率的驱动下同步的接收并且保存接收端口上的串行数据。数据发送时,UART内核模块首先根据待发送的数据和奇偶校验位的设置产生完整的发送序列,包括起始位、数据位、奇偶校验位和停止位,之后控制移位寄存器将序列加载到移位寄存器的内部寄存器里,最后在波特率发生器的驱动下移位寄存器将串行数据输出。信号监测器用于对各个串行接口的输入信号进行实时监测,一旦发现新的数据则立即通知UART内核。移位寄存器的作用是存储输入数据或者输出的数据。当UART接收到串行数据输入时,移位寄存器在波特率模式下采集输入信号,并且保存结果;当UART进行串行数据输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到各个串行端口上。波特率发生器产生符合UART传输波特率的时钟,同时完成异步时钟的同步问题。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16倍,目的是为在接收时进行精确地采样,以提取异步串行数据。波特率是通过VME总线接口向波特率保持寄存器设定不同的数值实现的。将基准时钟1.8432MHz (或20MHz)用计数器的方式生成所需要的各种波特率,这个值的计算满足1843200/(16X所期望的波特率),例如希望输出9600Hz的波特率,这个值就是1843200/(16X9600) = 12。在波特率指定后,输入移位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率进行移位,一般16个时钟脉冲移位一次。计数器的功能是记录串行数据发送或者接收的数目,在计数到某数值时通知UART内核模块。总线选择器用于选择奇偶校验器的输入是数据发送总线还是数据接收总线,在接收数据时,总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查已接收数据的奇偶校验位是否正确,而在发送数据时,总线选择器将数据发送总线连接到奇偶检验器的输入端,UART内核就能够获取并且保存待发送序列所需的奇偶校验位了。奇偶校验器是根据奇偶校验的设置和输入数据计算出相应的奇偶校验位,它是通过组合逻辑实现的。
[0025]在图5中:信号监测器模块处理流程,首先信号检测器读取控制寄存器中的参数,以16倍的波特率设置采样时钟,并检测SIN线上的数据。当在接收时钟的上升沿采样发现SIN线上出现低电平时,就认为它是起始位,于是启动一个内部计数器。由于接收时钟频率为16倍的波特率,当计数器计到8(对SIN连续采样8次)即到一个数据位宽度的一半时,若发现SIN这时已变为高电平,则刚才的低电平可能是一个噪声干扰,而不是真正的起始位,或者接收器是在发送方发送一个字符的中间被允许接收,这两种情况下接收器并不开始接收数据,而是重新寻找新的起始位。若连续采样到8个低电平,则确认为正确的起始位。信号监测器通知UART内核,触发接收过程,开始接收数据。此后每隔一定时间(16个脉冲),在对应的每个数据位中间的一个接收时钟的上升沿处,采样SIN线并把采样到的信息以移位方式送入移位寄存器。接收完成后,重置信号监测器,准备接收下一次数据。
[0026]在图6中:UART内核数据接收过程由一个3位状态机实现,其状态有idle (空闲,等待SIN由高变为低电平)、shift (接收数据位)、parity (接收奇偶校验位)以及stop (接收停止位)共4种状态。状态转换图每一个状态表明了当前正在接收的数据属于哪一种字符,并且根据当前接收字符的状态,驱动其它部件进行恰当的操作。通过判断转换条件未检测到起始位、检测到起始位、未接收完全部数据、接收完成无校验位、接收完成验证校验位的成立,来实现各状态之间的转换,例如,若状态机当前处于shift状态,当条件接收完成验证校验位成立时,状态机转入parity状态,完成该状态下的操作。接收控制电路在接收串行数据的同时,还对接收数据的正确性和接收过程进行监视,在检测到停止位错误时,数据将被自动丢弃。
[0027]在图1中:UART内核数据发送过程受一个3位状态机控制,通过状态的转换来实现起始位、数据位、奇偶校验位以及停止位的发送。其状态有start (发送起始位)、shift (发送数据位状态)、parity (发送奇偶校验位)以及stop_lbit (发送I位停止位)、stop_2bit (发送第2个停止位)共5种状态。通过判断转换条件THR空、THR非空、数据未全部发送、数据全部发送且有校验位、数据全部发送且无校验位、I位停止位、2位停止位的成立,来实现各状态之间的转换,例如,若状态机当前处于shift状态,当条件数据全部发送且有校验位成立时,状态机转入parity状态,完成该状态下的操作。
[0028]综上所述,本实用新型提出的一种FPGA的VME总线多串口卡符合VME总线从模块标准,可以通过背板VME总线与主模块进行通信。提出的用于设定串口收发模块参数的控制寄存器是基于VHDL语言设计的微控制器内部寄存器。提出的多个串口收发模块是运用VHDL语言设计的基于FPGA实现的UART,具有数据位、波特率、校验位、停止位可灵活配置,适应多种应用场合的优点。提出的一种FPGA的VME总线多串口卡可提供8个串口,串行接口形式可以为RS232、RS422或RS485。实际应用中可根据需求,通过更换不同的接口芯片改变所述通讯接口的类型。提出的串行通讯接口模块2,具有电平转化逻辑电路。提出的隔离电路3采用光电耦合器,具有较高的数据传输速率、时序精度和瞬态共模抑制能力。提出的总线驱动电路5用于提高VME总线的驱动能力。提出的VME背板连接器6采用欧式标准DIN41612C型96芯插头,用于接入VME背板与主模块进行通信。提出的DB25连接器1,用于连接工业现场的各种设备,通过串行通讯接口与FPGA的VME总线多串口卡进行通讯。
【权利要求】
1.一种FPGA的VME总线多串口卡,包括DB25连接器(I)、串行通讯接口模块⑵、隔离电路(3)、FPGA微控制器(4)、总线驱动电路(5)、VME背板连接器(6)、电源模块(7),其特征在于: a、DB25连接器⑴通过串行通讯接口模块⑵与FPGA的VME总线多串口卡进行通讯;FPGA微控制器(4)接收来自VME总线主模块的指令,设置本地控制寄存器;FPGA微控制器(4)与串行通讯接口模块(2)之间通过光耦进行隔离,控制多个串口收发模块发送和接收串行数据,FPGA微控制器(4)通过总线驱动电路(5)与VME总线主模块交互数据; b、隔离电路(3)采用光耦隔离模块U14实现,U14的3脚通过电阻R21与RS485的接收端子连接,U14的6、7脚分别通过电阻R28、R27上拉; C、串行通讯接口模块⑵为接口芯片,藕接于FPGA控制器(4);串行通讯接口模块(2)通过接口芯片U6,将TTL电平转化为串口 RS422所使用的电平;接口芯片U6的2、3脚分别与RS422的数据接收端子422-R0,发送端子422-DI连接;接口芯片U6的8脚与7脚之间通过电阻R9,瞬间电压抑制器Mil、M12及防雷抗电管G16、G17、G18连接实现保护;接口芯片U6的6脚与5脚之间通过电阻R10,瞬间电压抑制器M13、M14及防雷抗电管G19、G20、G21连接实现保护; d、基于FPGA微控制器(4)实现的UART,由UART内核、信号监测器、移位寄存器、波特率发生器、计数器、总线选择器和奇偶校验器共7个模块组成。
2.根据权利要求1所述的一种FPGA的VME总线多串口卡,其特征在于:所述多个串行通讯接 口为 RS232、RS422 或 RS485。
【文档编号】G06F13/40GK203966118SQ201420330832
【公开日】2014年11月26日 申请日期:2014年6月19日 优先权日:2014年6月19日
【发明者】王鹏, 罗全珍, 马志妍 申请人:甘肃交通职业技术学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1