基于LINUX和CAN总线的工业嵌入式控制系统研究

分享到:

1.引言
基于现场总线的控制系统在工业控制中已经得到广泛的应用,现场总线是根据国际电工委员会的IEC61158标准的定义而应用于生产现场,在现场设备之间、现场设备与控制装置之间实行双向、串行、多节点通信的通信网络,也被称为开放式、数字化、多点通信的底层控制网络。现场总线具有系统的开放性;互操作性与互用性;现场设备的智能化与功能自治性;系统结构的高度分散性;对现场环境的适应性的优点,因此,现场总线成为当今自动化领域技术发展的热点之一。近年来已经设计出与现场总线相适应的控制模块,其功耗小、可靠性高、易开发等的优点已经成为嵌入式系统的主要成员。所谓嵌入式应用技术,是指将一个具有完整功能的小型或微型机装置作为一个部件或子系统,与载体有机地构成一个更可靠的技术稳定性的功能更强大和完善的系统。工业嵌入式系统的主要指标要求就是:实时性、高效率、安全稳定性与可靠性以及结构紧凑、易于剪裁、良好的开放性。实时性就是事件驱动能力与时间驱动能力,其基础是内核的结构模式与进程管理机制;高效率包括系统的启动速度与运行速度及消息传递效率等;而稳定性与可靠性包括稳定性、安全性与容错能力等有关的性能指标。以前的大部分工业嵌入式操作系统都是建立在DOS之上,但是DOS系统无论在实时性、安全性、分布式网络支持、可视化编程还是在易用性等诸多方面都不能满足工业应用要求,可供嵌入式应用的图形操作系统有多种,比如Windows CE、Palm OS、Black berry和EPOC等,而Palm OS、Black berry和EPOC一般只应用在手持设备上。适合工业环境应用(过程)标准的系统,目前有Windows CE和Linux等几种。本文的所介绍的嵌入式控制系统是基于Linux图形操作系统。
2.嵌入式控制系统
一般性定义,广义上的嵌入式控制系统是指非PC系统,有计算机功能但又不称之为计算机的设备和器材;狭义的嵌入式控制系统是把PLC功能、测量功能、PID调节(如温度)功能、人机+界面功能、现场总线通讯功能和高级语言编程及库函数集成的结合体。此系统包括控制面板和相关支持硬件(微处理器、IO端口等外设器件、扩展模块、存储器等)及应用软件。
  2.1 控制面板(以德国EPIS公司产品为例)设计多样化,用户可以选用已有的控制器面板,也可以订制面板,使其与其设备或系统环境相匹配。显示器类型是LCD显示器,同时配有点阵式显示和图形显示。整个系统面板从144*72mm到255*183mm,适合在各种设备上应用。
  2.2 相关支持硬件
  嵌入式微处理器是嵌入式系统的核心。它对实时和多任务有很强的支持能力,能完成多任务并有较短的中断响应时间,使内部的代码和实时操作系统的执行时间减少到最低限度;具有强大功能的存储区保护和扩展功能;可扩展的处理器结构,能更方便、迅速地扩展出满足于应用的高性能配置;嵌入式微处理器的低功耗。
  IO端口 数字输入口和输出口数量可选择,各端口最多可扩展到512路。输入电压是24VDC,分为标准速度口(从高变低为3.5ms,从低变高为2.8ms)和快速输入口(响应速度为20μs),同时配有高速输入口,额定电压是5V或24V,响应时间为1.1μs。数字输出口采用24V光电隔离结构,每路电流最大500mA,配有短路保护和过载保护;继电器输出口有一常开点和一常闭点,转换电压最大48 VDC,转换电流最大1A,转换容量最大30W,运行时间3ms。模拟量输入口和输出口的数量各自可扩展到40路。其模拟量输入口包括电压输入和电流输入两种方式,同时可以接收温度传感器信号,内部A/D转换器15位.,转换时间为20μs。特殊功能口:多路高速计数器输入口,最大输入频率是25kHz;增量编码器输入口,最大输入频率是1M Hz;25位绝对值编码器输入口;模拟量输出口内部D/A转换器是11位,转换时间为100ms。
  总线(CAN)扩展模块 总线(CAN)扩展模块是光电隔离,与ISO/DIS 11898兼容。其传输电缆是双绕线屏蔽电缆,且对应于不同长度的电缆,传送的位速率不尽相同。总线(CAN)扩展模块扩展卡自带CPU,可独立脱机工作,节省主CPU的开销。 总线功能可带一路或多路总线(CAN)口和多个扩展槽。利用TCP/IP网络功能支持设备与设备间、设备与网络之间的在线数据交换,还可选配RS232/RS485,CANopen,和Profibus接口。
  2.3 应用软件包括操作系统软件和应用程序编程软件。操作系统软件包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。嵌入式操作系统的基本特点是能够有效管理越来越复杂的系统资源,把硬件虚拟化,使开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供大量专用和通用库函数、驱动程序、工具集以及应用程序。应用程序控制着系统的运作和行为来完成特定的任务,而操作系统控制着应用程序编程与硬件的交互作用。编程环境非常好,在PC机上编程,具有非常方便地仿真,设断点,参数设置和跟踪,单步执行等DEBURG功能。
