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

发布者:zcyzwj最新更新时间:2011-07-29 关键字:工业控制  RTOS  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是采用单内核设计,如果采用微内核设计,那么向其它体系结构上的移植将会更加容易.[page]

4 基于CAN总线工业嵌入式控制系统的设计
  基于CAN总线的工业嵌入式控制系统的整个模块如图2所示。

图2基于总线(CAN)工业嵌入式实时控制系统的原理图
  总线控制器SJA1000 8000H~801FH 将设计好的PC/104模块作为一独立的控制系统插入专用的应用板,同样的模块可以有若干个,以层叠的方式嵌入同一块应用板,既可以完成类似的功能,也可以完成完全不同的其它功能(如数据采集转换等)。PC/104提供了一个非常紧凑的与标准台式PC或PC/AT结构完全兼容的层叠栈接模块。将台式PC机的全部功能重新包装于一个格式标准统一、稳定可靠、灵活且符合嵌入式系统尺寸的标准模块中,与PC兼容,用于嵌入式系统设计以替代传统的嵌入式微处理器十分适宜。通过PC/104总线,微处理器能够非常方便地和系统通信。为满足大量数据交换的要求,特增加了8kb的RAM以扩展内存。为了增加局部总线的驱动能力,在微处理器和PC104总线之间增加数据/地址驱动电路。为了系统的扩充能力,增加了地址译码电路,译出的地址0300H~031FH以备将来的I/O外设使用。同时为了增加有效的传输距离,采用了Philips公司的高性能CAN总线收发器82C250,它具有高速性(最高可达1Mb/s)、能抗瞬间干扰、保护总线、支持多达110个节点的连接等优点。另外,设计了CAN地址选择电路,以确保CAN总线节点在整个系统中的唯一地址。
5 Linux嵌入式应用编程简介
  5.1 采嵌入式系统一般都没有编辑和编译工具,所以需要先在开发系统中完成程序的编辑、编译和仿真运行及修改工作,形成可执行文件,再转到运行系统(即嵌入式系统)上执行。
  以Linux嵌入式为支撑系统开发系统上的应用程序属于事件驱动编程,也就是“消息队列”和“消息循环”。有2个涉及消息的函数十分常用:GetMessage()和DispatchMessage( )。一般还需要common.h。
  其编程与VC++编程所用消息处理函数极为相似,下面将介绍一些简单而又基本的GUI元素:主窗口、静态文本框、编辑框、按钮、进程条、对话框以及一些基本的图形操作
  一些常用的消息处理函数如下:
  输出文本 MEG_PAINT(使用TextOut()函数)
  设置像素点颜色 SetPixel()
  画线条 LineTo()
  画矩形 Rectangle()
  画圆形 Circle()
  设置画笔颜色 SetBrushColor()
  创建窗口 MES_CREATE
  创建主窗口 CreateMainWindow(&CreateInfo)
  此外,大多数控件都可以使用CreateWindow()函数创建。
  5.2 RTOS开发平台
  通用计算机具有完善的操作系统和应用程序接口(API),是计算机基本的、不可分离的一部分,应用程序的开发以及完成后的软件都在平台上运行,但一般不是实时的。嵌入式系统则不同,应用程序可以没有操作系统而直接在芯片上运行,但是为了合理调度多任务、利用系统资源、系统函数以及专家库的接口,用户必须自行选配RTOS平台,这样才能保证程序执行的实时性,稳定性和可靠性,并减少开发时间,保证软件质量。
  实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。在编写程序时,可以分别编写各个任务,从而减少了程序编写的工作量,而且减小了出错的可能,保证最终程序具有高可靠性。RTOS体现了一种新的系统设计思想和一个开放的软件框架,用户可以在不大量变动系统其它任务的情况下增加或去掉一个任务;一个项目开发的过程中,可以有多个工程师同时进行系统的软件开发,每个人之间只要制定好规程和协议即可,既缩短了开发时间,又降低了最终软件产品对于具体某个开发者个人的依赖性。为RTOS设计的成熟和通用的任务可以以库函数的形式供其他人继续利用,与C++语言的设计思想一致。
6 结束语
CAN总线技术在电厂、变电站、电力系统中有广阔的应用前景,能在可靠性、高精度、经济性等多方面获得最大的效益;以工业标准PC/104 为代表的嵌入式控制系统具有突出的优点,十分适合于工业环境的要求。随着微处理器和单片机的发展,工业控制技术中使用嵌入式实时操作系统已经成为一个特点。嵌入式操作系统已经经历了一个阶段的发展,它在工业控制中的应用必将越来越广泛。

 

关键字:工业控制  RTOS  CAN总线 引用地址:基于LINUX和CAN总线的工业嵌入式控制系统研究

上一篇:东能伺服在绕线机上应用
下一篇:基于WinAC的高压防爆开关保护测控系统设计

推荐阅读最新更新时间:2024-05-02 21:31

CAN总线测试内容
           CAN总线测试内容可以分为单节点测试和总线系统集成测试两部分。在每个节点连接到CAN总线网络之前都需要进行单节点测试,用以确定节点工作正确并且不会干扰总线的正常通讯。总线系统集成测试则是将各个节点都连接形成完整的CAN总线系统,对系统进行测试以验证系统运行的完整性及正确性、系统的通讯鲁棒性、电器鲁棒性以及系统的容错自恢复功能等。   进行CAN总线测试过程,首先需要制定测试规范,然后根据该测试规范编写测试案例,构建测试环境,并进行测试实现,最终将测试所得的数据进行分析,形成测试报告。    由于CAN总线基本协议的灵活性,目前并没有一个统一的完整覆盖CAN总线各个通讯层次的测试规范,而作为CAN总线技术使用最广
