首页 > 文库大全 > 实用范文 > 其他范文

基于Struts的网上商城系统研究论文(共五篇)

基于Struts的网上商城系统研究论文(共五篇)



第一篇:基于Struts的网上商城系统研究论文

摘要:随着计算机的广泛应用和网络技术的飞速发展,网上购物成了众多上网者所追捧的时尚活动。网上购物突破了传统商务的障碍,不管是对企业、消费者还是市场都有着巨大的吸引力和影响力。该文研究的网上商城系统是基于MyEclipse6.0开发环境、运用Struts应用框架技术、以SQLSERVER2005作为后台数据库进行开发的。

关键词:Struts;网上商城;订单管理;商品管理;货物配送

网上购物是一种可以实现交互功能的商业信息系统,相比传统购物具有很多优势,对于商家来说,由于网上销售经营成本低、经营规模不受场地限制、没有库存压力等,基于这些优势会有越来越多的商家选择网上销售。对于整个市场经济来说,网上购物可在更广的范围内和更宽的层面上以更高的效率实现资源配置。因此,网上购物网站的建设在当今乃至今后一段时间将会受到企业内部和互联网越来越多的关注。

1网上购物国内外现状

在国外,如美国、日本等计算机水平较发达的国家,越来越多的行业加入到网上商店,因此网上商店发展速度飞快。美国的世界级超一流的零售商,如沃尔玛凯玛特、家庭仓储、科罗格、J.C培尼等都开展网络商店。经过调查表明,美国越来越多的家庭已习惯于在家中进行网上购物。

2系统开发的可行性分析

开发任何一个系统,都会受到资源和技术的限制,因此,在开发系统前,要进行技术可行性和经济可行性分析,以减少开发风险,避免人力、财力、物力的浪费。

2.1技术可行性

随着计算机网络的发展,上网人数越来越多,人们已经习惯和接受通过电子商城来进行购物和接受服务。因此,在这种前提下,企业通过网站向客户提供各种各样商品的销售,能够被客户所接受,同时也可以增加企业客户访问量。

网上商城购物系统的开发技术已经日趋成熟,无论是在硬件还是软件方面。首先,在硬件方面,由于计算机硬件速度和网络运行速度的大幅度提高,为网上电子商城的运行打下坚实的基础。在软件方面,开发中小型电子商城系统,主要采用的技术是Struts框架,它是结合Servlet和Jsp技术的,一种构造MVC应用模式的框架,Struts是一种框架,同时也包含了标签库和独立的程序类,所以,使用此框架技术来开发网站是很好的选择。

2.2经济可行性

网上电子商城系统在为用户提供方便购物的同时,也给商家带来了效益,主要体现在以下方面:

1)销售时间的宽裕性。不需要专人看守,即可实现时时刻刻营业;

2)投资少,收益快;

3)购买人群可在全国各地,不受地区限制;

4)客流量大。只要经营方法得当,即可带来丰厚利润;

5)辅助收益。收益进一步又可分为浏览查询信息带来的收益,如资料下载、数据查询、娱乐欣赏等收费宣传推荐性信息的收益,同样也有广告收益。

3系统设计

在商城系统中,商家为了更好的销售商品提高销售额,会根据销售记录和用户需求,在原商品库存的基础上,进而收集供货商、生产企业的商品相关信息,从中找出最能满足用户需求的产品或商品提供给用户。当用户注册成为会员后,可将选择的商品放入购物车生成订单,用户从中选择适合自己的交易方式。商家在收到订单后核实库存,若商家库存中没有该商品,则将订单发往生产企业或供货方,客户直接从那里提货,从而发挥网上商家虚拟库存的优势。如果有库存并且客户选择网上支付,通过支付系统在各自的代理银行间实现电子资金转账后,商家把提货、送货信息传给货物配送公司。货物配送公司根据得到的信息,到商家的商品仓库中提货,或直接到生产企业或供货方处提货,送至用户手中。

4结束语

本文对网上购物国内外现状及在此现状下开发网上商城系统的可行性进行了分析,并对系统中使用Structs技术开发的相应模块做了详细的介绍。该文实现的电子商城系统,在配置相应的Web应用服务后,如ApacheTomcat等后,即可进行发布并使用。

参考文献:

[1] 李刚.Struts2.1权威指南[M].北京:电子工业出版社,2009.[2] 刘芳,齐泉.基于SSH整合框架的E—HR系统应用研究[J].武汉理工大学,2009(3):98-103.[3] 孙卫琴.Tomcat与JAVA WEB开发技术详解[M].2版: 北京:电子工业出版社,2007:5-15.[4] 飞思科技.J2EE企业级应用开发[M].北京:电子工业出版社,2003.

第二篇:ABS系统研究论文

摘要:

利用机械动力学仿真软件ADAMS 建立汽车ABS的机械动力学模型,在MATLAB/SIMULINK 环境下建立Jetta GTX 轿车的ABS 控制模型,构成了ABS 机电液一体化联合仿真的动力学控制模型。利用MATLAB确定了ABS 的控制参数的门限值,进行了仿真结果数据处理和分析,与大量的ABS 实车道路试验数据对比,改进模型准确度,获得了正确和可行的ABS 仿真控制模型,为加速开发ABS 的控制算法奠定了基础。

关键词:ABS 动力学控制模型 联合仿真 ADAMS MATLAB/SIMULINK

第一章 概述

“ABS”(Anti-lockedBrakingSystem)中文译为“防抱死刹车系统”.它是一种具有防滑、防锁死等优点的汽车安全控制系统。ABS是常规刹车装置基础上的改进型技术,可分机械式和电子式两种。

现代汽车上大量安装防抱死制动系统,ABS既有普通制动系统的制动功能,又能防止车轮锁死,使汽车在制动状态下仍能转向,保证汽车的制动方向稳定性,防止产生侧滑和跑偏,是目前汽车上最先进、制动效果最佳的制动装置。

普通制动系统在湿滑路面上制动,或在紧急制动的时候,车轮容易因制动力超过轮胎与地面的摩擦力而安全抱死。

近年来由于汽车消费者对安全的日益重视,大部分的车都已将ABS列为标准配备。如果没有ABS,紧急制动通常会造成轮胎抱死,这时,滚动摩擦变成滑动摩擦,制动力大大下降。而且如果前轮抱死,车辆就失去了转向能力;如果后轮先抱死,车辆容易产生侧滑,使车行方向变得无法控制。所以,ABS系统通过电子机械的控制,以非常快的速度精密的控制制动液压力的收放,来达到防止车轮抱死,确保轮胎的最大制动力以及制动过程中的转向能力,使车辆在紧急制动时也具有躲避障碍的能力。

随着世界汽车工业的迅猛发展,安全性日益成为人们选购汽车的重要依据。目前广泛采用的防抱制动系统(ABS)使人们对安全性要求得以充分的满足。

汽车制动防抱系统,简称为ABS,是提高汽车被动安全性的一个重要装置。有人说制动防抱系统是汽车安全措施中继安全带之后的又一重大进展。汽车制动系统是汽车上关系到乘客安全性最重要的二个系统之一。随着世界汽车工业的迅猛发展,汽车的安全性越来越为人们重视。汽车制动防抱系统,是提高汽车制动安全性的又一重大进步。

ABS防抱制动系统由汽车微电脑控制,当车辆制动时,它能使车轮保持转动,从而帮助驾驶员控制车辆达到安全的停车。这种防抱制动系统是用速度传感器检测车轮速度,然后把车轮速度信号传送到微电脑里,微电脑根据输入车轮速度,通过重复地减少或增加在轮子上的制动压力来控制车轮的打滑率,保持车轮转动。在制动过程中保持车轮转动,不但可保证控制行驶方向的能力,而且,在大部分路面情况下,与抱死〔锁死〕车轮相比,能提供更高的制动力量。

第二章 发展历程

ABS系统的发展可以追溯到本世纪初期,早在1928年制动防抱理论就被提出,在30年代机械式制动防抱系统就开始在火车和飞机上获得应用,博世(BOSCH)公司在1936年第一个获得了用电磁式车轮转速传感器获取车轮转速的制动防抱系统的专利权。

