APP下载

基于DSP和MCU的自确认气动执行器CAN总线通信系统

2015-04-21冯志刚

沈阳航空航天大学学报 2015年4期
关键词:执行器寄存器气动

冯志刚,邱 猛,田 丰

(沈阳航空航天大学 自动化学院,沈阳 110136)



基于DSP和MCU的自确认气动执行器CAN总线通信系统

冯志刚,邱 猛,田 丰

(沈阳航空航天大学 自动化学院,沈阳 110136)

为了解决工业控制中自确认执行器的数据采集与传输问题,同时满足工业执行器控制中的高速率和高可靠性,提出了一种基于TMS320F28335和C8051F060片内集成CAN模块构成的CAN总线通信系统。对CAN总线的优点、工业应用情况、基本结构、硬件设计、软件设计和CAN总线的位时间配置等方面做了详细论述,搭建了基于自确认执行器硬件平台的CAN总线通讯系统并进行了实验。实验结果表明,系统可以满足自确认气动执行器CAN节点的数据采集、传输和控制功能。

自确认气动执行器;CAN总线;TMS320F28335;C8051F060;分布式控制

执行器作为接收控制信息并对被控对象进行控制的装置,经常在恶劣环境中工作,比如高寒、高热、高碱、高粉尘、强腐蚀等等,因而很容易出现故障,对执行器的故障诊断就显得很迫切,因此自确认执行器的概念被提了出来[1]。执行器自确认功能的实现要求数据采集及传输具有高可靠性,这就对工业现场总线的抗干扰能力提出了较高的要求,另外对执行器的自确认算法实现同样需要较高的数据采样率和传输速率,这就要求现场总线具有较快的传输速率。

控制器局域网(Controller Area Network,CAN)[2]是由德国Bosch公司为汽车应用而开发的多主机局部网络,主要在汽车上为众多的电子设备通信服务[3]。CAN总线的使用可以减少汽车上众多的其他信号线[4],将其统一化。CAN总线可以跨接相当多的外围器件,具有抗干扰能力强、传输速率高、传输距离长的特点。作为国际上应用最广泛的现场总线之一,CAN总线越来越多地应用到工业生产和汽车工业等分布式控制系统中,其具有的高抗干扰能力、高速数据传输能力和低成本特性完全可以作为执行器的数据采集控制总线。

本文所采用的是集成了全功能CAN模块的TMS320F28335高性能浮点DSP和C8051F060混合信号处理器。C8051F060负责节点的数据采集、数据传输分发和自确认控制等,TMS320F28335负责接收数据完成自确认算法,上传自确认算法结果等。

1 系统硬件设计

作为国际标准的唯一一种工业总线,CAN总线在国际上应用十分广泛。本文使用的C8051F060和TMS320F28335都是集成了CAN控制器模块的芯片。

C8051F060单片机集成了Bosch CAN控制器[5],利用CAN协议进行串行通信。此控制器符合Bosch规范2.0A(基本CAN)和2.0B(全功能CAN),可以很方便地在CAN网络上通信。其CAN模块的功能结构框图如图1所示。

CAN控制器中的CAN控制寄存器(CAN0CN)、CAN测试寄存器(CAN0TST)和CAN状态寄存器(CAN0STA)可以被C8051F060单片机的特殊功能寄存器直接或间接地访问。而CAN模块的其他寄存器必须通过CAN0ADR、CAN0DATH和CAN0DATL用间接索引法访问。

图1 CAN控制器结构图

DSP28335中集成的控制器局域网支持CAN2.0B全功能CAN,如图2所示,并且DSP28335有两个全功能的CAN模块,eCAN-A和eCAN-B,每个模块都具有32个完全可配置的邮箱和时间戳,为DSP28335提供了一个灵活强大的串行通信接口。

图2 F28335增强型CAN控制器结构图及接口电路

CAN传输所使用的物理介质主要是双绞线,在使用了光端机等转换设备后,CAN总线还可以通过光纤传输。CAN在物理层采用差分电平传输,一共使用两条信号线,CAN_H和CAN_L,静态时两条信号线的电压差为0,而其对地的电压均为2.5V。此时表示逻辑1(隐性电平);用CAN_H比CAN_L高表示逻辑0(显性电平),此时通常CAN_H为3.5V,CAN_L为1.5V。

除了CAN控制器之外,在CAN控制器和物理总线之间,还必须有CAN收发器,将CAN控制器的逻辑电平转换为CAN总线的差分电平,信号将会在总线电缆上以差分电平的形式传输数据。由于DSP28335标配使用TI的SN65HVD230作为CAN节点收发器,所以F060也使用SN65HVD230作为CAN节点收发器。在总线两端分别需要接上120Ω的匹配电阻。SN65HVD230总线驱动器的输出电平如图3所示。

处理器(C8051F060和TMS320F28335)和CAN总线收发器的连接原理图如图4所示。其中MCU_CANRXB为处理器CAN模块的接收引脚,MCU_CANTXB为其发送引脚。

图3 SN65HVD230总线驱动器电压输出定义

图4 SN65HVD230和处理器的接口电路

本文使用的CAN总线是应用在自确认气动执行器硬件系统的通信上,最大限度满足通用性和算法验证的目的。气动执行器硬件系统电路上集成了丰富的外围通信端口,通过不同的配置以达到不同的应用目的。比如配置成为数据采集节点、存储节点或是同上位机的接口节点等等。气动执行器硬件系统结构框图如图5所示。

本文对自确认执行器硬件系统做不同配置后,其CAN总线通信连接拓扑图如图6所示。其中CAN通信系统主节点由单片机C8051F060和USB接口芯片CH376S[6](工作于USB设备模式)组成,主要实现上位机监控软件的实时控制和CAN数据采集节点的结果实时上传到上位机监控软件;CAN总线通信系统的数据采集处理节点由C8051F060和TMS320F28335双处理器芯片组成,主要承担气动执行器的数据采集、实时算法处理及气动执行器状态的实时上传。

CAN总线主节点主要承担上位机和下位机数据帧的转发,CAN从节点主要承担数据采集处理和运算。一个工作流程大致是这样的(以CAN总线主节点和气动执行器自确认硬件单元1为例):硬件单元1的C8051F060采集气动执行器的内部测点数据,主要包括:阀前阀后压强、温度、流量、控制输出和杆的位移量6种数据。然后将数据存入双端口RAM中,TMS320F28335从双端口RAM中读取数据做自确认算法,结果得出后通过CAN总线上传到CAN主节点。一个从自确认节点的CAN总线地址这样划分:同一个节点的DSP的CAN地址总是比MCU的CAN地址小1。同一节点的MCU除了采集气动执行器的模拟量数据数字化存入双端口RAM之外,还需要将数字化的原始数据上传到主节点,以便上位机显示原始数据的曲线(上位机接收数据的频率比实际的采样频率低)。

2 CAN总线通信协议介绍和位时序配置

2.1 CAN总线通信帧格式介绍

CAN通信协议2.0A一共规定了4种不同的帧格式:数据帧、远程帧、出错帧和超载帧。CAN2.0B在CAN2.0A的基础之上,将标示符从11位扩展到29位,其标准数据帧和扩展数据帧格式如图7所示。本设计只使用CAN2.0B的29位标示符的扩展数据帧。

图5 自确认气动执行器双处理器硬件系统结构框图

图6 自确认气动执行器CAN总线通信系统结构框图

2.2 CAN总线通信基本规则介绍

在CAN总线通信系统中,每个节点之间的位速率和其通信距离有密切的关系,依照通信距离来配置位速率。CAN总线的有效长度和传输速率成反比关系。CAN总线传输速率为1 Mbps时,距离不超过40 m,降低速率可以相应延长总线传输距离。当CAN总线传输率小于50 Kbps时,中继总线长度可以延长到1km以上。

图7 CAN总线标准数据帧和扩展数据帧结构图

由于本设计主要是测试系统的功能性且距离很近,所以将对CAN总线系统做最高速1Mbps的配置设置。

2.3 CAN总线的位速率和位时序介绍及针对本设计位时序配置方法

CAN总线通信系统一般会在同一条总线上,所以就要求跨接在总线上的每个节点的波特率设置和波特率必须是一样的。但是节点的芯片各种各样,晶振也存在着误差,会导致CAN的波特率没有理想配置情况下的那么精确,这就要求CAN 具有一定的容错能力。一般情况下很小的波特率误差不会导致CAN总线系统的崩溃。但进行精确的CAN总线通信,必须正确的配置CAN的波特率,以保证各个节点可以正常且无误的工作。

CAN支持的波特率的变化范围很广,可适应不同的控制系统和不同传输距离的总线通信,最低1 Kbit/s到最高1 Mbit/s。一般情况下,每个CAN网络的节点都有自己的晶振,通常是石英晶体振荡器。由于石英晶体振荡器的频率不是绝对准确的,随着温度或外界环境的变化都会导致其频率发生变化,所以CAN通信系统可以支持小的误差。只要这个误差满足CAN总线的最低要求,那就不会导致故障的发生,但配置CAN的位时间时必须考虑各个时段的值是否满足CAN规范所定义的误差公式。根据CAN协议的规定,一个位时间被划分为4个不同的时间段[7](如图8所示),即同步时段(Synchronisation Segment)、传播时段(Propagation Time Segment)、相位缓冲时段1(Phase Buffer Segment 1)和相位缓冲时段2(Phase Buffer Segment 2)。

