摘要:CAN总线是一种流行的实时性现场总线,文中提出了一种基于MSP430单片机,并以MCP2510为CAN控制器的智能节点设计方案,该方案利用MSP430通过标准SPI接口可实现对MCP2510的控制,并能够完全实现CAN总线规范。
1 引言
CAN总线是控制器局域网(Controller Area Net-work)总线的简称,它属于现场总线范畴,是一种能有效支持分布式控制或实时控制的串行通信网络,它可将挂接在现场总线上作为网络节点的智能设备连接成网络系统,并进一步构成自动化系统,从而实现基本的控制、补偿、计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。
CAN总线智能节点在分布式控制系统中起着承上启下的作用。它位于传感器和执行机构所在的现场,一方面和上位机(PC或者工控机)进行通信,以完成数据交换;另一方面又可根据系统的需要对现场的执行机构或者传感器进行控制和数据采集。它常常将一些简单的过程控制程序放在底层模块中,从而减少了通信量,提高了系统控制的实时性。因此,智能化模块设计在CAN系统中有着十分重要的作用。
本文将给出一种用MSP430单片机和MCP2510 CAN控制器组成的总线智能节点的设计方案(见图1),该方案中的单片机和CAN控制器通过标准的SPI接口进行通信,因此,该节点能够完成对被控器件的数据采集上报,并接受上位机的命令,进而进行解析以完成对执行机构的控制。为了调试简单,本方案作了一些改动:一是使MCP2510工作在环回模式,也就是数据由发送缓存直接发送到接收缓存,由于不经过CAN收发器和CAN总线,而只是使用了它的一个发送缓存和一个接收缓存,因而方便了调试;二是把被控器件的数据采集和对执行机构的控制部分略去,而这些功能在以后可以方便地添加,这样,在实际使用时,只要对程序稍作修改就可应用。
2 硬件设计
本设计的整个接口模块主要由两部分组成:CAN控制器MCP2510和微控制器MSP430。图2所示是该智能节点的部分电路硬件原理图。下面对主要部分功能作一介绍。
2.1 MSP430F1232简介
MSP430系列微控制器是TI公司推出的功能强大的超低功耗16位微处理器。它集成了丰富的片上外围资源,因而开发方式十分简便,可以用C语言编写出效率很高的程序。所选MSP430F1232的工作电压为1.8~3.6V,内含8kB FLASH存储空间。片内集成了看门狗定时器(WTD)、基本时钟模块、US-ART、10位ADC、和带有3个捕获/比较器的16位定时器,因而片上资源十分丰富,完全可以满足一般的需要,同时减少了设计的复杂度。与其它单片机相比,MSP430的I/O端口功能更强,可实现双向的输入、输出,并可完成一些特殊的功能,如A/D转换、捕获比较等;另外,它还可以实现I/O的各种中断。
本设计中,MSP430的作用有两个:一是对执行机构的控制以及对输入模拟量或者开关量的信号采集;二是利用UART模块通过SPI模式与MCP2510通信并控制MCP2510以实现CAN规范。
2.2 MCP2510简介
MCP2510?1?是Microchip公司推出的功能很强的CAN控制器芯片,它支持CAN1.2、2.0A及2.0B规范;其内部结构见图3所示。该芯片内含3个发送缓存和2个接收缓存,可以对发送优先级进行管理,可滤除无用信息,MCP2510有6个可编程滤波器,而且中断资源十分丰富。最可贵的是,它可以通过标准的SPI接口与微控制器进行通信,从而放宽了MCU的选择范围?使得所有单片机都有接入的可能。
MCP2510的主要功能是在MCU的控制下实现CAN规范,它内部的所有寄存器和控制寄存器都映射到一个地址表上,MCU可以使用相应的命令格式通过标准的SPI接口来完成对MCP2510的初始化、工作状态的控制以及数据的读写。此外,MCP2510产生的中断还可以反馈给MCU来处理。
2.3 系统时钟
由于MSP430的时钟频率决定着指令周期,因而该时钟直接影响SPI接口的速率。MSP430F1232有两个可选的时钟:一是外部低速32.768kHz的时钟晶体;二是采用内部数控DCO的可调频率。本设计直接采用它内部的数控DCO作为它的主时钟MCLK和SMCLK,由于直接工作在800kHz,因而免去了使用晶体。MCP2510采用标准的4MHz晶体。MSP430中USART模块的CLK可由系统时钟分频得到,速率设定也十分方便。实际上,MCP2510输出到总线的速率也可通过设置内部寄存器的控制分频系数来调节。
此外,由于MCP2510的输出信号驱动能力不够,而且与CAN总线物理接口的要求存在很大的差异,所以,在实际应用中必须使用CAN收发器(如MCP2551等),它可支持的CAN速率最高可达1Mbps,而且容错能力很强。此外,它内部还有很强的保护电路,可以防止总线的其它节点对它的影响。
3 软件设计
在进行本系统节点的软件设计前,首先简要说明一下MCP2510的指令格式,MCP2510的5条指令如表1所列。
表1 MCP2510指令格式
指 令 | 指令格式 | 说 明 |
复位 | 1100 0000 | 使内部寄存器复位,进入配置模式 |
读取 | 0000 0011 | 从寄存器读取数据,指令在前,地址随后 |
写入 | 0000 0010 | 写数据到寄存器,指令在前,地址和数据随后 |
发送请求 | 1000 0nnn | 对发送缓存发送信息进行初始化 |
状态读取 | 1010 0000 | 读取常用状态寄存器的某些位数据 |
位修改 | 0000 0101 | 对豁口的某几件位修改 |
在使用时,可以把这些指令直接编写成函数形式,这样可使程序简练易读。同时,发送请求的硬件触发只需把TXnRTS置低即可。实际上,接收缓存收到信息后也能产生硬件触发,并在TXnRTS引脚产生低电平输出。
本设计的主程序流程图如图4所示。
上电复位后,MSP430首先完成自身外围模块的初始化,其任务主要是选择时钟模块中的时钟、使USART模块工作于SPI模式、以及对看门狗定时器的配置等;然后对MCP2510进行初始化,以对寄存器进行设置。需要注意的是,MCP2510只有在配置模式下才可以对控制参数进行配置,但它在复位以后就是配置模式。
当配置MCP2510到环回模式后,MSP430将写数据到MCP2510的发送缓存并控制其发送,此后,在接收缓存收到数据后,INT引脚将产生低电平中断以通知MSP430,MSP430响应中断后将读取数据,并和发送的数据进行比较,以验证程序的可行性。需要注意的是,无论是对MCP2510的读还是写,都必须使它的CS引脚处于低电平。
在实际应用中,MSP430和MCP2510都可以进入睡眠模式,并可以由中断来激活。整个节点的主要功能均由中断子程序来完成,其中的一部分是MSP430自身的中断(看门狗定时器溢出中断、SPI接收发送中断、ADC中断等),另一部分是MCP2510引起的中断,这部分中断资源十分丰富,包括信息接收发送中断、信息错误中断、总线激活中断等。它产生的所有中断都能使INT引脚为低电平, 单片机在检测到这些中断后,将通过SPI接口读取MCP2510内部的中断标志寄存器以判断是何中断,然后再进行进一步处理。
4 结束语
MSP430和MCP2510的很多实用功能本文还没有进一步开发,只是作了一个简单测试系统,而且许多实际应用中需要注意的问题也没有考虑到,需要进一步完善。此外,由于MCP2510使用标准的SPI接口与单片机通信,所以加上它可以不更换单片机,而只需对程序稍作修改即可,因此,采用该方案几乎可以在任何现有系统上实现CAN总线功能。
上一篇:一种便携式多参数环境监测仪的设计
下一篇:TI MSP430F22xx系列的主要特性及无线RFID开发方案
推荐阅读
史海拾趣
随着电子行业的快速发展,Calex Mfg. Co., Inc.深知技术创新的重要性。公司投入大量研发资源,成功开发出一系列具有领先技术的电子产品。这些产品不仅性能卓越,而且具有高性价比,迅速赢得了市场的认可。公司凭借这些技术突破,逐渐在电子行业中占据了一席之地。
在芯片短缺的大背景下,一家名为芯联集成的公司凭借其敏锐的市场洞察力和快速响应能力,迅速调整战略,专注于车规级IGBT芯片和模组的代工生产。公司凭借高效的生产能力和严格的质量控制,迅速获得了多家头部新能源车企的认可,成为他们的合作伙伴。这一举措不仅帮助芯联集成度过了行业低谷,还使其在短时间内实现了跨越式发展。
1958年,德州仪器(TI)的工程师杰克·基尔比面临一个挑战:如何将复杂的晶体管布线简化。他通过不懈努力,发现了一种将多个晶体管内置在同一块硅或锗板中的方法,从而大大简化了电路设计。这一创新为集成电路的发展奠定了重要基础,也奠定了德州仪器在半导体行业的领先地位。
- 创业初期:
- 描述Clulite公司的创始人或核心团队如何识别电子行业中的某个市场机遇。
- 讲述他们是如何筹集初始资金,设立公司,并开发出第一款产品或解决方案的。
- 可以提及公司在初创阶段面临的挑战,如技术难题、市场竞争等。
- 技术创新:
- 讲述Clulite如何通过研发创新,推出了一款颠覆性的产品或技术,从而获得了市场认可。
- 详细描述这一创新过程,包括研发团队的努力、关键技术的突破等。
- 提及这一创新如何帮助公司在市场上取得了竞争优势。
- 市场拓展:
- 描述Clulite如何逐步扩大市场份额,从地区市场走向全国乃至国际市场。
- 可以讲述公司如何建立销售网络、与合作伙伴建立合作关系,以及参与行业展会等活动来推广品牌和产品。
- 提及公司在市场拓展过程中遇到的挑战和应对策略。
- 品质管理:
- 讲述Clulite如何注重产品质量和客户体验,通过严格的质量控制流程来提升产品可靠性。
- 描述公司如何建立完善的售后服务体系,为客户提供及时、专业的支持。
- 提及这些举措如何帮助公司赢得了客户的信任和口碑。
- 可持续发展:
- 讲述Clulite如何关注环境保护和社会责任,推动公司的可持续发展。
- 描述公司如何采取环保措施,减少生产过程中的污染排放。
- 提及公司如何参与社会公益事业,回馈社会。
请注意,这些故事需要根据Clulite公司的实际情况进行调整和补充。如果你需要更具体的内容,建议查阅Clulite公司的官方网站、新闻报道或行业分析报告,以获取更详细的信息和数据。
在2010年代初,一家名为“HyperMemory Corp”的初创公司,在硅谷的隐秘实验室中,成功研发出了HMC技术。这项技术通过三维堆叠封装技术,极大地提升了内存带宽和能效,引起了业界的广泛关注。为了加速技术的商业化进程,HyperMemory Corp与多家行业巨头,包括英特尔和美光,建立了混合内存立方联盟(HMCC)。通过共享技术资源和市场渠道,HyperMemory Corp迅速成长为HMC技术的领军企业。
“MemoryCube Innovations”公司在HMC技术的商业化过程中,采取了市场细分和差异化竞争的策略。该公司针对不同的应用场景,推出了多款具有针对性的HMC产品。例如,针对高性能计算领域,MemoryCube Innovations推出了高带宽、低延迟的HMC产品;而针对数据中心市场,则推出了注重能效和可靠性的产品。通过精准的市场定位和差异化的产品策略,MemoryCube Innovations在竞争激烈的电子市场中脱颖而出。
如何从桌面系统下安装WinCE平台下Pocket PC应用程序 看论坛上经常有人问,如何从桌面系统下安装WinCE平台下Pocket PC应用程序。特此把以前参考VCHelp上雷神的安装制作写的一个Win32 安装WinCE应用系统的程序,放了上来。希望能为在制作WinCE下应用程序安装程序提供一些参考。具体步骤如下: 1.在VS.N ...… 查看全部问答∨ |
|
书中第一章时,教我们搭建开发环境时,提到了一个特别定制的SDK可以下载,可是我到书中所给的链接上却没有找到。 还有,我在运行HELLO1这个程序是,编译已经通过,但是运行时提示“出现部署错误”,是什么原因呢?我安装的是VS2005+SP1补丁包,是 ...… 查看全部问答∨ |
开发了一wap网站,在一win ce 5.0系统的手机上访问老是出现问题,注意不是windows mobile系统。 有的时候页面传参数传不了,有的时候下拉框无效,而且不支持选项卡,用的浏览器是UCWEB 6.0,不知道是系统问题还是浏览器问题 在ucweb官方网站上找 ...… 查看全部问答∨ |
我有一个EVC下对文件操作的程序,现在想看其中文件的内容,想将程序转换到vc下,输出文件中的内容来看,该如何转换以及注意点什么啊?还有在EVC下的编译能通过的程序为什么在vc下总是报错啊?… 查看全部问答∨ |
请教下,应用层在调用DeviceIoControl后,怎么和驱动进行沟通,我只知道有个什么IRP,中间具体怎么回事不太清楚,谁能讲一下?或者提供点资料,谢谢!… 查看全部问答∨ |
用Visual Studio2008 新建了一个智能设备中的MFC智能设备应用程序。跟EVC建立的MFC应用程序比较了一下,发现vs2008的代码模板好麻烦啊,而且好像不是消息处理机制了,那么在EVC上使用的代码能在VS2008运行吗?现在的教材都是在EVC上开发的,一用vs2 ...… 查看全部问答∨ |
|
今天和一个同事研究以前一个同事留下的代码, 发现代码中经常用如下语句的表达方法: / UART控制开关: 0 - 接收; 1 - 发送 always@(posedge rst or posedge clk)begin if (rst) begin uart_sw <= #1 1\'b0;& ...… 查看全部问答∨ |
I2C通信中,430单片机需先发送从机地址,请问那个从机的地址在哪里查询?是跟430I2C通信引脚有关,还是在跟单片机连接的I2C通信芯片手册中可以查到??… 查看全部问答∨ |