进入50年代,汽车制动防抱系统开始受到较为广泛的关注。福特(FORD)公司曾于1954年将飞机的制动防抱系统移置在林肯(LINCOIN)轿车上,凯尔塞·海伊斯(KELSEHAYES)公司在1957年对称为“AUTOMATIC”的制动防抱系统进行了试验研究,研究结果表明制动防抱系统确实可以在制动过程中防止汽车失去方向控制,并且能够缩短制动距离;克莱斯(CHRYSLER)公司在这一时期也对称为“SKIDCONTROL”的制动防抱系统进行了试验研究。由于这一时期的各种制动防抱系统采用的都是机械式车轮转速传感器的机械式制动压力调节装置,因此,获取的车轮转速信号不够精确,制动压力调节的适时性和精确性也难于保证,控制效果并不理想。

随着电子技术的发展,电子控制制动防抱系统的发展成为可能。在60年代后期和70年代初期,一些电子控制的制动防抱系统开始进入产品化阶段。凯尔塞·海伊斯公司在1968年研制生产了称为“SURETRACK”两轮制动防抱系统,该系统由电子控制装置根据电磁式转速传感器输入的后轮转速信号,对制动过程中后轮的运动状态进行判定,通过控制由真空驱动的制动压力调节装置对后制动轮缸的制动压力进行调节,并在1969年被福特公司装备在雷鸟(THUNDERBIRD)和大陆·马克III(CONTINENTALMKIII)轿车上。

克莱斯勒公司与本迪克斯(BENDIX)公司合作研制的称“SURE-TRACK”的能防止4个车轮被制动抱死的系统,在1971年开始装备帝国(IMPERIAL)轿车,其结构原理与凯尔塞·海伊斯的“SURE-TRACK”基本相同,两者不同之处,只是在于两个还是四个车轮有防抱制动。博世公司和泰威(TEVES)公司在这一时期也都研制了各自第一代电子控制制动防抱系统,这两种制动防抱系统都是由电子控制装置对设置在制动管路中的电磁阀进行控制,直接对各制动轮以电子控制压力进行调节。

别克(BUICK)公司在1971年研制了由电子控制装置自动中断发动机点火,以减小发动机输出转矩,防止驱动车轮发生滑转的驱动防抱转系统.瓦布科(WABCO)公司与奔驰(BENZ)公司合作,在1975年首次将制动防抱系统装备在气压制动的载贷汽车上。

第一台防抱死制动系统ABS(Ant-ilockBrakeSystem),在1950年问世,首先被应用在航空领域的飞机上,1968年开始研究在汽车上应用。70年代,由于欧美七国生产的新型轿车的前轮或前后轮开始采用盘式制动器,促使了ABS在汽车上的应用。1980年后,电脑控制的ABS逐渐在欧洲、美国及亚洲日本的汽车上迅速扩大。到目前为止,一些中高级豪华轿车,如西德的奔驰、宝马、雅迪、保时捷、欧宝等系列,英国的劳斯来斯、捷达、路华、宾利等系列,意大利的法拉利、的爱快、领先、快意等系列,法国的波尔舍系列,美国福特的TX3、30X、红彗星及克莱斯勒的帝王、纽约豪客、男爵、道奇、顺风等系列,日本的思域,凌志、豪华本田、奔跃、俊朗、淑女300Z等系列,均采用了先进的ABS。到1993年,美国在轿车上安装ABS已达46%,现今在世界各国生产的轿车中有近75%的轿车应用ABS。

现今全世界已有本迪克斯、波许、摩根.戴维斯、海斯.凯尔西、苏麦汤姆、本田、日本无限等许多公司生产ABS,它们中又有整体和非整体之分。预计随着轿车的迅速发展,将会有更多的厂家生产。

这一时期的各种ABS系统都是采用模拟式电子控制装置,由于模拟式电子控制装置存在着反应速慢、控制精度低、易受干扰等缺陷,致使各种ABS系统均末达到预期的控制效果,所以,这些防抱控制系统很快就不再被采用了。

进入70年代后期,数字式电子技术和大规模集成电路的迅速发展,为ABS系统向实用化发展奠定了技术基础。博世公司在1978年首先推出了采用数字式电子控制装置的制动防泡系统--博世ABS2,并且装置在奔驰轿车上,由此揭开了现代ABS系统发展的序幕。尽管博世ABS2的电子控制装置仍然是由分离元件组成的控制装置,但由于数字式电子控制装置与模拟式电子控制装置相比,其反应速度、控制精度和可靠性都显著提高,因此,博世ABS2的控制效果己相当理想。从此之后,欧、美、日的许多制动器专业公司和汽车公司相继研制了形式多详的ABS系统。

“自动防抱死刹车”的原理并不难懂,在遭遇紧急情况时,未安装ABS系统的车辆来不及分段缓刹只能立刻踩死。由于车辆冲刺惯性,瞬间可能发生侧滑、行驶轨迹偏移与车身方向不受控制等危险状况!而装有ABS系统的车辆在车轮即将达到抱死临界点时,刹车在一秒内可作用60至120次,相当于不停地刹车、放松,即相似于机械自动化的“点刹”动作。此举可避免紧急刹车时方向失控与车轮侧滑,同时加大轮胎摩擦力,使刹车效率达到90%以上。

从微观上分析,在轮胎从滚动变为滑动的临界点时轮胎与地面的摩擦力达到最大。在汽车起步时可充分发挥引擎动力输出(缩短加速时间),如果在刹车时则减速效果最大(刹车距离最短)。ABS系统内控制器利用液压装置控制刹车压力在轮胎发生滑动的临界点反复摆动,使在刹车盘不断重复接触、离开的过程而保持轮胎抓地力最接近最大理论值,达到最佳刹车效果。

ABS的运作原理看来简单,但从无到有的过程却经历过不少挫折(中间缺乏关键技术)!1908年英国工程师J.E.Francis提出了“铁路车辆车轮抱死滑动控制器”理论,但却无法将它实用化。接下来的30年中,包括Karl Wessel的“刹车力控制器”、Werner Möhl的“液压刹车安全装置”与Richard Trappe的“车轮抱死防止器”等尝试都宣告失败。在1941年出版的《汽车科技手册》中写到:“到现在为止,任何通过机械装置防止车轮抱死危险的尝试皆尚未成功,当这项装置成功的那一天,即是交通安全史上的一个重要里程碑”,可惜该书的作者恐怕没想到这一天竟还要再等30年之久。

当时开发刹车防抱死装置的技术瓶颈是什么?首先该装置需要一套系统实时监测轮胎速度变化量并立即通过液压系统调整刹车压力大小,在那个没有集成电路与计算机的年代,没有任何机械装置能够达成如此敏捷的反应!等到ABS系统的诞生露出一线曙光时,已经是半导体技术有了初步规模的1960年代早期。

精于汽车电子系统的德国公司Bosch(博世)研发ABS系统的起源要追溯到1936年,当年Bosch申请“机动车辆防止刹车抱死装置”的专利。1964年(也是集成电路诞生的一年)Bosch公司再度开始ABS的研发计划,最后有了“通过电子装置控制来防止车轮抱死是可行的”结论,这是ABS(Antilock Braking System)名词在历史上第一次出现!世界上第一具ABS原型机于1966年出现,向世人证明“缩短刹车距离”并非不可能完成的任务。因为投入的资金过于庞大,ABS初期的应用仅限于铁路车辆或航空器。Teldix GmbH公司从1970年和奔驰车厂合作开发出第一具用于道路车辆的原型机——ABS 1,该系统已具备量产基础,但可靠性不足,而且控制单元内的组件超过1000个,不但成本过高也很容易发生故障。

1973年Bosch公司购得50%的Teldix GmbH公司股权及ABS领域的研发成果,1975年AEG、Teldix与Bosch达成协议,将ABS系统的开发计划完全委托Bosch公司整合执行。“ABS 2”在3年的努力后诞生!有别于ABS 1采用模拟式电子组件,ABS 2系统完全以数字式组件进行设计,不但控制单元内组件数目从1000个锐减到140个,而且有造价降低、可靠性大幅提升与运算速度明显加快的三大优势。两家德国车厂奔驰与宝马于1978年底决定将ABS 2这项高科技系统装置在S级及7系列车款上。

在诞生的前3年中,ABS系统都苦于成本过于高昂而无法开拓市场。从1978到1980年底,Bosch公司总共才售出24000套ABS系统。所幸第二年即成长到76000套。受到市场上的正面响应,Bosch开始TCS循迹控制系统的研发计划。1983年推出的ABS 2S系统重量由5.5公斤减轻到4.3公斤,控制组件也减少到70个。到了1985年代中期,全球新出厂车辆安装ABS系统的比例首次超过1%,通用车厂也决定把ABS列为旗下主力雪佛兰车系的标准配备。