[嵌入式]
基于CAN总线的红绿灯动态调整系统
     国内红绿灯交通控制系统中红绿灯切换时间广泛采用固定或者分时段变化的时间间隔,或者由交通指挥中心根据交通状况调整时间间隔,不能够根据实际的交通状况进行动态切换,也不能够根据道路状况预先干预,防止交通恶化。在极端情况下,可能会出现有车的方向红灯禁行,没车的方向绿灯通行的现象。这种方式低效、严重依赖于交管部门的工作效率,且一般只能在交通恶化后才可能介入,不能提前预防。为此本文提出了一种基于 CAN总线 的红绿灯动态调整系统,它能够根据实际交通状况实时调整红绿灯时间,可以降低道路拥堵几率,保障交通畅通。 1 总体设计方案     总体设计方案如图1所示。图1(a)为每个路口的红绿灯控制器,其中环形线圈和红绿灯之间的虚线表示两者之
[嵌入式]
基于CAN总线的多机通信中的设计应用
    随着微处理器的发展,利用微处理器对工业生产过程进行控制已成为趋势。在工业控制过程中,由于大量数据信息的共享和传输,传统的串行通信模式已不能满足要求。在工业控制领域中,需要一种抗干扰性强、可靠性高、传输速度快和传输距离长的总线结构。CAN总线技术不仅满足上述要求,而且还能实现多点间的信息传递。本文使用PCI9810-cAN适配卡上的CAN总线组成局域网络,实现多微处理器间的信息传递和PC机对多处理器的检控、通信。    1 CAN总线简介   CAN(Controller Area Networks)总线,最早是由德国Bosch公司开发用于局域网控制的总线技术。CAN总线采用传统的双线串行通信方式,具有诊断能力,抗电磁干扰
[嵌入式]
怎样理解CAN总线的非破坏性总线仲裁技术
当一个节点要发送数据时,首先监听信道;如果信道空闲就发送数据,并继续监听;如果在数据发送过程中监听到了冲突,则立刻停止数据发送,等待一段随机的时间后,重新开始尝试发送数据。 而CAN总线是使用的无损仲裁方式(即你所指的非破坏性仲裁):就是当两个或者以上的不同ID节点“同时”向总线发送数据时候,优先级最高的就能直接发送,优先级低的就自动退回,等待空闲时候再向总线发送数据,所以对于优先级最高的节点来说“发送时间”就是无损的。(相对来说以太网就不是这种模式,是每一个节点都要退回来,随机一个时间再发送出去,没有优先级的意思,所以从理论概念上说实时性差一些)。 而CAN总线节点的优先级主要由ID值决定的,值越小优先级越高。  
[嵌入式]
基于CAN总线接口的红外检测系统的设计思路
  1 引言   一氧化碳(CO)是剧毒性气体,人体吸人后造成人体组织和细胞缺氧,导致引起中毒窒息。在煤矿井下,CO也是引起瓦斯爆炸的主要气体之一。CO无论是对工业生产还是人类都造成巨大的损害,因此,CO检测尤为重要,特别在煤矿井下,《煤矿安全规程》规定,井下作业场所的CO浓度应控制在0.002 4%以下。因此,实时、准确地测出井下CO气体浓度,对保障煤矿工业安全生产具有重要意义。   目前检测CO的方法主要有化学法、电化学法、气相色谱法等。这些方法普遍存在价格高、普适性差等问题,且测量精度较低。这里设计一种新的检测系统,选用红外CO传感器和MSP430单片机作为核心信号处理电路,结合数字滤波、温度补偿运算.具有检测浓度范围宽
[单片机]
基于<font color='red'>CAN总线</font>接口的红外检测系统的设计思路
基于CAN总线的智能节点的设计
现场总线是工业自动化领域中实现分布式控制而产生的工业级局域网,其可以实现控制系统内各节点的实时数据通信,具有良好的可靠性,成为当前工业控制领域内的研究热点。在众多现场总线中,CAN总线以其高性能的特点,被广泛应用于航天航空、工业控制、环境监测,医疗设备等多个方面。基于CAN总线的控制节点可实现对工业控制中多点 的分布式控制,具有重要的研究价值。 1 总体结构设计 CAN总线采用了不同于传统的分布式控制系统的构架,由分散于工业控制中现场智能节点完成传统系统中主机的常规测试与控制。因此基于CAN总线的分布式控制系统的主机不必监控底层设备,实现高性能的高层次控制与管理。一般基于CAN总线的工业分布式控制系统中由主机、数据转换
[单片机]
基于<font color='red'>CAN总线</font>的智能节点的设计
汽车CAN总线接口浪涌静电保护电路图
控制器局域网总线Controller Area Network,简称CAN总线,是一种用于实时应用的串行通讯协议总线,也是世界上应用最广泛的现场总线之一。CAN总线的应用范围广,在实际应用中,环境相当复杂,一些静电(ESD)、浪涌(Surge)等干扰很容易耦合到总线上,并直接作用于CAN总线接口。一般的CAN总线收发器芯片静电(ESD)、浪涌(Surge)防护等级比较低,裸机情况下,CAN接口静电(ESD)可达6kV,无法满足常见的浪涌测试要求。工业产品、汽车电子产品对通信接口的EMC等级要求更高,许多应用要求满足IEC 61000-4-2静电放电4级,IEC 61000-4-5 浪涌抗扰4级等要求。为了满足这些高等级EMC要求,
[嵌入式]
汽车<font color='red'>CAN总线</font>接口浪涌静电保护电路图
嵌入式实时操作系统VxWorks入门
        VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。VxWorks原先对中国区禁止销售,自解禁以来,在我们的军事、通信、工业控制等领域得到了非常广泛的应用。         VxWorks的实时性体现在能于限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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