基于CAN总线技术的主从式通信系统
2017-04-01王涛张封
王涛++张封
摘要:CAN总线是一种很有前途的现场总线,CAN总线通信相对于一般的串行通信总线,它的实时性、可靠性和灵活性的特点更加突出。CAN总线技术在工业控制、车载、轮船、纺织以及智能家居系统中得到广泛的应用。本文的目的就是对CAN总线技术进行研究,并且利用低功耗、高性能的ARM微处理器设计一个主从式通信系统,实现CAN总线报文传输。
关键词:CAN总线技术 ARM微处理器 主从式通信系统 报文传输
中图分类号:TP273.5 文献标识码:A 文章编号:1007-9416(2016)10-0104-01
CAN总线是由德国 BOSCH公司为实现汽车测量和执行部件之间的数据通信而设计的一种现场总线,是一种支持分布式控制及实时控制的串行通信网络,CAN总线规范已成为国际标准。满足对系统可靠性和灵活性要求较高的工业控制系统。发展主要表现为控制面向系统分散化和多元化,分散式工业控制为了适应这种要求得到了快速的发展,本文就CAN总线技术进行研究,并且设计实现了CAN总线在主从机之间的通信。
1 主从通信系统结构设计
STM32F103的CAN接口兼容规范2.0A和2.0B(主动),位速率高达1兆位/秒。它可以接收和发送11位标识符的标准帧,也可以接收和发送29位标识符的扩展帧。具有3个发送邮箱和2个接收FIFO,3级14个可调节的滤波器。适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用[3]。
利用CAN控制器把要发送的报文通过CAN_Tx线发送到CAN收发器,然后由收发器把这个逻辑电平信号转化为差分信号,通过差分线CAN_High和CAN_Low线输出到CAN总线网络。在接受数据时,这个过程相反。基于CAN总线的主从通信系统的结构框图如1所示。
2 主從通信系统软件设计
CAN的中断由发送中断、接收FIFO中断、错误中断,接收FIFO中断分为FIFO0和FIFO1的中断,本实验中使用的RX0中断通道即为FIFO0中断通道,当FIFO0S收到新报文时引起中断,我们就在相应的中断服务函数读取这个新报文。程序执行流程:主机开始启动,初始化主机系统并且打包报文并且发送到CAN网络,判断是否接收到报文,如果是的话打印接收到的报文,主机结束,初始化从机设备判断是否接收到报文,然后把接收到的报文通过串口打印,打开报文并且发送到CAN网络。
3 系统调试结果
主机开始启动,初始化主机系统并且打包报文内容:扩展ID号ExtId:0x1314数据段的内容为Data[0]=0xab,Data[1]= 0xcd并且发送到CAN网络,判断是否接收到报文,如果是的话打印接收到的报文,主机结束,初始化从机设备判断是否接收到报文,然后把接收到的报文通过串口打印,打开报文内容:扩展ID号ExtId:0x131数据段的内容为Data[0]=0xdc,Data[1]=0xba并且发送到CAN网络。从超级终端上可以显示通信的结果如图2所示。
4 结语
基于CAN总线技术的主从式通信系统具有很广泛的应用需求,利用RX和TX电路与各模块组通信,数据传递快,而且便于调整延时,数据通路单元清晰可见,采用时序分析设备可以直接对路径进行约束,节省了开发成本,降低了后端设计的复杂度和成本。CAN总线技术在工业控制、车载、轮船、纺织以及智能家居系统中得到广泛的应用。
参考文献
[1]陆前锋.肝CAN控制器SJA1000的智能高速控制系统设计[M].电子设计应用,2003: 4-5.
[2]张培仁,孙力.基于C语言C8051F系列微控制器原理与应用[M]北京:清华大学出版社,2007.65-66.
[3]王黎明,夏立,邵英.CAN现场总线系统的设计与应用[M].北京:电子工业出版社,2008(16):104-105.
收稿日期:2016-09-01
作者简介:王涛(1988—),男,河南周口人,在读研究生,研究方向:控制工程。