CAN总线让客车轻松换挡—汽车CAN总线实验教学系统
成都盘沣科技有限公司   2015-10-12 08:48:05 作者:liaina 来源:成都盘沣科技 文字大小:[][][]

  CAN总线的模型结构只有3层:物理层、数据链路层和应用层,传输介质为双绞线,通信速率最高可达1 Mb/s(40 m),其通信方式灵活,无需站地址等节点信息,采用非破坏性总线仲裁技术,满足实时要求。
  在研究CAN 2.0B规范的基础上,采用自定义通讯协议的方案实现了系统前后两个节点的通讯。前节点发出命令,后节点接收后不发确认信号,前节点收到后节点的信息后判断是否正确,如果不正确或在规定的时间内收不到,则重新发命令,重发超过规定的次数为通讯故障;后节点发出信息,前节点接收后不发确认信息,前节点在规定的时间内收不到则为通讯故障。节点数据帧基本结构定义如下:
系统中每个节点数据帧用ID区别,每个节点可定义多个不同的数据帧,用以传送不同的信息。
  系统抗干扰设计 
系统将从软硬件两方面采取措施,综合防止干扰对单片机系统工作的影响。 硬件方面主要是切断来自传输通道和电源线的干扰,设计中通过滤波电容、光电耦合器的应用以及合理的元件布局和布线,有效地抑制分布电容的干扰、电磁互感、漏磁的干扰等,同时PCB板科学的接地,很好地解决信号完整性问题,改善了PCB板的电磁兼容性(EMC)。 软件方面则是通过指令冗余、软件陷阱和看门狗技术来保证程序的正常运转,有效地解决了程序运行过程中的跑飞和死循环问题。
  实际应用对系统的实时性与可靠性要求较高,在软件设计中采用了多任务实时操作系统μC/OS-Ⅱ的编程方法,即将应用程序分解为若干个独立的进程,再另外创建一个监控进程,监视各个进程的运行情况,这样就保证系统运行的实时性和可靠性[2]。
  系统采用Keil C51编译器,结合所用单片机P89C591的技术特点,移植一个支持P89C591的μC/OS-Ⅱ操作系统的工作内容包括:
  (1) 在OS_CPU.H中用#define设置一个常量值用于控制任务堆栈的增长方向。
  (2) 在OS_CPU.H中声明10个数据类型。
  (3) 在OS_CPU.H中用#define定义3个宏。
  (4) 在OS_CPU.C中编写6个简单的C语言函数,即初始化任务堆栈、任务创建钩挂函数、任务删除钩挂函数、任务切换钩挂函数、统计任务钩挂函数和定时钩挂函数。
  (5) 在OS_CPU_A.ASM中编写4个汇编语言函数。
  系统共需创建4个任务,系统任务分配情况如图4所示。
  CAN总线扫描任务定时扫描CAN总线的各寄存器,用于接收前置节点发送的手柄位置信号。
  显示任务主要担任显示、刷新等职责,用于调试过程中观察动作的完成情况。
  系统主任务用于执行数据的逻辑分析判断及超限报警等功能。数据采集任务将实时扫描各个数据采集端口,用于采集车速,发动机转速等参数。
  主函数负责系统的初始化以及任务的创建、启动等。
  各个任务之间通过信号量、消息队列等途径可以相互通信,以保证任务执行得实时与同步。
  3 系统通信机制设计
  轻便换档系统对通信系统的要求是:数据传输可靠,实时性高,传输速率高,误码率低[3]。CAN总线作为一种有效支持分布式控制或实时控制的串行通信网络,具有很强的灵活性、简单的扩展可能性、优良的通信实时性以及通信的可靠性和检错能力,能够应用于各种苛刻的电子环境,已经成为汽车的首选网络通讯总线形式。


【咨询电话】028-68327818 68627808
【业务联系人】贺先生
【业务联系电话】13608179927
【业务联系QQ】800033630
【E_mail】
sales@pfautoecu.com
 
【客服联系人】袁先生
【客服联系电话】18602801577
【客服联系QQ】800033630
【E_mail】
fae@pfautoecu.com
 
【公司地址】 四川成都龙泉国际汽车城经开区南二路
【盘沣官方网站】
http://www.pfautoecu.com

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

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

成都盘沣科技有限公司

Copyright © 2009-2011 

腾讯企业QQ
蜀ICP备13022615号