一种基于CANopen总线的工业嵌入式控制装置的制作方法

文档序号:16228438发布日期:2018-12-11 20:53阅读:144来源:国知局
一种基于CANopen总线的工业嵌入式控制装置的制作方法

本实用新型属于机械装置技术领域,尤其涉及一种基于CANopen总线的工业嵌入式控制装置。



背景技术:

目前,业内常用的现有技术是这样的:

CANopen是一种架构在控制局域网路(Controller Area Network,CAN)上的高层通信协协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。

目前,在现代化的生产当中,自动化设备已经得到了广泛的应用,在一些工厂当中,需要对自动化装置输入行动的指令,需要连接多台机器,建立一定的物理层,在不同的机器之间传输数据,现存的一些控制装置中,在遇到数据发生冲突时,数据的传输会停下来甚至是会重新传输,来回消耗的时间多,机器的整体性能得不到提高。

现场可编程门阵列(Field Programmable Gate Array,FPGA)器件具有丰富、可编程的硬件资源。近年来,Altera公司提出了“SoPC”概念,将NiosII微处理器、存储器、总线控制器、以及所需功能组件等集成到FPGA中,在单芯片中构成全数字、全功能的SoPC系统,在电机伺服控制、工业网络等场合得到了广泛应用。

由于FPGA器件采用的是SRAM工艺,在断电情况下FPGA内的配置数据将丢失,所以需要非易失的存储器来存放其配置文件。EPCS Flash属于串行接口Flash,具有接口简单、体积小、使用方便等优点,通常用来存储FPGA的硬件配置程序和Nios II微处理器的软件可执行代码。在经过合理的配置后,系统在上电后就可以从EPCS Flash中读取这些文件来启动整个系统。

为了能使SoPC系统得到更灵活的应用,充分发挥FPGA的灵活和高效的特点,FPGA的软硬件程序都需要方便的更新和升级功能;而当形成产品后,通过 JTAG下载线缆等传统方式对EPCS Flash的更新烧写非常不方便,尤其当产品不宜拆装时对其更新和升级基本不可能。

针对这个问题,近年出现了一种FPGA配置文件的远程更新方式,在FPGA 旁附加一个微处理器的方案,上位机通过以太网等通信方式将需要更新的代码传输至微处理器,再通过控制微处理器实现对FPGA内代码的更新。此种方式很大程度上解决了代码更新的问题,但系统内额外配置微处理器,无疑增加了整个系统的成本,且在工业场合中,面对恶劣的工况,严重的线间干扰,以太网的确定性、实时性、可靠性都将大幅度降低。成本高,效果差,现有的FPGA 远程更新技术无法满足工业环境的需求。

第二个问题为FPGA程序使用的问题,传统的FPGA内仅仅包含一套程序,虽有远程更新技术能够较为方便地对FPGA内程序进行更新,但要想在多样的环境中使用同一套产品,就必须对产品中FPGA内的代码进行反复更新,这样的做法是极为低效的。如果能在FPGA内同时包含多套程序,在需要时进行来回切换,将极大提高整个系统的工作效率。

因此,针对上述提出的两个问题,目前迫切需要一种能在工业环境中稳定使用且FPGA内能包含多套程序的远程更新的系统和方法,让远程更新系统在使用环境,使用成本和使用灵活性上获得优势。

综上所述,现有技术存在的问题是:

在一些工厂当中,需要对自动化装置输入行动的指令,需要连接多台机器,建立一定的物理层,在不同的机器之间传输数据,现存的一些控制装置中,在遇到数据发生冲突时,数据的传输会停下来甚至是会重新传输,来回消耗的时间多,机器的整体性能得不到提高。

现有技术在单芯片上不能实现SoPC系统的远程更新功能,而且现有技术额外电路数目多,数据传输稳定可靠性差,并且不能实现多份SoPC系统存储。



技术实现要素:

针对现有技术存在的问题,本实用新型提供了一种基于CANopen总线的工业嵌入式控制装置。本实用新型是这样实现的,一种基于CANopen总线的工业嵌入式控制装置设置有:外壳,

所述外壳上方键接有一个机顶盖板,散热盖板安装在外壳前表面左侧,转接口和USB接口键接在外壳前表面右侧,USB接口键接在外壳的右侧,变址寄存器、微型处理芯片、CANopen组件安装在外壳内部,高速CAN总线接口和 CANBus扩展接口销接在外壳外部左侧。

进一步,所述高速CAN总线接口和CANBus扩展接口连接CANopen组件。

进一步,所述变址寄存器、CANopen组件、通信接口、转接口通过导线连接微型处理芯片。

进一步,所述变址寄存器、微型处理芯片、CANopen组件连接锂电池。

进一步,CANopen组件包括:

至少一组CAN组件,与上位机互逆连接,用于上位机和FPGA组件之间的通信;

至少一组FPGA组件,与CAN组件连接,用于远程更新代码接收、数据校验和烧写,并根据用户设置启动相应SoPC系统;

至少一组存储器组件,与FPGA组件互逆连接,用于远程更新代码以及启动参数的存储;

所述的上位机用于远程更新代码合并、下发、启动选择;

所述的存储器组件,包括EPCS器件和EEPROM器件;所述EPCS器件和 EEPROM器件均通过Avalon总线与FPGA组件连接;

所述FPGA组件为由Nios II微处理器、CAN总线控制器、片上RAM、EPCS 控制器、RSU控制器、IIC控制器构成的SoPC系统;所述Nios II微处理器、 CAN总线控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器均通过片内的Avalon总线连通;

所述Nios II微处理器,用于与上位机的数据交互,将上位机的控制命令解析,根据解析结果实现数据接收和回复,并对与Avalon总线相连的CAN总线控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器进行操作;

所述EPCS控制器,用于实现对EPCS器件的读写、擦除操作;

所述EPCS器件为非易失串行存储器,用于远程更新代码的储存,上电启动时,FPGA会从EPCS中拷贝代码并运行;

所述CAN总线控制器,用于控制CAN接口电路,实现FPGA与CAN进行通讯;

所述片上RAM,用于暂存由上位机下发至FPGA里待烧写的远程更新数据;

所述RSU控制器,通过控制RSU专用电路,配置各项启动参数,触发FPGA 重启配置,从EPCS指定地址加载新的SoPC系统;

所述IIC控制器,用于生成IIC控制时序,实现对EEPROM的读写操作。

本实用新型的优点及积极效果为:

该实用新型建立的物理层传输量不是很大,但是可以组合多种字节进行传输,所能连接的机器设备较多,并且可以在传输的数据之间发生冲突时,还可以将数据中最小的讯息继续传送,不用等待或者是重传,提高机器的整体性能,将机器的通讯时间和速度都得到了提高,灵活性和兼容性高,工作效率得到提高。

本实用新型在不依靠外围CPU的单芯片环境下实现了SoPC系统的远程更新,降低了整个系统的成本,增加了电路的可靠性和灵活性。

所提供的系统使用CAN总线作为通信工具,CAN作为现场总线,能适应复杂多变的工业环境。且充分利用了CAN数据帧短的特点,节省了使用大容量 SDRAM存储待烧写数据的必要。增加了校验功能,整个传输过程稳定可靠,降低了传输错误的代价。

所提供的系统能够支持在EPCS里存储多份可用的SoPC系统硬件代码及其对应的软件代码,可在上位机的控制下进行切换,从而适应不同环境的使用需求,避免了反复二次开发甚至做第二套系统,灵活性强。

本实用新型所提供的系统和方法能在进行远程更新时如无必要不用擦除原有代码,如新下发的代码内部有隐患,可以选择执行原有可靠的代码,最大限度消除了远程更新对FPGA内原有代码的影响。

