新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线控制器SJA1000的自动络筒机通信系统方

基于CAN总线控制器SJA1000的自动络筒机通信系统方

作者:时间:2016-09-12来源:网络收藏

2.3、系统软件设计

本项目通信系统中软件设计包括两部分:上位机和下位机。上位机主要通过人机交互向CAN总线发送信号给各单锭,下位机软件主要是Mega64L接收CAN总线信息后,完成控制单锭相应动作的任务,比如张力盘增加或是减少张力等等事件。这里主要介绍单锭中各CAN的软件实现。

系统上电初始化:系统软件设计的指导思想是系统上电后首先对Mega64L和SJA1000进行初始化,以确定工作主频、波特率、输出特性等,然后通过查询方式获取模数转换采样值,并把该值通过SJA1000传送到CAN总线上由上位机进行显示控制,CAN发送通过中断方式向总线发送信息,而对CAN总线上来的信息也采用中断方式,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断,在中断服务程序中读取该帧信息并传送到现场。为防止出现死机和干扰,程序中还采用看门狗技术进行定时监控。

对CAN控制器进行初始化,实际上就是对ACR(验收码寄存器)、AMR(验收屏蔽寄存器)、BTR0(总线定时寄存器0)、BTR1(总线定时寄存器 1)、OCR(输出控制寄存器)这些寄存器进行相关操作。只有当控制寄存器CR中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。对CR进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。对ACR、AMR进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收屏蔽滤波器。当满足条件:“ACR与报文标识符的高 8位在AMR为‘0’相关位上对应相等”或 “AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位”,并存在空的收发缓存器时,完整报文可被正确收发。

发送报文:当等待发送的报文成功发送或被放弃之后,发送缓冲区被释放并产生一个发送中断。在中断处理中,必须检查状态寄存器的发送完成标志(TCS) ,以确定之前的发送是否成功。未成功表示发送被放弃,在这种情况下CPU对放弃的发送执行一个特殊的处理,例如重复发送被放弃的报文。中断发送报文流程图如图3。

接收报文:对于给出的控制器,主要流程在中断控制的报文接收之前必须使能CAN控制器的接收终端和CPU的全局中断。接收中断使能标志(RIE)位于中断使能寄存器中。

如果CPU已经接收到一个报文,该报文通过验收滤波器并放入接收FIFO,则产生一个接收中断。这样 CPU能够立即响应,将这个接收到的报文送到自身的报文存储器,并置位命令寄存器的释放缓冲标志RRB。接收缓冲器中其他的报文将引起新的中断,所以没有必要在一次中断过程中把接收缓冲器FIFO中的所有有效报文读取出来。不过,在接收中断过程结束时,CPU 可以通过读接收缓冲期状态标志(RBS)来检查是否还有其他报文存在。这一点在使用接收级中断(Receive Level Interrupt)时通常是有用的。

3、总结

目前,自动络筒机中大量地应用先进电子技术、自动控制技术等,对其通信控制系统也提出了更高的要求。CAN总线技术及其高性能、高可靠性及其独特的设计,已成为现场总线家族中最有希望的总线技术之一。本系统中将高可靠性的CAN-bus和性价比高、处理能力强大的AVR有机结合,使自动络筒机通信系统在传输速度、实时性、差错率控制、可靠性上都有很好的效果。

本文作者创新点:CAN总线以其卓越的特性、极高的可靠性和独特的设计,在工业过程监控设备的互联方面得到广泛的应用,受到工业界的广泛重视,并被公认为是最有前途的现场总线之一。作为通用、有效、可靠及经济的平台,CA N总线也已经广泛地受到了欢迎。本文所设计的基于Atmel ARV系列增强型单片机Meag64L和SJA1000控制器为核的CAN总线已经投入使用,具有简单、灵活、使用方便等特点。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