ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:490.81KB ,
资源ID:11247585      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11247585.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汽车安全性设计说明.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汽车安全性设计说明.docx

1、汽车安全性设计说明1引言汽车的安全性一直都是消费者所关注的,其实在发生交通事故时,对人们安全起最主要保障作用的却是我们最常见的安全装置安全带。经过40多年的发展,安全带逐渐走向成熟,现在欧美的安全带均由强度极大的合成纤维制成,带有自锁功能的卷收器,采用对驾、乘人员的肩部和腰部同时实现约束的三点式设计。系上安全带后,卷收器自动将其拉紧,当车辆万一出现紧急制动、正面碰撞或发生翻滚时,乘员会使安全带受到快速而猛烈的拉伸,此刻卷收器的自锁功能可在瞬间卡住安全带,使乘员紧贴座椅,避免摔出车外或碰撞受伤。但是当高速前进的汽车突然停车时,要将车中人前冲的身体维持在座位上,必须有很大的力量,因此安全带一定要强

2、力,必须满足一定的质量标准才能投入使用。根据有关机构统计,在所有可能致命的车祸中,如果正确使用性能良好的安全带,可以挽救约45%的生命。所有这些都说明,随着汽车工业的飞速发展和汽车的普及,为了减少交通事故的发生,保护人身的安全,汽车安全带的实际应用确实非常必要,而保证安全带的良好性能则是更实质的部分。而我国目前还没有能检测安全带质量性能的装置和系统,目前大学从国外引进一台设备,正投入研究。本系统就是针对这些而开发的,成功后能起到实际作用,对社会具有一定的推广意义。 2系统设计本系统设计容既涉及到微机并行接口的开发知识,又有DEPHI软件编程。主要是软件的开发与应用研究。安全带的性能有两项技术指

3、标:(1) 在加速度达到最大时,位移必须在5cm之。(2) 刹车期间平均加速度变化率20。系统中的性能测试都是围绕这两项指标的。2.1 硬件设计根据预定要求,先将两路模拟信号或脉冲信号经过多路开关MUX选择,然后经过放大器将信号放大到010V,再送到A/D板;A/D板将这些模拟信号或脉冲信号转换成12位数字量,送到ISA总线,然后进行校正,转换成参数数值。其中为实现高速采集,使用了8255A作ADC的接口进行查询式采集。经测试,采集一个数据大约要50us左右。采集板的布局如下所示:图1. 采集板卡 2.1.1 主要芯片介绍(1). AD574 AD574是具有三态输出锁存器的逐次逼近型A/D转

4、换芯片,可以作12位转换,也可作8位转换。转换速度较快,为25us,部含有与微型计算机连接的逻辑控制电路,使用起来非常方便。若转换成12位二进制数,可以一次读出,也可分成两次输出,即先读出高8位后读出低4位。本系统采用12位转换。AD574外部设置5跟控制线(CE、R/、12/、)和一根状态线(STS)。5个控制信号的功能定义如下:CE:片允许信号,高电平允许工作。简单应用中可固定接高电平。:片选中,低电平有效。R/:双功能引脚,作为读数据或启动转换的控制信号。R/C=1,用于读数据;R/C=0,用于启动转换。12/:数字量输出位数控制,12/=1,1次输出12位数据;12/=0,1次输出8位

5、数据。:双功能引脚,用于分辨率和字节选择。在转换启动时,若=0,则AD574作12位转换器用;若=1,作8位转换器用。在读数据时,若=0,则读高字节;若=1,则读低字节。以上信号线中,、CE、和R/三个信号组合起来实现启动转换和读数据。当=0、CE=1和R/=0时,启动A/D进行转换;当=0、CE=1和R/=1时,读取数据。这5个控制信号的电平状态与AD574所产生的操作对应关系如表1所示:CER/12/AD574A的功能操作0XXXX不允许转换X1XXX未接同芯片100X0启动一次12位转换100X1启动一次8位转换101高电平(+5V)X一次输出12位101低电平(数字地)0输出高位字节1

