基于CAN总线的地铁屏蔽门系统设计 - 图文(6)

2019-06-17 19:44

式后,才能重新配置寄存器信息。

图4-1 SJA1000初始化程序流程图

CAN控制器SJA1000的初始化主要任务就是对时钟分频寄存器(CDR)、验收代码寄存器(ACR)、验收屏蔽寄存器(AMR)、总线定时寄存器(BTR0、BTR1)、输出控制寄存器(OCR)等寄存器进行配置,从而确定CAN控制器的工作方式。当初始化结束之后,各寄存器的数值便不能改变了,CAN控制器进入工作模式,SJA1000按照设置的工作方式进行工作。只有SJA1000再次请求复位,进入下一次的初始化过程,寄存器的内容才有可能被更改。SJA1000的初始化程序流程图如图4-1所示。

4.2 报文发送子程序

发送子程序负责节点报文的发送发送时用户只需将待发送的数据按特定格式组合成一帧报文送入SJA1000 发送缓存区中,然后启动SJA1000 发送即可,当然在往SJA1000 发送缓存区送报文之前,必须先作一些判断,如下文程序所示发送程序分发送远程帧和数据帧两种远程帧无数据场。

CAN总线的报文传输由CAN控制器SJA1000独自完成。CAN控制器SJA1000需要先将要发送的报文写入发送缓冲器,然后将命令寄存器的发送请求位TR置1,开始发送报文。SJA1000报文发送子程序流程图如图4.2所示。

图4-2 报文发送子程序流程图

为了确保报文的顺利发送,在发送之前,SJA1000首先读状态寄存器的TBS位是否为1来确定发送缓冲器是否被释放。如果发送缓冲器被释放,才能将报文写入发送缓冲器,然后将命令寄存器的发送请求位TR置1,准备开始发送报文。否则将发送临时存储报文,设置下一个报文标志,同时比较现有报文与发送缓冲器中的报文优先级,如果现有的报文优先级较高,则设置命令寄存器中止发送位AT为1,中止目前正在发送的报文,转而发送优先级更高的报文。如果优先级比较低,保持等待,在等待目前报文发送的过程中,微控制器锁定发送缓冲器,不断查询状态寄存器直到发送缓冲器被释放。在设置发送请求位之后,SJA1000根据状态寄存器判断总线是否空闲,如果总线空闲开始发送报文,如果总线非空闲,可以选择等待直到总线空闲时,重新发送报文,也可以取消发送。在报文发送之后,SJA1000会根据总线反馈信号,判断报文是否发送成功,如果报文发送成功,则将发送请求位TR置0,结束报文发送。如果报文发送出现错误,则将状态寄存器错误位置1,错误计数器加1。然后判断是否由于失去仲裁导致发送失败,如果并没有失去仲裁则可以选择重新发送或者取消,终止发送。发送子程序如图4-2。

4.3 报文接收子程序

接收子程序负责节点报文的接收以及其它情况处理,接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中同时要对诸如总线脱离错误报警接收溢出等情况进行处理。SJA1000 报文的接收主要有两种方式,中断接收方式和查询接收方式。如果对通信的实时性要求不是很强,采用查询接收方式。两种接收方式编程的思路基本相同,下面仅以查询方式接收报文为例对接收子程序作一个说明。

CAN总线的报文接收由CAN控制器SJA1000独立完成。SJA1000将收到的报文放在接收缓冲器中,然后由微控制器将报文存储在本地的报文存储器中,并对报文进行SJA1000的报文的接收有两种方式:中断接收方式与查询接收方式。中断接收方式SJA1000每传来一个报文会产生一个中断,然后SJA1000开始接收报文。而查询方式即SJA1000不断查询状态寄存器的状态位标志来进行接收控制。报文的接收过程是被动的,而且报文接收的时间是随机的,因此为了提高CAN总线的工作效率与系统的稳定性,在本设计中采用中断接收方式。

当CAN控制器SJA1000收到从总线上传来的报文后,首先验收滤波器验证其标识符,检验其标识符是否满足接收条件。此时如果状态寄存器的接收缓冲器状态位RBS为0,表示接收缓冲器为空,经过验收滤波器的报文便被存入接收缓冲器中,同时接收缓冲器状态位RBS被置为1。否则表示接收缓冲器没有足够空间接收报文,SJA1000产生溢出错误,状态寄存器数据溢出状态位DOS被置为1,产生溢出中断。

报文被存入接收缓冲器后,SJA1000向微控制器发送接收中断请求,微控制器将报文从接收缓冲器中读取出来,存入本地报文存储器中。微控制器首先读取接收报文的首字节,以判断是否为远程请求帧,如果为远程帧则发送请求的数据,同时将命令寄存器的释放接收缓冲器标志位RRB置为1,释放接收缓冲器。如果接收的报文为数据帧,则继续读取接收报文,知道将全部数据读取,最后将命令寄存器的释放接收缓冲器标志位RRB置为1释放接收缓冲器。报文接收结束。报文接收子程序流程图如图4-3所示。

图4-3 报文接收子程序流程图

第五章 CAN总线通讯模拟实验

5.1 CAN通信模拟仿真的硬件组成

3-7两点通讯连接

在现实屏蔽门系统应用中,CAN 总线传输用于中央接口与门控单元,即单个的屏蔽门之间的信息传送。

在本课题的仿真实验中,采用的是两点通讯,即学习板与CANMINI之间的通讯,来模拟中央接口与门控的通讯。 5.1.1 CAN通信单片机学习板部分

单片机学习板使用的是YH51-Ⅲ学习板,模拟实际CAN地铁屏蔽门中的中央接口部分。

YH51-III是一款CAN、USB、RS232、RS485多总线学习开发板,单片机采用51内核单片机,程序可通过串口直接下载到单片机调试,CAN控制器采用了在现场总线种应用最为广泛的SJA1000,USB芯片采用内置USB协议固件的CH372。

图3-8 YH51-Ⅲ学习板

5.1.1 CAN通信CANMINI通讯部分

图3-9 CANMINI实物对比图

CANMINI是一个小型的通讯芯片,主要在模拟实验中作为门控单元。

CanMini是一块CAN到232的微型转换板,兼容CAN1.0和CAN2.0AB协议,串口波特率最高可达115200BPS数据吞吐量大,可以和任何CAN总线设备连接实现CAN到232的转换,配合相应的调试软件可以方便地分析监视CAN总线上的数据。

5.2 CAN总线通讯模拟调试

本课题的模拟是模拟地铁屏蔽门和中央接口的通讯,实质上是2节点之间的CAN总线


基于CAN总线的地铁屏蔽门系统设计 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新部编人教版一年级语文下册期末复习知识点汇总(全册)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: