《一种基于FPGA具有自识别功能的IO总线装置.pdf》由会员分享,可在线阅读,更多相关《一种基于FPGA具有自识别功能的IO总线装置.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410821282.1(22)申请日 2014.12.25G06F 13/38(2006.01)G06F 13/40(2006.01)(71)申请人 南京因泰莱电器股份有限公司地址 211100 江苏省南京市江宁科学园天元东路 52 号(72)发明人 张杭 倪浩(74)专利代理机构 南京知识律师事务所 32207代理人 张苏沛(54) 发明名称一种基于 FPGA 具有自识别功能的 IO 总线装置(57) 摘要本发明基于 FPGA 具有自识别功能的 IO 总线装置,属于总线技术领域。本发明包括 CPU、FPGA、槽位板件、并行总线、串。
2、行总线以及现场总线,所述 CPU 通过外部总线与 FPGA 进行数据交互,所述FPGA 通过并行总线或者串行总线与槽位板件交互 ;CPU 通过现场总线与槽位板件直接交互 ;所述FPGA提供板件地址给CPU,并帮助CPU发送和接收数据,所述 FPGA 中设有状态机,状态机能够循环选中板件接口,读取板件信息和数据信号。本发明具有自识别板件信息的功能,增强了数据交互的可靠性。板件之间通讯更加灵活,方便了装置平台更新换代。FPGA 作为 CPU 与外部数据的桥梁,通过并行总线与串行总线对板件数据进行交互。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明。
3、书6页 附图1页(10)申请公布号 CN 104484301 A(43)申请公布日 2015.04.01CN 104484301 A1/1 页21.一种基于 FPGA 具有自识别功能的 IO 总线装置,其特征在于,包括 CPU、FPGA、槽位板件、并行总线、串行总线以及现场总线,所述 CPU 通过外部总线与 FPGA 进行数据交互,所述 FPGA 通过并行总线或者串行总线与槽位板件交互 ;CPU 通过现场总线与槽位板件直接交互 ;所述 FPGA 提供板件地址给 CPU,并帮助 CPU 发送和接收数据,所述 FPGA 中设有状态机,状态机能够循环选中板件接口,读取板件信息和数据信号。2.根据权利。
4、要求 1 所述的 IO 总线装置,其特征在于,所述并行总线采用数据线、片选线、写信号线、读信号线,数据线为各槽位公用,并且数据传输为双向 ;各板件接口都连接片选线 ;读信号线中部分用于读取板件信息。3.根据权利要求 2 所述的 IO 总线装置,其特征在于,所述数据线为 8 位,所述选线为 1位,所述写信号线为 4 位,所述读信号线为 6 位,其中 2 位读信号线用作读取板件信息,4 位用作读取功能数据。4.根据权利要求 1 所述的 IO 总线装置,其特征在于,所述板件信息由 2 个 8 位数据组成,包含 5 位板件类型、3 位硬件版本、5 位 BOM 版本、3 位固定码。5.根据权利要求1所述。
5、的IO总线装置,其特征在于,所述FPGA的发送和接收寄存器采用 FIFO 缓存数据。6.根据权利要求1所述的IO总线装置,其特征在于,所述现场总线为CAN总线,所述串行总线为 RS485 串行总线。权 利 要 求 书CN 104484301 A1/6 页3一种基于 FPGA 具有自识别功能的 IO 总线装置技术领域0001 本发明涉及总线技术领域,特别是涉及可扩展的电力设备保护装置。背景技术0002 传统的电力设备保护装置中,主 CPU 板与开入、开出、模拟量等板件之间的连接采用专用总线,数据交互直接建立在主 CPU 与各种板件之间,此种数据传输方式存在诸多固有缺陷。首先,这种传输方式固定住各。
6、块板件的位置,即各块板件只能插在背板的固定位置,背板与主 CPU 板之间的连线在设计之初就已经固定,背板上各槽位不能插接其他类型的板件。其次,板件插错可能导致装置损坏,尤其是误插错电源板或模拟量板,将可能导致主 CPU 板损坏。第三,由于专用连线繁多,并且保护装置中没有智能的自检功能和识别功能,在长期工作中,会发生板件接插件处氧化,导致板件与背板连接不可靠,输入信号不能被正确识别,输出信号也可能错误动作。第四,随着电力设备对保护装置的需求增加,CPU需要经常更新换代,传统的装置往往需要对硬件和程序进行大幅修改。发明内容0003 为了解决上述现有技术中存在的问题,本发明提供了一种基于 FPGA 。
7、具有自识别功能的IO总线装置。实现了各种板件任意位置安装,并且主CPU具有自识别板件功能,从而增强了电力设备保护装置的可靠性。同时,通过 FPGA 管理 IO 总线,方便了硬件平台升级,CPU 更新换代。0004 本发明所采用的技术方案如下。0005 一种基于 FPGA 具有自识别功能的 IO 总线装置,包括 CPU、FPGA、槽位板件、并行总线、串行总线以及现场总线,所述 CPU 通过外部总线与 FPGA 进行数据交互,所述 FPGA 通过并行总线或者串行总线与槽位板件交互 ;CPU 通过现场总线与槽位板件直接交互 ;所述FPGA 提供板件地址给 CPU,并帮助 CPU 发送和接收数据。所述。
8、 FPGA 中设有状态机,状态机能够循环选中板件接口,读取板件信息和数据信号。0006 所述并行总线采用数据线、片选线、写信号线、读信号线,数据线为各槽位公用,并且数据传输为双向 ;各板件接口都连接片选线 ;读信号线中部分用于读取板件信息。0007 所述数据线为 8 位,所述选线为 1 位,所述写信号线为 4 位,所述读信号线为 6 位,其中 2 位读信号线用作读取板件信息,4 位用作读取功能数据。0008 所述板件信息由 2 个 8 位数据组成,包含 5 位板件类型、3 位硬件版本、5 位 BOM 版本、3 位固定码。0009 所述 FPGA 的发送和接收寄存器采用 FIFO 缓存数据。00。
9、10 所述现场总线为 CAN 总线,所述串行总线为 RS485 串行总线。0011 基于 FPGA 具有自识别功能的 IO 总线装置是通过 FPGA 对并行总线和串行总线统一管理,把 FPGA 当作 CPU 与各板件数据交互的主要桥梁。并行总线采用 8 位数据线、1 位片选线、4 位写信号线、6 位读信号线。串行总线可为 RS485 串行总线。 FPGA 通过并行总线说 明 书CN 104484301 A2/6 页4和 RS485 串行总线与各板件连接。FPGA 提供板件接口地址给 CPU,并帮助 CPU 发送和接收数据。对于速率要求较高的数据量采用 CAN 总线进行通讯,CPU 直接与各板件。
10、通讯。0012 并行总线由 FPGA 控制,背板上每个槽位都对应有各自的 CS 片选线。8 位数据为所有槽位公用,数据线是双向的,FPGA 可以发送数据给每个板件,也可以读取每个板件的数据。WR 写信号线有 4 位,配合 8 位数据线,可以向每个槽位的板件发送 32 位数据,如控制开出板上的继电器,单板最多支持 32 个继电器。同样的读信号线有 6 位,其中 2 位用作读取板件信息,剩余的4位用作读取功能数据,如读取开入板的开入量,单个板件最多支持32个开入信号。在 FPGA 中使用状态机循环选中每个槽位,并对读取每个槽位的板件信息和数据信号 ( 如开入量 ),接着写入数据到相应板件 ( 如控。
11、制继电器 )。自识别功能是通过读取板件信息实现的,板件信息由 2 个 8 位数据组成。板件信息包含 5 位板件类型、3 位硬件版本、5 位 BOM 版本、3 位固定码 ( 如 010)。固定码用于判断板件是否插入,便于排查因焊接出错导致板件信息错误的现象。0013 串行总线用于补充并行总线的不足,当主 CPU 板需要与专用板件通讯时,就采用串行总线传输数据。如直流采样板需要把采样数据上发给主 CPU 板时,直流采样板通过RS485 与主 CPU 板通讯。RS485 串行通讯总线也是由 FPGA 模拟 uart 实现,FPGA 将 RS485 串行总线传输的数据提供给CPU接口。FPGA的发送和。
12、接收寄存器可以采用FIFO缓存数据,这样减少 CPU 的消耗。背板上的每个槽位都留有 RS485 串行总线,方便每个槽位与主 CPU 板通讯。CAN 总线也是同样的设计,只不过是 CPU 与板件直接通讯,不经过 FPGA 统一控制。0014 并行总线与串行总线不仅可以独立工作传输不同的数据,还可以协同工作,都用来传输同种数据。对于关键数据使用并行总线传输给 CPU,同时也使用串行总线传输给CPU,这样增强了传输数据的可靠性。0015 有益效果 :0016 本发明相对于传统的电力设备保护装置内部数据总线作出了改进。0017 首先,总线对每个槽位的板件都可以自识别,这样可以读取板件信息,自识别板件。
13、类型,硬件版本等信息,便于程序处理,增强了各个板件的通用性。0018 其次,在 FPGA 中设计状态机循环控制每个槽位,增强了板件位置的灵活性,每个槽位不再固定只能插单种板件,而是每个槽位都可以插接任意板件。0019 第三,数据传输既可以通过并行总线,也可以通过串行总线,还可以同时通过两类总线传输,增强了数据的可靠性。而且 FPGA 中可以对开入量进行消抖动处理,增强了开入数据的可靠性。0020 第四,FPGA 控制并行总线和串行总线,于主 CPU 来说程序不需要 uart 驱动,方便主CPU更新换代,只需要编写与FPGA通讯部分的代码,就可以控制开出、读取开入和交换板件数据等功能。0021 。
14、第五,本发明数据读取和写入时主 CPU 与 FPGA 之间的操作可以保留 32 位,这种方法在一定程度上节省了主CPU的开销,降低了主CPU的使用率,同时对于读取的开入量还可以做消抖处理,在 FPGA 中做消抖处理又一步节省了主 CPU 的开销。0022 第六,在 FPGA 中采用上述的 RS485 串行总线控制器,增强了整体的通用性,主 CPU访问以上地址就可以实现 RS485 串行通讯,节省了主 CPU 的查询或中断时间。0023 第七,数据可以分别从不同的总线通道到达主 CPU,对于速率要求高的信号,通过说 明 书CN 104484301 A3/6 页5CAN 总线直接与主板的 CPU 。
15、相连,这样保证了信号的及时性。对于速率较低的信号,可以通过 RS485 总线传输数据。0024 第八,并行总线与串行总线不仅可以独立工作传输不同的数据,还可以协同工作,都用来传输同种数据。对于关键数据使用并行总线传输给主CPU,同时也使用串行总线传输给主 CPU,这样增强了传输数据的可靠性。0025 本发明的特点在于,对于某个槽位可以自识别是否有板件插入,自识别插入板件的类型、硬件版本等信息。而且可以动态识别,这样就可以实现板件的热插拔功能。同时板件的设计不局限于某种产品,不同产品可以使用同种单板,尤其是大量使用的开入开出板件。附图说明0026 图 1 是本发明的整体结构框图。0027 图 2。
16、 是本发明读取板件信息的电路图。具体实施方式0028 如图1所示,本实施例包括主CPU板,插接板件的槽位,三种总线并行总线、串行总线以及现场总线,主 CPU 板包括 CPU 模块和 FPGA 模块。其中这三种总线都与各槽位连接。每个槽位都可以使用这三种总线发送数据。除了 CAN 总线是直接由 CPU 与槽位连接,其余都是由 FPGA 与槽位相连,统一管理并行总线和 RS485 总线。0029 每个槽位有各自不同的地方,每个槽位有 CS 片选线与 FPGA 相连,这样 FPGA 就可以分时复用并行总线。0030 并行总线由CS片选线、2根RD_ID、4根RD、4根WR和8根数据线组成,如表1所示。
17、。0031 表 1 总线具体端子定义表0032 A B C1 CS 2 3 DATA1 DGND DATA04 DATA3 DGND DATA25 DATA5 DGND DATA46 DATA7 DGND DATA67 RD_1 DGND RD_0说 明 书CN 104484301 A4/6 页68 RD_3 DGND RD_29 RD_ID1 DGND RD_ID010 WR_1 DGND WR_011 WR_3 DGND WR_212 +3.3V CAN_H RS485+13 +3.3V CAN_L RS485-14 +5V +5V +5V15 +24V +24V +24V16 24GND。
18、 24GND 24GND0033 FPGA 的状态机通过片选、读写信号线读取和写入数据。读取 5 位板件类型和 3 位硬件版本的电路如图 2 所示。当片选线 CS 和 RD_ID0 同时为低电平时,BOARD_RD_ID0 信号为低电平,缓冲器就会把这个板件的 5 位类型码 0x07 和 3 位硬件版本号 0x0 传输到 8 位数据线上,FPGA 就可以读到该板件的类型和版本号。同样的方法可以读取板件的 BOM 号和用来确定板件是否插上的固定码。16 位板件信息定义如表 2 所示。0034 表 2 16 位板件信息定义表0035 0036 说 明 书CN 104484301 A5/6 页700。
19、37 从板件读取32位数据(如开入量)时,采用与读取板件信息同样的方法,通过4位RD 信号线来分别读取 8 位数据,在 FPGA 中拼成一个 32 位数据量,方便 32 位 CPU( 如 ARM)访问。向板件写入 32 位数据 ( 如继电器 ) 时,片选线 CS 与 4 位 WR 线配合,分别写入 8 位数据。此时 CPU 与 FPGA 之间的操作还可以保留 32 位。这种方法在一定程度上节省了 CPU的开销,降低了CPU的使用率,同时对于读取的开入量还可以做消抖处理,在FPGA中做消抖处理又一步节省了 CPU 的开销。0038 如表 1 所示,总线中不仅有并行总线,而且留有 RS485 和 。
20、CAN 两种串行接口。对于速率要求高的信号,通过 CAN 总线直接与主板的 CPU 相连,这样保证了信号的及时性。对于速率较低的信号,可以通过 RS485 总线传输数据。RS485 总线是主板上的 FPGA 与单板连接线,在 FPGA 中开辟 2 个 FIFO 用来缓存总线数据,这样保证数据不丢失传输的同时,减少了CPU 等待的时间,而且对于 CPU 来说程序不需要 uart 驱动,方便 CPU 更新换代,只需要编写与 FPGA 通讯部分的代码,就可以控制开出、读取开入和交换板件数据等功能。0039 FPGA 控制的 RS485 总线接口地址如下表。0040 表 3 FPGA 控制的 RS48。
21、5 总线接口地址表0041 0x3800_C000 RS485 控制寄存器 ;0bit 为时能,1bit 为自发自收,2bit 为复位0x3800_C002 RS485 波特率寄存器 ;用于计算 RS485 的波特率0x3800_C004 TX_FIFO 使用量寄存器 ;0x3800_C008 TX 数据寄存器 ;0x3800_C00A RX_FIFO 使用量寄存器 ;0x3800_C00E RX 数据寄存器 ;说 明 书CN 104484301 A6/6 页80042 0043 在 FPGA 中采用上述的 RS485 串行总线控制器,增强了整体的通用性,CPU 访问以上地址就可以实现 RS485 串行通讯,节省了 CPU 的查询或中断时间。说 明 书CN 104484301 A1/1 页9图1图2说 明 书 附 图CN 104484301 A。