所提供的系统利用了SoPC技术,降低了远程更新系统的设计难度,在其基础上可对SoPC系统做适当的裁剪和添加以匹配应用环境,易于实现,灵活性强。

附图说明

图1是本实用新型实施例提供的基于CANopen总线的工业嵌入式控制装置示意图。

图2是本实用新型实施例提供的基于CANopen总线的工业嵌入式控制装置内部连接图。

图中:1、机顶盖板;2、散热盖板;3、外壳;4、转接口;5、通信接口; 6、USB接口;7、变址寄存器;8、高速CAN总线接口;9、CANBus扩展接口; 10、微型处理芯片;11、CANopen组件。

图3是本实用新型实施例提供的微型处理芯片原理图。

图4是本实用新型实施例提供的CANopen组件原理图。

具体实施方式

为能进一步了解本实用新型的实用新型内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下。

如图1-图3所示,本实用新型实施例提供的基于CANopen总线的工业嵌入式控制装置包括:机顶盖板1、散热盖板2、外壳3、转接口4、通信接口5、 USB接口6、变址寄存器7、高速CAN总线接口8、CANBus扩展接口9、微型处理芯片10、CANopen组件11。

所述外壳3上方键接有一个机顶盖板1,散热盖板2安装在外壳3前表面左侧,转接口4和USB接口6键接在外壳3前表面右侧,USB接口6键接在外壳 3的右侧,变址寄存器7、微型处理芯片10、CANopen组件11安装在外壳3内部,高速CAN总线接口8和CANBus扩展接口9销接在外壳3外部左侧。

高速CAN总线接口8和CANBus扩展接口9连接CANopen组件11。变址寄存器7、CANopen组件11、通信接口5、转接口4通过导线连接微型处理芯片10。变址寄存器7、微型处理芯片10、CANopen组件11连接锂电池。

本实用新型的工作原理:安装好装置,将机器的线头分别插入到转接口4 和通信接口5,USB接口6当中,CANopen组件11能建立物理层,对数据进行处理,变址寄存器(DM40007)能储存存放单元内的偏移量,高速CAN总线接口8和CANBus扩展接口9能接入相对应的线路,微处理芯片 (7SWM180CCT6-50)10能对信号做出处理,进而传输到自动化设备当中,完成对应的机器动作。

该实用新型建立的物理层传输量不是很大,但是可以组合多种字节进行传输,所能连接的机器设备较多,并且可以在传输的数据之间发生冲突时,还可以将数据中最小的讯息继续传送,不用等待或者是重传,提高机器的整体性能,将机器的通讯时间和速度都得到了提高,灵活性和兼容性高,工作效率得到提高。

下面结合具体分析对本实用新型作进一步描述。

如图4,CANopen组件包括:

至少一组CAN组件(即CAN模块),与上位机互逆连接,用于上位机和 FPGA组件之间的通信;

至少一组FPGA组件(FPGA模块),与CAN组件连接,用于远程更新代码接收、数据校验和烧写,并根据用户设置启动相应SoPC系统;

至少一组存储器组件(存储器模块),与FPGA组件互逆连接,用于远程更新代码以及启动参数的存储;

所述的上位机用于远程更新代码合并、下发、启动选择;

所述的存储器组件,包括EPCS器件和EEPROM器件;所述EPCS器件和 EEPROM器件均通过Avalon总线与FPGA组件连接;

所述FPGA组件为由Nios II微处理器、CAN总线控制器、片上RAM、EPCS 控制器、RSU控制器、IIC控制器构成的SoPC系统;所述Nios II微处理器、 CAN总线控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器均通过片内的Avalon总线连通;

所述Nios II微处理器,用于与上位机的数据交互,将上位机的控制命令解析,根据解析结果实现数据接收和回复,并对与Avalon总线相连的CAN总线控制器、片上RAM、EPCS控制器、RSU控制器、IIC控制器进行操作;