1986年是另一个值得纪念的年份,除了Bosch公司庆祝售出第100万套ABS系统外,更重要的是Bosch推出史上第一具供民用车使用的TCS/ ASR循迹控制系统。TCS/ ASR的作用是防止汽车起步与加速过程中发生驱动轮打滑,特别是防止车辆过弯时的驱动轮空转,并将打滑控制在10%到20%范围内。由于ASR是通过调整驱动轮的扭矩来控制,因而又叫驱动力控制系统,在日本又称之为TRC或TRAC。

ASR和ABS的工作原理方面有许多共同之处,两者合并使用可形成更佳效果,构成具有防车轮抱死和驱动轮防打滑控制(ABS /ASR)系统。这套系统主要由轮速传感器、ABS/ ASR ECU控制器、ABS驱动器、ASR驱动器、副节气门控制器和主、副节气门位置传感器等组成。在汽车起步、加速及行进过程中,引擎ECU根据轮速传感器输入的信号,当判定驱动轮的打滑现象超过上限值时,就进入防空转程序。首先由引擎ECU降低副节气门以减少进油量,使引擎动力输出扭矩减小。当ECU判定需要对驱动轮进行介入时,会将信号传送到ASR驱动器对驱动轮(一般是前轮)进行控制,以防止驱动轮打滑或使驱动轮的打滑保持在安全范围内。第一款搭载ASR系统的新车型在1987年出现,奔驰S 级再度成为历史的创造者。

随着ABS系统的单价逐渐降低,搭载ABS系统的新车数目于1988年突破了爆炸性成长的临界点,开始飞快成长,当年Bosch的ABS系统销售量首次突破300万套。技术上的突破让Bosch在1989年推出的ABS 2E系统首次将原先分离于引擎室(液压驱动组件)与中控台(电子控制组件)内,必须依赖复杂线路连接的设计更改为“两组件整合为一”设计!ABS 2E系统也是历史上第一个舍弃集成电路,改以一个8 k字节运算速度的微处理器(CPU)负责所有控制工作的ABS系统,再度写下了新的里程碑。该年保时捷车厂正式宣布全车系都已安装了ABS,3年后(1992年)奔驰车厂也决定紧跟保时捷的脚步。

1990年代前半期ABS系统逐渐开始普及于量产车款。Bosch在1993年推出ABS 2E的改良版:ABS 5.0系统,除了体积更小、重量更轻外,ABS 5.0装置了运算速度加倍(16 k字节)的处理器,该公司也在同年年中庆祝售出第1000万套ABS系统。

ABS与ASR/ TCS系统已受到全世界车主的认同,但Bosch的工程团队却并不满足,反而向下一个更具挑战性的目标:ESP(Electronic Stabilty Program,行车动态稳定系统)前进!有别于ABS与TCS仅能增加刹车与加速时的稳定性,ESP在行车过程中任何时刻都能维持车辆在最佳的动态平衡与行车路线上。ESP系统包括转向传感器(监测方向盘转动角度以确定汽车行驶方向是否正确)、车轮传感器(监测每个车轮的速度以确定车轮是否打滑)、摇摆速度传感器(记录汽车绕垂直轴线的运动以确定汽车是否失去控制)与横向加速度传感器(测量过弯时的离心加速度以确定汽车是否在过弯时失去抓地力),在此同时、控制单元通过这些传感器的数据对车辆运行状态进行判断,进而指示一个或多个车轮刹车压力的建立或释放,同时对引擎扭矩作最精准的调节,某些情况下甚至以每秒150次的频率进行反应。整合ABS、EBD、EDL、ASR等系统的ESP让车主只要专注于行车,让计算机轻松应付各种突发状况。

延续过去ABS与ASR诞生时的惯例,奔驰S 级还是首先使用ESP系统的车型(1995年)。4年后奔驰公司就正式宣布全车系都将ESP列为标准配备。在此同时,Bosch于1998及2001年推出的ABS 5.7、ABS 8.0系统仍精益求精,整套系统总重由2.5公斤降至1.6公斤,处理器的运算速度从48 k字节升级到128 k字节,奔驰车厂主要竞争对手宝马与奥迪也于2001年也宣布全车系都将ESP列为标准配备。Bosch车厂于2003年庆祝售出超过一亿套ABS系统及1000万套ESP系统,根据ACEA(欧洲车辆制造协会)的调查,今天每一辆欧洲大陆境内所生产的新车都搭载了ABS系统,全世界也有超过60%的新车拥有此项装置。

“ABS系统大幅度提升刹车稳定性同时缩短刹车所需距离”Robert Bosch GmbH(Bosch公司的全名)董事会成员Wolfgang Drees说。不像安全气囊与安全带(可以透过死亡数目除以车祸数目的比例来分析),属于“防患于未然”的ABS系统较难以真实数据佐证它将多少人从鬼门关前抢回?但据德国保险业协会、汽车安全学会分析了导致严重伤亡交通事故的原因后的研究显示,60%的死亡交通事故是由于侧面撞车引起的,30%到40%是由于超速行驶、突然转向或操作不当引发的。我们有理由相信ABS及其衍生的ASR与ESP系统大幅度降低紧急状况发生车辆失去控制的机率。NHTSA(北美高速公路安全局)曾估计ABS系统拯救了14563名北美驾驶人的性命!

从ABS到ESP,汽车工程师在提升行车稳定性的努力似乎到了极限(民用型ESP系统诞生至今已近10年),不过就算计算机再先进仍须要驾驶人的适当操作才能发挥最大功效。

多数车主都没有遭遇过紧急状况(也希望永远不要),却不能不知道面临关键时刻要如何应对?在紧急情况下踩下刹车时,ABS系统制动分泵会迅速作动,刹车踏板立刻产生异常震动与显著噪音(ABS系统运作中的正常现象),这时你应毫不犹豫地用力将刹车踩死(除非车上拥有EBD刹车力辅助装置,否则大多数驾驶者的刹车力量都不足),另外ABS能防止紧急刹车时的车轮抱死现象、所以前轮仍可控制车身方向。驾驶者应边刹车边打方向进行紧急避险,以向左侧避让路中障碍物为例,应大力踏下刹车踏板、迅速向左转动方向盘90度,向右回轮180度,最后再向左回90度。最后要提的是ABS系统依赖精密的车轮速度传感器判断是否发生抱死情况?平时要经常保持在各个车轮上的传感器的清洁,防止有泥污、油污特别是磁铁性物质粘附在其表面,这些都可能导致传感器失效或输入错误信号而影响ABS系统正常运作。行车前应经常注意仪表板上的ABS故障指示灯,如发现闪烁或长亮,ABS系统可能已经故障(尤其是早期系统),应该尽快到维修厂排除故障。

要提醒的是,ABS/ ASR/ ESP系统虽然是高科技的结晶,但并不是万能的,也别因为有了这些行车主动安全系统就开快车。

第三章 工作原理

控制装置和ABS警示灯等组成,在不同的ABS系统中,制动压力调节装置的结构形式和工作原理往往不同,电子控制装置的内部结构和控制逻辑也可能ABS通常都由车轮转速传感器、制动压力调节装置、电子不尽相同。

在常见的ABS系统中,每个车轮上各安装一个转速传感器,将有关各车轮转速的信号输入电子控制装置。电子控制装置根据各车轮转速传感器输入的信号对各个车轮的运动状态进行监测和判定,并形成相应的控制指令。制动压力调节装置主要由调压电磁阀组成,电动泵组成和储液器等组成一个独立的整体,通过制动管路与制动主缸和各制动轮缸相连。制动压力调节装置受电子控制装置的控制,对各制动轮缸的制动压力进行调节。

ABS的工作过程可以分为常规制动,制动压力保持制动压力减小和制动压力增大等阶段。在常规制动阶段,ABS并不介入制动压力控制,调压电磁阀总成中的各进液电磁阀均不通电而处于开启状态,各出液电磁阀均不通电而处于关闭状态,电动泵也不通电运转,制动主缸至各制动轮缸的制动管路均处于沟通状态,而各制动轮缸至储液器的制动管路均处于封闭状态,各制动轮缸的制动压力将随制动主缸的输出压力而变化,此时的制动过程与常规制动系统的制动过程完全相同