6、01低电平(数字地)1输出低位字节表1:AD574的控制信号的作用 STS:状态线,表示转换器状态,在转换期间,STS为高;当转换结束时,STS变低。可用此信号来查询转换是否结束。(2).8255A 可编程并行接口 8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口接口芯片,能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送、应答(查询)传送和中断方式传送,与此相应,8255A设置了0方式、1方式以及2方式(双向传送)。8255A可执行功能很强,容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状

7、态线)来使用8255A构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。8255A在执行命令过程中和执行命令完毕之后,它所产生的状态保留在状态字中,以供查询。本系统用的是8255的0方式。0方式是一种基本输入/输出工作方式。通常不用联络信号,或不使用固定的联络信号,因此,所谓基本I/O方式是指查询方式传送,也包括无条件传送。在0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,本系统是指定的PC7口作为联络信号的。由于无固定的专用联络信号,因此也就在端口与I/O设备之间无固定的时序关系,由用户根据数据传送的要求决定输入/输出的操作过程。2.1.2

8、硬件结构简单框图CD4067是一个16路的多路转换开关。由于AD574是单通道模拟量输入,每次只能转换一路数据信号,因此要通过CD4067进行通道选择。这个系统用到了CD4067的两个通道。通道0接位移信号,通道1接加速度信号。 CPU发出选通道信号命令,驱动器传送到74LS138译码器,输出地址锁存器,打开通道开关,准备接受模拟信号。接口处信号经信号放大器放大到010v,输入到AD574模数转换器,将模拟信号转换成数字信号,通过ISA总线输入电脑。 ISA总线AD574(12位)STS CD4067MUX8255A 放大器 IN0 IN1 A B C D pc7 图2. 采集电路简图采用82

9、55A作ADC的接口,这种接口电路设计方便,尤其在与CPU连接时的信号线及其时序配合中不需作什么工作。加上是可编程,使用灵活。本系统中用的是8255A的PC7口作联络信号,接AD574的STS状态线,通过简单编程就可方便查询数据是否转换完毕,然后再将查询结果传送到CPU,以便做下一步的处理。2.2 软件设计系统启动时,先要进行设备自检,看两路通道是否都能正常采集。采集底值是在没加任何信号时采集的一个基准值,以后采集的数据都要减去这个基准值。采集完后,将数据存入文件。可以直接查看测试结果,该部分给出了所需要的主要参数值。也可以进行曲线绘制查看采集时段数据的详细分布情况,此部分能绘制三个量程的参数

10、时间图,曲线分六屏显示,默认采集4000次。用户也可自己输入采集次数。可用光标任选曲线段进行评估。之后,能连接打印机将图形打印出来。软件部分的主要模块结构如下图所示:设备自检数据采集查看测试结果绘制曲线打 印 图3.软件部分总体结构图2.2.1 所用编程语言简介本系统是在Delphi5.0环境下开发的。Delphi是由Inprise公司(前Borland公司)推出的可视化编程环境,它提供了一种方便、快捷的Windows应用程序开发工具。Delphi使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了可重复利用的完整的面向对象程序语言(Object-Oriente

11、d Language)。Delphi使用“可视化”的编程方法。程序员不必自己建立对象,利用Delphi所提供的可视“控件”,只要在提供的程序框架中加入完成功能的代码,如选择命令、移动鼠标等,而不必考虑按精确次序执行的每个步骤。在这种机制下,不必编写一个大型的程序,而是建立一个由若干微小程序组成的应用程序,这些微小程序可由用户启动的事件来激发。这样就可以快速创建强大的应用程序而勿需涉及不必要的细节。另外,在Delphi中能方便的嵌套使用汇编语言。本系统中与硬件接口的地方全部是用汇编编写的。这样既方便对底层硬件的访问,又能提高代码的执行效率。所以Delphi环境非常有利于软硬件的结合。2.2.2

12、设备自检模块设计设备自检原理就是从所选通道读出的电压值必须要与所加的电压值相当,所以核心就是从端口读出多组数据值并显示出来。各端口地址分别为:选通道-228H ;启动转换-221H ;读高8位数据-221H ;读低8位数据-220H 。此单元定义了一个计时器(Timer)控件Timer1,Timer控件可以在应用中以重复的时间间隔产生一个事件,由于属于非可视化控件,在运行时不可见,常用来做一些后台处理。该控件只有一个事件OnTimer,将需要循环执行的程序段放在这个事件里,计时器的Interval属性指定了两个Timer事件之间的毫秒数。缺省值为1000(1秒),计时器将每秒(近似等间隔)激发