所述EPCS控制器,用于实现对EPCS器件的读写、擦除操作;

所述EPCS器件为非易失串行存储器,用于远程更新代码的储存,上电启动时,FPGA会从EPCS中拷贝代码并运行;

所述CAN总线控制器,用于控制CAN接口电路,实现FPGA与CAN进行通讯;

所述片上RAM,用于暂存由上位机下发至FPGA里待烧写的远程更新数据;

所述RSU控制器,通过控制RSU专用电路,配置各项启动参数,触发FPGA 重启配置,从EPCS指定地址加载新的SoPC系统;

所述IIC控制器,用于生成IIC控制时序,实现对EEPROM的读写操作。

本实用新型实施例提供的CANopen组件集成有CAN总线,包括待远程更新代码制作、代码的传输校验烧写以及新的SoPC系统加载;

所述待远程更新代码制作,包括SoPC系统硬件代码的制作、硬件代码及其对应的软件代码的合并;

所述SoPC硬件代码的制作,制作应用模式SoPC系统时,参照ALTERA 官方BootLoader模板,修改bootcopier_bsp_setting.tcl和advanced_bootcopier.c 源文件制作新的BootLoader,将其与SoPC系统共同编译为硬件代码;

所述硬件代码及其对应的软件代码合并包括:将硬件代码及其对应的软件代码这两份文件使用格式转换工具转换为能在EPCS里存储的格式,对其内容进行取舍,以硬件代码在前,软件代码在后的方式合并,合并后的文件传输烧写至EPCS后被直接使用;

新的SoPC系统加载包括:工厂模式到应用模式的切换、应用模式a到应用模式b的切换;FPGA收到命令后,驱动IIC控制器读取EEPROM里相应的启动地址、版本号、文件长度启动参数,再驱动RSU控制器进行SoPC系统切换;当使用的应用模式SoPC系统有故障时,RSU控制器会自动加载原有可靠的工厂模式SoPC进行配置。

所述基于CAN总线的SoPC远程更新方法把EPCS里需要储存的程序分为工厂模式程序和应用模式程序;所述工厂模式程序由JTAG烧写,FPGA上电后自动从EPCS中加载启动,用以实现应用模式的远程更新;

所述应用模式程序由远程上位机下发至FPGA,由FPGA控制烧写至EPCS,在需要时从EPCS中加载启动,用以实现具体的应用。

本实用新型实施例提供的基于CAN总线的SoPC远程更新方法,具体包括以下步骤:

搭建工厂模式下的SoPC片上系统,划分各组件基地址,生成中断并编译;将生成的SoPC系统添加进QuartusII 15.1相应工程中,设置好其他硬件参数后进行编译,生成工厂模式下的FPGA硬件代码;

编写上位机和下位机程序,将上位机中存储的十六进制文件以若干数据帧的方式下发至下位机;

下位机程序编写以后,在Nios II IDE里进行编译生成工厂模式下的软件代码;再将FPGA硬件代码和及其对应的软件代码按照传统的JTAG烧写方式烧写进EPCS里偏移量为0的地址;

搭建应用模式的SoPC片上系统,划分各组件基地址,生成中断并编译;将生成的SoPC系统添加进QuartusII 15.1相应工程中,设置其他硬件参数;

利用引导文件BootLoader制作方法制作可选择软件代码引导地址的引导方式;

在Nios II IDE里对下位机应用模式程序进行编写,并编译生成与硬件代码相对应的软件代码;

利用FPGA硬件代码及其对应的软件代码合并方法,在上位机中将应用模式下的FPGA硬件代码及其对应的软件代码使用格式转换工具转换后进行合并;

重启下位机,使系统自动进入工厂模式;

上位机应用模式切换命令通过CAN下发至下位机;下位机收到命令后,通过IIC总线读取EEPROM里的数据,寻找相对应的应用模式版本,获取其启动地址和文件长度参数,触发RSU控制器,完成应用模式程序的切换。

