CAN智能节点的设计.
- 格式:doc
- 大小:26.00 KB
- 文档页数:4
CAN总线数据通讯功能设计摘要:近年来,社会进步迅速,我国的智能化建设的发展也有了改善。
CAN(ControllerAreaNtework)即控制器局域网络,最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。
现代汽车越来越多采用电子装置控制,如发动机的定时、注油控制、加速、刹车、自动泊车、倒车雷达及复杂的制动防抱死系统(ABS)等。
这些电子装置的控制需实时检测及交换大量的数据,仅使用传统点对点的连接方式来实现子系统之间的随机通信,不但繁琐、昂贵,且难以解决问题。
采用CAN总线上述问题就能得以很好的解决。
因为CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,不分主次,通信灵活;采用短帧结构,数据传输时间短,最大传输数率可达1Mbps(通信距离小于40m)。
CAN总线技术由于高性能、高可靠性及其独特的设计备受人们的重视,经过十几年的发展,该技术已成为所有车载电子控制系统互联、互通的标准,广泛应用于汽车电子监测系统。
关键词:CAN总线;数据通讯;功能设计引言随着汽车的普及,人们对汽车舒适度要求越来越高,使得汽车电子技术发展迅速,越来越多的汽车电子控制单元(ElectronicControlUnit,ECU)被应用于汽车控制。
诊断功能的实现是ECU开发过程中的重要部分,对诊断功能进行集成测试是为了验证功能实现与设计规范的一致性。
1方案的实现电路主要由四个部分构成:微控制器、独立CAN通信控制器、CAN总线收发器、高速光耦。
微控制器负责CAN通信控制器的初始化。
CAN通信控制器有发送和接收两端,它能够同时读写总线,这个功能对于错误检测与总线仲裁都很重要,因此通过控制CAN通信控制器实现数据的接收和发送通讯任务。
CAN通信控制器要通过CAN总线收发器上的线驱动器和总线接口进行总线的读写,总线是通过典型的双绞线传输差分电压信号,处理CAN总线两端的节点应设置跨接在两根双绞线间的终端匹配电阻。
CAN总线多点温度采集节点硬件设计【摘要】随着科学技术的发展,温度监控系统的应用越来越广泛,本文阐述了一种基于CAN总线的多点温度采集系统,可以实现温度实时监测,该系统能应用于工农业生产的诸多场合。
系统以AT89C52单片机为微处理器,外接数字式温度传感器DS18B20获得现场环境的温度信号。
通过CAN总线控制器SJA1000和CAN总线驱动器PCA82C250将数据发送到CAN总线上,从而实现对温度的采集。
【关键词】CAN总线;节点;温度采集0 概述现场总线是安装在生产制造过程中的装置与控制室内的控制装置之间的一种数字式、串行、多点通信的数据线。
应用现场总线技术不仅可以降低系统的布线成本,还具有设计简单、调试方便等优点。
同时,由于现场总线本身还提供了灵活且功能强大的协议,这就使得用户对系统配置,设备选型具有强大的自主权,可以任意的将多种功能模块组合起来扩充系统的功能。
在众多的现场工业总线中。
随着温度控制技术在各个领域得到广泛地推广和应用,相关行业对温度控制技术的要求与日俱增。
目前市场上也有一些温度控制系统,但是这些系统在传送数据时实时性能实现的不是很好,而CAN总线的实时性强、成本低,而且还具备可靠性高、抗干扰强等特点。
综合多方面因素考虑,我们能够利用CAN总线的特点和优势设计温度控制系统。
1 设计方案1.1 系统功能要求系统能够接受数字式温度传感器DS18B20的温度信号,将温度信号传给单片机,完成单片机最小系统设计,并把此系统作为CAN的节点,节点的硬件包括AT89C52单片机、CAN总线驱动器PCA82C250、CAN总线控制器SJA1000、单片机的时钟和复位电路。
主要研究基于AT89C52单片机与DS18B20数字温度传感器的多点温度测量系统。
完成数字式温度传感器与CAN总线节点的接口设计及电路设计,实现具有数字式串行温度采集功能的CAN总线节点的硬件设计。
应用CAN总线控制器SJA1000及其总线收发器的工作原理,完成数字式温度传感器与CAN总线节点的接口设计。
基于can总线的智能照明控制系统智能照明控制系统为现代化建筑楼宇照明提供了新途径,微机型灯光控制系统.它采用网络控制技术, 使得照明灯的电力线路可以不再经过控制室,而直接引顶棚或马道。
这种控制方法不仅可以方便地控制灯光的亮度, 还减少了电力线路及相应设施投资, 减少了灯回路的辐射干扰, 而且可以使灯回路采用母线方式布线,线路规整, 便于安装维修。
CAN 总线所需的完善的通信协议可由CAN控制器芯片和接口芯片实现, 大大降低了系统的开发难度、组成成本、缩短了开发周期。
CAN 总线简介CAN 是控制器局域网的简称,出现在80年代末,最早由德国osch公司提出,用于汽车内部测量与执行部件之间的数据通信。
CAN 属于现场总线的范畴, 是国际上应用最广泛的现场总线之一, 其总线规范己被ISO 国际标准化组织制定为国际标准。
CAN协议也是建立在ISO /OSI模型基础上,它采用了OSI底层的物理层、数据链路层和高层的应用层,其信号传输介质为双绞线。
最高通信速率为1Mbps (通信距离为40m,最远通信距离可达10km (通信速率为5kbp s), 节点总数可达110个。
具有实时性强、可靠性高、通信速率快、结构简单、互操作性好、总线协议具有完善的错误处理机制、灵活性高和价格低廉等特点.由于近几年来CAN总线技术逐步在我国推广开来, CAN 总线技术的独特特点。
传输数据的可靠性和实时性, 已获得国际自动化控制领域的认可,其应用前景十分光明, 国内推动CAN总线技术进步的应用事例不断扩展, 积极促进了我国自动化技术的进步.由于CAN总线本身的特点,其应用范围己经扩展到过程工业、机械工业、机器人、数控机床、医疗机械、家用电器及传感器等领域。
2照明控制系统的总体设计思想及结构框图系统设计从保证系统可靠性和降低成本, 并具有通用性、实时性和可扩展性等方面着手。
网络拓扑采用总线式结构, 这种结构比环型结构吞吐率低, 但结构简单、成本低, 且无源抽头连接, 系统可靠性高.CAN总线控制器工作于多主方式, 采用多主站依据优先权访问总线, 支持主从或广播方式,最大网络节点110个,最大传输速率1M bps,最远距离10km (也可以接CAN中继器增加距离,但通信速率会下降.(3) CAN遵循ISO标准模式。
对隐性电压和显性电压的诠释CAN2.0B规范定义了两种互补的逻辑数值:“显性”和“隐性”,同时传送“显性”和“隐性”位时,总线结果值为“显性”。
“显性”(“Daminant”)数值表示逻辑“0”,而“隐性”(“Recessive”)表示逻辑“1”。
在CAN规范中并未定义代表逻辑电平的物理状态(例如电压),iCAN网络使用符合ISO11898-2标准的电平信号,典型地,CAN总线为“隐性”(逻辑1)时,CAN_H和CAN_L 的电平为2.5V(电位差为0V);CAN总线为“显性”(逻辑0)时,CAN_H和CAN_L的电平分别是3.5V和1.5V(电位差为2.5V),如下图所示。
汽车电子与CAN总线摘要:控制器局域网(CAN)是一种有效支持分布式控制或实时控制的现场总线,具有高性能和高可靠性的特点;随着现代汽车技术的发展,CAN技术在汽车电子领域应用日益广泛。
文章介绍了符合CAN2.0B协议汽车CAN系统设计方案,着重讨论了以微处理器P89C668为核心的CAN总线智能节点的软硬件实现,推荐一款MOTOROLA的多路开关检测芯片MC33993,并且涉及到,SPI以及在系统编程等技术。
关键词:现场总线,CAN,汽车电子,MC33993,,SPI1 汽车电子与CAN总线随着汽车电子技术的不断发展,汽车上各种电子控制单元的数目不断增加,连接导线显著增加,因而提高控制单元间通讯可靠性和降低导线成本已成为迫切需要解决的问题。
为此以研发和生产汽车电子产品著称的德国BOSCH公司开发了CAN总线协议,并使其成为国际标准(ISO11898)。
1989年,Intel公司率先开发出CAN总线协议控制器芯片,到目前为止,世界上已经拥有20多家CAN 总线控制器芯片生产商,110多种CAN总线协议控制器芯片和集成CAN总线协议控制器的微处理器芯片。
在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
基于51单片机的CAN总线系统设计0 引言随着20世纪80年代初期德国Bosch公司提出CAN(Controller Area Network)总线,即控制器局域网方案以解决汽车控制装置问的通信问题。
经过20多年的发展,CAN总线现在广泛的应用在汽车领域,在汽车控制系统中应用CAN总线可以使硬件方案的软件化实现,大大地简化了设计,减小了硬件成本和设计生产成本,数据共享减少了数据的重复处理,节省了成本,可以将信号线减到最少,减少布线,使成本进一步降低等优点。
由于CAN总线通信的高性能、高可靠性、及独特的设计和适宜的价格可以广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,所以被公认为是几种最有前途的现场总线之一。
1 系统总体设计CAN总线系统总体结构如图1所示,主要包括上位机控制软件、USB-CAN转换模块、CAN节点、CAN总线介质(本处采用双绞线)组成。
其中一个CAN节点通过USB接口与PC 机相连,上位机控制软件能实时显示各CAN节点的数据且能通过上位机软件向各个CAN 节点发送数据以控制各节点的8个发光二极管的亮或灭。
2 系统硬件电路本系统由单片机外围电路、CAN总线硬件电路和USB-CAN转换电路组成。
单片机外围电路包括电源电路模块、复位电路模块、串口通信模块。
CAN总线硬件电路包括电气隔离模块、光耦隔离模块、CAN驱动器电路。
USB-CAN转换电路包括CH375与单片机接口电路模块和USB接口电路模块。
C8051F040单片机内部的控制器局域网(CAN)控制器是一个协议控制器,不提供物理层驱动器(即收发器),需要外部重新接入物理层驱动器。
本处采用TJ1050,TJA1050是控制器区域网络(CAN)协议控制器和物理总线之间的接口,是一种标准的高速CAN收发器。
TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能。
TJA1050是PCA82C250和PCA82C251高速CAN收发器的后继产品。
2008年10月October 2008—256— 计 算 机 工 程Computer Engineering 第34 第19期Vol 卷.34 No.19·工程应用技术与实现·文章编号:1000—3428(2008)19—0256—02文献标识码:A中图分类号:TP391CAN 与RS232转换节点的设计与实现周 伟,程晓红(武汉理工大学信息学院,武汉 430070)摘 要:介绍将CAN 总线接口与RS232总线接口相互转换的设计方法和2种总线电平转换关系,实现CAN 总线与各模块的接口设计,制定了相应的软硬件设计方案,并给出软件设计流程图以及部分硬件设计原理图。
为CAN 总线与RS232总线互联提供了一种方法,对CAN 总线与RS232总线接口设备的互联和广泛应用的实现具有重要意义。
关键词:CAN 总线;RS-232总线;串行通信Design and Realization of CAN and RS232 Transformation NodeZHOU Wei, CHENG Xiao-hong(Information Institute, Wuhan University of Technology, Wuhan 430070)【Abstract 】This paper introduces one design method of the CAN bus interface and the RS232 bus interface interconversion, emphasizes two kind of bus level transformation relations, realizes the CAN bus and various modules connection design, formulates the design proposal of corresponding software and hardware, and gives the flow chart of software design as well as the partial schematic diagram of hardware design. It provides one method for the CAN bus and the RS232 bus interconnection, has the vital significance to widespread application realization of the CAN bus and the RS232 bus interface equipment interconnection.【Key words 】CAN bus; RS-232 bus; serial communication1 概述控制局域网络(Control Area Network, CAN)最早由德国BOSCH 公司推出,用于汽车内部测量与执行部件之间的数据通信[1]。
第22卷第4期2008年5月山东理工大学学报(自然科学版)Journal of Shandong University of Technology(Natural Science Edition)Vol.22No.4J ul.2008文章编号:1672-6197(2008)04-0064-04基于CAN总线的车载网络节点设计李玉明,宋帅坤(山东理工大学交通与车辆工程学院,山东淄博255049)摘 要:设计了汽车上CAN通讯的高速与低速网络拓扑结构,并对网络节点进行了优先级编码,对其中单个节点进行了基于CAN控制器SJ A1000的智能节点硬件电路及软件设计.关键词:汽车;网络结点设计;CAN总线;优先级编码中图分类号:U463.341文献标识码:AThe net2node design of vehicle based on CAN busL I Yu2ming,SON G Shuai2kun(School of Traffic and Vehicle Engineering,Shandong University of Technology,Zibo255049,China)Abstract:A general network topology of vehicle CAN communication was designed and t he prior2 ity codes of every node in t he network were compiled.Based on t he SJ A1000controller,t he hard2 ware and t he software of t he smart node are int roduced.K ey w ords:vehicle;net2node design;CAN field2bus;priority coding 控制器局域网CAN(Cont roller Area Net2 work)总线作为一种可靠性高、价格低廉、技术成熟的现场总线,在国内外得到了广泛的应用.在汽车行业,CAN总线更是以其优异的性能成为汽车局域网的发展趋势.1 CAN总线特点控制器局域网络(CAN)是德国Robert Bosch 公司在20世纪80年代初为解决现代汽车中众多控制单元和测试仪器之间的实时数据交换而开发的一种串行数据通信总线.具有高的保密性,是一种能有效支持分布式控制或实时控制的串行通信网络. CAN具有如下特点[1]:1)CAN是到目前为止唯一有国际标准的现场总线.2)CAN总线为多主工作方式,即网络上的任一节点均可在任意时刻主动地向其他节点发送信息,不分主从,方式灵活.3)在报文标识符上,CAN上的节点分成不同的优先级,可以满足不同的实时性要求,优先级高的数据可在134μs内得到传输.4)采用非破坏性的总线仲裁技术,多点同时发送信息时,按优先级顺序通信,节省了总线冲突仲裁时间.尤其是在网络负载很重的情况下,也不会出现网络瘫痪情况(以太网则可能).5)CAN节点只需通过对报文的滤波即可实现点对点、一点对多点和全局广播方式传送接收数据.6)CAN的直接通信距离最远可达10km(速率5kbp s以下),通信速率最高可达1Mbp s(此时通信距离最长为40m).7)通信介质可采用双绞线、同轴电缆或光纤,选择灵活,结构简单,易于维护,经济性好.8)CAN上的节点数主要取决于总线驱动电路,目前可达110个.标准报文标识符有11位,而扩展报文标志符有29位,其驱动电路的个数几乎不受限制.收稿日期:20080108作者简介:李玉明(1982),女,硕士研究生. 9)报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率低.10)CAN的每帧信息都有CRC校验及其它检错措施,具有极好的检错效果.CAN节点在错误严重的情况下具有自动关闭输出的功能,以使总线上其它节点的操作不受影响.2 CAN协议工作原理主机通过设置通信对象描述字中的“发送请求”位来请求发送一条消息,当“发送请求”位置位时,且检测到“总线空闲”,通信控制器将开始发送消息.如果有多个节点要同时发送消息,则这些节点在检测到“信道空闲”时就会同时发送“帧起始位”.在接下来的仲裁阶段,每个控制器都会发送它的标识符,具有最高优先权的消息会赢得仲裁继续发送.接收节点在其通信对象的数据字中储存数据,通过设置控制位,接收控制器会向主机发送一个“收到消息”的中断.对收到的消息进行CRC校验之后,接收控制器把第2个ACK位设为显性,表示正确接收了消息.这样,发送端就知道至少有一个节点正确接收到消息[2].各控制器数据帧发送和接收采用中断方式和查询方式.一般来说,查询方式会占用更多的系统资源,使系统的运行速度减慢.对于接收数据,通常采用中断方式实现,一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中,利用屏蔽滤波寄存器,有选择地逐位比较接收报文的标识符,只有标识符匹配的报文才能进入接收缓冲器.对于发送数据,通常采取周期性的发送,根据系统实时性的要求和数据传送的重要程度,确定发送的周期,以保证数据能够及时得到处理.3 车用CAN通讯网络拓扑结构及优先级编码3.1 车用通讯网络拓扑结构车用通讯网络拓朴结构如图1所示,其中VMS为整车控制器,EMS为发动机控制系统,ABS为车辆制动系统控制器,AMT为手动—自动变速箱控制器,EPS 为助力转向系统.EMS,ABS,AMT,EPS等构成了高速CAN网络,通讯速度设定为500kbps.图1中,BODY为车身控制器(包括中央门锁和车窗等的控制),IP为显示仪表控制器以显示车速、挡位等信息,SEAT为座椅控制器,LIGHT为车灯控制器,这几个控制器构成了低速CAN总线网络.高速和低速CAN的通讯通过VMS网桥进行高速低速网络之间的信息交换.3.2 网络节点优先级编码对其中一个节点的电路、报文发送、接收等进行设计,车用网络拓扑结构中各节点编码见表1.图1 车载网络拓扑表1 优先级编码表参数组符号参数组描述优先级数据页PF PS SA参数组数码P GN数据字节PDU编码EMS发动机控制3000010B0000008300C010B ABS制动器控制300F030A0000018303F030A AM T变速器控制3001040B00FF0018300D440B EPS转向控制3001060400F0058300D0604 BOD Y车身控制300F050300F0038303F0503B IP显示600F050300F0048603F0503 SEA T座椅控制6001020400F0038600D0204 L IGA T灯光控制600F030400F0068603F0304由编码表1可知,依据二进制标识符的大小确定各节点的优先级,优先级从高到低依次为:发动机控制、转向控制、变速器控制、制动器控制、车身控制、座椅控制、灯光控制、显示等.4 CAN节点硬件电路及软件结构设计4.1 硬件电路设计车用网络节点数为8个,现在仅对其中一个节点进行设计.单智能节点设计总电路图如图2所示.56第4期 李玉明,等:基于CAN总线的车载网络节点设计4.2 软件设计CAN 总线节点的设计主要包括三大部分:CA控制器初始化、报文发送和报文接收.4.2.1 CAN 控制器的初始化SJ A1000的初始化只有在复位模式下才可以进行.初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器AMR和接收代码寄存器图2 总电路图ACR 的设置、波特率参数设置和中断允许寄存器IER 的设置等.在完成S J A1000的初始化设置后,S J A1000就可以回到工作状态,进行正常的通信任务.CAN 控制器SJ A1000在正式收发信号之前必须进行初始化设置.而S J A1000的功能设置项较多,极易出错,因此把SJ A1000控制器的初始化过程作为一个重要环节[3],其流程图如图3所示.4.2.2 CAN 总线上数据的发送和接收发送子程序负责节点报文的发送.发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入S J A1000发送缓冲区中,然后启动SJ A1000发送即可.当然在向S J A1000发送缓存区送报文之前,必须先做一些判断.发送数据采用查询控制方式[4],将新信息放进发送缓冲器之前主控制器必须检查状态寄存器中的发送缓冲器状态标志TBS :当发送缓冲器被锁定,定期查询状态寄存器,主控制器等待,直到发送缓冲器被释放;当发送缓冲器被释放,主控制器将新信息写入发送缓冲器,并置位命令寄存器中的发送请求TR.标志,此时S J A1000将启图3 S J A1000初始化流程图动发送.发送信息查询控制流程如图4所示.接收子程序负责节点报文的接收以及其他情况66山东理工大学学报(自然科学版)2008年 的处理.接收子程序比发送子程序要复杂一些,因为在处理接受报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理.S J A1000保文的接收主要有两种方式:中断接收方式和查询接收方式.如果对通信的实时性要求不强,建议采用查询接收方式.两种接收方式编程的思路基本相同.接收数据如果采用中断方式,根据CAN 协议规定,信息的接收由CAN 控制器SJ A1000独立完成.如果SJ A1000已接收一条信息,这条信息已通过验收滤波器且已放在接收FIFO 中,那么会产生一个接收中断.因此,主控制器能立刻起作用,将接收到的信息送到信息存储器,然后通过对命令寄存器的相应图4 发送信息查询控制流程图标志RRB 置位,释放接收缓冲器.本设计采用中断方式接收[4],中断接收流程图如图5所示.图5 接收信息中断控制流程图5 结束语本文对CAN 总线通信原理和总线数据接收、发送进行了详细的研究,提出了汽车网络拓扑中单智能节点的设计方案,进行了车载网络CAN 总线优先级编码,为车载CAN 总线开发设计奠定了基础.参考文献:[1]饶运涛,邹继军.现场总线CAN 原理与应用技术[M ].北京:北京航空航天大学出版社,2003.[2]宋雪桦,孔缝.汽车发动机电控单元高速CAN 通讯模块研制[J ].计算机工程与设计,2006,27(9):158821590.[3]欧德翔,汪至中.基于CAN 总线分布式控制系统智能节点的设计[J ].现场总线技术,2002,(5):19221.[4]Zhu Yuan ,Wu Hao ,Tian Guangyu.Cont rol and communicationnetwork in hybrid fuel cell vehicles [J ].Tsing Hua science and technology ,2004,9(3):3452350.76第4期 李玉明,等:基于CAN 总线的车载网络节点设计。
CAN智能节点的设计
摘要:CAN总线是一种流行的实时性现场总线,文中提出了一种基于
MSP430单片机,并以MCP2510为CAN控制器的智能节点设计方案,该方案利用
MSP430通过标准SPI接口可实现对MCP2510的控制,并能够完全实现CAN总线
规范。
关键词:CAN智能节点;MSP430;MCP2510;数据通信
1 引言
CAN总线是控制器局域网(Controller Area Net-w
ork)总线的简称,它属于现场总线范畴,是一种能有效支持分布式控制或
实时控制的串行通信网络,它可将挂接在现场总线上作为网络节点的智能设备
连接成网络系统,并进一步构成自动化系统,从而实现基本的控制、补偿、计
算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。
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模式与M
CP2510通信并控制MCP2510以实现CAN规范。
2.2 MCP2510简介
MCP25101是Microchip公司推出的功能很强的CA
N控制器芯片,它支持CAN1.2、2.0A及2.0B规范;其内部结构
见图3所示。该芯片内含3个发送缓存和2个接收缓存,可以对发送优先级进
行管理,可滤除无用信息,MCP2510有6个可编程滤波器,而且中断资
源十分丰富。最可贵的是,它可以通过标准的SPI接口与微控制器进行通
信,从而放宽了MCU的选择范围使得所有单片机都有接入的可能。
MCP2510的主要功能是在MCU的控制下实现CAN规范,它内部
的所有寄存器和控制寄存器都映射到一个地址表上,MCU可以使用相应的命
令格式通过标准的SPI接口来完成对MCP2510的初始化、工作状态的
控制以及数据的读写。此外,MCP2510产生的中断还可以反馈给MCU
来处理。
2.3 系统时钟
由于MSP430的时钟频率决定着指令周期,因而该时钟直接影响S
PI接口的速率。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将写数据到MCP2
510的发送缓存并控制其发送,此后,在接收缓存收到数据后,INT引脚
将产生低电平中断以通知MSP430,MSP430响应中断后将读取数
据,并和发送的数据进行比较,以验证程序的可行性。需要注意的是,无论是
对MCP2510的读还是写,都必须使它的CS引脚处于低电平。
在实际应用中,MSP430和MCP2510都可以进入睡眠模式,并
可以由中断来激活。整个节点的主要功能均由中断子程序来完成,其中的一部
分是MSP430自身的中断(看门狗定时器溢出中断、SPI接收发送中
断、ADC中断等),另一部分是MCP2510引起的中断,这部分中断资
源十分丰富,包括信息接收发送中断、信息错误中断、总线激活中断等。它产
生的所有中断都能使INT引脚为低电平, 单片机在检测到这些中断后,将通
过SPI接口读取MCP2510内部的中断标志寄存器以判断是何中断,然
后再进行进一步处理。
4 结束语
MSP430和MCP2510的很多实用功能本文还没有进一步开发,
只是作了一个简单测试系统,而且许多实际应用中需要注意的问题也没有考虑
到,需要进一步完善。此外,由于MCP2510使用标准的SPI接口与单
片机通信,所以加上它可以不更换单片机,而只需对程序稍作修改即可,因
此,采用该方案几乎可以在任何现有系统上实现CAN总线功能。