CAN总线通信技术在洗煤厂皮带综合保护中的应用
2016-12-31李洋曲阜师范大学工学院
李洋曲阜师范大学工学院
CAN总线通信技术在洗煤厂皮带综合保护中的应用
李洋
曲阜师范大学工学院
摘要:控制器局域网(CAN)与其他网络的不同之处在于,它是供微控制器使用的网络,用于高噪声环境下本地微控制器之间的通信。煤矿洗煤厂中由于使用的设备功率大且比较密集,属于强噪声工作环境,因而在设计控制系统时采用CAN总线通信技术具有很大的优势。文章主要介绍了使用具有CAN通信控制模块的PICl8F248微处理器实现节点间通信的方法;给出了在洗煤厂皮带综合保护控制装置中的应用方案。本系统具有硬件设计简单、可靠性高等特点,具有较强的应用参考价值。
关键字:皮带综合保护 CAN控制模块 PICl8F248
1 引言
CAN(Controller Area Network)控制器局域网,主要应用在微控制器之间需要彼此通信的场合。设计以PICl8F248单片机(内部集成CAN模块)为主的控制器,以PCA82C250实现与外部CAN总线的物理连接,形成一个CAN通信节点,并将此应用到洗煤厂皮带综合保护控制系统中,取得了较好的控制效果。
使用内嵌CAN控制器的PICl8F248单片机构建CAN通信网络节点时,硬件设计简单,软件编制也容易许多,系统的抗电磁干扰能力大大增强,软硬件设计也大大简化,降低了成本。
PICl8F248内嵌的CAN模块主要有如下特点:
1)能够支持CAN2.OA、o气N2,oB协议规范;
2)数据信息支持标准帧和扩展帧;
3)3个传送信息缓冲器,2个接收信息缓冲器,6个有优先级的接收过滤器。
2 应用系统中CAN通信部分的硬件电路设计
系统中CAN通信部分的硬件构成部分主要由PICl8F248、PCA82C250、6N137器件构成,三个器件构成一个CAN总线通信节点,其中PICl8F248主要负责数据信息的收集、组织、发送和接收,保证节点之间的通信正常畅通;光电耦合器6N137实现外接总线和控制系统之间的完全电隔离,提高系统的抗电磁干扰能力。
3 CAN通信系统的软件设计流程
系统中CAN节点通信部分的软件设计主要就是初始化子程序、数据发送子程序、数据接收子程序。程序初始化部分包含CAN模块工作方式配置、设置屏蔽寄存器与接收滤波器、设置波特率参数、设置发送优先级和设置中断允许寄存器等。数据发送程序是由CAN控制器据总线协议自动完成的。其工作过程是先将发送缓冲器控制寄存器清零,然后将要发送的数据装载到发送缓冲器中,在命令寄存器中将“发送请求标识位”激活,当检测到总线可用时,器件自动开始发送数据。数据接收程序也是由CAN控制器自动完成的,采用中断方式接收数据。每当接收到一条信息时,该信息就会通过接收过滤器过滤,满足条件的信息才送到接收缓冲器(RxBn)中,置位相应的接收中断标志位(RXB n IF)并产生中断;在接收数据中断服务程序中,直接从接收缓冲器中将内容取出并进行相应的处理即可。
4 皮带综合安全保护问题分析
皮带综合保护有如下部分构成:主、副滚筒转速,皮带打滑、撕裂、跑偏、堆物、拉绳急停开关及其信息的综合分析。主副滚筒转速数据和打滑传感器(安装在皮带上通过与皮带摩擦而转动的测速装置)输出的数据用于判断皮带运转是否正常,当主副滚筒转速在正常范围内,而打滑传感器输出不正常,可以判断出皮带打滑;撕裂、跑偏、堆物传感器在出现故障时都是输出开关量信号。本系统中数据长度设置为8个字节,第一字节表示皮带序号;主滚筒、副滚筒、皮带打滑传感器转速分别使用一个字节;撕裂、跑偏、堆物、拉绳急停占用四个字节,每一个传感器节点占用一位,传感器动作则相应位置1,这四个字节中空余的位和字节用来扩展测量点用。当任意一个节点上出现异常系统就向CAN总线上发送数据,每次发送8个字节的数据。当正常运行时每间隔1s也向CAN总线上发送8个字节的数据。
5 CAN通信配置程序
PICl8f248的CAN通信主要就是CAN模块的配置,将CAN模块的各个寄存器配置好后,需要发送数据时将发送缓冲器装载好数据后,就可以直接请求发送;接收采用中断方式接收数据,当PIR3bits.RXBOIF(注:此处使用接收缓冲器0)为1时表示缓冲器0接收到信息,由此引起中断。以下是系统中CAN通信部分初始化子程序。voidinitcan(){TRjsB=(TRJSBIOx08)&Oxfb;∥设置RB3为输入RB2为输出/术以下是设置波特率为125kb(Fosc=4MHz)、同步时间段、传输时间段、相位缓冲时间段数值丰/CANCON=0x80:w“le(cANs仉坷&0x80==0){;} ∥等待进入
CAN配置模式
BRGCON1=0XOA:
BRGCON2=OX90:
BRGCON3=0X42:
/以下设置发送邮箱0标识符和发送数据格式/
TxBOCON=0x03: //设置发送优先级为最高级
(TXPIU=11)
T)(BOSIDH=OxFF: //设置发送缓冲器0的
采用标准标识符
TXBOSIDL=0XEO:
TXBODLC=0x08://数据长度为8个字节
/木采集的现场数据装载到8发送缓冲器中木/
TXBODO=tempdatal;TXBODl=tempdata2;TXBO
D2=tempdata3;
TXBOD3=tempdata4;TXBOD4=tempdata5;TXB0
D5=teInpdata6;
TXBOD6=tempdata7;TXBOD72tempdata8;
/牢以下是接收邮箱0的标识符配置和初始化接收
缓冲器数据术木木/
RXBOSIDH=0XFF: //接收标准标识符高字节
RXB0sIDL=0xE0://对接收标准标识符低字节
RXBOCOIN=Ox20: //RXB0采用过滤器0并仅
接收标准标识符的有效信息位
RxBODLC=0x08: ∥接收缓冲器O的数据区长
度8位
RXBOD0=0X00;RXBOD1=0XOO;RXBOD2=OXOO;
RXBOD3=0X00;RXBOD4=0X00;RXBOD5=0X00;
RXBOD6=OX00;RXBOD7=OXOO;
∥术接收过滤器O和接收屏蔽器的配置木//
RXFOSIDH=0xFF: //接收过滤器O标准标识符
高字节
RXFOSIDL=0XE0:
低字节
RXMOSIDH=0X00:
高字节
RXMOSIDL=0XOO:
低字节
//接收过滤器0标准标识符
//接收屏蔽字O标准标识符
∥接收屏蔽字0标准标识符
CIOCON=0x30;//cAN模块I/O控制寄存器,
配置为隐性时cANTx引脚驱动到VDD:使能cAN捕捉
//术配置CAN模块中断木∥
PIR3=0x00://将所有中断标志清除
PIE3=0x01: //使能接收缓冲器0的接收中断
IPR3=Ox01: ∥接收缓冲器0的接收中断为最高
优先级
}
//术设置CAN进入正常操作模式术//
CANCON=OX00;∥=0X00,正常操作模式
while(CANSTAT&0xEO!=0){;)
6 结束语
内嵌CAN总线控制模块的单片机PICl8F248组成的系统,在开发CAN总线通信时具有硬件结构简单、编程容易、系统抗电磁干扰能力强等优点,在未来的工程应用中越来越受到重视。文章从硬件构成和软件编程两方面对PICl8F248内嵌的CAN模块的使用进行了详细的介绍;并将此应用到洗煤厂皮带综合保护应用系统中,取得了良好的通信效果,对CAN总线系统开发有一定的实际参考价值。
参考文献
[1]刘和平,刘林,余红欣,等.PICl8Fx单片机原理及接口程序设计[M].北京:北京航空航天大学出版社,2004.
[2]BrevB B.PICl8微控制器体系结构、编程与接口设计(C语言与汇编语言版)[M].王俊华,肖亮,等,译,北京:清华大学出版社,2009.
[3]张皆喜,王茂凌,张瑜.PIC系列单片机C语言编程与应用实例[M].北京:电子工业出版社,2008.
[4]杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用[M].北京:电子工业出版社,2007.
[5]孙韬,刘宗行,吴斌.基于CAN总线构成的分布式通信网络的应用[J].重庆大学学报(自然科学版),2003,26(1):69—72.
[6]蔡纯洁,杨维坚,伍先达,等.PIC全系列单片机原理与开发[M].合肥:中国科学技术大学出版社,2003.
[7]张俊.匠人手记——一个单片机工作者的实践与思考[M].北京:北京航空航天大学出版社,2008.