下面结合附图和具体实施例对本实用新型作进一步描述。

本实用新型实施例提供的基于CAN的SoPC远程更新系统,包括:

至少一个CycloneⅣ系列EP4CE22F17C6、PC机、USBCANII。本实用新型实施的具体软件为:VC6.0、QuartusII 15.1、Nios II IDE。

本实用新型系统中的上位机、下位机、现场总线连接如图4所示。

本实用新型实施例提供的基于CAN总线的SoPC远程更新方法,包括:

步骤一,按照搭建工厂模式下的SoPC片上系统,划分各组件基地址,生成中断并编译。

将生成的SoPC系统添加进QuartusII 15.1相应工程中,设置好其他硬件参数后进行编译,生成工厂模式下的FPGA硬件代码。

步骤二,按照本实用新型提供的CAN数据传输控制方法编写上位机和下位机程序,目的在于将上位机中存储的十六进制文件以若干数据帧的方式下发至下位机,本实施例中通信协议包含了以下内容:

远程更新命令,上位机下发远程更新命令帧,下位机收到后回复,并立即进入远程更新状态。

设置地址命令,上位机下发设置地址命令帧,下位机收到后回复,并修改下位机程序中的EPCS烧写地址。

数据下发,上位机将十六进制文件分为若干帧下发,这里使用CAN2.0B报文格式,每帧下发8字节数据,下位机收到后将数据存于缓存中的相应位置。

数据校验,每发送一定数量的数据帧以后,本实施例采用32帧,即256字节,进行一次校验,上位机发送校验命令和校验数据,下位机收到后和自己计算出的校验数据做对比,并回复。

数据烧写,每发送一定数量的数据帧以后,本实施例采用8192帧,即65536 字节,进行一次数据烧写,上位机发送烧写命令,下位机收到后对缓存中的65536 字节数据在EPCS里指定地址进行烧写,烧写完毕后回复。

启动参数存储,烧写完毕后,上位机下发启动参数存储命令,FPGA收到后将本次远程更新的应用模式程序启动地址、版本号、文件长度等参数存储至 EEPROM器件,存储成功后回复。

步骤三,下位机程序编写以后,在Nios II IDE里进行编译生成工厂模式下的软件代码。再将FPGA硬件代码和及其对应的软件代码按照传统的JTAG烧写方式烧写进EPCS里偏移量为0的地址。

步骤四,搭建应用模式的SoPC片上系统,划分各组件基地址,生成中断并编译。

将生成的SoPC系统添加进QuartusII 15.1相应工程中,设置其他硬件参数。

步骤五,按照本实用新型提供的引导文件BootLoader制作方法制作可选择软件代码引导地址的引导方式;

BootLoader的制作思路:

下载ALTERA官方提供的BootLoader模板。

修改指定文件参数以匹配现有SoPC系统里的各项参数,包括FLASH型号, FLASH容量,引导文件存储器容量等。

修改指定文件,编译为BootLoader;

使用指定命令生成编译BootLoader。

将生成的可执行软件代码使用指定的格式转换工具将其转换为十六进制文件。

将其添加进相应的SoPC系统所在QuartusII 15.1工程中,编译产生应用模式下的FPGA硬件代码。至此,已经完成对BootLoader的制作。

修改指定文件,编译为BootLoader,该BootLoader以执行C入口函数 alt_main为主,用以实现以下功能:

初始化各种外设,文件系统或者软体元件。

选择软件代码的引导方式,可选择的引导方式有从串行FLASH引导和从并行FLASH引导,本次实施例选择从串行FLASH引导

设置需要引导的软件代码在EPCS里的存储地址。

在硬件描述层实现对EPCS里指定地址内容的读取。

参照在软件代码在EPCS里的存储方式,建立循环不断从EPCS里读取数据,将读取出的数据拷贝至片上RAM中,并返回软件代码的入口地址。

