DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1140|回复: 0
打印 上一主题 下一主题

[待整理] 汽车电动空调的数据采集系统的研究

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 20:19:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1 引言
汽车空调作为车内温度小环境的控制中心,其作用不言而喻。由于过去的汽车空调检测系统因为控制策略单调而没有使用综合检测平台的必要,即使有控制过程检测,大都使用昂贵的采集设备如数据采集卡,其通信方式也以串行口通信为主,无法接入整车环境进行监控[1]。针对这一情况,本文所设计开发的检测系统主要对电动汽车空调运行过程中的四个工程物理量进行检测分析:风机的电压、电流,压缩机端口的高压、低压。本课题来源于某汽车空调系统的开发过程中所需检测系统的设计,主要用于使空调系统的控制策略的执行更加透明化、直观化,为控制策略的优化提供数字依据;为汽车空调后续开发提供可靠的保证。
2采集系统设计
2.1总体设计

如图 1所示,在该系统中, DSP部分的软件设计主要完成以下工作:数据采集周期的设定、AD转换、数据校正及滤波等。并可以接收上位机通过 CAN总线发来的采集开始指令打开采集或关闭采集功能,在采集开始后按照要求对四路信号进行采样及软件校正,校正完成后将采集结果保存在 CAN邮箱内,通过 CAN控制模块进行发送。在本系统中,电压、电流采
2.2硬件部分
以 TI公司的 TMS320F2812为该四通道数据采集系统的核心。该款 DSP芯片是 TI公司 2000系列中的一员,最高主频可达到 150MHz,具有强大的数字信号处理能力[2]。片内集成的 12位 AD转换器共有 16个通道,转换速率在可达到 12.5MSPS(ADC时钟为 25MHz时),在采集速度及精度上均能达到本系统的设计要求。而且该 AD模块可采用多种方式触发能够满足不同的任务需要。输入 2812 AD端的模拟信号由传感器采集变换得到。本系统所用传感器输出信号为 4~20mA的电流环信号,而 AD模拟输入范围为 0~3V电压信号。
CAN是控制器区域网络( Control Area Network)的简称,最早是由德国 BOSCH公司推出的,用于汽车内部测量与执行部件间的数据通信,其总线规范现已被 ISO国际标准制定为国际标准[3]。它广泛的应用于汽车电子、工业控制,其信号传输介质为普通双绞线,通信速率最高可达 1Mbps。CAN总线具有较强的抗干扰能力。本系统采用 CAN总线的通信方式,也方便了整车调试的接入。
2.3软件部分设计
2.3.1 DSP软件部分
该部分软件主要包括两个部分:模拟信号的 AD转换和CAN总线通信。因为TMS320F2812内置有 12位 AD转换器,因此转换部分可分为 AD模块配置和数据转换处理;而 AD模块的配置主要包括工作和通道的选择。在本系统中,选用连续转换方式;需要采集的模拟量共四个,加上 A、B通道各配置两个校正输入端口,所以总共需要占用 8个模拟输入口。
50ms200ms集周期为,高、低压采样周期为 。 部分配置程序如下: …
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; //双排序发生
AdcRegs.ADCTRL1.bit.CONT_RUN = 1; //连续转换方式
AdcRegs.ADCTRL1.bit.CPS = 0; //分频系数为 1
AdcRegs.ADCMAXCONV.all = 0x0055; //共有 12个转换,采样值取 2次,标准值 1次
AdcRegs.ADCCHSELSEQ1.all = 0x1100;//转换序列
CAN总线通信主要包括 TMS320F2812中 eCAN模块邮箱的定义和邮箱中断子程序的设置[6]。
部分配置程序如下:
ECanaMboxes.MBOX0.MSGID.all = 0x003FFFFF; // mail0:00F
ECanaMboxes.MBOX5.MSGID.all = 0x0FFFFFFF; // mail5:3FF
// Configure Mailboxes 0-3 as Tx, 4,5 as Rx
ECanaRegs.CANMD.all = 0x00000030; // Enable  Mailboxes
ECanaRegs.CANME.all = 0x0000003F; // Specify that 2 bits will be sent
CAN模块有两种中断形式,一种是与邮箱有关的中断,另一种是系统中断,用于处理错误
或者与系统相关的中断源[4]。而本系统中 CAN与上位机通信主要是通过邮箱中断来实现。
CAN邮箱的中断程序如下:
interrupt void can_send(void)
{
if((((int) ECanaRegs.CANGIF1.all)<0) && (ECanaRegs.CANGIF1.bit.MIV1==4))
{ IER |=M_INT1;}  if((((int) ECanaRegs.CANGIF1.all)<0) && (ECanaRegs.CANGIF1.bit.MIV1==5))  { IER = M_INT9;}  PieCtrlRegs.PIEACK.bit.ACK9 = 0x1;
}
以高电压为例来说明本系统在数据采集、数据转换及发送的相应任务。
Pre_High= AdcRegs.ADCRESULT6 >> 4 + AdcRegs.ADCRESULT7 >> 4; Pre_High = Pre_High << 1; //高电压值 Pre_High = Ave_cur * CalGain - CalOffset *CalGain; ECanaMboxes.MBOX2.MDL.word.LOW_WORD = Pre_High; ECanaRegs.CANTRS.all=0x0000000C;
while(ECanaRegs.CANTA.all!=0x0000000C){}  ECanaRegs.CANTA.all=0x0000000C;
经实际运行证明执行结果达到了设计需要,说明该部分程序设计完全满足预期的任务调度规划,并能与硬件平台很好的配合工作。

