基于LPC2294处理器的嵌入式PLC的设计

发布者:朝霞暮雨最新更新时间:2014-03-18 来源: elecfans关键字:LPC2294  处理器  嵌入式PLC 手机看文章 扫描二维码
随时随地手机看文章

  四十多年来,PLC已成为实现工业控制的中坚力量。它的功能不断完善,应用领域不断扩大,对于工业控制技术的进步与社会发展所发挥的作用无可估量。PLC以它的高可靠性和易操作性,主导了工控行业数十年。PLC虽然有着它固有的优势,但面对客户需求的不断变化,PLC要想生存,就必须突破传统模式,积极求新求变以适应新的市场发展。而具有低成本优势的嵌入式PLC,正好能够满足这一需求。所谓嵌入式PLC 是指采用SoC嵌入式片上系统芯片和嵌入式实时操作系统实现PLC功能,并能用IEC61131-3的标准编程语言编程的PLC.随着高性能的ARM 嵌入式微处理器的发展,笔者设计了新一代微型嵌入式PLC.本文介绍了嵌入式PLC的体系结构,包含其硬件设计和软件设计方案。

  1 嵌入式PLC的硬件结构设计

  1.1 微控制器芯片的选取

  CPU是PLC的核心,它能够识别用户按照特定的格式输入的各种指令,并按照指令的规定,根据当前的现场I/O信号的状态,发出相应的控制指令,完成预定的控制任务。本设计选用的是Philips公司生产的LPC2294微控制器。LPC2294是一款基于32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU芯片,它带有256kB嵌入的高速Flash存储器,16kB 片内SRAM.LPC2294采用144脚封装、具有极低的功耗以及多达112个通用I/O 口,9个边沿或电平触发的外部中断引脚,最大为60MHz的工作晶振,多个32位定时器,PWM 单元,实时时钟和看门狗,转换时间低至2.44μs的8通道10位ADC、4 路高级CAN 接口, 另外具有2 路UART(16C550),高速I2 C (400kbit/s)及2路SPI总线。LPC2294丰富的硬件资源和完善的功能使这款微控制器特别适用于汽车、工业控制应用以及医疗系统和容错维护总线等场合。

  1.2 硬件系统的整体结构

  本系统以ARM 芯片LPC2294为CPU,设计为14路PNP型输入、10路继电器输出的基本模式。硬件总体结构包括:

  电源及复位模块、ARM 微控制器、Flash存储器扩展模块、开关量输入输出模块、模拟量输入输出模块、RS485接口及CAN接口通信模块等。系统的结构如图1所示。

基于LPC2294的嵌入式PLC硬件系统设计图

  1.2.1 开关量输入输出接口电路

  图2所示为一路开关量输入图。此部分电路前端为R、C组成的一阶滤波电路,防止外部干扰信号进入系统中。输入端外接的输入控制开关信号(直流24V)通过输入点10.0经限流电阻输入到光电耦合器(PC816)的输入端,M 为输入点10.0~10.7的公共输入端。因P0.23口被设置为输入模式且口线内部无上拉电阻,所以需要外接上拉电阻,防止口线悬空。当10.0输入端为24V时,光电耦合器中的光敏二极管导通,光敏晶体管输出端被拉为低电平,指示该路输入状态的LED被点亮,P0.23被置为低电平。当CPU访问该路信号时,将该输入点对应的输入过程映像寄存器的值置为 1.10.0输入端为0V时,P0.23为高电平,当CPU访问该路信号时,则将该输入点对应的输入过程映像寄存器的值置为0.其余各个输入点所对应的电路及工作原理均相同。

图2-嵌入式软件仿真测试环境体系结构

  图3所示为继电器输出模块图,图中并联在继电器线圈两端的二极管这里起续流作用。该模块的工作原理如下:当内部输出过程映像寄存器为1时,LPC2294端口P1.16输出0,光敏晶体管导通,继电器线圈得电,输出点接通;反之当内部输出过程映像寄存器为0时,端口P1.16输出1,继电器线圈失电,输出点断开。

图3-输出接口电路

  需要注意的是,当LPC2294的GPIO 口初上电时,其输出端口(如本图中的P1.16)的电压不稳定,这样易导致外部继电器误动作而引起外部设备工作不稳定。为此,我们设计了图4电路用来提高继电器输出的稳定性。

