在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
如图2-1是车载网络的构想示意图。CAN等通信协议的开发,使多种LAN通过网关进行数据交换得以实现。
图2-1:CAN总线车载网络分布
CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。在发送消息时,发送方使总线的电平发生变化,将消息发送给接收方。
图2-2:CAN总线的两种方式
目前汽车上的网络连接方式主要采用两条CAN,如图2-2所示。
一条用于驱动系统的高速CAN,速率达到500kb/s。主要面向实时性要求较高的控制单元,如发动机、电动机等。另一条用于车身系统的低速CAN,速率是125kb/s。主要是针对车身控制的,如车灯、车门、车窗等信号的采集以及反馈。其特征是信号多但实时性要求低,因此实现成本要低。
因为CAN总线系统上并联有多个元件,这就要求整个系统的布置满足以下要求:
1。可靠性高:无论是内部的还是外部的传输故障都能被准确识别。
2。使用方便:某一单元出现故障的情况下,其余功能能保持原有功能。
3。数据密度大:所有控制单元在任一瞬间的信息状态均相同,这样就使得两个控制单元之间不会有偏差。当系统某一处有故障时其余元件都会得到通知。
4。数据传输快:传输速率快才能满足实时要求。文献综述
CAN总线拥有安装在控制器内部的收发器,汽车模块可将汽车CAN总线数据解析后通过USART输出,供用户二次开发。该模块体积小巧,易集成于用户系统,同时使用USART输出极易于二次开发。因此我们可以在CAN总线上接出一个接口,让它输出车辆的速度,再使用处理器对其分析并反馈。
2。3 stm32芯片和CAN接口
本次设计中,我使用的模拟工程车辆的通用板的芯片是144个引脚的stm32f103zet6,它的核心是ARM的32位CPU。加上8M外部晶振倍频后,运行的最高频率可达到72MHz,它内置晶体振荡器、RC振荡器以及RTC振荡器。可使用SWD进行串行调试,同时还有三个USART串口可用于通信。
stm32芯片自带CAN接口,在芯片中烧入对应的程序后,可以让其内部形成一个自发自收的模拟CAN回路,然后可以通过串口将数据发送出来。
芯片中的CAN接口兼容规范2。0A和2。0B,位速率达1兆位/秒。它可以接受和发送11位标识符的标准帧,也可以收发29位标识符和扩展帧。内部SRAM缓冲最多可处理32个报文对象。
第三章 系统设计
3。1总体设计
本次设计使用两块单片机系统电路板,一块通用板用于模拟工程车辆以及车辆上的CAN总线,另外一块自己设计的单片机系统则为控制模块。
在模拟车辆的通用板上,stm32芯片本身含有CAN接口,在系统中加入CAN总线的代码可以让它形成一个自发自收的回路[7]。在模拟过程中,我们使通用板不断地发送模拟的速度数据,同时检测周围环境的温度以及湿度,再通过串口将数据传送出来。来.自^优;尔|论,文:网www.youerw.com +QQ752018766-
在另一块自己设计的单片板上,我们使用stm32f103cbt6芯片作为主控模块,整个单片机系统被称为控制板。它同时集成了信号灯、蜂鸣器、实时时钟模块(RTC)、USB供电、串口接口等一系列模块。当模拟车辆上的速度信号传到控制板时,控制板对其进行分析处理。