7
西门子模块6ES7222-1HF22-0XA8货源充足
目前,家庭用户的宽带接入主要有ADSL、LAN、HFC、PLC四种方式可以实现,而由于拥有网络的限制,任何一家宽带接入服务商为用户提供的接入方式只能是其中的一种或两种。从实践来看,这几种方案在网络接入方式、用户负担成本、可以提供的服务内容等方面不尽相同,所适用的范围也大不一样。用户在选择宽带接入服务商时,考虑的是哪一种接入方式适合自己的需求,然后再确定服务商。因此,接入市场之争,就是接入方式之争。下面就比较一下这几种方案的特点、应用场合和利弊。
(一)ADSL接入方式
ADSL(AsymmetricalDigitalSubscriberLine,非对称数字用户环路)是一种能够通过普通电话线提供宽带数据业务的技术,成为继Modem、ISDN之后的又一种全新的、快捷、的接入方式。ADSL这种方案的大特点是不用改造信号传输线路,可以利用普通铜质电话线作为传输介质,只要配上的Modem即可实现数据高速传输,其有效的传输距离在3~5公里范围以内,而且距离愈远,速度愈慢。
ADSL支持上行速率640kbps到1Mbps、下行速率1Mbps到8Mbps。这种带宽能否满足用户的需求呢?目前家庭宽带用户占用带宽大的需求是在线观看视频,网上一般流媒体都是以128kbps、256kbps或500kbps的速率播放,而目前北京通信提供的ADSL下行传输速率为512kbps,理论上可以满足各种在线播放需求,基本适合家庭用户的需求。
(二)LAN接入方式
LAN接入方式采用光纤接入,整个城市网络由层、汇聚层、边缘汇聚层、接入层组成。社区端到末端用户接入部分就是通常所说的后一公里。LAN方式是采用光缆+双绞线的方式对社区进行综合布线,双绞线总长度一般不过100米,线路距离短,因而线路质量得到了好的。采用LAN方式的宽带服务一般是吉比特光纤进小区,百兆光纤到楼,10/100M到户的模式,这比拨号上网速度快180多倍,在传输速率上也基本可以满足用户的各种需求。
由于采用光纤接入,在抗干扰方面,LAN方式较普通电话线上传输数据的ADSL方式优异。同时LAN接入的上下行速率是相同的,所以不会产生由于上行速率的限制导致干扰的情况。LAN采用以太网技术的接入方式,因而在地域上受到一定限制,只有已经铺设了LAN的小区才能够使用这种接入方式。
(三)HFC接入方式
HFC接入方式是基于有线电视网络提供的,由于其的行业性,目前这种宽带接入方式仅能由广电相关企业提供。HFC有线电视网的网络结构在光纤部分多数采用星形网,在电缆部分则采用树形分配网。这种网络结构对于有线电视网来说是相当优越的,但对于宽带高速综合业务网,就不是很合理,主要原因是有线电视网和综息网对性要求不同,综息网要求网络具有很高的性。有线电视网出了故障,造成的后果只是部分用户在某段时间看不好电视节目;而综息网一旦出了故障不能及时修复,可能会给用户造成不可的损失。
HFC是在单向的基础上进行双向的改造来进行传输。由于它共享一条信道,它的带宽在用户量增加的时候,会不断减少,相互的干扰过大。没有一个网络在CABLE上的用户过5000个。目前有线电视网在带宽共享方式、网络、网络管理等方面依然存在缺陷。HFC方式和ADSL方式的共同特点是利用已经有的网络基础设施,它们共同的缺点是带宽进一步扩展能力有限。
(四)PLC接入方式
电力线通信技术,英文简称PLC,是指利用电力线传输数据和话音信号的一种通信方式。该技术是把载有信息的高频加载于电流,然后用电线传输,接受信息的调制解调器再把高频从电流中分离出来,并传送到计算机或电话上,以实现信息传递。该技术在不需要重新布线的基础上,在现有电线上实现数据、语音和视频等多业务的承载,也就是实现四网合一。终端用户只要插上电源插头,就可以实现因特网接入。
PLC利用1.6M到30M频带范围传输信号。在发送时,利用GMSK或OFDM调制技术将用户数据进行调制,然后在电力线上进行传输;在接收端,先经过滤波器将调制信号滤出,再经过解调,就可得到原通信信号。目前可达到的通信速率依具体设备不同在4.5M~45M之间。PLC设备分为局端和调制解调器,局端负责与内部PLC调制解调器的通信和与外部网络的连接。在通信时,来自用户的数据进入调制解调器调制后,通过用户的配电线路传输到局端设备,局端将信号解调出来,再转到外部的Internet。