3.工业嵌入式控制系统的实时性与Linux操作系统
  3.1 实时性是工业系统的基本要求,也是考核嵌入式系统最重要的指标之一。工业控制中的操作系统要求严格的实时性,实时性也是嵌入式系统的主要特征。实时系统要求所有任务在规定的时间内完成,例如现场的数据采集,电力监控与管理,航天器的飞行控制等等。设计实时系统有两个相对的目标:一是保证严格的时间关键截止值;二是充分有效地利用各种资源,并能较好地容错。嵌入式系统在软件的控制下通过硬件高速地获取数据,并进行处理,产生相应地反应。整个过程必须具有严格的时间和可靠性约束。实时操作系统中的重要概念包括:
  系统响应时间(system response time)指系统发出处理要求到系统给出应答信号的时间
  任务换道时间(context switching time)指任务之间切换而使用的时间
  中断延迟(interrupt latency)指计算机接受到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间
  实时操作系统应具有如下功能:任务管理(多任务和基于优先级的任务调度);任务间同步和通信(信号量和邮箱等);存储器优化管理(含ROM的管理);实时时钟服务和中断管理服务。
  通常,根据实际应用中截止时间的要求,可将实时进程分为严格满足时间截止的硬实时进程和对截止时间要求只有关联的软实时进程。面向实时的Linux调度策略,应该采用线程作为调度的基本单位。在调度系统中安排一定的调度时钟,以调度时钟作为线程调度的参考。调度时钟依据线程创建时设定的优先级,同时优先级高的线程将一直运行。如果两个线程具有相同的优先级,则采用随机调度的方法。Linux是一个通用的操作系统,内核不支持事件优先级和抢占实时性,因此在将Linux系统作为嵌入系统应用于工业测控领域时,必须开发和扩展实时功能,将Linux提升为一个实时操作系统。
  3.2 Linux是由很多体积小且性能高的微内核和部件组成。由于内核代码的完全开放性,不同层次和不同领域的用户可以根据具体的应用需求对内核进行改造与剪裁,以较低的成本设计出满足自己要求的嵌入式操作系统。它有一整套的工具链gcc,用户能够比较容易自行建立与配置嵌入式系统以及在该系统下的开发环境与仿真运行环境,不需要专门的仿真器。它可以支持RISC和CISC结构的芯片,可以支持16位、32位和64位CPU;就目前的流行器件来说,它可以运行在Intel系列CPU上,也可以运行在IBM和Motorola的Power PC 系列CPU以及Alpha和SPARC系列CPU上。Linux的灵活性极好。在一个64兆内存的PIII平台下编写的应用程序,可移植到8兆内存的嵌入式硬件装置中并可靠和稳定地运行。考虑可移植性与可裁减性硬件平台的迅猛发展,为实时应用提供丰富的运行平台(从单片机到DSP,从CISC到RISC结构的各类微处理等)。为了能适应硬件平台的多样化,在设计、开发嵌入式实时操作系统内核时,要认真考虑可移植性问题。能够提供广泛平台支持的操作系统,目前嵌入式Linux是成功的典型。可移植性与实现代码选用的语言有很大关系。如,C语言比实现相同功能的汇编语言具有更好的可移植性。但是,用汇编语言实现的代码具有更高的执行效率和更紧凑的代码空间。所以,为了取得较好的执行效率,节省代码空间,获得较强的可移植性,需要选择一个在代码优化方面做得好的C语言编译器,能对C代码进行良好的优化。