在制动过程中,(如下图所示)电子控制装置根据车轮转速传感器输入的车轮转速信号判定有车轮趋于抱死时,ABS就进入防抱制动压力调节过程。例如,电子控制装置判定右前轮趋于抱死时,电子控制装置就使控制右前轮刮动压力的进液电磁阀通电,使右前进液电磁阀转入关闭状态,制动主缸输出的制动液不再进入右前制动轮缸,此时,右前出液电磁阀仍末通电而处于关闭状态,右前制动轮缸中的制动液也不会流出,右前制动轮缸的刮动压力就保持一定,而其它末趋于抱死车轮的制动压力仍会随制动主缸输出压力的增大而增大;如果在右前制动轮缸的制动压力保持一定时,电子控制装置判定右前轮仍然趋于抱死,电子控制装置又使右前出液电磁阀也通电而转入开启状态,右前制动轮缸中的部分制动波就会经过处于开启状态的出液电磁阀流回储液器,使右前制动轮缸的制动压力迅速减小右前轮的抱死趋势将开始消除,随着右前制动轮缸制动压力的减小,右前轮会在汽车惯性力的作用下逐渐加速;当电子控制装置根据车轮转速传感器输入的信号判定右前轮的抱死趋势已经完全消除时,电子控制装置就使右前进液电磁阀和出液电磁阀都断电,使进液电磁阀转入开启状态,使出液电磁阀转入关闭状态,同时也使电动泵通电运转,向制动轮缸泵输送制动液,由制动主缸输出的制动液经电磁阀进入右前制动轮缸,使右前制动轮缸的制动压力迅速增大,右前轮又开抬减速转动。(参见:汽车电子控制基础,曹家喆 主编,机械工业出版社,2007年10月)

ABS通过使趋于抱死车轮的制动压力循环往复而将趋于防抱车轮的滑动率控制,在峰值附着系数滑动率的附近范围内,直至汽车速度减小至很低或者制动主缸的常出压力不再使车轮趋于抱死时为止。制动压力调节循环的频率可达3~20HZ。在该ABS中对应于每个制动轮缸各有对进液和出液电磁阀,可由电子控制装置分别进行控制,因此,各制动轮缸的制动压力能够被独立地调节,从而使四个车轮都不发生制动抱死现象。

尽管各种ABS的结构形式和工作过程并不完全相同,但都是通过对趋于抱死车轮的制动压力进行自适应循环调节,来防止被控制车轮发生制动抱死。

第四章 汽车ABS 机械动力学模型

1.汽车ABS 仿真模型建立的要求:

(1)在仿真建模过程中要考虑到模型的准确性和可信度,在不失真的前提下尽量简化仿真模型,减少自由度数,提高求解效率。

(2)能够正确的根据路面条件、道路状况、制动强度和法向载荷实时计算出车速和轮速,使模型尽可能反映实车的运动状况。

(3)具有仿真建模改进的能力,能方便地修改子模型的参数,不需要花费很大精力或者重新建模,就可以在设计阶段,插入或改变仿真模型。

ADAMS 软件计算功能强大,求解器效率高,具有多种专业模块和工具包,以及与其它CAD 软件的接口,可方便快捷地建立机械动力学模型,支持Fortran 和C 语言,便于用户进行二次开发[1]。基于ADAMS软件的上述优点,利用ADAMS 软件建立汽车制动防抱死系统(ABS)的机械动力学模型。2.模型建立:

汽车是一个复杂的动力学系统,对汽车的ABS 制动性能进行模拟仿真,输入的参数包括制动初速,路面条件如干铺设路面、湿铺设路面、雪路面、冰路面、对开路面、对接路面等,道路状况如直道、弯道、上坡、下坡等和整车参数。输出的参数包括汽车制动过程中整车和车轮的运动状态,如制动时间、制动距离、制动减速度、车轮滑移率、车轮角减速度、制动器制动力、地面制动力、地面侧向力、横摆力矩等。

根据以上研究目的,对整车进行适当简化。汽车悬架系统结构型式和转向系结构型式对汽车制动性能的影响不大,仿真模型中的惯性参数由Pro/ENGINEER 软件三维实体建模计算得到,对悬架系和转向系简化如下:

悬架系统只考虑悬架的垂直变形;转向系忽略车轮定位角和转向传动装置。把汽车简化为具有十个刚体的模型,共14 个自由度。十个刚体分别为车身、一个后非独立悬挂组质量、两个前独立悬挂组质量(两个前轮横摆臂和两个前轮转向节)、四个车轮。两前轮共有3 个自由度,车身具有3 个转动和3 个平动自由度,两后轮各有1 个自由度,前悬架各有一个自由度,后悬架1 个自由度,如图1 所示。

图1 整车仿真模型

1—车身 2—后轮 3—后悬架 4—前轮

5—前悬架 6—横摆臂 7—转向节

仿真模型包括以下几个子模型:

转向系模型:以转向角约束直接作用于左转向节。

前悬架模型:前悬架是独立悬架,一侧的简化模型如图2 所示。转向节简化如图2 中3 所示,用转动副与前轮连接。横摆臂与减振器以球铰分别与转向节和车身连接。

图2 悬架的简化模型

1—车身 2—横摆臂 3—转向节 4—轮胎 5—前悬架 6—弹簧

A—转动副 B—球铰 C—转动副 D—滑柱铰 E—球铰

后悬架是非独立悬架,只考虑垂直方向的自由度,悬架与车身之间用平移副表示它们之间的相对运动,悬架与车身用弹簧阻尼连接,与后轮用转动副连接。

轮胎模型:车辆的各种运动状态主要是通过轮胎与路面的作用力引起的。采用力约束方法,不考虑轮胎拖距、回正力矩以及滚动阻力的影响。采用ADAMS 提供的非线性Pacejka 轮胎模型[2]。

制动器模型:采用美国高速公路车辆仿真模型中的制动器模型。

液压模型:采用ADAMS 中液压模块(ADAMS/Hydraulics)建立制动系统的液压仿真模块。

路面模型:设计出路面模型可进行对开路面和对接路面制动过程的仿真计算。利用ADAMS 中提供的平面(Plane)作为路面模型的基础,定义了平面(Plane)的长、宽等参数,使得汽车制动过程有足够的空间,利用平面-圆(Plane-Circle)接触力(Contact)表示车轮与地面之间的法向作用力。ADAMS轮胎模型中没有附着系数变化的路面模块,为此在ADAMS 提供的路面模块基础上,对对接路面采用在路面模型上加入标记点(Marker)的方法,分别求出前轮和后轮质心到标记点X 方向上的距离。当距离为正时说明轮胎已经跨过了标记点,此时根据所规定的路面情况对轮胎附着系数进行改变,使得模型可以计算路面附着系数变化。对开路面也采取了相同的加入标记点的方法,进行计算左右侧轮胎相对于标记点Y 方向上的距离。(参见:汽车车身电子与控制技术,陈无畏 主编,机械工业出版社,2008年02月)

第五章 制动防抱死系统ABS 的控制模型

在ADAMS 中定义了与MATLAB/SIMULINK 的接口,把ADAMS 中建立的非线性机械模型转化为SIMULINK 的S-FUNCTION 函数,再把S-FUNCTION 函数加入到控制模型里,这样就可以方便的利用SIMULINK 提供的各种强大的工具进行控制模型开发,在MATLAB 软件下进行联合仿真计算[3]。图3 所示为MATLAB/SIMULINK中表示的ADAMS 机械模型,在ADAMS 中定义四个车轮的制动力矩为输入变量,定义四个车轮的速度和滑移率为输出变量,保存在.m 文件中由MATLAB 调用。

图3 ADAMS子模块

图4 所示

为在MATLAB/SIMULINK 下开发的ABS 控制模块,图中深色的部分为ADAMS 生成的子模块,输入参数为制动力矩,输出参数为车轮速度和车轮滑移率,以车轮的加速度/减速度和车轮滑移率为控制参数。(参见:汽车车身电子与控制技术,陈无畏 主编,机械工业出版社,2008年02月)

图4 ABS 仿真控制模型

第六章 ABS 联合仿真控制规律结果与分析

1.确定车轮加速度和参考滑移率的门限值

根据ADAMS 仿真制动过程计算出的车轮加速度曲线,分析出加速度门限值为w&

1、减速度门限值为w&2。车轮滑移率下门限值λ1,上门限值λ2。

车轮的加、减速度和滑移率的门限值的确定是一个反复交替验证过程。方法为:计算车轮的加、减速度和参考滑移率,以参考滑移率为控制参数初步确定车轮的加、减速度的门限值,再以车轮加、减速度门限值控制车轮的滑移率,确定滑移率的门限值。图4 中深色的部分为ADAMS 生成的机械模型,在MATLAB作为一个S-FUNCTION 函数参与运算。通过上述交替验证的方法,车轮滑移率和加速度的仿真变化曲线如图5 所示,实车测试数据如图6 所示。比较图5 和图6,可以看出仿真数据与实车测试数据相吻合,验证了车轮加速度门限值和滑移率门限值的确定是合理的。

