1 前语
车辆是一个特别的使用环境,车辆自动化程度的不断进步给车辆外表提出了更高的要求,传统的动磁式外表现已越来越不适应现代智能交通工具开展的需求,而虚拟外表因其具有交互、智能和便于扩展等特色而遭到广泛注重。本课题要求为某车规划一套虚拟外表,上位机选用依据RTOS开发环境的PC104嵌入式微机。车辆环境数据收集体系作为虚拟外表的一个最重要的子体系,要求完结数据的收集和通讯功用,而且具有较高的当令性和牢靠性。本文依据作者领会介绍了用 Philips公司的高性能单片机P80C592规划车辆数据收集体系的办法,要点介绍了体系规划和CAN通讯编程。
2 体系简介
依据规划要求,本体系首要完结传感信号的处理以及车辆的工况数据收集并将数据经过CAN总线送上位机,要求处理16路模仿信号、4路频率信号和32路扩展 IO信号,收集参数首要有:发动机机油压力、水温、油温、转速、车速、变速箱油压、油箱油量以及电网电压、车门状况、转向灯指示、车体超宽指示以及车内环境示警等,信号的方式有电压、频率、以及开关量信号,信号频率规模为0~ 6KHZ。
2.1 体系硬件结构规划
图1给出了体系硬件结构图。体系选用的中心器材为Philips公司的8位高性能微操控器P80C592,它与规范80C51彻底兼容,其首要特性有:内建能与内部RAM进行DMA数据传送的CAN操控器;4个捕获端口和2个规范的16位守时/计数器;8路模仿量输入的10位ADC改换器;2×256字节在片RAM和一个Watch Dog。P80C592的在片CAN操控器能够彻底完结CAN协议,因而减少了体系连线,增强了确诊功用和监控才能。数模转化器材选用12位的 AD1674A,分辨率为0.02%,转化时刻为25uS。为了进步体系抗搅扰才能,在模-数电路之间和体系到CAN总线之间选用了光电阻隔,而且将模仿电路和数字电路别离规划成两块独立的PCB板,两板经过栈接组成一个完好的体系。
硬件作业进程:温度、压力以及电压信号,经相关处理电路送至16路模仿开关MAX306EP,经电压跟从电路输入AD1674A进行A/D转化,为了进步牢靠性和安稳性,体系没有选用微操控器的在片ADC改换器。在程序操控下对16路信号次序选通,收集得到的数据在CAN操控器内完结CAN协议包的封装,由发送端口经光电阻隔和发送器传送到CAN总线上。油量信号经光电阻隔、整形和分频后送P80C592的捕获端口进行频率丈量,转速车速信号经整形后被分为两路,一路经分频电路去单片机捕获端口,另一路经F/V转化后送ADC采样。对ADC和I/O扩展端口的拜访经过GAL译码器的编程逻辑输出来操控。
图1 |
2.2 频率信号丈量
频率信号丈量是本体系的一个规划难点,在本课题中,关于不同的车型所选用的传感器不同,因而对转速和车速频率信号的处理能够有两种办法:一是当选用输出频率规模为0-100HZ的触摸式传感器时,选用CS289频压转化芯片,将频率信号转化成2.2~7.2V的电压信号然后送ADC收集;二是当选用输出信号频率规模为0~3000HZ的非触摸式传感器时,经过单片机捕获端口用脉冲计数的办法进行频率丈量。为进步体系的通用性,能够一起选用了这两种办法,具体选用哪一种办法得到的数据经过上微机软件设定。图2为F/V转化电路图;
图2 |
CS289是美国Cherry公司出产的单片高精度专用转速丈量芯片,在-400至+850温度规模内都能有很好的线性输出。它不仅能够用于F/V、V /F转化,还能够用作函数发生器以及动磁式外表驱动。由其构成的F/V转化电路外围元件少,调试简单,作业安稳牢靠。图2所示,整形后的转速脉冲信号经滤波网络和限幅输入CS289第10脚,电压信号由第8脚输出,经滤波消除或许的工频搅扰后送采样电路。本电路中,输出电压和输入频率的关系由下式决议:上位机据此线性关系解算出频率值。为确保F/V改换具有足够高的线性度,应合理选取的值。
3 体系软件规划
体系软件首要完结三项使命:1、传感器信号的采样与解算;2、上位机恳求数据时将收集的数据传送给上位机;3、接纳到上位机自检指令时,上传数据完结传感器信号到规范信号的切换。程序流程如图3所示:
图3 |
主程序选用模块化编程。具有毛病自确诊功用是虚拟外表的重要特征之一,为此数据收集体系中规划了3组规范信号,别离是频率信号、电压信号和电阻信号,自检模块的首要功用是:当接纳到上位机宣布的自检指令后,微操控器断开传感器输入,规范信号被接入数据收集体系,将得到的数据上传到上位机与规范值进行比较,以确认毛病点是传感器体系仍是数据收集体系,若自检经过则表明数据收集体系作业正常。数据发送模块首要完结对上位机的数据通讯,本体系规划为每隔20毫秒将数据分组发送到上位机。数据转存模块完结各种数据写入在片主RAM的操作,为了差异数据类型,需求在数据块中增加相应的类型标识码,该码由用户层协议自行界说。A/D采样模块操控体系采样进程,并将每一路12位采样数据分两次读入指定的RAM单元中。
频率信号处理模块完结对捕获端口频率的丈量,其基本思想是:在被测信号的一个周期时刻内,2次脉冲下降沿别离发动和中止守时器T2计数,两次计数值之差的倒数即为频率值,本模块只需核算差值,频率值由上位机解算。
3.1 CAN操控器编程
本体系软件规划的一个难点在于关于CAN的编程。本体系处理的CAN程序模块有:CAN初始化子程序、CAN中止程序和CAN数据收发子程序。
CAN操控器是以CPU存储器映像外围设备呈现的。P80C592的CPU与CAN操控器之间的数据传输经过4个特别功用寄存器来完结,即: CANADR、CANCON、CANSTA和CANDAT,经过这四个特别功用寄存器,CPU能够拜访CAN操控器内部的任一寄存器(地址为0~29)和 DMA逻辑。表2给出了这四个SFR的功用简述,其间CANCON和CANSTA的读写操作意义不同。CAN操控器内部一切寄存器具体介绍请参阅参考文献 [1]。
表一 |
CAN操控器初始化(图4)是CAN通讯中一个十分重要的子程序,程序是否合理将直接影响整个通讯进程。CAN操控器的初始化首要有必要经过置位CAN操控寄存器的“复位恳求”位,置位“复位恳求”并不影响正在进行的一个收发作业,特别需求留意的是,只有当复位恳求被置位时,CAN内部地址为4-8的寄存器方可被拜访,在复位操作完毕后有必要将该方位0以坚持所进行的设置并使CAN回来作业状况。
图4 |
P80C592和其在片CAN操控器都具有中止寄存器,有必要留意两者的差异。CAN中止子程序(图5)首要读CAN中止寄存器(IR)以判别中止类型,据此转入相应的操作。假如接纳缓存器满而另一个报文的首字节又需求被存储时,数据超限位被置位,此刻应铲除超限并开释接纳缓存,然后从头发送数据恳求。在数据承受子程序中当数据被转入RAM区后,应及时开释承受缓存器,以便为接纳下一帧数据做好预备。
图5 |
数据发送子程序见图6。CAN操控器向总线发送数据时,首要将在片主RAM中数据寄存的首地址写入CANSTA,然后读取CANSTA.6的值(读 CANSTA的操作其实是对CAN操控器内部状况寄存器的读操作,CANSTA.6是过错显现位,当至少有一个总线过错计数器计数到达CPU告警极限时,该位将被CAN操控器置位。),若检测犯错,则履行CAN初始化子程序,若正常,则持续检测接纳状况和发送缓冲器状况,若发送条件满意则在CANADR中写入发送缓存器地址并置位DMA操控位(MOV CANADR , 8AH),DMA传送随即被发动,数据场由RAM拷贝到发送缓存器,置发送恳求位(CANCON.0)后数据开端发送。
4 完毕语
用高性能的P80C592和AD1674A数据收集模块组成车辆环境数据收集体系具有较高的性价比,现在该体系已投入试用阶段,运转状况良好。CAN总线十分合适分布式操控或当令操控的串行通讯网络,本课题只触及了数据收集,假如在此基础上扩展车辆辅佐操控和重要数据备份功用,体系将会有更宽广的使用远景。
参考文献:
[1] 邬宽明. CAN总线原理和使用体系规划. 北京航空航天大学出版社. 1996 (修改:chiying)