2.3.2 PC机软件部分

此部分软件采用面向对象程序设计技术,关于 CAN232接口卡的硬件操作函数已经封装在 ControlCAN.dll,在 Visual C++的工程中添加 ControlCAN.lib和 ControlCAN.h这两个库文件和头文件。方便在程序中调用。在编译生成的应用程序中设置好有关 CAN232的相应参数,
开始采集过程。每次将采集到的数据写到数据文件并送到数据缓冲区,以实现采集模块和显示模块的数据共享。这部分的流程图如图 2所示:

在此工程中,使用 VC自带的属性页对话框,并设置相应的四个属性页,可以方便的切换及观察采集的数据波形、数据统计、数据帧、以及采集事件的统计。显示模块采用了 Measurement Studio的显示控件 (CNiGraph)。Measurement Studio是National Instruments(美国国家仪器公司)专为测试和控制领域开发的工具软件,将强大的数据采集分析功能无缝隙的集成到Visual Studio环境中。Measurement Studio向用户提供直观的测量硬件接口、高级分析函数、科学的用户界面控件及测量数据网络,可大大提高数据采集分析系统的开发效率[5]。
在本系统中。数据量庞大,针对此情况,建立了 Access数据库文件。Access是一个适应于普通场合的、典型的关系型数据库,根据关系型数据库的设计原理及本文的需求,对数据库的操作转化为对于相应记录集的操作,实现语言采用了 SQL语言实现。图 3为空调压缩机的四路数据的波形图图 4为此四路数据对应的数据值的统计图
3 结束语
本采集系统经过多次的软硬件测试,证实可以很好的满足对汽车空调压缩机系统相关参数的采集,所设计的上位机系统能够配合采集节点实现数据的显示、存储、数据记录、检索等功能,采用多线程,临界量等编程技术,结合Measurement Studio用户界面控件与分析函数库,方便、快捷地在 Visual C++环境下实现了数据采集系统,有效地降低了该类程序开发的复杂性,缩短了程序开发的周期,实验证明本系统具有实时性、可扩展性等优点。本文作者创新点:结合DSP和CAN总线技术应用到在线检测系统中,使得该系统的抗干扰能力、可靠性、准确性得到保障;提高运算速度和工作效率。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-17 17:34 , 耗时 0.093604 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表