图5 仿真试验数据

图6 试车实验数据 图6 实车试验数据

选取适当滑移率门限值λ1,λ2是控制的关键问题之一。如果车轮的滑移率大于路面峰值附着系数相应的滑移率λOPT,车轮的侧向附着力很低。在有侧向风、道路倾斜或转向制动等对车辆产生横向力情况下,或左右车轮的地面制动力不相等时,路面不能提供足够的侧向力使车辆保持行驶方向,车辆容易发生危险的甩尾情况,因此滑移率门限值的上限应小于λOPT。

理想的ABS 系统应能把制动压力调节到一个合适的范围内,使得车轮的滑移率保持在λOPT附近。如果(λ2 - λ1)取值较小,则控制过程的保压时间较短,需进行频繁的压力调节,压力调节器需进行频繁的动作,而压力调节器和制动器需要一定的响应时间,过于频繁的压力调节会使压力调节器和制动器来不及响应,达不到控制效果。如果(λ2 - λ1)取值较大,车轮的运动状态不能及时的控制,车轮的速度波动范围很大,还会造成制动效能降低。2.ABS 的控制周期

控制周期取决于车速信号采集频率,制动压力调节器的响应时间和控制逻辑运算时间之和。在仿真模型里进行了控制周期对ABS 控制影响的分析。

模型中采用了改变控制模型与车辆模型之间的通讯时间来实现控制周期的模拟。以通讯时间为0.1s 和0.15s 为例,得到结果如图7和图8所示。从两图中可以看到控制周期增大,滑移率变化范围增大,说明车轮的线速度变化范围增大,车轮的抱死趋势强烈。在开发ABS 的时候,应尽力缩短控制周期。的联合仿真 图9 为左前轮3~5s 的ABS 仿真试验数据,按照逻辑门限值的方式进行控制。从图9 中可以看出,在加速度为-20m/s2 附近,进行了快速减压,车轮的加速度增大,但车轮速度仍在减小。然后在加速度为-22m/s2 时出现了保压过程,此时滑移率为0.17 左右。紧接着是一个压力逐渐增加的过程,在这个过程中车轮的加速度逐步减小,但车轮速度继续增加,此时车轮滑移率控制在0.1 附近,接着又是一个短暂的保压过程,车轮的加速度增大,此后又开始了新的一轮的制动压力的调节。车轮的加速度在(-20~20)m/s2之间,管路压力在(1.5~4.5)MPa 之间。图10 为道路试验数据,比较两图,仿真数据与试验数据基本吻合。(参见:张跃今,宋健.多体动力学仿真软件-ADAMS 理论及应用研讨.机械科学与技术,1997.9)

图9 左前轮3~5s 的仿真试验数据

图10 左前轮3~5s 的道路试验数据

第七章 结论

(1)用两个软件

ADAMS 和MATLAB/SIMULINK分别建立机械模型和控制模型,发挥各自的优点进行联合仿真计算,精度较高。

(2)采用交替验证的方法,确定车轮滑移率和加速度的门限值效果较好。(3)仿真数据与道路试验数据基本吻合,证明仿真方法和仿真模型可行。(4)此模型较准确地反映ABS 制动过程各参数的变化情况,可以此为基础进行实车的ABS 控 制算法的开发,缩短开发时间,减少开发经费。

(5)此模型还易于扩展,进一步开发和研究ABS 以及与ASR(Acceleration Slip Regulation)、ACC(Adaptive Cruise Control)的集成化系统。

致 谢

在这短短几个月的时间里毕业论文能够得以顺利完成,并非一人之功。感谢所有指导过我的老师,帮助过我的同学和一直关心、支持着我的家人。感谢你们对我的教诲、帮助和鼓励。在这里,我要对你们表示深深的谢意!

感谢我的指导老师——田文超老师,没有您认真、细致的指导就没有这篇论文的顺利完成。和您的交流并不是很多,但只要是您提醒过该注意的地方,我都会记下来。事实证明,这些指导对我帮助很大。

感谢我的父母,没有他们,就没有我的今天。你们的鼓励与支持,是我前进的强大动力和坚实后盾。

最后,感谢身边所有的老师、朋友和同学,感谢你们三年来的关照与宽容,与你们一起走过的缤纷时代,将会是我一生最珍贵的回忆。

参考文献:

1.汽车电子技术,迟瑞娟,李世雄 主编,国防工业出版社,2008年08月 2.汽车电子控制基础,曹家喆 主编,机械工业出版社,2007年10月 3.汽车车身电子与控制技术,陈无畏 主编,机械工业出版社,2008年02月

4.张跃今,宋健.多体动力学仿真软件-ADAMS 理论及应用研讨.机械科学与技 术,1997.9 5.ADAMS Reference Manual Version 12, Mechanical Dynamics, Inc.6.Matlab Referen ce Manual Version 6.1.Mathworks Inc.

第三篇:Linux操作系统研究论文

随着IT产业巨头纷纷宣布对Linux的支持,Linux正在迅速扩展其应用市场,特别是服务器市场。在标准上,Linux与pOSIX1003.1兼容,但它具有比以住的UNIX系统更合理的内核结构。由于它的开放性,各种被人们广泛应用的网络协议都在该系统中得到了实现。目前人们所使用的Linux系统一般是指由Linux核心、外壳(SHELL)及外围应用软件构成的发行版本。Linux发行版本是不同的公司或组织将Linux核心、外壳、安装工具、应用软件有效捆绑起来的结果,所以种类繁多,各有各的优缺点。但就其总体而言,这些发行版本具有对尽可能多的网卡的支持。本文仅就RedHat5.1这个特定发行版本下的网卡的选择、安装、配置进行讨论,希望对于其他发行版本的同样问题有点借鉴作用。

就象UNIX,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、AT&T、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡只要安装配置正确,都可以得到你所期望的效果。

一、Linux中网卡的工作原理

为了将这个问题说明的更清楚一些,不妨先简要地剖析一下Linux是如何让网卡工作的。一般来说,Linux核心已经实现了OSI参考模型的网络层及更上层部分。网络层的实现依赖于数据链路层的有效工作。网卡的驱动程序就是数据链路层与物理层的接口。通过调用驱动程序的发送例程向物理端口发送数据,调用驱动程序的接收例程从物理端口接收数据。

1.网卡驱动程序

简单地说,要将你手中的网卡利用起来,你唯一要做的是得到这块网卡的驱动程序。驱动程序提供了面向操作系统核心的接口和面向物理层的接口。

驱动程序的操作系统接口是一些用于发现网卡、检测网卡参数以及发送接收数据的例程。当驱动程序开始运作时,操作系统首先调用检测例程以发现系统中安装的网卡。如果该网卡支持即插即用,那么检测例程应该可以自动发现网卡的各种参数;否则你就要在驱动程序运作前,设置好网卡的参数供驱动程序使用。当核心要发送数据时,它调用驱动程序的发送例程。发送例程将数据写入正确的空间,然后激活物理发送过程。

驱动程序面向物理层的接口是中断处理例程。当网卡接收到数据、发送过程结束,或者发现错误时,网卡产生一个中断,然后核心调用该中断的处理例程。中断处理例程判断中断发生的原因,并进行响应的处理。比如当网卡接收到数据而发生中断时,中断处理例程调用接收例程进行接收。

2.驱动程序工作参数

驱动程序的工作参数因网卡性质的不同而不同,大致包括I/O端口号、中断号、DMA通道、共享存储区等。输入输出端口号又被称为输入输出基地址,当网卡工作于端口输入输出模式时被使用。端口输入输出模式需要CpU的全程干预,但所需硬件及存储空间要求较低。CpU通过端口号指定的空间与网卡交换数据。中断号是网卡的中断序号,只要不与其它设备冲突即可。当网卡使用DMA方式时,它要使用DMA通道批量传输数据而不需要CpU的干预。

对于一块具体的网卡,如果网卡支持完全自动检测,那么一个参数也不用指定,驱动程序的检测例程会自动设定所需参数。一般情况,你需要人工设定这些参数的一部分。如果你的网卡使用端口输入输出模式,你要设定端口号和中断号。如果你的网卡使用DMA模式,你要设定DMA通道和中断号。如果你的网卡使用共享存储区的模式,那你就得设定共享存储区的地址范围。

3.驱动程序的使用方式