图1LINUX内核体系结构
上图显示了Linux内核体系构建方式。它把Linux内核源代码清晰地分为体系结构相关部分和无关部分。体系结构无关部分定义了与底层,也就是体系结构相关部分的接口。更确切地说,该图能够说明所有期望具有平台无关特性的操作系统。体系结构无关代码并不关心宏的确切定义,把实际负责硬件体系留给相关代码区处理。这种处理的方法提高了代码的重用性、可移植性和可裁减性。然而,由于Linux是采用单内核设计,如果采用微内核设计,那么向其它体系结构上的移植将会更加容易.

继续阅读
以太网和CAN总线传输方式比较

从网络的连接来看,CAN总线通过物理信号来进行连接,而以太网则是交换机连接。在以太网连接中交换机是必要的,一旦交换机有所差池整个网络都将崩溃。将整个网络的安危交一台太脆弱的交换机来承担实在是太过于儿戏,而若是设置冗余备用又要增加许多成本。相比之下CAN总线的结构非常简单,仅需拉两条线而已,简洁而稳定。对于安全第一的汽车来讲,无疑是CAN总线更为适合。而且以太网采取超时重发机制,单个节点的故障很容易扩散到整个网络,相较于CAN总线的分级仲裁制度也是逊色了不少。

物联网各类OS争雄,RTT如何求胜?

物联网的兴起已经有好几个年头了,目前仍呈现爆发式增长的态势。根据全球移动通信系统协会(GSMA)发布的报告《Spectrum for the Internet of Things》,2015 年全球物联网规模为 0.89 万亿美元,预计到 2020 年全球物联网市场规模将达到 1.9 万亿美元,物联网设备连接总量将达到 300 亿个。按此计算,2015 至2020 年全球物联网市场规模年均复合增长率为 16.38%。

一看就懂的MQX实时操作系统入门培训

MQX是嵌入式控制系统中不错的一个RTOS选择,入门容易上手快,今天我们来看看那些入门的基本培训。

飞思卡尔MQX环境下Modbus通信的软件开发

Modbus协议是工业控制中经常会用到的通信协议,在飞思卡尔KSDK中的UART驱动是通用收发驱动,要在KSDK中实现Modbus通信,就要修改UART驱动,今天我们就来看看基于飞思卡尔KSDK1.2.0的MQX环境下modbus软件实现,基于你已经了解modbus协议和熟悉KSDK框架,并会搭建工程。

【Easy IoT with VSCP连载】: 2 –借助Yocto项目,在UDOO上支持CAN总线系统

在进行物联网演示时,我们用基于i.MX6Q的UDOO开发板将采用CAN总线的灌溉系统连接至互联网。该Linux单板计算机将在启动时(/etc/init.d)运行VSCP守护进程,并托管小型网络服务器,它可以连接至更大的“网络管道”或路由IP,其中应用程序在像Rackspace公司、IBM Bluemix、AWS等更大的云托管网站托管。VSCP守护进程注册了自己的“驱动程序”,用于与外界进行通信,同时还有用于各类控制、日志记录,过滤等的内部调度程序。