基于ARM的嵌入式PLC的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2001 5 方一鸣.基于MATLAB的模糊控制系统仿真[J].自动化与仪器
仪表,2000,10(2):20-22
(上接第 10 页)
一部分代码分成三个文件:OS_CPU.H,OS_CPU_A.ASM, OS_CPU_C.C。而基于μ C/OS- Ⅱ编写应用程序时,需 要改写 OS_CFG.H 和 INCLUDES.H 两个文件。OS_CFG.H 文件里与预定义了很多配置内核服务功能的开关量以 及一些与μ C/OS- Ⅱ相关的常量,用户可以根据具体 应用程序的特点配置该文件。 3.2 移植的具体工作
1992 2 郭瑞国,卞新高,朱天宇等.模糊控制技术在垃圾焚烧炉
控制系统中应用[J].河海大学常州分校学报,2006,20(1)
57-59 3 Process Develop System Manual for P8 System, Philips,
ltd.1996 4 诸 静,模糊控制原理与应用[M].北京:机械工业出版社,
图 2 μ C/OS- Ⅱ硬件 / 软件体系结构
移植工作包括以下几个内容。 (1) 用 #define 设置一个常量的值(OS_CPU.H); (2) 声明 10 个数据类型(OS_CPU.H); (3) 用 #define 声明三个宏(OS_CPU.H); (4) 用 C 语言编写六个简单的函数 (OS_CPU_C. C)。 编写四个汇编语言函数(OS_CPU_A.ASM) ,操作系 统内核将应用系统和底层硬件有机的结合成一个实时 系统,在内核和硬件之间有一个中间层,这就是与处 理器相关的代码。中间层代码的编写是移植过程中最 关键的部分。移植的主要工作就是编写μC/OS-Ⅱ。这
实时系统指的是在RTOS基础上开发出来的针对特 定行业应用的实时应用系统,实时系统分为硬实时 (Hard Real-Time)和软实时(Soft Real-Time)。目前, 有许多实时嵌入式操作系统供我们选择,如μ C/OS- Ⅱ、VxWorks 、RTLinux、 pSos、Nucleus Plus、QNX。 这些 RTOS都能运行在各种不同的微控制器上,具有强 大的通用型操作系统的功能和丰富的 API 和嵌入式应 用软件。上述的RTOS中,μC/OS-Ⅱ、VxWorks 、RTLinux 是属于硬件实时的。许多实时嵌入式操作系统的开发 的配件价格较高,并且厂商要求用户在批量生产时要 按产品数量交纳版税[5]。 2.2 操作系统的选择[4][5]
如今,以 ARM 为代表的 32 位高性能微处理器的推 出以及芯片集成度的大幅度提高,促进了嵌入式系统 的高速发展,而嵌入式系统各方面技术的提高,又促 进了嵌入式 PLC 的发展,具有嵌入式操作系统的 PLC 将 是自动化领域今后发展的方向。
1 嵌入式PLC的硬件结构设计 嵌入式系统的开发主要包括硬件结构设计和软件
μ C/OS- Ⅱ在 LPC2294 上的移植工作需要处理以 下四个文件:INCLUDES.H 文件,OS_CPU.H 文件, OS_CPU.C 文件,OS_CPU_A.ASM 文件。
INCLUDES.H是一个头文件,所有的.c文件的第一 行都包含# include “includes.h”语句,它增强了 代码的可移植性。
9
RS485 接口及以太网接口通信模块、电源及复位模块 等。系统的结构如图 1 所示。
电源及 复位电路
JTAG 调 试接口
输
输
入
ARM 微控制器
模
出 模
块
电
LPC2294
块 电 路
路
Flash 存储器
网络通 信接口
百度文库
图1 系统的整体结构
2 操作系统的选择 2.1 嵌入式操作系统介绍
传统的单片机系统在程序设计上一般采用的是前 后台方式或超循环方式,这种设计方式对于实时性强 的任务都是靠中断服务程序保证的。但是中断服务程 序提供的信息一直要等到后台程序走到该处理这个信 息这一步时才能得到处理,所以这种系统处理信息的 及时性较差。随着应用的智能化、复杂化,传统的单 片机系统将不能满足同时监控多个外部设备,且要求 较高的实时性,以及同时处理多个任务的要求。而实 时嵌入式操作系统(RTOS)提供了新的应用程序设计思 想和结构框架,使以上问题得以解决。
本设计选用μ C/OS- Ⅱ系统。μ C/OS- Ⅱ是一种 基于优先级的可抢先的硬实时内核。具有以下特点:
(1)它是一种专门为嵌入式设备设计的内核,目 前已经被移植到 40 多种不同结构的 CPU 上,运行在从 8 位到 64 位的各种系统之上;
(2)μ C/OS- Ⅱ可以免费获得代码,不用支付任 何费用,可以降低系统的开发成本;
(下转第 23 页)
《自动化与仪器仪表》2008 年第 3 期(总第 137 期)
该模糊控制系统已应用到光纤熔缩机项目中,在 整个控制过程中,熔缩棒进气端和出气端的压力差稳 定在 1.5 ̄4Pa 之间,满足光纤棒熔缩要求,对压力跟 踪能力强。
参考文献 1 陈理君, 微机模糊控制[M].武汉:武汉理工大学出版社,
关 键 词 :P L C ;A R M ;μ C / O S - Ⅱ;嵌入式系统;移植 Abstract: Traditional PLC is one Real-time controller, which plays an important role in the industry control field. As a result of the more complicate and complex control demand, traditional PLC has already could not satisfy the demand of the intelligent and humanity. And embedded Real-Time system has the advantages of enhancing the reliability of system, improving the developmental efficiency and reducing the development cycle. The paper aims at the demands of intelligent and humanity of industry controller, faces to the industry control field design a embedded PLC based on ARM andμC/OS-Ⅱ. Keyword: PLC; ARM; μC/OS-Ⅱ; Embedded system; Transplant 中 图 分 类 号:TP202 文 献 标 识 码:B 文 章 编 号:1001-9227(2008)03-0009-03
0 引 言 可编程逻辑控制器( P r o g r a m m a b l e L o g i c
Controller,PLC)是一种实用性很强的工业控制器,在 自动化领域具有举足轻重的地位。随着科学技术的进 步,PLC在工控领域得到了极大的发展和应用。但如今 工控产品已经发展到一个追求个性化、差异化的阶段, 在科技迅速发展的直接影响下,传统的 PLC 面临着个 性化、差异化的压力,而具有嵌入式操作系统的PLC将 可以满足这方面的要求。
/*** 与μ C/OS- Ⅱ有关 ***/ #include "os_cpu.h" #include "os_cfg.h" #include "ucos_ii.h" OS_CPU.H文件里主要包括对与编译器相关的数据 类型、处理器相关数据类型和堆栈类型的定义,对中 断的处理方式的定义即几个宏的定义,以及对堆栈增 长方式的声明。 OS_CPU.C 文件的修改是移植的核心部分,μ C/ OS- Ⅱ的移植要求用户编写 10 个简单的 C 函数: OSTaskStkInit() OSTaskCreateHook() OSTaskDelHook() OSTaskSwHook() OSTaskIdleHook() OSTaskStatHook() OSTimeTickHook() OSInitHookBegin() OSInitHookEnd() OSTCBInitHook() 唯一必要的函数是OSTaskStkInit(),其它9个函 数必须得声明但没必要包含代码。
10
基于 ARM 的嵌入式 PLC 的设计 张 嵩,等 (3)它是一个源码公开、可移植、可固化、可裁 剪、占先式、支持多任务的实时操作系统。用户可以 根据自己的需要裁剪系统,提高系统的性能,也可增 加自己的模块,使系统具有可扩展性; (4)μ C/OS- Ⅱ内核主要提供进程管理、时间管 理、内存管理等服务。系统可以管理 64 个任务,每个 任务均有一个独有的优先级,并且系统提供了丰富的 API 函数。
《自动化与仪器仪表》2008 年第 3 期(总第 137 期)
基于 ARM 的嵌入式 PLC 的设计
张 嵩,术守喜 *,丁广乾 (山东省电力学校 泰安,271000) (* 山东科技大学信息与电气工程学院 青岛,266510)
摘 要 :传统 PLC 是一种实时性很强的控制器,在工业控制领域占据了举足轻重的地位。由于目 前控制内容的复杂化和高难度化,传统PLC已经不能满足智能化、人性化的要求,而实时嵌入式操作系统 具有提高系统可靠性、提高开发效率、缩短开发周期的显著优势。本文针对目前对工业控制器个性化、智 慧化的发展需求,面向工业控制领域设计了一种基于 ARM 和μ C/OS- Ⅱ的嵌入式 PLC。
对于OS_CPU_A.ASM文件,要求用户编写四个简单 的汇编语言函数:
OSStartHighRdy() OSCtxSw() OSIntCtxSw() OSTickISR() 如果用户的编译器支持插入汇编语言代码的话, 用户就可以将所有与处理器相关的代码放到OS_CPU_C. C 文件中,而不必再拥有一些分散的汇编语言文件。 嵌入式系统要接入Internet进行通信,需要有通 信协议的支持,本系统采用 ZLG/IP 通信协议,ZLG/IP 是广州周立功单片机发展有限公司开发的面向嵌入式 系统开发的 TCP/IP 协议栈。本设计对 ZLG/IP 协议栈进 行了移植和精简,使之更适合嵌入式 PLC 的要求。
本系统以 ARM 芯片 LPC2294 为 CPU,设计为 16 路 输入、12 路输出的基本模式。电源及复位电路保证系 统运行的稳定,扩展 Flash 存储器主要用于应用程序 的存储。RS-485 通信接口既可用于程序的下载也可以 用作系统的监控,同时增加基于 RTL8019AS 的以太网 接口,使系统的通信能力增强。硬件总体结构包括: ARM微控制器、存储器扩展模块、输入模块、输出模块、
3 μC/OS-Ⅱ在LPC2294上的移植 3.1 μ C/OS- Ⅱ移植所需条件
所谓移植,就是使一个实时内核能在某个微控制 器或微控制器上运行。将μ C/OS- Ⅱ移植到不同处理 器平台时,需要解决的主要问题有:
(1)数据类型的重定义; (2)堆栈结构的设计; (3)任务切换时的状态保存与恢复。 μ C/OS- Ⅱ的结构以及它与硬件的关系如图 2 所 示。
编程两个方面。硬件结构是整个嵌入式系统的物理基 础,为软件运行提供了平台。软件编程保证了硬件系 统按要求运行。这两个部分是缺一不可的。具体的设 计应根据不同设计要求,选择微处理器、存储设备和 各种接口[1][2]。 1.1 微控制器的选择
收稿日期:2007-11-28
微控制器是嵌入式系统硬件结构的核心部分。从 系统应用的领域、成本和开发的难易程度等诸多因素 来考虑,本设计选择 ARM 公司提供的内核作为系统的 硬件内核,系统采用LPC2294 微控制器作为主控芯片。 LPC2294 是支持实时仿真和嵌入式跟踪的 16/32 位 ARM7TDMI-S 的 CPU,并带有 256KB 嵌入的高速 Flash 存储器。128位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对代码规模有 严格控制的应用可使用16位Thumb 模式将代码规模降 低超过 30%,而性能的损失却很小。LPC2294 具有 144 脚封装、极低的功耗、多个 32 位定时器、8 通道 10 位 ADC、4 高级 CAN、PWM 通道以及多达 9 个外部中断管 脚[3],这些优点使其非常适合应用于工业实时控制领 域,成为工业控制器的嵌入式微控制器的最佳选择之 一。 1.2 系统的整体结构
仪表,2000,10(2):20-22
(上接第 10 页)
一部分代码分成三个文件:OS_CPU.H,OS_CPU_A.ASM, OS_CPU_C.C。而基于μ C/OS- Ⅱ编写应用程序时,需 要改写 OS_CFG.H 和 INCLUDES.H 两个文件。OS_CFG.H 文件里与预定义了很多配置内核服务功能的开关量以 及一些与μ C/OS- Ⅱ相关的常量,用户可以根据具体 应用程序的特点配置该文件。 3.2 移植的具体工作
1992 2 郭瑞国,卞新高,朱天宇等.模糊控制技术在垃圾焚烧炉
控制系统中应用[J].河海大学常州分校学报,2006,20(1)
57-59 3 Process Develop System Manual for P8 System, Philips,
ltd.1996 4 诸 静,模糊控制原理与应用[M].北京:机械工业出版社,
图 2 μ C/OS- Ⅱ硬件 / 软件体系结构
移植工作包括以下几个内容。 (1) 用 #define 设置一个常量的值(OS_CPU.H); (2) 声明 10 个数据类型(OS_CPU.H); (3) 用 #define 声明三个宏(OS_CPU.H); (4) 用 C 语言编写六个简单的函数 (OS_CPU_C. C)。 编写四个汇编语言函数(OS_CPU_A.ASM) ,操作系 统内核将应用系统和底层硬件有机的结合成一个实时 系统,在内核和硬件之间有一个中间层,这就是与处 理器相关的代码。中间层代码的编写是移植过程中最 关键的部分。移植的主要工作就是编写μC/OS-Ⅱ。这
实时系统指的是在RTOS基础上开发出来的针对特 定行业应用的实时应用系统,实时系统分为硬实时 (Hard Real-Time)和软实时(Soft Real-Time)。目前, 有许多实时嵌入式操作系统供我们选择,如μ C/OS- Ⅱ、VxWorks 、RTLinux、 pSos、Nucleus Plus、QNX。 这些 RTOS都能运行在各种不同的微控制器上,具有强 大的通用型操作系统的功能和丰富的 API 和嵌入式应 用软件。上述的RTOS中,μC/OS-Ⅱ、VxWorks 、RTLinux 是属于硬件实时的。许多实时嵌入式操作系统的开发 的配件价格较高,并且厂商要求用户在批量生产时要 按产品数量交纳版税[5]。 2.2 操作系统的选择[4][5]
如今,以 ARM 为代表的 32 位高性能微处理器的推 出以及芯片集成度的大幅度提高,促进了嵌入式系统 的高速发展,而嵌入式系统各方面技术的提高,又促 进了嵌入式 PLC 的发展,具有嵌入式操作系统的 PLC 将 是自动化领域今后发展的方向。
1 嵌入式PLC的硬件结构设计 嵌入式系统的开发主要包括硬件结构设计和软件
μ C/OS- Ⅱ在 LPC2294 上的移植工作需要处理以 下四个文件:INCLUDES.H 文件,OS_CPU.H 文件, OS_CPU.C 文件,OS_CPU_A.ASM 文件。
INCLUDES.H是一个头文件,所有的.c文件的第一 行都包含# include “includes.h”语句,它增强了 代码的可移植性。
9
RS485 接口及以太网接口通信模块、电源及复位模块 等。系统的结构如图 1 所示。
电源及 复位电路
JTAG 调 试接口
输
输
入
ARM 微控制器
模
出 模
块
电
LPC2294
块 电 路
路
Flash 存储器
网络通 信接口
百度文库
图1 系统的整体结构
2 操作系统的选择 2.1 嵌入式操作系统介绍
传统的单片机系统在程序设计上一般采用的是前 后台方式或超循环方式,这种设计方式对于实时性强 的任务都是靠中断服务程序保证的。但是中断服务程 序提供的信息一直要等到后台程序走到该处理这个信 息这一步时才能得到处理,所以这种系统处理信息的 及时性较差。随着应用的智能化、复杂化,传统的单 片机系统将不能满足同时监控多个外部设备,且要求 较高的实时性,以及同时处理多个任务的要求。而实 时嵌入式操作系统(RTOS)提供了新的应用程序设计思 想和结构框架,使以上问题得以解决。
本设计选用μ C/OS- Ⅱ系统。μ C/OS- Ⅱ是一种 基于优先级的可抢先的硬实时内核。具有以下特点:
(1)它是一种专门为嵌入式设备设计的内核,目 前已经被移植到 40 多种不同结构的 CPU 上,运行在从 8 位到 64 位的各种系统之上;
(2)μ C/OS- Ⅱ可以免费获得代码,不用支付任 何费用,可以降低系统的开发成本;
(下转第 23 页)
《自动化与仪器仪表》2008 年第 3 期(总第 137 期)
该模糊控制系统已应用到光纤熔缩机项目中,在 整个控制过程中,熔缩棒进气端和出气端的压力差稳 定在 1.5 ̄4Pa 之间,满足光纤棒熔缩要求,对压力跟 踪能力强。
参考文献 1 陈理君, 微机模糊控制[M].武汉:武汉理工大学出版社,
关 键 词 :P L C ;A R M ;μ C / O S - Ⅱ;嵌入式系统;移植 Abstract: Traditional PLC is one Real-time controller, which plays an important role in the industry control field. As a result of the more complicate and complex control demand, traditional PLC has already could not satisfy the demand of the intelligent and humanity. And embedded Real-Time system has the advantages of enhancing the reliability of system, improving the developmental efficiency and reducing the development cycle. The paper aims at the demands of intelligent and humanity of industry controller, faces to the industry control field design a embedded PLC based on ARM andμC/OS-Ⅱ. Keyword: PLC; ARM; μC/OS-Ⅱ; Embedded system; Transplant 中 图 分 类 号:TP202 文 献 标 识 码:B 文 章 编 号:1001-9227(2008)03-0009-03
0 引 言 可编程逻辑控制器( P r o g r a m m a b l e L o g i c
Controller,PLC)是一种实用性很强的工业控制器,在 自动化领域具有举足轻重的地位。随着科学技术的进 步,PLC在工控领域得到了极大的发展和应用。但如今 工控产品已经发展到一个追求个性化、差异化的阶段, 在科技迅速发展的直接影响下,传统的 PLC 面临着个 性化、差异化的压力,而具有嵌入式操作系统的PLC将 可以满足这方面的要求。
/*** 与μ C/OS- Ⅱ有关 ***/ #include "os_cpu.h" #include "os_cfg.h" #include "ucos_ii.h" OS_CPU.H文件里主要包括对与编译器相关的数据 类型、处理器相关数据类型和堆栈类型的定义,对中 断的处理方式的定义即几个宏的定义,以及对堆栈增 长方式的声明。 OS_CPU.C 文件的修改是移植的核心部分,μ C/ OS- Ⅱ的移植要求用户编写 10 个简单的 C 函数: OSTaskStkInit() OSTaskCreateHook() OSTaskDelHook() OSTaskSwHook() OSTaskIdleHook() OSTaskStatHook() OSTimeTickHook() OSInitHookBegin() OSInitHookEnd() OSTCBInitHook() 唯一必要的函数是OSTaskStkInit(),其它9个函 数必须得声明但没必要包含代码。
10
基于 ARM 的嵌入式 PLC 的设计 张 嵩,等 (3)它是一个源码公开、可移植、可固化、可裁 剪、占先式、支持多任务的实时操作系统。用户可以 根据自己的需要裁剪系统,提高系统的性能,也可增 加自己的模块,使系统具有可扩展性; (4)μ C/OS- Ⅱ内核主要提供进程管理、时间管 理、内存管理等服务。系统可以管理 64 个任务,每个 任务均有一个独有的优先级,并且系统提供了丰富的 API 函数。
《自动化与仪器仪表》2008 年第 3 期(总第 137 期)
基于 ARM 的嵌入式 PLC 的设计
张 嵩,术守喜 *,丁广乾 (山东省电力学校 泰安,271000) (* 山东科技大学信息与电气工程学院 青岛,266510)
摘 要 :传统 PLC 是一种实时性很强的控制器,在工业控制领域占据了举足轻重的地位。由于目 前控制内容的复杂化和高难度化,传统PLC已经不能满足智能化、人性化的要求,而实时嵌入式操作系统 具有提高系统可靠性、提高开发效率、缩短开发周期的显著优势。本文针对目前对工业控制器个性化、智 慧化的发展需求,面向工业控制领域设计了一种基于 ARM 和μ C/OS- Ⅱ的嵌入式 PLC。
对于OS_CPU_A.ASM文件,要求用户编写四个简单 的汇编语言函数:
OSStartHighRdy() OSCtxSw() OSIntCtxSw() OSTickISR() 如果用户的编译器支持插入汇编语言代码的话, 用户就可以将所有与处理器相关的代码放到OS_CPU_C. C 文件中,而不必再拥有一些分散的汇编语言文件。 嵌入式系统要接入Internet进行通信,需要有通 信协议的支持,本系统采用 ZLG/IP 通信协议,ZLG/IP 是广州周立功单片机发展有限公司开发的面向嵌入式 系统开发的 TCP/IP 协议栈。本设计对 ZLG/IP 协议栈进 行了移植和精简,使之更适合嵌入式 PLC 的要求。
本系统以 ARM 芯片 LPC2294 为 CPU,设计为 16 路 输入、12 路输出的基本模式。电源及复位电路保证系 统运行的稳定,扩展 Flash 存储器主要用于应用程序 的存储。RS-485 通信接口既可用于程序的下载也可以 用作系统的监控,同时增加基于 RTL8019AS 的以太网 接口,使系统的通信能力增强。硬件总体结构包括: ARM微控制器、存储器扩展模块、输入模块、输出模块、
3 μC/OS-Ⅱ在LPC2294上的移植 3.1 μ C/OS- Ⅱ移植所需条件
所谓移植,就是使一个实时内核能在某个微控制 器或微控制器上运行。将μ C/OS- Ⅱ移植到不同处理 器平台时,需要解决的主要问题有:
(1)数据类型的重定义; (2)堆栈结构的设计; (3)任务切换时的状态保存与恢复。 μ C/OS- Ⅱ的结构以及它与硬件的关系如图 2 所 示。
编程两个方面。硬件结构是整个嵌入式系统的物理基 础,为软件运行提供了平台。软件编程保证了硬件系 统按要求运行。这两个部分是缺一不可的。具体的设 计应根据不同设计要求,选择微处理器、存储设备和 各种接口[1][2]。 1.1 微控制器的选择
收稿日期:2007-11-28
微控制器是嵌入式系统硬件结构的核心部分。从 系统应用的领域、成本和开发的难易程度等诸多因素 来考虑,本设计选择 ARM 公司提供的内核作为系统的 硬件内核,系统采用LPC2294 微控制器作为主控芯片。 LPC2294 是支持实时仿真和嵌入式跟踪的 16/32 位 ARM7TDMI-S 的 CPU,并带有 256KB 嵌入的高速 Flash 存储器。128位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对代码规模有 严格控制的应用可使用16位Thumb 模式将代码规模降 低超过 30%,而性能的损失却很小。LPC2294 具有 144 脚封装、极低的功耗、多个 32 位定时器、8 通道 10 位 ADC、4 高级 CAN、PWM 通道以及多达 9 个外部中断管 脚[3],这些优点使其非常适合应用于工业实时控制领 域,成为工业控制器的嵌入式微控制器的最佳选择之 一。 1.2 系统的整体结构