13、一次Timer事件。本模块将核心部分(读通道电压值 )放在Timer1的OnTimer事件里,输出多组值到列表框Listbox1。这是通过语句listbox1.Items.add(s)来实现的,这里调用了Tstrings类的相应方法来处理Items中的数据。事件由Timer控件的enabled属性来启动,该属性为True时,定时器开始工作,为False时暂停。开始时令其为false,当选定通道后开始工作。由于只有两路通道,在单元中添加了两个单选按扭RadioButton,按扭组放在一个GroupBox控件里。另外还定义一个字节型变量tdhao,用来保存所选通道序号0或1,0通道是用来采集位移信

14、号的,1通道采集加速度信号。由以下语句来给tdhao赋值:if radiobutton1.checked=true then tdhao:=0 else if radiobutton2.checked=true then tdhao:=1;OnTimer事件的程序流程图如下页图所示: 选通道启动转换延时读高8位读低4位数据处理并显示判断tdhao的值 Timer1.enabled=true 为0或1 否则 图4.设备自检流程图Ontimer事件每次开始时都会检测是否tdhao为0或1,只有满足时,才会继续往下执行。当然最初会给tdhao赋个初值。后面汇编语句的选通道部分直接将tdhao变量值读

15、入端口。汇编采集部分的核心程序如下: mov dx,228h /选通道 mov al,tdhao out dx,al mov dx,221h /启动转换 out dx,al mov bx,20h /延时,等待转换结束 b:mov cx,0e000h c:loop c dec bx jnz b mov dx,221h /读高8位 in al,dx mov x1,al mov dx,220h /读低4位 in al,dx mov x2,al其中x1和x2是定义的全局整型变量,存储读取的高低位二进制值,以作进一步转换。这里的数据要进行处理主要是由于AD574的12条输出数据线的高8位接到系统总线的D

16、0-D7,而把低4位接到数据总线的高4位,低4位补0,以实现左对齐。所以读出数据后高8位应该乘以16,而低4位则要除以16,再相加即可。这一点由语句x2:=(x2 div 16)+x1*16;来实现。此外,还必须转换为电压值。AD574的精度为12位,最高量程为10V。所以应该由公式x2*10/4096来转换。但是由于汇编语句的需要,x1和x2都设置成为整型变量,为保证精度,可以先乘以一个放大几倍的数,得出结果后再相除和取余。这样得到的商就是结果的整数部分,而余数则是小数部分,在输出时再一起输出,见如下语句所示:x1:=(x2*10000)div(4095); x3:=x1 mod 1000;

17、 x1:=x1 div 1000; s1:=inttoStr(x1)+.+inttoStr(x3)+V; listbox1.Items.add(s1);其中s1为字符型变量,这是listbox输出的格式需要。S1也将数据的整数和小数部分连接了起来,起到中介的作用。随着OnTimer事件的反复执行,数据会逐渐增多,listbox会自动加上滚动条,但是交换通道检查时,还是必须清空listbox1。基于对程序控制的方便,添加了“暂停”、“继续”、“清空”、“返回”四个按扭。按暂停按扭,执行Timer1.enabled:=false;定时器停止工作;按继续,使Timer1.enable=true,定时

18、器重新开始工作;清空按扭可以清空listbox1的容,并将光标移到首行,由以下两条语句来实现:listbox1.clear; listbox1.tag:=0; clear是系统定义的方法。Tag为listbox的属性,指行标。点返回按扭退回到主界面。清空和继续按扭在程序开始时是无效的,在formcreate事件中设置其enabled属性为false即可。只有在listbox1中有数据后,清空按扭才生效;同样,只有在按下暂停按扭后继续按扭才生效。这都是通过在相应事件中设置enabled属性为true 来实现的。2.2.3 采集模块设计在信号输入之前首先要采集底值。为保证一定的精度,每路通道的底值