图4-555定时器组成的单稳态电路

  这是一个由NE555 定时器组成的单稳态电路,其中VCC5.0D端接图3中光电耦合器的集电极。其工作原理为:系统上电初始,2、6管脚电平不能突变,保持为低电平。分析 NE555的内部电路可知,此时输出端3管脚输出高电平,电路开始对R、C电路进行充电,随着时间的推移,管脚2、6的电平不断升高,当升至23VCC 时,输出端3管脚将翻转至低电平,使三极管导通,VCC5.0D输出5V.这样,系统上电后经过一段时间,I/O口的电平稳定下来之后,光电耦合器才得电开始工作。暂稳态的持续时间tW取决于外接电阻R 和电容C的大小。tW等于电容电压在充电过程中从0上升到23VCC所需要的时间,即

基于LPC2294处理器的嵌入式PLC的设计

  1.2.2 模拟量输入电路设计

  先通过电阻R66,将现场传感器输出的电流信号转换为0~5V电压信号进行采集。考虑到抗干扰及对微处理器电路的保护,在转换电路的输出端加了线性光耦HCNR201.硬件电路如图5所示。[page]

图5-模拟量输入接口电路

  1.2.3 串行通讯接口电路设计

  为了能与其它工业控制产品兼容,我们设计时采用了RS-485接口标准。为了将TTL电平转换成 RS485电平,选用了SP485E 收发器。SP485E 芯片的数据传输速率可高达10Mbps,其最大的特点是在为发送器输出和接收器输入管脚提供了ESD保护电路。接口电路如图6所示。


图6-串口电路

  2 嵌入式PLC的软件系统设计

  嵌入式PLC的软件分为运行系统软件和开发系统软件两部分。运行系统负责对整个系统的管理和对用户程序的编译执行,并保存所有的数据,完成与外界通讯。开发系统面对用户,完成对PLC程序的编辑和转换。

  2.1 PLC运行系统软件

  该系统负责为应用程序分配内存,把该应用程序加载到分配好的内存里,然后开始执行该程序的指令。如果该程序要求位于底层的操作系统提供服务,该运行系统还必须负责处理有关的服务请求。该运行系统是基于嵌入式操作系统μC/OS-II来开发的,选用嵌入式操作系统提高了软件系统的抗干扰性,系统的可靠性及应用软件的开发效率,缩短了开发周期。μC/OS-II的移植的主要工作是修改与ARM 处理器相关部分的代码,它们集中在3个文件中。

  ①OS_CPU.H文件该文件包含了用#define定义的与处理器相关的常量、宏和类型定义。文件中这些数据类型的定义如下:

  typedef unsigned char BOOLEAN;

  typedef unsigned char INT8U;

  typedef signed char INT8S;

  typedef unsigned short INT16U;

  typedef signed short INT16S;

  typedef unsigned int INT32U;

  typedef signed int INT32S;

  typedef float FP32;

  typedef double FP64;

  typedef unsigned int OS_STK;

  与ARM7体系结构相关的一些定义如下:

  #define OS_CRITICAL_METHOD 2

  __swi(0×00)void OS_TASK_SW (void);

  __swi(0×01)void _OSStartHighRdy (void);

  __swi(0×02)void OS_ENTER_CRITICAL (void);

  __swi(0×03)void OS_EXIT_CRITICAL (void);_

  _swi(0×40)void*GetOSFunctionAddr(int Index);

  __swi(0×41)void*GetUsrFunctionAddr(int Index);

  __swi(0×42)void OSISRBegin (void);

  __swi(0×43)int OSISRNeedSwap (void);

  __swi(0×80)void ChangeToSYSMode (void);

  __swi(0×81)void ChangeToUSRMode (void);

  __swi(0×82)void TaskIsARM (INT8Uprio);

  __swi(0×83)void TaskIsTHUMB (INT8Uprio);

  /*上述函数需在移植文件OS _CPU.H 中将其声明。

  */#define OS_STK_GROWTH 1

  此代码段中的OS_ENTER_CRITICAL()函数和OS_EXIT_CRITICAL ()函数实现打开和关闭处理器的功能。[page]

  ②OS_CPU_C.C文件该文件中的任务栈结构初始化函数OSTaskStkInit (),必须根据移植时统一定义的任务堆栈结构进行初始化。另外还有9个系统规定的钩子函数必须声明,但可以不包含任何代码,这些钩子函数在本移植中全为空函数。

  ③OS_CPU_A.S文件的移植共包括4个函数:多任务启动函数中调用的OSStartHighRdy ()、任务切换函数OSCtxSw()、中断任务切换函数OSIntCtxSw ()、时钟节拍服务函数OSTickISR ()。

  至此整个μC/OS-II内核移植完成。以后的用户程序都是在这个基础上进行的扩充。

  2.2 PLC开发系统软件

  该系统的主要任务是让用户编写PLC程序,所以还需要设计与该系统相对应的编程平台。编程平台的设计主要包括编程界面的设计、编辑器的设计、转换模块的设计、编译器的设计和通信模块的设计等。软件系统结构图如图7所示。

