单片机和MCP2510的CAN总线通信模块设计
图7 软件主体设计流程图
本文中MCP2510主要采取中断模式进行总线数据的接收和发送。整个系统主序提供两种中断: 定时器中断和外部中断。定时器中断的中断子程序主要负责处理来自模拟通道AIN0~AIN7的A/D数据,向MCP2510发送“数据发送请求命令”以及发送数据。外部中断的中断处理子程序主要包括CAN总线错误处理子程序和数据接收子程序。
2.2 软件主体设计流程
软件主体设计流程如图7所示。软件设计时需要注意以下问题:
① 因为 MCP2510在初始化完成后处于默认Configuration模式下,所以就需要在MCP2510的初始化完后将其置为 Normal模式,否则MCP2510将一直停留在Configuration 模式下,不能正常进行工作。将MCP2510置Normal模式可通过使用 MCP2510内置的BitModify(位修改)4指令向CANCTRL控制字写入一个0字节来实现。
② 在对MCP2510进行任何操作之前,都要由微处理器向MCP2510的片选CS输出一个低电平,使得MCP2510选通。
③ 在执行MCP2510的“读”操作时,发送完读指令及其地址码之后,仍然需要向MCP2510提供时钟,以接收“读”到的数据。可以通过向MCP2510发送一个0字节来实现。
④ 在对MCP2510完成任意操作后,都要延时一段时间,使其有足够的时间来准备接收下次操作的命令,防止出现MCP2510“忙”的情况。
3 总结
CAN总线已被公认为是最有前途的几种现场总线之一。因其性价比高、实现简单等突出优点深受越来越多的研发人员的青睐。本文的智能节点可联结多个集散控制系统,其软硬件电路的设计方法同样适合于其他基于CAN总线的分布式控制系统的节点设计。
参考文献
[1] 邬宽明. CAN总线原理和应用系统设计[M]. 北京:北京航空航天大学出版社,1996.
[2] Microchip. MCP2510 DataSheet,2002.
[3] 王继国,新亚. CAN控制器芯片MCP2510在远程监测系统中的应用[J].电子技术应用,2004(4).
[4] 蔡美琴,张为民,何金儿,等. MCS51系列单片机系统及其应用[M]. 第2版. 北京: 高等教育出版社,2004.
杨庆华(硕士研究生),主要研究方向为计算机测控;张景元(教授),主要研究方向为人工智能、模式识别、信息处理和智能控制。
评论