图8 CAN总线位时序结构框图

每个时段都有多个特定的寄存器为决定其个数的量子的时间[8](如表1)。量子时间tq(time quantum)是一个位时间的基本单元,其由时钟频率(system clock)和波特率预分频器(Baud Rate Prescaler)共同决定:即tp=BRT/fsys。其中,fsys是CAN的系统时钟频率;如果是MCU集成的CAN模块,其等于MCU输入CAN_CLK引脚的时钟频率,如果是独立CAN芯片,那就是片上或片外时钟频率(或CAN_CLK引脚的输入时钟频率)。位定时寄存器各个位段的含义如表1所示。

根据公式组(1)求出位定时器各个参数[9](TSEG1,TESG2,SJWP,BRP)的值:

Phase_Seg1+Phase_Seg2=位时间-(Sync_Seg+Prog_Seg)

SJW=min(4,Phase_seg1)

BRPE=BRP-1

SJWP=SJW-1

(1)

TSEG1=Phase_Seg1+Prog_Seg-1

TSEG2=Phase_Seg2-1

如果Phase_Seg1+Phase_Seg2为偶数,则Phase_Seg1=Phase_Seg2,否则Phase_Seg2=Phase_Seg1+1,Phase_Seg2至少应为2tq量子时间。

通常,位时序配置的计算是想获得期望的位率或位时,而最终的位时必须是系统时钟周期的整数倍,位时可能有4~25个tq时间。

表1 CAN总线位时间参数

系统时钟的容差即(1-df)·fnom≤fosc≤(1+df)·fnom所决定的df,其中fosc是系统实际的晶振频率,而fnom是标称的晶振频率。其中df是由同步缓冲时段1(Phase_Seg1)、同步缓冲时段2(Phase_Seg2)、同步跳转宽度(SJW)和位时间(bit time)的比率所决定的[10],满足公式2。例如当Prog_Seg=1和Phase_Seg1=Phase_Seg2=SJW=4,允许的最大的晶振容差为1.58%。这个比率中传输时间只占位时间的10%,所以不适合短的位时间,在一个40米长的CAN总线上此传输时间最高支持的位速率为125kBit/s(位时间为8us)。

(2)

不同时钟系统的CAN节点需要不同的配置以达到相同的位速率。CAN系统中的传输时间的配置是根据节点中最长的延时时间一次配置完成决定的,时钟容差范围由最小的节点的容差决定。计算表明CAN总线长度位速率需要减小或晶振的时钟稳定性需要提高,可以找到一个满足协议配置的CAN总线的位时间。

C8051F060芯片CAN模块位定时器配置要满足的基本要求[12],如表2所示。

表2 C8051F060的CAN模块基本配置要求

由于传输距离比较短,我们拟采用1 Mbit/s,由此计算的位时间理想值为1 000 ns,因此选择一个位时间为22 tq时间,位时间约为994.642 ns,此时的位速率实际值为1.005 39 Mbit/s。总的传输延时为200 ns,因此取Prog_Seg必须大于200 ns,取5个tq时间(226.055 ns),剩余的时间分配给Phase_Seg1和Phase_Seg2,即16个tq时间,所以Phase_Seg1和Phase_Seg2都等于8个tq时间。

写入位定时寄存器的数值如公式3所示。BRP扩展寄存器(CAN时钟分频寄存器)其值不用修改,即保持其复位值0x0000。

BRPE=BRP-1=BRP扩展寄存器=0x0000

SJWp=SJW-1=min(4,8)-1=3

TSEG1=(Prog_Seg+Phase_Seg1-1)=5+8-1=12

TSEG2=(Prog_Seg2-1)=7

位定时寄存器=TSEG2*0x1000+TSEG1*0x0100+SJWp*0x0040+BRPE=0x7CC0

(3)

最后写入C8051F060的CAN模块位定时寄存器的值为0x7CC0。

下面用相似的方法配置F28335中CAN模块的位定时寄存器[11]。F28335的CAN模块的时钟为F28335系统时钟的二分频,这点要特别注意。F28335系统时钟为150 MHz时,CAN模块的时钟为75 MHz,和C8051F060一样采用1 Mbit/s,BRP=4。其配置如表3所示。