图7-软件系统结构

  用户在编程平台里编写PLC程序。这里借用FX系列PLC的编程软件SWOPC-FXGP/WIN-C 作为编程平台,编程语言可以使用梯形图和指令表。然后通过转换程序把编译后的目标文件转化成C语言。转换程序其实就是一个解释系统,通过逐条翻译编程软件的指令表,生成和处理器指令系统无关的用户指令。使用这样的方式作为上位机编程平台,节省了工作量。

  3 系统测试

  将所设计的PLC软件系统植入基于LPC2294的嵌入式开发平台,与PLC输入输出硬件接口板连接,构成14输入10输出的PLC系统。在上层开发系统中编写相应的PLC梯形图,编译后加载到嵌入式PLC的运行系统中。梯形图如图8所示。

图8-PLC测试程序图

  按下开关0,相应的LED0被点亮,延时4秒后LED1被点亮。按下开关1,相应的LED2被点亮,同时LED0被熄灭。

  由以上的测试效果可以看出原型机的测试结果与理论分析结果相同,所设计的PLC控制系统硬件、软件及μCOS-II操作系统的移植达到了期望的控制效果,达到了设计要求。

  4 结束语

  本文针对目前普通PLC存在的一些不足,提出了一种基于LPC2294的嵌入式PLC设计方案。该嵌入式PLC的硬件、软件、通信等各方面的功能设计灵活,易于剪裁,更贴近各种档次的机电设备的要求。该PLC完全基于嵌入式系统的技术基础,拿来就可以用,且SOC芯片、嵌入式操作系统、符合IEC61131-3编程语言标准编程环境等在市场上很容易找到,因此该嵌入式PLC在我国市场的使用和推广前景十分可观。

关键字:LPC2294  处理器  嵌入式PLC 引用地址:基于LPC2294处理器的嵌入式PLC的设计

上一篇:基于ARM的液压系统智能数据采集终端硬件设计
下一篇:ARM微处理器在智能工业中有何应用

推荐阅读最新更新时间:2024-03-16 13:38

1GHz已成标配 主流处理器代表机型推荐
  随着智能手机的高速发展,其内部核心硬件的发展速度同样十分迅猛,在时下市场1GHz处理器已成标配,并且双核处理器也已正式袭来,它们的加入将智能手机整体性能进一步提升。而对于普通消费者来说,处理器的一些细节信息多数朋友都不会知晓。那么为帮助消费者排忧解难,接下来笔者就为朋友们奉上智能手机处理器解析及机型概览。 NVIDIA Tegra 2——天语W700   在PC市场NVIDIA早已叱咤风云,不过多年的努力始终不能触及PC核心部件——中央处理器,因为它受到业界大佬英特尔的重重阻击,但在图形处理方面NVIDIA可谓是业界一哥。如今它凭借ARM处理器解决方案转战移动市场,并迎来极高的市场关注度。其实NVIDIA的一