通常机床主轴电动机制动时,采用的是能耗制动方式,使电动机AB相输入直流电源。
采用能耗制动方式使主轴电动机停止,主轴在低档位低速旋转时,大约需要0.5s,在位高速旋转时,大约需要2.5s。目前,采用的主轴电动机制动方法如图1所示,先断开KM1,再闭合开关KM2,从而断开三相交流电源,接通直流电源,延时2.5s,认定主轴电动机停止旋转,然后进行换或其它动作。
主轴以不同的速度旋转时,采用能耗制动方式使主轴停止所需要的时间不同,采用同样的能耗制动时间,延长无意义的加工辅助时间,降低了机床工作效率。另外,一旦开关KM2不能闭合,或者直流电源保险断开不能正常提供直流电,则主轴电动机只能在摩擦力的作用下减速,制动时间需要很长,但延时2.5s后,机床数控系统仍然认定主轴电动机已经停止旋转,此时机床进行换或其它动作容易造成事故。
因此,我们对机床主轴制动控制方式进行了改进设计,判断主轴旋转状态,不采用延时2.5s,即认定主轴电动机停止旋转的控制方式,而是实时监控主轴旋转状态,当主轴旋转一定转速时,立即发出主轴停止完了信号。
2 主轴转速监测方案
在电动机的同步传动轴上安装一块条形铁片,和电动机同步旋转,由接近开关对其,每转到两个脉冲信号,通过对脉冲信号的而得知其转速。脉冲信号有两种方案。
方案:在一定周期Tp内读取脉冲信号的个数N,PLC是一种顺序控制器,它的程序是由前到后一步一步执行,每执行完一遍为一个扫描周期,然后从头开始循环执行。如程序有2000步,每步执行时间周期为30μs,则程序的扫描周期约60ms,扫描频率约16Hz,能够准确出的脉冲频率应8Hz,当转速的脉冲频率大于16Hz,即转速n≥480r/min时,PLC受其扫描频率的影响,不能准确出脉冲的个数,情况不好时,会出现高速时的脉冲个数很少,误判为电动机基本停止而进行下面动作,造成事故。此种方案只适用于主轴低速旋转状态的监测。
二种方案:检测脉冲信号持续为“0”或“1”的时间T,当n<60r/min时,发出主轴停止完了信号。由于PLC程序执行过程的延时,数控系统收到主轴停止信号,并执行下面动作时,主轴已停止旋转,n=60r/min所对应脉冲信号持续为“0”或“1”的时间T为0.25s,因此我们把检测脉冲信号的计时器设定为0.25s。同样高速时也会出现脉冲测不准的情况,但不管情况多坏,在0.25s的时间内“0”或“1”至少变化一次,因此可以准确地判断主轴是否停止旋转。此方案可以适用于主轴高速或低速旋转时主轴制动状态的检测。在实际应用中,我们采用了此方案。
3 PLC实现主轴能耗制动的控制方法
PLC设计程序中,X20.0为转速脉冲信号的输入,M05为主轴停止信号,Y50.0为主轴停止完了信号。
两个计时器TM1、TM2分别判断X20.0脉冲信号持续为“0”或“1”的时间是否达到设定的时间,只要有一个时间到达,即R100.1或R100.2变“1”,导致R100.3变“1”,此时M05为“1”,导致Y50.0输出“1”,则发出主轴制动完了信号,实现了主轴停止的准确判断。
4 结束语
我们采用改进的控制方式用PLC控制机床主轴的制动,能够地判别机床主轴的旋转状态,避免了机床的误动作,节约了主轴加工的辅助时间,使机床的保护性能趋于完善。
在工业控制系统中除了遇到开关量信号外,还会遇到另一类物理量,即模拟量,例如:角度、温度、压力、电压、电流等等,它们都是连续变化的物理量。可编程序控制器PLC是以微处理器为基础的通用工业控制装置。传统的PLC是为开关量控制而设计,而现代的PLC已经具备了处理模拟量的功能。在工业控制系统中,模拟量输入信号的采集和处理是较为常见的控制内容,同时根据控制策略PLC能够输出模拟信号。
因此从工业应用的实际情况来看,现代的PLC不仅要能够采集外部输入的模拟信号,同时也应有能力输出模拟信号。并且随着微电子技术的发展,模拟AD、DA的性能越来也高,对于模拟信号检测的精度要求也在逐年递增。所以本文针对这种即要采集模拟输入又要输出模拟量的应用场合,提出一种模拟的系统方案。
1 系统需求分析
常见的PLC的模拟信号有以下几种:0~5 V,0~10 V,±5 V,±10 V,4~20 mA,信号的频率范围为DC~500 Hz。本系统的输入能够兼容以上5种输入量,并提供4~20 mA输出信号量输出。考虑到实际应用环境中的温度影响,如果直接使用低温漂的模拟IC,系统的成本会非常高;如果采用带有温度自校准的方案,可以选用价格合理的模拟芯片完成设计,但是需要额外的MCU进行运算和控制。信号输
出需要额外的DAC配合调理电路实现。
由以上的分析可知,需要有一款即集成有ADC和DAC,又带有MCU的模拟微控制器。ADI公司的ADuC7061刚好可以满足系统的需求:集成两个立的的8kSPS、24位多通道∑-△型模数转换器(ADC);集成32位ARM7TDMI微控制器;片上提供一个单通道14bitDAC;集成SPI控制器。使用ADuC7061作为,配合外部电路可以即满足模拟通道的精度要求,又可以实现灵活的和控制。
该方案优点:可以进行温度校正;原本的ADC,DAC和MCU只需要一块ADuC7061即可实现,即节CB面积又降;对外的接口可以共用一个SPI,可以通过灵活的协议,实现复杂的和控制功能。
2 总体结构设计
系统与外部是电气隔离的:通过隔离的24VDC-DC完成电源部分的隔离;通过SPI隔离驱动电路完成数据接口的电气隔离。两路输入调理电路是一样的,功能包括输入信号调理和自校准实现。系统的4~20 mA输出,是将ADuC7061内部14位DAC的输出电压经过V-I转换电路实现的。系统通过隔离的SPI与外部通信。
3 主要模块设计
下面分别介绍系统主要模块的设计,分为ADuC7061电路、输入调理电路和输出V-I转换电路。
3.1 输入调理电路
系统的模拟输入可以兼容4~20 mA电流信号,或者是0~5 V、0~10 V、±5 V和±10 V的电压信号。其中4~20 mA电流信号可以通过并联一个250 Ω低温漂(25 ppm/℃)电阻负载变送为1~5 V电压信号。考虑到ADuC7061的24位∑-△型ADC输入电压范围0.1~1.8 V,所以提到的各种信号都要调理到0.1~1.8 V的范围内。在本系统中,采用一种基于AD8295的信号调理电路,
其中基本的信号调理功能由AD8295 IN-AMP(仪用放大器)和AD8295 A1(运算放大器放)实现,这个电路可以将单端和差分信号都调理成为差分信号。由于ADC也是差分输入,输入信号的共模量只需要电压稳定即可,
ADuC7061集成的24位∑-△型ADC在差分输入配置下,要求共模电压VCOM>0.5 V,系统采用的共模电压是将模拟参考2.5 V通过2个1%电阻分压到1 V的。从上面两个方程可以看出,无论输入信号是差分电压,还是单端输入,都可以将信号转换成为一个以1 V为基准的差分电压信号。对于系统输入的0~5 V、0~10 V、±5 V和±10 V都可以通过同一个电路拓扑结构来实现,考虑到精度要求,需要改变的就是RG的阻值。当RG开路,G=1,支持0~10 V和±10 V输入;RG为49.4 kΩ,G=2,支持0~5 V和±5 V输入。
经过仪用放大器和运放调理得到的信号DIFF+和DIFF-是一个以1V为基准,大差分电压可以达到10 V的差分信号。这个差分信号电压过大,远远过ADC输入电压规定的范围。经过图2中由R1、R2和R3构成的无源差分衰减器减小10倍,得到一个以1 V为基准,大差分电压为1 V的差分信号ADC_IN+和ADC_IN-,然后送给后一级的ADuC7061的ADC采集。
系统校正之后只需要保存A和B两个整数即可,但是由于系统K=0.1,所以计算所得的CODEvin长度为32位。
这种校正的方案有两个显著的优点:1)校准斜率过程中取输入Vin=Vref,此时校准得到的K,精度只与ADC的INL参数有关,与参考电压Vref本身的精度无关,减少了校准过程中引入的额外误差:2)校准的中间变量A和B都用24位二进制整数表示,只在后做两次浮点运算,简化中间过程中的浮点预算的次数,减少截断误差对系统测量结果的影响。
这个电路是从Howland电流源电路基本拓扑结构改进而来的,采用Q1-2N7002代替运放作为功率输出,这个电路对R1~R4和RF的电阻值大小有如下要求:R1=R2=R3=R4=100 kΩ;且R1≥RF,在这种情况下可以忽略R1~R4臂过的电流。通过虚短和虚断对电路分析得到:,RF=100 Ω。在此基础上增加的改进有两点,在电路中加入了CF和RP:其中CF用来改进电流输出的频率响应特性;RP用来平衡运放本身的电压偏置和电流偏置,RP大小随着每一块运放芯片的电压、电流偏置值的不同需要单调整。
3.3 ADuC7061电路
如图4所示,作为测量和控制的,ADuC7061电路包括以下3部分:ADuC7061单元;外部ADM6320;隔离的SPI驱动ADuM 7441。从图1和图4可以看出,输入信号调理电路作为片内ADC的前级驱动,输出电压信号直接与芯片内部的两个立ADC相连。ADuC7061采用内部的PLL使ARM内核工作在10 MHz的频率下。复位引脚与外部ADM6320相连,通过P2.0的定时喂狗提高系统运行的性,并使系统上电复位。系统通过片内SPI硬件控制器与外部通信,系统工作在从模式下,SPI时钟频率支持到5 M。外部通过IO控制外部模拟开关完成自动校准。
系统上电启动之后,配置完系统外设,然后对两路模拟输入通道完成自动校准,并将校准使用到的变量保存到非易失性存储器中。然后进入自动测量主循环中,由于有ARM7主控,外部可以通过SPI灵活的配置每个ADC通道的参数。在本系统中,可以通过SPI控制通道采样率,以提高∑-△型ADC的有效位数,进一步提高系统精度。系统的在定时器中断时问设定为1 s,每秒钟通过ADuC7061内部集成的温度传感器测量当前温度,当检测到累计温度变化过阈值时,通知设置校准标志位,让系统在下一次测量前自动完成一次通道校准,实现对温度的补偿。
5 测量结果以及误差分析
为了保证系统的精度,电路采用4层PCB实现,并提供大面积的模拟地平面以降低噪声干扰。对该系统的测试包括两部分,是测试输入电压测量精度,其次是电流输出精度。由于输入电压信号为DC~500 Hz信号,而且ADuC7061中的∑-△型ADC的有效位数随着采样频率的降低而增加。所以为了测量系统的误差,将采样率设置为1 k,输入信号为-10~+10 V间隔1 V的直流电平,在零点附近增加了±0.5 V和±50 mV的电压输入,被测电压基准通过FLUKE5700A给出,将通过SPI输出到电脑中记录,进行误差分析,误差测试结果如图6所示。
可以看出系统自动校准后,精度可以达到0.05%,达到了设计的预期。从图6中可以看出,在输入小电压范围内,系统的主要误差来源是系统噪声,这个噪声直接决定小信号输入下的系统精度。
系统电流输出误差大为0.2%。系统的误差都是正值,说明误差是V-I变换电路中两个臂经的电流造成的,因为两个臂经的电流值是输出电流的千分之一,与误差在同一个数量级上,虽然系统已经达到了设计的目标,但是考虑到进一步提高系统精度,这个误差可以通过软件校准的方式,使用小二乘法建立系统输入输出函数关系,可以进一步提。
6 结论
本系统以ADuC7061为控制,采用改进的模拟调理电路,配合自动校准策略,完成的电压采集功能。通过采用改进的Howland电流源电路完成4~20mA电流输出功能。配合外部的4线SPI完成系统对外通信,作为一个带有SPI接口的PLC模拟,起到模拟信号采集和电流输出的功能。该系统模拟测量精度高,软件灵活,接口通用,具有很高的实用,不仅可以作为PLC的模拟,也为其他模拟设计提出了很有的参考。
PLC的主要特点
1、高可*性(1)所有的I/O接口电路均采用光电隔离,使工业现场的外电路与PLC内部电路之间电气上隔离。(2)各输入端均采用R-C滤波器,其滤波时间常数一般为10~20ms.(3)各模块均采用屏蔽措施,以防止辐射干扰。(4)采用性能优良的开关电源。(5)对采用的器件进行严格的筛选。(6)良好的自诊断功能,一旦电源或其他软,硬件发生异常情况,CPU立即采用有效措施,以防止故障扩大。(7)大型PLC还可以采用由双CPU构成冗余系统或有三CPU构成表决系统,使可*性进一步提高。
2、丰富的I/O接口模块PLC针对不同的工业现场信号,如:交流或直流;开关量或模拟量;电压或电流;脉冲或电位;强电或弱电等。有相应的I/O模块与工业现场的器件或设备,如:按钮;行程开关;接近开关;传感器及变送器;电磁线圈;控制阀等直接连接。另外为了提高操作性能,它还有多种人-机对话的接口模块; 为了组成工业局部网络,它还有多种通讯联网的接口模块,等等。
3、采用模块化结构为了适应各种工业控制需要,除了单元式的小型PLC以外,绝大多数PLC均采用模块化结构。PLC的各个部件,包括CPU,电源,I/O等均采用模块化设计,由机架及电缆将各模块连接起来,系统的规模和功能可根据用户的需要自行组合。
4、编程简单易学PLC的编程大多采用类似于继电器控制线路的梯形图形式,对使用者来说,不需要具备计算机的专门知识,因此很容易被一般工程技术人员所理解和掌握。
5、安装简单,维修方便PLC不需要专门的机房,可以在各种工业环境下直接运行。使用时只需将现场的各种设备与PLC相应的I/O端相连接,即可投入运行。各种模块上均有运行和故障指示装置,便于用户了解运行情况和查找故障。由于采用模块化结构,因此一旦某模块发生故障,用户可以通过换模块的方法,使系统恢复运行。
PLC的功能
1、逻辑控制
2、定时控制
3、计数控制
4、步进(顺序)控制
5、PID控制
6、数据控制:PLC具有数据处理能力。
7、通信和联网
8、其它:PLC还有许多特殊功能模块,适用于各种特殊控制的要求,如:定位控制模块,CRT模块
0、前言
随着数字信息技术和网络技术的高速发展,人类正步入一个崭新的后 PC 时代。这个时代的主要特点是嵌入式系统无处不在,并不断地向科研生产及人类生活的各个方面渗透。而可编程控制器(PLC)对机床开关量信号进行控制时性高,使用方便,在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数不多的情况下得到广泛应用。在兼用PC 机系统资源的情况下,采用非实时多任务操作系统(如bbbbbbs)时,Win32 API 的设计可以满足制点复杂的数控功能要求,但由于bbbbbbs 的分时性,没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统高实时场合PLC 控制的实时性要求。
VxWorks 作为一运行在目标机上的、可裁减的嵌入式实时操作系统,目前以其良好的性和的实时性被广泛地应用在通信、军事、航空、航天等技术及实时性要求高的领域。
本文基于 VxWorks 操作系统,提出了基于VxWorks 的嵌入式实时PLC 设计的方法与应用,利用VxWorks 的开放性、模块化和可扩展性的系统结构特性以及多线程/多任务的系统环境来达到高实时要求的PLC 控制,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标。
1、传统 PLC 系统的结构
相比较传统的的基于通用工业 PC 的工业PLC,其数控系统嵌入式PLC 硬件包括:工控机及其外围设备,基于ISA 总线的开关量输入输出接口卡,光电隔离模块,继电器输出模块。
工控机采用 bbbbbbs 等非实时操作系统,数控系统的人机界面、数控代码处理、轨迹划、参数管理以及PLC 控制都通过工控机由软件来实现,不需要立的NC 控制器,减少了数控系统对硬件的依赖,有利于提高系统的开放性。I/O 输入输出信息通过PC 机I/O 接口卡实现主机与伺服接口模块和I/O 接口模块之间的信息交换,PC 机I/O 接口卡基于ISA或PCI 的总线。虽然其相较初的单片机的控制加入了工业PC 来拓展其开放性,但是由于没有充分利用PC 机系统资源,而开发和运行都采用的非实时多任务操作系统(如bbbbbbs,Linux)时,其设计没有考虑到实时环境的开发用途,其系统调用的效率不高,数控系统PLC
控制不能满足一些场合的实时性要求。
2、基于嵌入式系统的实时PLC 系统结构
嵌入式实时 PLC 系统,一般由开发系统和实时运行系统两部分组成,是相互立而又密不可分的两个系统,可以分别单运行。开发系统基于PC 机,建立在bbbbbbs 操作系统平台之上,提供了PLC 应用程序的编写及其编译调试环境。开发系统与实时运行系统的通讯一般通过RS232 接口来实现。如果嵌入式操作系统提供网络服务,也可以通过以太网、Modbus 或CAN 总线进行通讯。应用程序编写完并编译调试无误后通过RS232 或TCP/IP 通信协议下载到嵌入式系统。实时运行系统则用于完成系统配置、输入信号处理、循环调用PLC 程序及控制信号输出等操作,并且可以通过现场总线或TCP/IP 通信协议与硬件层(I/O)实现通信。
为了好地支持实时运行系统,嵌入式系统一般要引入操作系统,嵌入式操作系统(如bbbbbbs CE,VxWorks 等)为实时运行系统提供了启动代码、串行通讯接口、内存操作(malloc/free)、ANSI 标准库、1ms 的时钟滴答、调试接口等服务。如果实时运行系统整合了相应的功能,系统也可以不引入操作系统。
了其通信性能,实时能力大大提高,同时此结构具有开放性,高度兼容性,的可扩展性,使得自动控制系统的设计不受硬件的限制,可以有效地提高PLC 的运行速度和性,并且支持多任务的控制策略。另外相应的从嵌入式处理的设计与和BSP 改造方面,也做了相应的优化处理。
3、基于PPC 的嵌入式处理器设计
VxWorks 系统运行在基于PPC 的MPC860 处理器上,并作了一些有关改造以适应实时PLC 的现场总线的通信要求。主要包括4 个主要模块:PowerPC ,系统接口单元(SIU),通信处理模块(CPM)和快速以太网控制器(FEC)。
系统接口单元(SIU)集成几乎所有32-bit 处理器系统的常用功能。MPC860 采用32 位内部总线,可以支持8,16 或32 位的外设和存储器,同时SIU 提供功耗管理、复位控制、PowerPC减法器、PowerPC 时钟基准以及实时时钟等功能。其内存控制器可以控制多达8 个存储体,同时只需通过很少的电路就可实现与DRAM,SRAM,Flash 以及其它外围设备的无缝连接,同时DRAM 接口支持8,16 和32 位的端口,DRAM 控制器提供页模式下的突发传送访问;提供4 个16 位通用定时器或者2 个32 位定时器;同时系统集成单元集成了总线监控、软件、系统节电模式、时钟合成、实时时钟、复位控制以及支持IEEE 1149.1 调试方式JTAG等。
通信处理模块(CPM)具有强大的通信处理能力,拥有立的简单指令集通信处理器(RISC),能够完成低层次任务以及DMA 控制,使得PowerPC 内核能够空闲出来处理高层次的实时任务,从而降低了系统频率,减少功耗。
内嵌的 FEC 模块与IEEE 802.3 兼容,支持10-和100-Mbps 连接。不仅完成了以太网协议中的 控制功能,并且使用了突发传送DMA,从而减少了系统总线的负荷。而FEC内部接的收和发送FIFO 通过将所有的冲突碰撞局部化到FEC 内部而进一步减轻总线的负荷。FEC 采用立的发送缓存描述符和接收缓存描述符来完成具体的收发存取。可支持Modbus,CAN,EIP 等现场总线的应用。
4、BSP 的改造
BSP 即Board Support Package,通常指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合。BSP 是一个VxWorks 内核运行的基础。4.1 BSP 与VxWorks 的层次关系在 VxWorks 中,将BSP 简单描述成介于底层硬件环境和VxWorks 之间的一个软件接口。它的主要功能是系统加电后初始化目标硬件,初始化OS,及提供部分硬件的驱动程序如时钟、中断、串口驱动等。
BSP 为上层软件与底层硬件之间进行交互的桥梁,为上层提供统一接口。BSP中包括的驱动程序与具体的硬件相关,在移植到不同的硬件系统的时候,要修改相关的驱动。
4.2 VxWorks BSP 的特点
在众多的商用嵌入式实时操作系统中,VxWorks 是使用为广泛的一种操作系统,它实时性强,占用空间小,提供丰富的网络协议,有众多的调试手段。
VxWorks 的BSP 可以按功能分为两大部分。
1)目标系统的系统引导部分:主要是目标系统启动时的硬件初始化,在目标系统上电后开始执行,主要是配置处理器的工作状态,初始化系统的内存等,这部分的程序一般只在系统引导时执行,为操作系统运行提供硬件环境。
2)目标系统的设备驱动程序:主要是驱动目标系统配置的各种设备,包括字符型设备、块存储设备、网络设备等,这些设备驱动程序完成对硬件的配置,操作系统通过设备驱动程序来访问硬件,从而完成读取数据和外界的交互等。
在实际应用中,为了获得好的稳定性和执行效率,许多设备驱动程序会直接和应用程序捆绑在一起,而不是由操作系统来管理。
4.3 BSP 的设计与修改
WRS 提供了大量预制的,支持许多商业主版或*估板的BSP,减少了开发时间。
宏观来看,BSP 包括两部分:
初始化部分:CPU 初始化;目标板初始化;操作系统的初始化。
驱动程序部分:一般要包括时钟、中断、串口驱动。
具体来看,BSP 包括源文件、头文件、派生文件。主要需要修改VxWorks 源码中的以下目录中:
/target/config/all
几个重要文件的功用如下:
1)bootConfig.c:引导ROM 映像的主要初始化和控制文件。
2)bootInit.c:引导ROM 映像的二阶段的初始化代码。实现romStart 函数--romInit.s中的romInit()函数执行完后跳转到romStart(),执行解压缩,代码/数据段从rom 拷到ram。
3)usrConfig.c:VxWorks 映像的主要初始化代码。
/target/config/comps/vxworks:实时内核基本模块描述(cdf)文件。
/target/config/comps/src:实时内核模块配置文件。供usrconfig.c 使用。
/target/config/bspname 该目录下的文件就是要编写的BSP 文件。
由于 BSP 系统开发的硬件相关性和处理器系列的多样性,不可能有一种通用的程序或方法来解决每一种处理器的BSP 问题,所以具体问题具体分析,不断实践,才能使程序运行达到比较高的效率。
5、其它
另外,VxWorks 的多任务任务调度策略的实施也是实现嵌入式PLC 的一个关键点,确保任务在确定的时间内能被执行,并对外部的异步事件作出及时响应。多任务环境允许一个实时应用作为一系列立任务来运行,各任务有各自的线程和系统资源。VxWorks系统提供了多处理器间和任务间的信号灯、消息队列、管道、网络透明的套接字。并具有实时系统的另一关键特性是硬件中断处理。为了获得快速的中断响应,VxWorks 系统的中断服务程序(ISR)有自己的上下文。鉴于篇幅关系,在本文不做详细讨论。
6、总结与展望
嵌入式系统已经成为历史发展的必然,其的可扩展性,对多种硬件的支持,同时能够提高PLC 的运行速度和性,并且支持多任务的控制策略,对PLC 的性能有了很大的提高。通过现场运行调试,对现场I/O 设备进行监控,达到了预期的实时性要求,实现了通过现场总线或TCP/IP 通信协议与硬件层(I/O)高速的响应目标。新型的基于VxWorks 的嵌入式实时PLC 具有很高的性能价格比,具有市场竞争优势,有助于我国PLC 企业发展本国市场,发展自主产业的PLC。