19、都是采两次之后取的平均值。然后可以输入信号,进行实时测试。之后的汇编采集部分方法与采集底值是相同的,但是必须根据一定的加速度灵敏度、位移传感器电阻值、位移传感器长度来对数据进行处理,得出所需要的实际参数值。这在后面会有详细说明。此单元的采集用的是查询式采集,这是为了满足高速采集的需要。下面根据采集部分的流程图分别作出说明:(图见下页)8255A的初始化是由以下三条语句来完成的:mov dx,22fh /8255A命令口地址 mov al,10011011b /初始化命令out dx,al /送到命令口方式字10011011是指将8255三个并行端口中的A口和B口都指定为0方式,输入;C口的上半

20、部和下半部也都为输入。选通道部分端口地址为228H,由于只有两路通道,将依次进行采集,没有使用循环。然后往221H 端口写入任意数据就能启动转换了。 先看核心采集程序的流程图:读STS8255初始化选通道启动转换STS=0?读高8位读低4位数据处理 否 否是 图5.采集程序流程图接下来开始检查是否转换完毕。系统将循环检测STS信号,直到其为0为止。这里以8255的PC7口作为状态信号,即将STS状态线连到8255A的PC7口,系统直接查询PC7口即可。见下面程序段: mov dx,22eh /查STS端口 q1: in al,dx and al,80h /PC7作控制信号 jnz q1转换完毕

21、后就能读取数据了,还是先读高8位,后读低4位。读出后高8位乘16,低8位除16。这部分的相关程序可以参考设备自检部分或附录源程序代码。采集底值时将这部分程序依次执行了四遍,每个通道采了两个值取的平均。测试部分则循环采集k次,k是由用户输入的,如果用户没有输入,将默认采4000组数据。程序中定义了两个公用数组gh和lh分别用来存放采集的加速度和位移值。下面的程序段将采集的数值转换为加速度和位移值。 ghj:=10000*ghj div 4095; / 0.001g,14mv/g ghj:=ghj div jia; /jia为所输入的加速度灵敏度,单位v/g先将采来的数据转换为电压值,再除以加速度

22、灵敏度,转换为加速度的单位。由于ghj是以mg为单位存储的,所以10v电压以10000mv计算。另外这也满足了整型数据的除法精度 ,排除了除0的可能性。 /(位移转换) if (cj11000) or (cj21000) then /若无输入,则采用默认数据 begin R:=5000; /位移传感器电阻值5000欧姆 S:=100; /位移传感器长度100mm end ; N1:=R*2048 div 5000; /N1:位移传感器最大阻值对应二进制数 for j:=1 to i do begin SX:=S*LHj DIV N1; /sx:实测长度 LHj:=SX; /单位为毫米 end;

23、位移转换的算法思路见上面的注释。其中N1之所以这样因为用1mA的电流输入5K电阻,只能产生5V电压,只能达到A/D芯片满量程的一半,所以对应二进制数也只有4096的一半,即2048。若用户无输入,系统默认的参数值为:jia=2v/g,R=5000,S=100mm,在formcreate事件中赋值。这些值与电压的对应关系为:加速度 1v0.5g 位移 1v-2cm 。判断用户是否输入,可在相应的editchange事件里设置变量值来检测。此部分见附录程序清单。可以将所采数据作为文本存盘。见下面程序段: p:=formatdatetime(yyyy/mm/dd/hh/nn,now)+.txt; A

24、ssignfile(tex,p); REWRITE(TEx); for j:=1 to i do begin WRITE(tex,lhj:6); /以每个字6个字节的格式存盘 WRITE(tex,ghj:6); end; CLOSEFILE(TEx);其中tex是一个文件类型的变量,通过调用Assignfile过程可以初始化这一文件变量,即建立文件变量(F)与外部文件之间的联系。P为自定义的外部文件名,中间调用了读取系统时间的函数,有利于识别测试时间。之后的Rewrite函数是以写方式打开文件的方法,通过调用这个函数可以创建并打开一个新文件。在下面的for循环中,调用Write过程向文件中写入