表3 F28335的CAN模块配置基本要求

F28335的CAN模块位时序的计算公式如式(4)所示,其中TQ表示F28335的量子时间,以示和F060的区别。BRPreg=4,此时TQ=66.667ns。确定一个位时间为15个TQ时间。最终确定一个位时间为1ms。由公式(4)便可以求出位定时器的写入值。

(4)

进一步确定位定时器寄存器写入值,TSEG1reg=8,TSEG2reg=4。写入CANBTC(32位)寄存器的值为:0x00040344(SAM位为0,即每个位采用一次)。

3 系统软件设计

F060的CAN模块通过2个缓冲寄存器组IF1和IF2同32个消息队列RAM进行数据的存入和读取[12]。可以将32个消息队列中的任何一个定义为读取或发送RAM,IF1和IF2相当于架设在F060和CAN消息RAM之前的桥梁一样。在处理IFx和消息RAM之间的数据流时,CAN模块提供了一个消息处理的状态机,它将自动在移位寄存器、消息RAM队列和IFx消息缓冲寄存器组之间进行消息的传送。因此在设计CAN通信的软件时,只需对IFx消息队列缓冲寄存器组进行处理即可完成对CAN消息RAM的初始化处理。F060的CAN模块的初始化,接收中断流程图如图9所示。

在初始化2个CAN消息队列时,我们把IF1用于初始化发送消息队列或发送消息时使用,IF2用于初始化接受消息队列或用于接受消息时使用。在初始化发送和接收消息队列之前,必须对所有的消息进行清空,然后通过Ifx命令掩码寄存器设置帧格式。在设置命令掩码寄存器时,不论是发送消息初始化还是接收消息初始化,WR/RD=1,发送消息对象和接收消息对象只在于ClrIntPnd的选择是否为零,紧接着初始化仲裁寄存器。仲裁寄存器包括是否扩展帧,发送还是接收,以及消息对象号等进行初始化,发送和接收区别在于Dir,当Dir=1表示此消息对象用来发送数据,当Dir=0表示此消息对象用来接收数据。

图9 F060的CAN模块初始化配置和发送接收流程图

通过消息对象进行发送和接收数据时,通过IFx写入到命令掩码寄存器,其中最主要的差别是WR/RD不一样。WR/RD=1表示将缓冲寄存器组的数据写入已初始化后的消息对象,WR/RD=0表示将消息对象的数据读到缓冲寄存器组,此时标示符选中位一律为0,表示只进行CAN总线传输的数据交换(因为初始化在前一步已完成)。

F28335的初始化接收发送程序和F060类似。

4 系统实验验证

CAN总线的实验连接如图10所示。

实验测试CAN总线通信时,气动执行器仿真数据预先存入到从节点C8051F060(CAN总线数据采集节点,下同)的FLASH中。实验开始时,从节点F060将数据存入双端口RAM中,同时也将原始数据通过CAN总线向主节点F060传送。本节点F28335通过查询双端口RAM的信号量标志获知是否数据已经存取,然后取数据做自确认算法处理,将结果通过CAN总线发送到主节点F060,主节点F060将收到的原始数据以及从节点F28335的自确认运算结果数据全部通过CH376S总线跨接芯片传送到上位机监控软件[13]。

图10 自确认气动执行器CAN总线通信系统

上位机用Visual C++6.0集成开发环境编写,由于CH376芯片提供了设备模式的windows下的驱动[14]。在编写上位机时,只需安装CH375驱动(CH376设备模式下的驱动,CH376设备模式完全兼容CH372[15]和主机模式基本兼容CH375),同时将CH375DLL.H和CH375DLL.LIB复制到所在上位机监控软件工程所在文件夹中,链接到CH375链接库,即可编写上位机监控软件。

5 结论

CAN总线具有成本低、速率快、可靠性高等优点,具有统一的国际标准,开发相对容易。本文将其作为自确认气动执行器硬件系统的标准总线,设计了硬件电路,编写了相应的软件,并进行了实验验证。结果表明,将CAN总线应用到自确认气动执行器系统,可以大大提高数据的传输速率和可靠性,为自确认气动执行器的工业应用提供了基础和保障。实验的上位机显控界面如图11所示,气动执行器自确认硬件单元将阀前阀后压强、温度、流量、控制输出和杆的位移量共6种采集数据和DSP自确认的结果实时上传到CAN的主节点,并通过上位机显示。

图11 自确认执行器显控界面

本文中实验验证时的自确认气动执行器采集处理节点仅有一个,很少涉及CAN总线节点的优先级、统筹安排、复杂的CAN总线协议等,在今后的实验中将进行多节点的CAN总线数据通信测试,以验证探索自确认气动执行器多节点的CAN总线数据通信。

[1]FENG Zhigang,QIU Meng. Design and implementation of self-validating pneumatic actuator hardware system based on DSP and MCU[J]. International Journal of Hybrid Information Technology,2014,7(6):101-114.

[2]GONG Rongsheng,ZHANG Abu,GONG Xiaofang.Distributed measurement and control system based on can bus.Control and Automation[J]. ICCA.Final Program and Book of Abstracts.The 2002 International Conference on,2002,7(19-19):208.

[3]KONG Feng,ZHANG Liyan,ZENG Jie. Automatic measurement and control system for vehicle ECU Based on CAN Bus[J]. Automation and Logistics, IEEE International Conference on,2007,8(18-21):964-968.

[4]曲凤丽. 汽车网络研究及CAN总线网络拓扑的优化[D].杭州: 浙江大学, 2008:7-15.

[5]杨艳秋,曹龙汉,董秀成,等.基于单片机C8051F060的CAN总线智能节点设计[J].现场总线与网络,2006,25(2):59-61.

[6]李萍,单葆悦,刘晓东,等.USB芯片CH376在智能仪器仪表中的应用[J].计量与测试技术,2011,38(2):9-14.

[7]LI Ran,WU Junfeng,WANG Haiying. Design method of CAN BUS network communication structure for electric vehicle[J]. Strategic Technology (IFOST),International Forum on,2010,13(15):326-329.

[8]蒋继成.基于CAN总线数据采集节点的设计[D].哈尔滨:哈尔滨工程大学,2009:26-29.

[9]张弘.基于CAN总线的信号采集与处理模块研究[D].南京:南京航空航天大学,2007:7-13.

[10]LI Xiaoming,LI Mingxiong. An embedded CAN-BUS communication module for measurement and control system[J]. E Product E Service and E Entertainment (ICEEE),2010,11(7-9):1-5.

[11]杨辉前,王耀南,袁小芳,等.基于TMS320F2812的CAN总线通信的设计与实现[J].自动化仪表,2006,27(5):28-32.

[12]胡晓拓,杨天宝,曹少华.对C8051F040的CAN控制器的分析及应用[J].单片机开发与应用,2007,11(2):105-107.

[13]傅志辉.USB开发手册[M].北京:中国铁道出版社,2014:259-262.

[14]胡军辉,王友钊.Windows CE设备驱动程序开发[J].计算机工程,2006,32(16):41-43.

[15]杨应平,石城,李振华,等.基于CH372接口芯片的USB高速数据采集系统[J].武汉理工大学学报,2006,28(8):9-11.

(责任编辑:刘划 英文审校:刘敬钰)

CAN BUS communication system of self-validating pneumatic actuator based on DSP and MCU

FENG Zhi-gang,QIU Meng,TIAN Feng

(College of Automation,Shenyang Aerospace University,Shenyang 110136,China)

In order to solve the data collection and transmission problem of self-validating pneumatic actuator in industrial control while meeting the high-speed and high reliability requirements,a CAN-bus communication system based on CAN-module integrated in TMS320F28335 and C8051F060 is presented.First of all,the CAN bus advantages,industrial applications,basic structures,hardware design,software design and the configurations of CAN-bit timing are expounded in detail.Then,a CAN communication system is established based on self-validating pneumatic actuator hardware platform.The experimental results indicate that the system can meet the data collecting,transmitting and controlling functions of the self-validating pneumatic actuator CAN nodes.

self-validating (SEVA) pneumatic actuator;CAN bus;TMS320F28335;C8051F060;distributed control

2015-01-19

国家自然科学基金青年基金项目资助(项目编号:61104023)

冯志刚(1980-),男,河北石家庄人,副教授,博士,主要研究方向:自确认传感器/执行器,E-mail:fzg1023@yeah.net。

2095-1248(2015)04-0057-10

TP336

A

10.3969/j.issn.2095-1248.2015.04.010

猜你喜欢

执行器寄存器气动
中寰气动执行机构
STM32和51单片机寄存器映射原理异同分析
基于NACA0030的波纹状翼型气动特性探索
Lite寄存器模型的设计与实现
双级执行器系统的离散滑模控制
基于反馈线性化的RLV气动控制一体化设计
飞机装配预连接紧固件自动化安装末端执行器设计
考虑执行器饱和的改进无模型自适应控制
一类具有执行器饱和的非线性系统抗饱和方法研究
KJH101-127型气动司控道岔的改造