作为对上段的补充说明,在从EPCS里读取数据时,要参照数据存储的格式,它将数据分为多段,前4字节数据段长度,依照读出的长度读取相应数量数据,完毕后再次读取下一数据段的长度,如此循环往复。当读出的长度数据为某一特定值时,代表数据读取完毕或者遇到故障数据不可用,此时都应该终止数据的读取。

当软件代码拷贝完成以后,从返回的入口地址调用应用程序入口函数, 开始应用模式软件的运行。

步骤六,在Nios II IDE里对下位机应用模式程序进行编写,并编译生成与硬件代码相对应的软件代码。

步骤七,按照本实用新型提供的FPGA硬件代码及其对应的软件代码合并方法,在上位机中将应用模式下的FPGA硬件代码及其对应的软件代码使用格式转换工具转换后进行合并,

上述步骤已经生成了应用模式下的FPGA硬件代码及其对应的软件代码。

使用指定的格式转换工具将上述两种文件分别进行转换,使转换后的文件类型能够被EPCS所存储。

在转换生成的文件中,每行前6字节的数据为EPCS配置数据,与程序的运行无关,本实施例只取文件中可执行部分。

将经过转换裁剪后的两份文件首尾相连,FPGA硬件代码在前,软件代码在后。

至此,已完成对代码的转换合并。

将合并后的文件通过CAN总线由上位机下发至指定下位机,因应用模式 FPGA硬件代码及其对应的软件代码大小的不同,因此所耗时间不一,大概在 10-20分钟左右。

按照本实用新型提供的应用模式SoPC系统切换方法,下位机在接收烧写数据时,理应记录程序的启动地址、程序在EPCS里所占长度、程序版本号等信息,在下位机烧写完接收到的数据以后,将上述三个参量通过IIC通信传输至 EEPROM里的指定位置。

步骤八,重启下位机,系统自动进入工厂模式。

步骤九,上位机可将应用模式切换命令通过CAN下发至下位机。下位机收到命令后,通过IIC总线读取EEPROM里的数据,寻找相对应的应用模式版本,获取其启动地址和文件长度等参数,触发RSU控制器,完成应用模式程序的切换。

至此,本具体实施例已完成了所有操作。依靠基于CAN的SoPC系统远程更新系统和方法,实现了工业环境下FPGA内SoPC系统的远程更新,保证了FPGA 内包含2套甚至更多套程序时能进行切换,正常运行。

下面结合具体实施例对本实用新型作进一步描述。

RSU控制器的具体控制方法如下,由于不同型号的FPGA内部配置不一样,故驱动方式也有所不同,本实施例以ALTERA CycloneⅣ为例:

控制远程更新看门狗时限寄存器,设置应用模式下的看门狗时限,可写入12bit数据。

控制远程更新看门狗使能寄存器,设置看门狗使能,可置”0”禁用或者置”1”使能。

控制远程更新引导地址寄存器,设置重新配置时应用模式所在EPCS 的地址,可写入24或32为地址位数据,单位为字节。

控制远程更新驱动内部晶振寄存器,控制驱动内部晶振,可置”0”禁用或者置”1”使能。

控制远程更新重新配置寄存器,将其置”1”时触发重新配置。

FPGA通过IIC读写EEPROM内数据方式为:EERPOM内有若干个数据块,将不同的启动参数存入不同的数据块中,读写时从每个数据块的第一个字节开始。本实施例中的标准为前8字节为应用模式的启动地址,依次8个字节为应用模式在EPCS里占用的长度,再依次4个字节为应用模式版本号。因此,在对EEPROM进行操作时,只用读取指定数据块的前20 字节的数据就能支持应用模式进行切换。

以上所述仅是对本实用新型的较佳实施例而已,并非对本实用新型作任何形式上的限制,凡是依据本实用新型的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本实用新型技术方案的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1