有了网卡的驱动程序后,你可以选择是把驱动程序加入到Linux核心之中还是把驱动程序加工成独立模块。Linux系统一个引人入胜的长处就是可以定制系统的核心。把需要频繁调用的功能加入系统核心,可以大大提高系统的效率。在这种情况下系统启动时,系统核心自动加载网卡的驱动程序。驱动程序的参数可以通过LILO命令参数加以指

定。系统启动后驱动程序永久驻留核心,不能用常规的方法将其卸载。至于定制的系统核心,是通过重新编译得到的;如何编译核心将在后文叙及。

如果把驱动程序编译成可装载模块,就可以用系统提供的命令在系统启动后随时加载。随时加载的好处是减少内存开销,易于管理,但同时也牺牲了一点网络传输的效率。驱动程序的参数是在命令行中直接输入或通过配置文件指定。

二、网卡安装前的准备在安装网卡前,务必检查是否具备下列条件:

1.硬件方面

以太网卡

网络连接线及连接头,如10base-T一般为8芯双绞线配RJ-45接口

2.软件方面

Linux操作系统

网卡驱动程序(目标码或源代码)

*网卡配置程序

*软件开发工具,如GNU工具包(包括编译器gcc、make等)

3.系统配置信息

可用的端口地址

可用的中断号

以上不带星号标记的是必要条件,带星号的是视情况不同而要求的条件。具体情况在下面进一步说明。

三、网卡的安装及配置

第一步:配置以太网卡的工作参数

配置网卡就是配置网卡的工作参数,如端口地址、中断号等。网卡的缺省参数一般存储于网卡内部的EEpROM,这是网卡出厂前设置好的。缺省参数在大多数情况下是可行的,但如果这些参数与你的系统有冲突并且网卡又不支持软件动态设置,那么你就要使用网卡的设置程序。并不是所有的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。可以通过查阅网卡使用说明书来确定这一点。

网卡的设置程序与驱动程序不同,设置程序仅仅用来对网卡EEpROM中的设置进行修改。网卡程序本身可能运行在其它操作系统下,如WINDOWS95/98、OS/

2、DOS等。如果是非Linux平台,那你就先在适合设置程序运行的系统中安装网卡,按设置程序说明设置网卡参数。然后再在Linux系统下安装该网卡。

第二步:安装Linux系统

假如你将要安装以太网卡的Linux系统本身还未安装,那么可以先试着在安装Linux的同时安装网卡。这一步成功的前提是你的Linux发行版本包含将要安装的网卡的驱动程序。

运行Linux的安装程序,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置时,安装程序会列出它支持的所有网卡的类型。看看你的网卡是否榜上有名。随着Linux发行版本的不断升级,目前RedHat 6.0已经覆盖了常用的网卡类型。如果很幸运地你的网卡恰好在其中,那么下文讨论的很多步骤都可以不必考虑了,安装程序会自动完成网卡的安装与驱动。但如果没找到适用于你的网卡类型,也不必担心,继续下一步。

第三步:手工安装网卡

安装网卡也就是安装网卡的驱动程序。网卡要工作必须要有驱动程序,并且驱动程序越成熟越好。驱动程序一般由网卡的生产或供应商提供。由于Linux是一个起步不久的新兴操作系统,网卡的生产商并不一定提供Linux环境下的驱动程序。这时候你就得从其它途径想办法了,比如到INTERNET上专门提供硬件驱动程序的网站查找一下,也可以在新闻组上贴个求助信息。总之,只有得到网卡的驱动程序后,方可进行下一步。

网卡的驱动程序有两种类型。一是可直接使用的二进制代码;另一种是驱动程序的源代码。二进制代码一般是预先编译好的可装载模块。源代码可以编译成可装载模块,也可以编译成系统核心的一部分。如何把源代码编译成可装载模块不在本文讨论之列,具体可以查阅驱动程序的说明书。

1.可装载模块的使用

系统提供了一组命令用于将驱动程序模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe 与insmod命令功能相似,但是方式各异。

modprobe 命令使用配置文

件/erc/config.modules来加载可执行模块。要用 modprobe命令加载以太网卡的驱动程序,可以在 config.modules文件中加入:

alias eth0 drivermodule(drivermodule是驱动程序模块的名称)

这行配置信息把以太网卡的设备名与驱动程序模块联系起来。modprobe命令依据这条信息,自动加载存放于 /lib/library/xxxx/net目录下名为 drivermodule.o的模块。因此要使 modprobe命令找到驱动程序模块,必须将该模块放在 /lib/library/xxxx/net目录下。

那么驱动程序的参数如何指定呢?还是使用conf.modules文件。方法是在接着上述配置信息的后面加入下行信息:

options drivermodule parml=valuel,parm2=value2,……

这里parm1 是驱动程序可以接受的参数名,valuel是该参数值;依次类推。

比如options cs89x0 io=0x200 irq=0xA media=aui

insmod命令直接通过命令行参数将驱动程序模块载入内存,并可以在命令中指定驱动程序参数。例如:

insmod drivermodule.o parml=valuel,parm2=value2,……

以上两个命令中可以使用驱动程序参数要依据具体的网卡及其驱动程序而定,要仔细阅读网卡及驱动程序的说明书。有的网卡驱动程序可以用这些参数覆盖网卡本身EEpROM中存储的参数。有的则必须使用EEpROM中的参数。有的因为驱动程序不自动检测网卡使用的参数,所以还得把网卡使用的EEpROM中的参数传给驱动程序。

卸载驱动程序模块使用rmmod命令:

rmmod drivermodule.o

2.把驱动程序编译入系统核心

除了以可装载模块的形式使用驱动程序,还可以把驱动程序编译进Linux核心,以获取更高的效率。这种方式需要驱动程序的源代码、Linux核心源代码及其编译工具。Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。配置核心的过程是用系统提供的配置工具(make config 或make menuconfig)重新生成用来编译核心的众多make文件的过程。为了让核心的配置工具了解你的网卡驱动程序,你需要修改一些核心的配置文件。

(1)修改配置文件:主要修改核心源代码目录下的四个文件,即drivers/net/CONFIG文件、drivers/net/Config.in文件、drivers/net/Makefile 文件和drivers/net/Space.c文件。CONFIG和Config.in文件用于控制核心配置工具(make config 或make menuconfig)的运行,主要是加入关于是否包括该网卡的支持提示。Makefile 和Space.c文件用于编译核心代码并说明面向核心的接口。详细语句参见下面例子。

(2)运行核心配置工具:在核心源代码目录下执行make config或 make menuconfig命令。make config是面向命令行的,通过逐句回答提问来配置核心。由于其在配置过程中不可改变或撤消以前的回答,故多有不便。make menuconfig 则是通过窗口菜单方式,使用起来很方便。就本文而言,你只要在上一步中正确修改了配置文件,那么在config中会出现是否需要该网卡支持的提问,你选择‘y’。或者在menuconfig中的 network菜单中出现表示该网卡的菜单项,把它选上即可。

(3)重建依赖关系:很简单,执行make dep和make clean命令。

(4)生成核心代码:执行make zImage 命令。这个命令开始真正编译核心代码,并把核心代码存放为arch/i386/boot 目录下的zImage。

(5)为了使用新的核心代码,你需要用新的核心代码替换原有的。原有的核心代码一般存放在/boot 目录下,文件名称类似于vmlinuz-v.s.r-m(v.s.r-m)表示核心的版本号)。如vmlinuz-2.0.34-1。执行下列命令:

cp arch/i386/boot/zImage /boot/vmlinuz-v.s.r-m

为了安全起见,可以先把原有的核心代码做个备份,以便发生错

误时恢复。

至此,你可以重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决的是驱动程序的参数问题。有些网卡驱动程序如果不输入参数,那它工作就会不正常,甚至根本不工作。由于现在网卡的驱动程序是系统启动时由核心载入运行的,系统启动之后用户就很难改变这些参数了,所以你必须在系统启动时告诉Linux核心网卡驱动程序使用的参数。具体方法有两种:

(1)在系统引导程序LILO中输入。

在LILO开始引导系统时,用ether子命令设定以太网卡驱动程序的参数。ether命令的使用方式为:

LILO:linu xether=IRO.BASE_ADDR,NAME

这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linux ether=15,0x320,eth0

(2)在LILO配置文件中设定。

每次在系统启动时再输入驱动程序参数似乎有点过于麻烦。幸好系统提供了LILO的配置文件可以用来永久性的设置Linux系统启动时的子命令。方法是在/etc/lilo.conf文件中的适当位置加入以下一行:

append=“ether=IRQ, BASE_ADDR,NAME”

这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程序。

第四步:网络配置及测试

