基于STM32的CAN总线接口控制系统设计

基于STM32的CAN总线接口控制系统设计
心宽一寸病退一丈梁妍;原立格;郝洋洲
【摘 要】本文设计了一种汽车的接口控制系统,以STM32为主控器,搭配传输速度快且性能稳定的TJA1042CAN收发器,可以与CAN总线数据和串行数据同时通信,该接口与多种多媒体设备连接,使车身在融合了强大的娱乐功能的同时又可以更加方便地对车辆进行监控和控制,实现汽车智能化.
【期刊名称】《河南科技》
谢尔宾斯基地毯
【年(卷),期】2016(000)011
【总页数】4页(P95-98)
【关键词】接口控制;STM32;CAN总线;通信;智能化
【作 者】梁妍;原立格;郝洋洲
【作者单位】郑州工商学院,河南郑州451400;郑州工商学院,河南郑州451400;河南省航空物探遥感中心,河南郑州450053
【正文语种】中 文
【中图分类】TP273.5
近年来,嵌入式在车身上的应用愈加流行,与CAN总线的高效通信也提高了车辆的总体性能。CAN总线是一种实时总线,有一定的通信协议来作为标准,数据的传输可以用普通的线束也可以用双绞线,而且是一种多主多控的通信总线,带有自检功能,还能有效抵抗电子干扰,传输速率最高可达1Mbps。随着嵌入式技术的快速发展,在汽车应用中将嵌入式与CAN总线配合使用,不仅降低了制造成本,提高了运算传输速度和安全性,还更加灵活、易操控[1]。
本文采用具有CAN接口的STM32开发板作为通信的主芯片,搭配具有CAN收发控制功能的TJA1042模块,来实现一个完整的CAN通信网络系统。总线连接的各模块除了和主芯片通信以外,还可以依据总线协议相互通信。在汽车上将汽车CAN总线数据转化为串口数据与
智能产品对接,用作监控车辆信息,指示车身动态,还可以警示开车人员等,同样将与串口对接的电子产品发出的串口数据转化成能够控制汽车的CAN总线数据,就能控制车载空调、倒车雷达、车辆照明、车辆设置等车辆已有的与总线对接的车载电子,使汽车智能化的功能更加强大[2]。
硬件总体是以STM32为主控芯片,通过CAN收发器与CAN总线对接,从而控制CAN总线的收发。总体结构设计如图1所示。该结构中的显示屏模拟及车辆模型是调试模拟模块。STM32的I/O口经硬件电路转换后输出10V电压,然后STM32对ACC、ILL(背光)、SONAR(倒车雷达使能)等进行控制,通过串口直接连到串行总线上。CAN总线网络结构如图2所示,总线的两端都有一个120Ω的电阻。
2.1 主控模块设计
本设计选用的主控芯片是STM32072C8,是高性能的32位RISC内核的MCU,工作频率高达48MHz,具有高速嵌入存储器以及各种增强性外设和I/O,提供标准的通信接口、USB全速器件、CAN等功能,主要用在应用控制和用户接口、手持设备、A/V接收器和数字TV、PC外设、游戏和GPS平台、PLC、逆变器、打印机、扫描仪、告警系统视频互连和HVAC。
该芯片使用时供电电压是2.0~3.6V。主控模块的最小系统包括时钟电路和复位电路两部分,其电路如图3所示。该时钟电路选用8MHz的晶振,配合2个20PF的电容器件构成,整个最小系统电路结构简单,容易实现。
2.2 CAN通信模块
由于STM32072集成了CAN控制器,所以STM32可直接与CAN收发器相连来控制CAN总线数据的收发。本设计用的CAN收发器为TJA1042,其是一款高速CAN收发器,是CAN控制器和物理总线之间的接口,为CAN控制器提供差动发送和接收功能。该收发器专为汽车行业的高速CAN应用设计,传输速率高达1Mbit/s,供电电源选用5V电源。图4是STM32的CAN模块通信接口的原理图。
2.3 电源电路设计
王子灿
动漫部落本设计采用的是12V供电系统,而主芯片需要3.3V电源,CAN通信模块需要5V电源,为了给主芯片和CAN收发器提供合适的电压,实现了5V和3.3V 2个供电系统。其中,5V电源电路设计如图5所示,电路中选用了CJ78L05稳压器,输出5V稳定电压。图6为3.3V电源电路设计,选用的稳压器为ZTP1117,输出稳定电源3.3V。
2.4 主控器外围接口控制电路的设计
在控制器的外围可以接多个电路,如车辆各种智能功能的控制电路等。在控制器与CAN总线的配合下,可以完成数据的收发及控制。若连接显示模拟器,经USB转串口(FT232)发出串口数据,主控芯片接收到串口数据之后,从CAN_TX经I/O口转CAN总线数据(TJA1042)来控制与CAN总线相连的各汽车ECU模块。若连接的是车辆模型的各种功能口,既可以完成STM32经TJA1042来监控车身发出的CAN总线数据,再由串口TX发送给显示屏,显示当前的汽车信息,又能实现主控芯片接收到CAN总线数据之后经电路转换直接控制ACC、背光、倒车雷达使能。设计以控制ACC功能为例,说明主控芯片直接控制汽车相关功能。控制电路图如图7所示,该电路与STM32的14引脚连接,主控芯片接收到CAN总线数据之后经过电路转换直接控制ACC功能的实现。
2.5 仿真调试接口设计
在线调试采用串行单线调试(SWD),只需要1根时钟信号线(SWCLK)和1根信号线(SEDIO)再加上3.3V供电和连接地线即可。与标准的JTAG仿真调试相比,不仅提高了调试速率,减少GPIO口的使用,还节省了电路板的空间,简化了PCB布线。SWD接口电
路如图8所示。
软件是基于IAR Systems平台来开发,选用C++语音进行编程,仿真模拟界面选择G语言来实现。结构上采用模块化方式,除ST公司提供的固件库基础配置外,程序主要分为几个模块:系统初始化模块、应用程序模块、应用程序基础配置模块、应用程序优化调用模块。程序流程图如图9所示。
初始化配置主要包括时钟、I/O口、串行端口、CAN口、硬件输出和中断等的配置。串行通讯采用USART复用I/O口PA9和PA10作为串行总线的TX和RX,TX配置为输出,速度为50MHz,RX配置为复用上拉输入。采用标准USART通信接口,逻辑电平为3.3V,USART工作在8N1模式,即8位数据位,无奇偶校验,一位停止位。工作方式和中断配置,波特率固定在38 400bps。
CAN通讯采用复用I/O口PB9和PB8作为串行总线的CAN_TX和CAN_RX,CAN_TX配置为GPIO_PuPd_NOPULL(无上拉也无下拉)输出,速度为2MHz,CAN_RX配置为复用上拉输入。逻辑电平为4V,CAN通讯同样工作在8N1模式,即8位数据位,无奇偶校验,一位停止位。CAN通讯的配置参照CAN2.0标准帧格式,总线传输波特率为500KHz/s。
本设计中运行结果的模拟以某一项功能为例,显示屏模拟发出串口数据经控系统转换成CAN总线数据发送给车辆模型,或控制系统接收到CAN总线数据以后直接转硬件输出高电平发送给车辆模型,运行结果依车辆模拟的状态显示为准,车辆模拟如图10所示。控制系统接收总线数据,然后转成串口数据发给显示屏模拟,运行结果以显示模拟的状态显示为准,显示屏模拟如图11所示。
本设计的控制系统可以作为一个解码盒来使用,利用嵌入式和CAN总线相结合的控制系统,不仅打破了传统汽车娱乐系统的配置方法,给超智能汽车的打造留足了空间,可以在原有基础上扩展更多的功能,极大地节约了成本,简化了繁琐的布线方式,提高了车载电子系统的稳定性[3]。智能娱乐车载电子系统离不开这样一款解码盒来充当媒介,越来越多且越来越智能、精美的电子产品需要与汽车结合来丰富人们的驾驶旅途生活,而市场的需求也将进一步推进车载解码盒的快速研发升级,变得效率更高,功能更加强大,性能更加稳定,人们的驾驶生活也会更加安全、舒适。
【相关文献】
[1]杨春杰,王曙光,亢红波.CAN总线技术[M].北京:北京航空航天大学出版社,20x12
10.
[2]卢有亮.基于STM32的嵌入式系统原理与设计[M].北京:机械工业出版社,2013.
[3]杨晶.CAN总线接口电路设计[J].办公自动化,2010(2):34-35.

本文发布于:2024-09-22 15:48:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/25208.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:总线   数据   控制   车辆
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议