汽车CAN总线实训培训-车门控制实验箱基础实验2
成都盘沣科技有限公司   2012-07-23 23:28:17 作者:PFCEO 来源: 文字大小:[][][]

本实验的结构框图主要由三部分组成:电脑,PFautoCAN2接口卡,节点(实验箱)。其结构框图如下:

电脑:已经安装有PFautoCAN软件,并装有PFautoCAN2接口卡、软件使用许可用USKkey的驱动程序。控制软件进行报文收发,并实时显示。

PFautoCAN2接口卡:主要用于检测采集实验箱发送到总线上的报文,并通过USBCAN先传输到电脑上。

节点(实验箱):能够发送或接收报文的带CAN的网络节点,比如倒车雷达模块,防盗系统模块等。

b.车窗的网络控制的逻辑图(以这个信号为例)。

 

状况

控制位信息

车窗控制ECU

PFautoCAN开发套件(上位机)

1

前左门窗状态

2

前左门窗状态

 

i 车窗控制模块作为报文发送模块,上位机(PFautoCAN开发套件)作为报文接收模块。

 

   按上述过程建好报文和数据库后,连接好设备。初始状态下,报文中该信号为000),即此时电机停止转动,车窗静止。当开启车窗上升按钮时,电机正传,车窗上升,此时信号状态为101)。当开启车窗下降按钮时,电机反转,车窗下降,此时状态为210)。同时,车窗控制模块以CAN报文的形式实时发送到上位机。电脑上通过PFautoCAN开发套件实时监控数据。

PFautoCANGraphics窗口:

ii 车窗控制模块作为报文接收模块,上位机(PFautoCAN开发套件)作为报文发送模块。

按上述过程建好报文和数据库后,连接好设备并打开电源。初始状态下,报文中该信号为000),即此时电机停止转动,车窗静止。上位机向车窗控制模块发送报文,控制车窗控制模块的前左门窗状态。车窗控制模块接收报文,解析报文的中的信息,根据报文的信息,作出相应的反应。

上位机发送报文中,控制前左门窗状态的信号位为101)时,当车窗控制模块接收报文,作出反应,即电机正传,车窗上升。当上位机发送报文中,控制前左门窗状态的信号位为210)时,当车窗控制模块接收报文,作出反应,即电机反传,车窗下降。

PFautoCANTrace窗口:

(i)电机停止转动,车窗静止时。

 

 

(ii)电机正向转动,车窗向上移动。

 

(iii)电机反向转动,车窗向下移动。

3)软件流程图

车窗模块根据按键信息控制车窗,并发送报文的流程图如下:

车窗模块接收报文控制车窗的程序

void GETCANInf(void)

{

   if(RxData[1]&0x80==0x80)  LRZ=1;

   if(RxData[1]&0x40==0x40)  LRF=1;

  

   if(RxData[1]&0x20==0x20)  RRZ=1;

   if(RxData[1]&0x10==0x10)  RRF=1;

   if(RxData[1]&0x08==0x08)  LFUPs=1;

   if(RxData[1]&0x04==0x04)  LFDOWNs=1;

   if(RxData[2]&0x08==0x08)  RFUPs=1;

   if(RxData[2]&0x04==0x04)  RFDOWNs=1;

   if(RxData[2]&0x80==0x80)  RRUPs=1;

   if(RxData[2]&0x40==0x40)  RRDOWNs=1;

   if(RxData[2]&0x20==0x20)  LRUPs=1;

   if(RxData[2]&0x02==0x02)  LRDOWNs=1;

}

void CANdataCon(void)

{

  if(LFUPs)    

       {

          M_OUT0=1;

          M_OUT1=0;

        } else if(LFDOWNs)

       {

          M_OUT0=0;

          M_OUT1=1;

       }else

       {

         M_OUT0=1;

         M_OUT1=1;

       }     

   if(RFUPs)    

       {

         M_OUT2=1;

         M_OUT3=0;

       }else if(RFDOWNs)

       {

        M_OUT2=0;

        M_OUT3=1;

    } else

       {

         M_OUT2=1;

         M_OUT3=1;

       }

  if(LRUPs)    

       {

         M_OUT4=1;

         M_OUT5=0;

       } else if(LRDOWNs)

       {

         M_OUT4=0;

         M_OUT5=1;

       }else

       {

         M_OUT4=1;

         M_OUT5=1;

       }

if(RRUPs)     

       {

         M_OUT6=1;

         M_OUT7=0;

     } else if(RRDOWNs)

       {

         M_OUT6=0;

         M_OUT7=1;

      }else

       {

         M_OUT6=1;

         M_OUT7=1;

      }

  if(LRZ)     

       {

         M_OUT8=0;

         M_OUT9=1;

       

       } else if(LRF)

       {

         M_OUT8=1;

         M_OUT9=0;

       }else

       {

         M_OUT8=1;

         M_OUT9=1;

       }  

  if(RRZ)   

       {    

         M_OUT10=1;

         M_OUT11=0;

       }else if(RRF)

       {

         M_OUT10=0;

         M_OUT11=1;

       } else

       {

         M_OUT10=1;

         M_OUT11=1;

       }

}

4)软件模块功能介绍

void Init_IO(void); 为单片机端口寄存器控制函数,定义端口为输入还是输出;

void RTC_Init(void);定时器初始化函数,定义为100ms中断一次;

void MCU_Init(void);电机控制端口初始化函数,初始化为停止;

void MCG_Init(void);时钟源初始化函数;

void CANInit(void);CAN通信初始化函数;

void Send_CAN_Msg(void)CAN发送数据函数;

void CAN_TxData( UINT32 CAN_ID,UINT8 Msg_Length,UINT8 *CANTxData)  CAN发送数据函数;

void GETCANInf(void)  ;对CAN发送数据分析函数

void CANdataCon(void)   CAN发送数据控制电机转动函数

void scankeystate(void);按键状态扫描函数,按键状态放在相应的变量中;

void MOTORcontrol(void);天窗电机控制函数;

interrupt VectorNumber_Vrtc void RTC_ISR(void);定时器中断函数;

interrupt VectorNumber_Vcanrx void CANRx_ISR(void)CAN发送数据中断函数。

 

—————————成都盘沣科技有限公司—————————
【咨询电话】028-62496199
【业务联系人】先生
【业务联系电话】13608179927
【业务联系QQ1415175

【客服联系人】先生
【客服联系电话】18602801577
【客服联系QQ1206695207

【公司地址】 四川成都龙泉国际汽车城
【盘沣官方网站】 http://www.pfautoecu.com

 

最新评论
发表评论
标题
内容
表情
 

  分类导航
业界动态  (210)
企业新闻  (141)
汽车电子及CAN总线技术  (504)
汽车电子开发  (78)
  最新文章

成都盘沣科技有限公司

Copyright © 2009-2011 

腾讯企业QQ
蜀ICP备13022615号