25、数据,数据存放在数组lhj和ghj中,以每个字6个字节的格式存储。写完之后,调用CloseFile过程中断文件变量tex和p所指外部磁盘文件之间的联系。这个过程将释放文件变量,并关闭该外部文件。另外,除了处理本次实验采集数据外,本系统还必须能对以往数据进行分析,所以将“读数据文件”也放在这个单元里,可以直接将数据从已有文件读入数组gh和lh中,进行下一步分析处理。这里用到了公用对话框控件中的opendialog控件,此控件用于打开一个已经存在的文件,用户选择某一文件,其所在的驱动器、文件夹、文件名以及文件扩展名将被赋予opendialog 的filename属性。在程序运行中使用execute

26、命令来显示打开对话框,当用户选择一个文件并单击打开时,返回true;如果用户选择cancel,则返回false。参考下面的程序注释:if Dialogopen.Execute then begin assignfile(tex,Dialogopen.filename); Reset(tex); /以读方式打开文件 for j:=1 to 3990 do begin /从数据文件读出的数据值赋给数组 read(tex,x1); read(tex,y1); lhj:=x1; ghj:=y1; end; CLOSEFILE(TEx); edit15.text:=已读文件;for循环中调用Read过程

27、读取数据,通过中间变量x1和y1赋给数组元素。值得注意的是,由于干扰信号的存在,用这样的数据绘成曲线会出现很多毛刺,所以必须先进行滤波处理。这里进行了两次滤波:第一次是让本次值的80%与上次值的20%相加作加权平均。从第3个值开始,如下所示: p1:=(gh1+gh2) div 2; for j:=3 to 3990 do begin ghj:=(ghj*80+p1*20) div 100; p1:=ghj; end;第二次在此基础上每三个值求一次平均,再将这个平均值赋给这相邻的三个值。如下程序: for j:=1 to 3990 do begin /每三个数求一次平均值 p1:=j mod

28、3; if p1=1 then begin p1:=(ghj+ghj+1+ghj+2) div 3; ghj:=p1; ghj+1:=p1; ghj+2:=p1; end; end;2.2.4 绘制曲线模块设计在Delphi中绘图时,是将图形画在窗体、Image控件、画框(Paintbox)中的画布Canvas上。画布也有自己的属性,它本身也是一个对象(控件),但一般不能单独使用。本单元中使用的是窗体form7的Canvas,用的最多的是它的画笔(Pen)属性。系统能实现0.45g、0.8g、2g三个量程的绘图,这是为了满足用户精度和量程大小的需要。此单元根据公有变量fennei的值来识别是哪

29、个量程的绘图,其中整型变量fennei的值是在单元2中选择量程时定下的。对应0.45g、0.8g、2g三个量程,fennei的值分别取为4,2,1。这样取值是为了分量程绘图时比例转换的方便,在下面会有说明,这部分有四个主要事件。(一) 画网格、填纵轴坐标在网格上显示曲线更有利于观察,另外纵轴坐标会随量程而不同,需要专门填写。画曲线时所用的坐标是根据窗体左上角为(0,0)推得的。画网格时画笔的颜色设置为蓝色,语句canvas.pen.color:=clblue;可以实现。另外网格横线和竖线的间距均为50。画横线时左边坐标取50,右边取到750。moveto(50,j); lineto(750,j

30、);就可以画一条从(50,j)到(750,j)的横线。j 为纵坐标值,初值为50,每画完一条线增加50,一直到j=540。这样能画完g-t曲线和s-t曲线的网格横线。两种曲线网格横线间隔40,所以要分两个循环来完成。画竖线时,由于两种曲线的网格竖线是分开的,一条线必须分两次画。每条线先从(I,50)画到(I,250),再从(I,290)画到(I,540)。这里I是指变动的横坐标,初值为50,也是每次增加50,一直到I=750。可以用一个循环完成。下面开始填写s-t曲线的纵坐标,由于各个量程的位移刻度值相同,所以直接推出相应的坐标填写刻度即可。见下面程序段:canvas.textout(30,275,单位:cm);/s-t曲线的纵坐标刻度canvas.textout(30,290,10);canvas.textout(30,330,8);canvas.textout(30,380,6);canvas.textout(30,430,4); canvas.textout(30,480,2);canvas.textout(30,530,0);但是要填写g-t曲线的纵坐标还要先根据分类号fennei来判断是哪个量程的绘图。如

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1