[手机便携]
ARM推出首款图像信号处理器 凭啥能干翻索尼
如果说iPhone、iPad、三星Galaxy手机和谷歌Pixel之间有什么共同的联系,那可能就是他们的底层CPU技术了。而这一切都归功于ARM——这家公司低调地身处于移动技术革命的中心,为我们手中的移动设备设计着处理器和图形处理器系统。在本周,ARM的产品组合当中又新增了一名成员:图像信号处理器(ISP)。 这款ISP是ARM图像与视觉集团成立1年之后推出的第一款重磅产品,同时也是他们推动移动摄像技术向前发展的一次重要尝试。它内置于Mali-C71当中——一款面向汽车领域的图形处理器。 对于这款ISP,ARM图像与视觉集团领导者之一的Steve Steele给予了厚望:“我们真切地认为,我们的ISP是目前最优秀的。”即便是领略
[汽车电子]
英特尔的下一步:整合处理器核心与FPGA
自今年六月一号,英特尔宣布并购Altera后,双方对于并购讯息就未再透露更多的讯息。不过,针对此点,Altera亚太区副总裁暨董事总经理庄秉翰引述英特尔所发布的公开讯息,也约略点出了英特尔并购Altera后的未来发展方向。 庄秉翰谈到,众所皆知,摩尔定律是由英特尔创办人所创,截至目前为止,英特尔仍然认为摩尔定律仍然适用于半导体产业,同样的,Altera也有相同的看法。此外,英特尔也认为,并购Altera再整合自身旗下的IP等技术方案,可以创造出新一代的产品阵容,以满足资料中心与物联网的客户群。 由于Altera或是Xilinx(赛灵思)这类的半导体业者,在产品蓝图的设计上,约略都是设定为五年,庄秉翰谈到,与英特尔在14奈
[嵌入式]
英特尔将不再公布处理器的多核Turbo最高频率
据外媒报道,英特尔日前宣布,今后将不会通过任何官方渠道,包括ARK数据库在内,公布处理器的多核Turbo最高频率。 据了解,以往英特尔官方有三个频率数据:基础主频;Turbo 2.0(多核)频率;以及Turbo 3.0(单核)频率。现在被隐匿的则是Turbo 2.0(多核)频率。 对此,英特尔在回应媒体时表示,给出每一种核心状态的Turbo值有些投机取巧的意味在,毕竟现在系统配置和工作负载的场景越来越复杂了。 不过媒体和很多用户并不买账。其中HOCP对此表示十分遗憾,他认为对于消费者来说,少了一种快速判定主板配置是否正确的简易判断方法。
[嵌入式]
NIOS软核处理器的Linux引导程序U-boot设计
摘要:针对将cClinux向Nios处理器移植过程中的启动加载程序U-boot bootloader进行研究。首先介绍移植的步骤,然后利用bootloader的设计思想,着重讨论U-boot在Nios中的设计与实现,最后对U-boot在基于Linux的嵌入式系统 中的运用作了探索和展望。 关键词:U-boot bootloader uClinux Nios软核 1 概述 1.1 Nios简介 Nios是Altera公司以RISC为基础的可配置、可裁减软核处理器。它具有16位指令集和16/32位数据通路,通过将包括16或32位高性能处理器在内的移种应用模块嵌入到通用FPGA/CPLD内,实现完全可配置的嵌入式系统。其开发套件
[半导体设计/制造]
基于OMAP3530移动视频解决方案
TI的移动应用处理器——OMAP3530,是专门为智能手机、GPS系统和笔记本电脑等低功耗便携式应用而设计。OMAP3530在单一的芯片上集成了ARM Cortex-A8内核、TMS320C64x+ DSP内核、图形引擎、视频加速器以及丰富的多媒体外设,其中Cortex-A8内核拥有超过当今300MHz ARM9器件4倍的处理性能。OMAP3530可广泛用于流媒体、2D/3D游戏、视频会议、高清静态图象、3G多媒体手机、高性能PDA等项目的评估与应用。 合众达(SEED)作为TI国内最大的第三方和代理商,致力于在多媒体应用领域为用户提供多种TI平台解决方案,包括开发工具、参考设计、TI全系列IC器件以及算法。 SEED-OMAP
[嵌入式]
dsp音频处理器和dsp功放有什么区别 dsp可以代替功放吗
dsp音频处理器和dsp功放有什么区别 DSP(数字信号处理器)音频处理器和DSP功放(数字信号处理功放)是两个不同的概念和设备。 DSP音频处理器是一种用于音频信号处理和调音的设备。它基于数字信号处理技术,能够对音频信号进行精确的均衡、滤波、混响、时延等处理。DSP音频处理器通常用于音响系统、音乐录音和制作、演出场所等,可以提供更灵活、精确的声音调校和效果处理。 DSP功放(数字信号处理功放)是一种集成了功率放大和数字信号处理功能的功率放大器。它能够接受数字音频信号,经过内部的数字信号处理单元进行处理,然后将处理后的信号放大输出到扬声器。DSP功放提供了更高的功率效率和精确的信号处理能力,可以实现对音频信号的均衡、滤波、压缩
[嵌入式]
关于ARM9协处理器CP15及MCR和MRC指令
在ARM芯片资料中,针对协处理器CP15的介绍非常少,但是CP15又十分重要,例如在使用MMU编写虚拟地址映射表时,最后的一步重要工作就是要将映射表的基地址存储到CP15的寄存器C2中,还有一些控制的TLB,Cache等访问控制权限等等。。。 在基于ARM的嵌入式应用系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15包含16个32位的寄存器,其编号为0~15。 访问CP15寄存器的指令 MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送 MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常
[单片机]
关于ARM9协<font color='red'>处理器</font>CP15及MCR和MRC指令
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved