基于CAN总线的智能节点设计
专业:电气工程及其自动化
课题背景
CAN是控制器局域网络(Controller work)的简称,是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线与其它几种现场总线比较而言,是最容易实现、价格最为低廉的的一种,但其性能并不比其它现场总线差。这也是目前CAN总线在众多领域被广泛采用的原因。
本课题设计的内容
本文介绍基于CAN总线的智能节点的硬件设计和软件设计:其中硬件设计包括对单片机、CAN总线控制器、CAN总线收发器和电源等模块的接口电路设计;软件设计包括SJA1000的初始化、发送和接收等应用中的最基本的模块子程序。
基于CAN总线的智能节点硬件设计
基于CAN总线的智能节电系统硬件电路接口设计
基于CAN总线的智能节点软件设计
系统初始化流程图
SJA1000的初始化应在复位模式下进行,所以在SJA1000初始化程序中首先要将工作方式置为复位模式,之后要设置验收滤波方式、验收屏蔽寄存器和验收代码寄存器、波特率参数和中断允许寄存器等。初始化设置完成后,将复位请求位置“0”,SJA1000就可以进入工作状态,执行正常的通信任务。
数据发送流程图
发送数据域的内容时,从地址12的字节发送最高位先发。发送数据时用户只需将要发送的数据按照CAN控制器SJA1000所规定的格式组合成一帧报文,送入控制器的发送缓冲区中,然后启动SJA1000发送就可以实现,但是在将报文发送到缓冲区之前,应该作一些判断。
数据接收流程图
接收缓冲区寄存器的格式以及部分的含义与发送缓冲区一致,只是在SJAl000中的地址范围为20-29,它是RXFIFO中一块可以由CPU访问的区域。
谢谢各位老师!
基于CAN总线的智能节点设计 来自淘豆网m.daumloan.com转载请标明出处.