安装完网卡就可以配置网络通信了。配置网络简单地就是使用ifconfig命令,例如:

ifconfig eth0 1.2.3.4 netmask 255.0.0.0 up

最后ping一下网上其它机器的ip地址,检查网络是否连通。

五、一个以太网卡安装实例

下面以Cirrus公司生产的Crystal CS8920以太网卡为例,详细说明上述安装配置过程。本例中,有些命令参数,如核心源代码目录等,是以我使用的系统环境为出发点。具体应用中还要加以本地化。为了更接近实际,例子中也包括了对安装中碰到的问题的描述。

1.此网卡是IBM pC机的内置式网卡,机器只提供了Windows95/98环境下的驱动程序。由于RedHat 5.0发行版本尚未提供对此网卡的直接支持,所以从Cirrus的站点上找到并下载了该网卡驱动程序的Linux版本,是一个名为Linux102_tar.gz的压缩文件。

2.文件Linux102_tar.gz解压后包括五个文件。包括源代码,仅适用于Linux 2.0版本的目标模块以及readme文件。

3.查阅readme文件后,了解到这个驱动程序只能使用网卡EEpROM中设定的端口号(I/O基地址)、中断号。为了知道网卡EEpROM的设置,又从Cirrus站点下载了该网卡DOS版本的设置程序setup.exe

4.在DOS中运行setup.exe,发现网卡的起始端口号为0x360,中断号为10,与别的设备有冲突。选择setup.exe程序的相应菜单,把中断号改成5。另外,此驱动程序不支持plug and play,故也在setup.exe中将网卡的pnp功能屏蔽掉。

5.我所使用的RedHat 5.0的Linux核心版本为2.0.34,所以不能用现成的驱动程序目标模块,需要自己动手编译。如上文所述,有两种方式使用此驱动程序。

6.如果要编译成独立模块,执行下列命令:

gcc -D_KERNEL_-I/usr/src/linux/include -I/usr/src/linux/net/inet-Wall -Wstrictprototypes -02 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS -ccs89x0.c

编译结果是名为cs89x0.o的驱动程序目标模块。要装载此驱动程序,输入下列命令: insmod cs89x0.o io=0x360 irq=10

要卸载此驱动程序,用rmmod命令:

rmmod cs89x0.o

7.如果要将驱动程序编进系统核心,修改/usr/src/linux/drivers/net/CONFIG,加入:

CS89x0_OpTS=

修改/usr/src/linux/drivers/net/Config.in,加入:

tristate‘CS8920 Support’CONFIG_CS8920

以上两行是为了让make config在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:

ifeq((CONFIG_CS8920),y)

L_OBJS+=cs89x0.o

endif

修改/usr/src/linux/drivers/net/Space.c,加入:

extern int cs89x0_probe(struct device *dev);

……

#ifdef CONFIG_CS8920

&& cs89x0_probe(dev);

#endif

以上两段是为了编译并输出网卡驱动程序及其例程。

把驱动程序源代码拷到/usr/src/linux/drivers/net目录下。

在/usr/src/linux目录下执行 make config或 make menuconfig,选择核心CS8920网卡支持。

执行make dep、make clean命令。最后用 make zImage 编译Linux核心。

如何设置核心驱动程序参数,上节已有说明,不再赘述。

六、结束语

与其它外设一样,以太网卡种类繁多,对于新兴的操作系统Linux来说,是否能够有效地支持这些设备,直接关系着Linux的发展前途。

第四篇:太阳能电池环境监测系统研究论文

摘要:根据太阳能电池环境监测具有分散、灵活、偏远等特点以及传统有线网络布线繁琐、维护困难等问题,本设计提出一种基于CC2530-Zigbee的由太阳能电池进行供电的无线网络电池环境监测系统。本系统由数据采集终端节点和上位机实时监测平台组成,两个数据采集节点均采用太阳能电池和锂电池组合供电的方式,可以实时监测和记录温度、太阳能电池电压等参数信息,并可将采集到的数据经Zigbee网络无线传输到监测平台,实现数据的即时显示和存储功能。

【关键词】ZigbeeCC2530;温度;太阳能电池;无线网络

1引言

太阳能电池在其运行和操作过程中可能会因部分遮阴和老化而出现热斑现象,从而可能会严重影响太阳能电池的发电供电能力,又或者太阳能电池可能在某种情况下失去供电能力而在远处的用户又不能知晓。为了确保太阳能电池供电系统能够正常的运行和工作,以及为了了解太阳能电池的周边环境,使人们能够更加高效地利用太阳能,我们需要对太阳能电池供电系统的各项周边环境参数和太阳能电池的实时供电电量进行测量和监控。早在2003年,美国国家自然科学基金委员会就开始了一系列的无线传感器网络研究计划的实施,并联合一些大学开展了嵌入式智能传感器项目的研究,旨在构建一个关于太阳能电池无线动态的监测系统。而国内的一些大学如武汉理工大学、湖南大学和华中科技大学等高校也陆续开始了对类似问题的研究,分别提出有线和无线的太阳能发电监测系统。上诉研究虽然对太阳能电池环境方面作出了详细的研究,但是很多关键细节往往不公开而且这些系统往往存在成本高、功耗大的缺陷。所以有必要设计一款基于成本比较低、功耗比较少的Zigbee无线传感器技术、GPRS技术的太阳能电池环境监测系统。本次研究结合公众需求,基于无线网络、联合传感器,从而进行对数据的实时监测,这次实验具有一定的实际意义,也可满足公众对环境监测方面的要求。

2Zigbee无线技术的发展现状

无线传感器网络技术源于20世纪70年代,这种技术最早是应用于军事科技领域,但是由于技术能力限制,该网络只能获取单一数据信号,两个节点之间只能进行简单的点对点的数据通信,并不能实现广播和组播。无线网络技术可以分为WPAN、WLAN、WMAN和WWAN四种。Zigbee通信技术从2002年的Zigbee联盟成立到2006年该联盟推出了一种比较成熟协议—Zigbee-2006标准协议已走过了多个年头,而Zigbee技术也得到了快速的发展。Zigbee通信技术有良好的应用前景,比如智能家居、智能商业大楼、智能仪表控制。在智能的商业大楼中可以使用Zigbee完成智能设备的自动控制,其大楼管理人员可以对于灯光、空调、火灾系统等各项重要开关进行远程智能控制,以此实现减少能源费用,降低人力资源管理成本的目的。对于消费者来说,若家中安装有Zigbee管理系统,可以远程地监控家里各种开关、水利电力、煤气是否泄漏、是否有外来人进入等安全隐患,如若监测到异样可自动对户主发出警报信号。作为全球经济总量排名第二的中国市场,Zigbee产品链的应用有良好的发展前景,虽然本土的芯片供应商的参与度有限,但是Zigbee应用的成熟不需要很长时间。

3总体设计

传统的太阳能环境监测系统是以单片机和射频技术模块组合设计而成的,其特点是编程简单、容易实现和移植,但功耗比较高,成本也相对比较高,实用性较差;另外,用到的元器件比较多,不易于系统的长时间的运行且不能进行休眠或休眠的功能不容易实现。因此本设计采用Zigbee无线通信技术进行开发和研究,通过采集子节点和协调器的通信实现数据在两个节点之间的通信。位于PC的上位机能实时显示各项数据的情况,且增加高温、高压预警功能,保护系统的正常运行工作,在满足大众需求的情况下符合人性化、性价比比较高、功能容易实现。本设计主要分为两部分制作:硬件设计和软件设计。硬件设计方面:采用现成Zigbee核心板和底板结合温湿度传感器和AD模块实现温湿度和电量的测量;软件设计方面:利用IAR集成开发环境进行软件程序的编辑、编译和采用C#编程语言在VS2012开发环境下进行上位机程序的编写,系统总体框图如图1所示。

4硬件设计

本设计主要分为四个部分:第一部分是由Zigbee芯片和传感器模块构成的数据采集子节点;第二部分是由Zigbee芯片和GPRS模块构成协调器模块;第三部分为太阳能电池供电模块;第四部分为信息收集模块。

4.1CC2530Zigbee芯片Zigbee

通信技术要应用于功耗比较低、成本比较低以及运行速率要求的低的监控系统中。本设计采用的主控芯片为CC2530-Zigbee。CC2530芯片结合了强大的RF技术,以及业界标准的增强型8051CPU。CC2530芯片有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。本设计采用的是CC2530F256,其具有几种不同的运行模式,使得它可以适应超低功耗要求的系统,非常适合用作以环境监测系统的主控芯片。同时,CC2530F256结合了业界领先的黄金单元Z-Stack协议栈,提供了一个强大而完整的Zigbee解决方案。同时为了便于设备的维护以及日后的拓展使用,将Zigbee芯片的硬件分为两部分,即是CC2530核心板和底板。核心板集射频收发及MCU控制功能于一体,也集成了CC2530芯片正常工作的所有外部电路,满足监测系统开发的需要。同时模块引出CC2530所有IO口,便于功能评估与二次开发。CC2530底板连接着CH340G芯片,该信芯片与串口0相接,方便使用USB线进行调试。同时,底板有CC_Debugger接口,可与仿真器连接直接下载或调试程序。由于CC2530芯片是3.3V供电的,所以底板连接着AMS1117-3.3芯片,实现5V到3.3V的转变。

4.2Zigbee协议栈

由于传统的无线传感器网路协议很难适应某些系统对低成本、低功耗、低容错性的要求,而无线传感器网络节点之间进行数据信息传输又以无线网路通信协议为基础,于是就出现了以IEEE802.15.4协议为基础的Zigbee协议来支持于Zigbee技术的发展。Zigbee协议栈由物理层、介质接入控制层、应用层、网络层构成。其中Zigbee应用层包括应用支持子层APS、应用框架AF、Zigbee设备象ZDO等。其中设备之间的绑定是在协议栈的APS层实现的,应用支持子层APS在NWK层和APL层之间,并提供了两个接口:APSDE-SAP、APSME-SAP,两个接口的功能如下:前者提供在无线传感器网络内两个或多个节点之间的数据通信;后者提供多种服务给应用对象ZDO。IEEE802.15.4标准规定了物理层和MAC层的协议规范,而Zigbee联盟中的Zigbee标准定义了NWK层以及APL层的协议标准,让用户可在这个应用层上开发实现自己应用的开发,其中Zigbee无线网络协议如图2所示。太阳能电池模块是太阳能发电系统中价值最高的部分,其作用是将太阳能转化为电能,或送往电池中存储起来,或推动负载工作。在硅晶类的太阳能电池板中,当吸收了太阳光中0.4μm~1.1μm波长的光时,就能把光能转化为电能输出。本设计采用的是9V3W的单晶太阳能板,其开路电压可达到10.5V、短路电流可达400MA,并且该电池板可以直接加在6.4V的锂电池上而不需要添加稳压模块。本设计配备一个发光二极管,可知道电池板是否正常。本设计温湿度测量采用的模块是DHT11,DHT11传感器模块是一款在市面上应用很广泛的数字温湿度传感器。湿度测量范围为20%-95%RH测量误差为±5%RH;温度测量范围为0℃-50℃和测量误差为±2℃。DHT11传感器模块采用一根总线通信的方式,也就是说数据的传输和控制都是通过一根总线完成的,这在一定程度上节省了单片机IO端口的使用,同时该传感的整体的体积很小、功耗也很低,使其受到了很多用户的青睐,因此适合本设计中对太阳能环境中温湿度的测量,它的单总线通讯过程流程图如图3所示。本设计电池电压的测量方案采用的是内部ADC功能实现的,其主要步骤如下:首先是确定ADC用要几位进制表示,它的最大数值是多少。例如一个8位的ADC,最大值是0xFF,就是255。本设计中Zigbee的IO口ADC是12位的,故最大值是4095。然后确定最大值对应的参考电压。一般而言最大值对应的参考电压是加在芯片上的电压,为3.3V。接着计算IO电压值。就是把你ADC数值除以刚才确定的最大数值再乘以参考电压。最后计算实际的电压。因为IO口最大的输入电压不超过3.3V,故需要电阻分压测量。本设计采用了两个电阻:502欧姆和2K欧姆的电阻。故输入电压不超过3V,符合ADC电压输入的要求,所以电压计算如式1所示。(1)其中Va表示AD转换的值,V表示最终的电压值。本设计使用到GPRS模块的功能是发送短消息,故采用的是模块是果云GA6mini。该模块的供电电压为5V,并支持GSM/GPRS的四个频段,包括850、900、1800和1900MHZ。正常的工作温度范围是-30℃-+80℃,并且支持移动和联通2G,支持GSM07.10协议,使用的AT指令支持标准AT指令集。该模块具有尺寸较小、功耗较低和宽工位温度范围的特点,适合环境监测系统的要求。当发生高温、高压警报时,由协调器和GPRS模块通信发送警报短信到预设的手机号码。短信信息包括:节点序号和何种预警信号,其流程图如图4所示。

5系统工作流程

在协调器主控程序中,首先进行了设备的初始化,当无线网络建好后开始等待终端设备的加入。当设备加入网络后开始向协调器发送数据,协调器收到数据后,通过串口0把收到的数据发送到PC上位机显示。若协调器接收的数据为警报数据,协调器会判断是哪个节点发出的何种警报,然后调用警报函数通过GPRS模块把警报短信发送到预设的手机号码上。若协调器收到上位机发送的数据,则会把数据广播到终端子节点上,其流程图如图5所示。在终端节点主控程序中,首先进行设备的初始化,然后根据Zigbee协议栈搜索附近的无线网络并请求加入,加入网络后会根据设置定时采集温湿度和电压数据并判断是否超过预设值,然后把数据发送到协调器。若该终端收到了协调器发送出来的数据,则会判断数据的类型,然后根据数据作出修改,修改后返回成功标志,其流程图如图6所示。

6上位机设计

本设计采用C#语言来编写上位机软件程序。该语言是一门稳定、简单、安全的,是由C语言和C++语言衍变出来的编程语言,故其很好地继承了C与C++语言的强大功能,同时又剔除了C与C++语言的一些特性。其可视化的界面、高运行效率、便捷的面向组件编程的支持受到了许多用户的青睐。上位机的功能是与协调器进行通信,完成温湿度、电压数据的实时显示、保存等功能,并且用户可在上位机上进行操作,例如改变数据的定时发送的时间、获取节点的实时数据以及停止/开始节点的数据采集功能,方便用户对数据的分析和处理,其中上位机效果图如图7所示。本文设计的系统采集实时数据效果图如图8所示,电压警报的效果图如图9所示,上位机高温高压警报如图10所示。

7结语

本设计是基于Zigbee技术的一项应用,通过终端、协调器和上位机之间的通信,形成一个功能强大的太阳能电池环境监测系统,系统不仅可以采集各个节点的温湿度、电池电压数据,也可以通过控制GPRS模块实现远程短信报警。同时位于PC端的上位机可以改变终端节点的状态,以实现更加智能化的效果。这类监测系统应用前景是很广泛的,比如太阳能路灯、共享单车供电系统、森林、海岛、沙漠供电系统中都使用了大量的太阳能电池板,而Zigbee无线网络传输技术功耗低、制作成本低、数据传输性能好,故太阳能电池环境监测系统很适合应用于这些场合。

作者:徐国保 黄清文

第五篇:struts异常总结

Java的Struts框架的异常处理

Struts提供了一个更简单的方式来处理未捕获的异常,并将用户重定向到一个专门的错误页面。

Struts的异常处理所使用的“exception”拦截容易。“exception”拦截器作为默认的栈的一部分,所以不必做任何额外的配置。它可为准备使用的盒。

根据元素出现位置的不同,异常映射又可分为两种:

局部异常映射:将元素作为元素的子元素配置;

全局异常映射:将元素作为元素的子元素配置;

全局异常映射对所有的Action都有效,但局部异常映射仅对该异常映射所在的Action有效。

如果局部异常映射和全局异常映射配置了同一个异常类型,在元素内的局部异常映射将覆盖全局异常映射。

有异常往外抛即可。你也可以在方法里面抛,比如throw SQLException。

我们可以使用Struts2的标签输出异常信息:

输出异常的message属性信息: 输出异常堆栈信息:

有了处理系统异常的基础,我们来看一看自定义异常:

packagecom.exception;public class MyException extends Exception {

private String message;

publicMyException(String message){ super(message);this.message = message;} public String getMessage(){ return message;} public void setMessage(String message){ this.message = message;} }

public String execute()throws Exception { if(!“hello”.equals(usename)||!“world”.equals(password)){ throw new MyException(“用户名或密码错误,您发现了吧!”);} return “success”;}

在action配置中的异常处理

/error.jsp /result.jsp

在全局配置中的异常处理

/error.jsp

/result.jsp

错误页面error.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%> <%@ taglib prefix=“s” uri=“/struts-tags”%>

相关内容

热门阅读

最新更新

随机推荐