单荣明 李浩
重庆邮电大学汽车电子与嵌入式系统研究所
基于CCP协议的汽车ABS标定系统CAN通信模块的研发
[摘要] CAN总线以其通信效率高、可靠性强、连接方便等优点在汽车电子领域得到了广泛的应用。CCP协议作为CAN通信系统的标定协议,以主从机通信模式实现了CAN网络中标定工具对一个或多个控制器的在线标定和实时监测。基于CCP协议的汽车ABS标定系统CAN模块的研发,为ABS控制系统的开发提供了准确、实时的通信保证,显著缩短了ABS控制系统的开发周期。
[关键词] 防抱死系统 CAN CCP
0 引言
传统的ABS参数匹配一般采用手工修改控制程序、调试匹配控制参数,重新编译下载方式来实现,开发的周期较长。而基于CCP协议的ABS标定系统,利用标定系统的实时消息处理机制,可在线检测ABS控制效果并对控制参数进行标定。借助标定系统的工具可对控制效果进行分析和评价,并对控制参数进行优化,缩短了ABS控制系统的开发周期。其中通信模块是标定系统中电控单元ECU和PC标定平台数据传输的核心部分,它直接影响数据传输的准确性和实时性。
控制局部网(CAN总线)是一种具有很高保密性、有效支持分布式控制或实时控制的串行通信网络。CAN的应用范围从高速网络到低成本的多线路网络。在自动化电子领域、发动机控制部件、传感器、抗滑系统等应用中,CAN的位速率可高达1Mbit/s。
1 CAN总线通信
1.1 CAN总线介绍
CAN总线是德国BOSCH公司在20世纪80年代初为解决现代汽车中众多的控制器和测试仪器之间的数据交换而开发的一种串行数据通信总线。由于采用了许多新技术及独特的设计,CAN总线的数据通讯具有突出的可靠性、实时性、开放性、灵活性等特点。CAN总线通信接口集成了CAN协议中的物理层和数据链路层功能,可完成对通信数据的成帧处理。CAN控制器具有单片形式和集成于通用微控制器上的片上形式两种。笔者采用集成了片上TwinCAN模块的XCl64单片机。
1.2 CAN总线通信的优点
CAN总线采用了独特的设计,可靠性、抗干扰性及通信方式灵活性高于已有的通信技术,其优点概括如下:
⑴ 使用简单方便。许多CAN控制器实现了CAN物理层及数据链路层的大部分功能,用户只须对CAN控制器进行初始化和对CAN总线上的数据进行收发操作即可实现通信。
⑵ 高可靠性。CAN上的最大通信速率可达1Mbps,CAN总线是多主节点,各节点通过总线仲裁获得总线控制权。完善的错误处理机制保证了高噪声干扰环境下数据传送的安全可靠。
⑶ 系统可扩展性能好。
2 CCP协议
CCP协议(CAN Calibration Protocol)即CAN标定协议属于CAN通信的应用层协议,主要用于对控制器的标定,同时可进行循环或事件驱动的数据采集和检测。目前广泛应用的CCP协议2.0版采用CAN2。0B(11位或29位ID)实现测量标定系统与ECU之间的通信,该协议具有通用性强和适用范围广的特点,无论是8位低速带CAN的控制器还是32位高速带CAN的控制器,均可满足工作要求。
基于CCP协议的ECU标定采用主-从通信方式,主设备通过CAN总线与多个从设备相连,如图1所示。其中主设备是测量标定系统,从设备是需要标定的ECU。根据CCP协议,主设备首先与其中一个从设备建立逻辑连接,建立逻辑连接后主、从机之间所有的数据传递均由主机控制,从机执行主机命令后返回包含命令响应值或错误代码等信息的报文。任何一个从机都可以定时地根据由主机通过控制命令所设置的列表来传递内部的数据。因此数据的传递是由主机初始化并且由从机来执行的,并且是由固定的循环采样频率或者事件来触发的。
CCP定义了两种工作模式:Polling(查询)模式;DAQ(Data Acquisition Command)模式。查询模式下,主设备与从设备间的每一次通信都由主设备发送命令来起始,从设备收到主设备的命令后,执行相应的操作并反馈一帧报文。这种工作模式实现简单,而且占用ECU内存资源较小,但由于需要主机与从机之间进行“一问一答”的信息交互,工作效率不高。DAQ模式使从设备可以脱离主设备的命令控制按一定周期自动向主设备上传数据。DAQ模式下,主设备首先发送一条请求DAQ的命令,从设备收到后,按命令中的参数自行配置并组织需要上传的数据,然后按一定周期自主向主设备上传数据。这种模式由于不需要主机通过命令逐步控制,工作效率高,但实现较复杂,如果需要上传的数据量很大,会占用大量ECU内存空间。
基于CCP协议的标定只占用两帧CAN报文,分别是命令接收对象CRO(Command Receive Object)和数据传输对象DTO(Data Transmission Object),如图2所示。CRO由主设备发给从设备,DTO是从设备反馈的报文。两者分别通过一个自己的ID标识符进标识(CRO-ID与DTO-ID)。
3 应用实例
3.1 硬件设计
该控器选用集成了CAN控制器的英飞凌公司的XCl64CS芯片作为主控制器。TwinCAN模块包括两个全功的CAN功能节点,这两个节点可独立工作或者通过网关功能交换数据帧和远程帧。CAN帧的发送和接收遵循CAN2.0B规范,可以发送和接收1l位标识符的标准帧,或29位标识符的扩展帧。TwinCAN模块能够满足复杂嵌入式控制应用的实时需求。
两个CAN节点的定时都源于外设时钟,可以通过编程使其达到l Mbps。每个CAN节点通过一对接收和发送引脚链接到总线收发器。根据实际需要,32个报文对象可独立地分配给两个CAN节点之一。仲裁寄存器对接收到的报文进行滤波,接收到的报文标识符与保存在内部CAN控制器中的所有报文对象的标识符进行比较,比较操作的结果与验收屏蔽寄存器中的内容是否相同。如果检测到是一致的,接收到的报文存储到CAN控制器的报文对象中。TwinCAN模块框图如图3所示。
图4是CAN通信接口电路。TLE6250针对汽车环境设计的CAN收发器,支持传输速率高达1Mbps,具有短路和开路保护功能以及抗干扰性能。终端负载电阻连接在CAN-H与CAN-L之间,用于抑制反射,本系统电阻为120Ω。
3.2 软件设计
根据CCP协议,本系统将在标定平台与ABS控制器之间建立逻辑连接。标定平台的站地址为0X49,ABS控制器的站地址为00X28。
CCP协议至少需要两个消息对象:主设备发给从设备的消息对象(CRO);从设备发送给主设备的消息对象(DTO)。CRO用来接收命令代码和相关的参数,以执行内部函数或者在多个已建立逻辑连接的CAN节点之间进行内存内容传输,即传送主设备下达给从设备的命令。当从设备收到CRO命令后,就给主设备以DTO的形式发送一个握手消息。这个DTO消息的返回代码是用来决定与之关联的CRO命令执行的成功与否。
CCP驱动模块中两个报文对象取如下扩展ID标识码:CRO为0x01020304;DTO为0x03040506。在实际设计中,用第0个报文对象来作为DTO报文的发送,第5个报文对象来作为CRO报文的接收。接收采用中断方式,以实现系统的实时性。流程如图5所示。
3.3 实验结果
图6即为在本文开发的基于CCP协议的汽车ABS标定平台基础上,进行实时标定的一个界面。标定平台中修改的标定参数可以通过CCP协议的标定系统通过CAN通信模块实时地传递给ABS ECU中,再次进行验证,验证的结果通过检测曲线实时反映出来。通过多次的标定修改,最终达到理想的控制效果,省去了修改控制参数后再烧写入ECU的繁琐过程,大大缩短了开发周期。
4 结论
基于CCP协议的ABS标定系统大大缩短了ABS控制系统的开发时间,节约了ABS控制器的调试成本。同时,建立在CAN通信基础上的标定系统,具有实时性好,安全可靠,可实现同时进行控制器的在线标定和数据实时监测,传输速率高等优点。随着汽车工业的不断发展和人们对CAN总线的不断深入研究,CAN总线技术将会在汽车电子的其他领域获得广泛的应用。