PXF2983-基于-ARM的-CANopen现场总线设备通信的研究与实现

Shanghai Passiontech Tech, 021-51870017, sales@51Lm.cn

     
     
     

基于-ARM的-CANopen现场总线设备通信的研究与实现


型号: PXF2983


简介:CANopen现场总线设备通信的研究与实现基于CAN总线协议的高层协议,它是具有灵活配置能力的开放式协议,已经成为基于CAN总线的分布式自动化系统的标准协议,它与CAN协议构成一个完整的网络协议,使得CAN总线的功能更加丰富,进一步推进了CAN总线在工业领域的推广和应用,而ARM处理器有三大特点,耗电少功能强...
品牌
产地
型号PXF2983
折扣

 

CANopen现场总线设备通信的研究与实现

基于CAN总线协议的高层协议,它是具有灵活配置能力的开放式协议,已经成为基于CAN总线的分布式自动化系统的标准协议,它与CAN协议构成一个完整的网络协议,使得CAN总线的功能更加丰富,进一步推进了CAN总线在工业领域的推广和应用,而ARM处理器有三大特点,耗电少功能强、16位/32位双指令集和众多合作伙伴,所以在各种处理器中它的使用最广,同时应用前景广阔,开发资源丰富,有利于缩短产品的研发周期 [1]。正是基于ARM的

优势,本文采用其作为微处理器,将上述ARM和CAN技术结合在一起,开发一个基于ARM处理器的CAN接口,实现CAN网络的CANopen设备间的通信,对挂接在CAN网络中的CANopen设备进行测试和配置,以保证CAN网络通信的正常进行,推动现场总线技术的推广应用。

2 基于ARM的扩展CAN接口硬件设计

目前,对于CAN总线接口的开发已经相对完善,但是大部分CAN微处理器都是80C51系列或C16X系列单片机,因其编程相对简单且易于实现,采用ARM系列

 


自动化技术与应用2011年第 30卷第 7期 通信与信息处理

微处理器的开发还处于发展阶段。随着嵌入式的发展,ARM已经成为一个趋势,将来必定在各个领域获得广泛应用,采用ARM处理器来研究实现CAN接口的方法。而北京博创的UP-NETARM300实验装置,其处理器正是基于ARM7的S3C44B0X,因此选择此处理器作为本设计的微处理器[2]

目前,我国工业上应用最广泛的CAN控制器芯片当属PHILIPS公司的SJA1000,它具有低成本,高可靠性,支持远距离通信等特点,兼容CAN2.0A 和CAN2.0B两种技术规范,较以往控制器在各方面的性能都有了很大的提高,尤其是在错误处理超载能力以及接收滤波等方面尤其突出[3]。因此采用SJA1000作为CAN控制器。

此外还要选择CAN总线驱动器,即CAN发送器,它是CAN控制器和物理传输线路即CAN总线之间的接口,对总线提供差动发送能力,对控制器提供差动接收能力,与控制器一起完成CAN总线数据的收发。目前常用的有通用CAN收发器PCA82C250/251,可以用高达1Mbps的位速率实现在两条差动电压总线电缆上的数据传输;高速CAN收发器TJA1050,主要应用在波特率范围从60Kbps到1Mbps的CAN总线中,是PCA82C250的后继产品,它的设计使用了最新的EMC技术,采用了先进的绝缘硅SOI技术进行处理,这样TJA1050 比PCA82C250/251的抗电磁干扰性能提高了20dB,而且在不上电状态下有理想的无源性能;容错的CAN收发器TJA1054,它主要用于客车里最高速率为125Kbps的低速应用。本设计中总线传输速率设为500Kbps,考虑到TJA1050的兼容性以及优秀的EMC性能,采用TJA1050作为总线驱动器。

综上所述,CAN控制器SJA1000与CAN收发器TJA1050共同组成CAN总线数据收发电路,通过并行的数据总线与ARM处理器通信,实现CAN接口的扩展。此外UPNET-ARM300提供了LCD、键盘等多种外设,使用它们进行人机交互,由键盘输入选择执行功能,并将结果输出到LCD显示。硬件原理图如图1。

基于S3C44B0X扩展 CAN总线接口,硬件电路实现时主要存在两个方面的问题。一是两者时序不同;二是两者工作电平不同。

首先需要解决的问题是如何协调S3C44B0X和SJA1000的时序配合。SJA1000还是沿用了传统的X86系列的总线时序,与单片机的时序正好吻合,可以直接相连,降低了开发难度,但是和ARM处理器在时序上是无法吻合。在ARM系统中,地址线与数据线是非复用的,但是SJA1000和ARM最大的不同在于它是8位总线的,总线是采用复用方式。这就要求除了片选、地址、数据和读写信号以外还需要地址锁存信号ALE线。

为了解决ARM的地址和数据总线非复用与SJA1000的复用总线之间的冲突,可以采用如下方法:ARM微处理器和SJA1000以总线方式相连,SJA1000复用总线和ARM微处理器的数据总线连接,SJA1000的读/写采用ARM处理器总线信号,使用一个“或”门和一个“或非”门的组合,配合地址总线ADDR0、ADDR1以及nGCS4一起来产生SJA1000的ALE信号和片选信号。首先ARM写外部总线,输出操作地址并使地址锁存信号ALE 有效,SJA1000在ALE信号的下降沿将操作地址锁在片内;然后ARM再次写(或读)外部总线,此时片选信号、写(或读)信号和数据有效,即完成了一个总线写(读)过程。上述方法的实质是通过两次读写ARM总线,根据其逻辑关系分别将总线数据作为地址和数据,使用ARM的两条外部存储器访问命令实现对SJA1000的寄存器操作。设计中使用地址线ADDR0 区分地址传输和数据传输:写奇地址时,给出一个有效的模拟ALE 信号;读写偶地址时,选通SJA1000读写数据。因为SJA1000采用的BANK4,对SJA1000的操作地址如下:地址锁存通过地址0x08000011;数据读写通过地址0x08000010。

另一个需要解决的问题是处理器S3C44B0X和存储

器芯片都使用3.3V的IO电压,CAN总线控制器SJA1000和TJA1050则使用5V的工作电压。S3C44B0X 的数据、地址和控制信号线可以直接驱动SJA1000,但是SJA1000输出的高电平可能损坏处理器和直接挂接在处理器数据线上的其他芯片。因此,数据线上应该使用总线转换器进行3.3/5V电平转换。这里采用QS34X245芯片在ARM和SJA1000之间转换电平。其硬件电路图如图2。

该设计以控制器SJA1000和收发器TJA1050共同组成CAN总线数据收发电路。为了增强CAN总线数据收发电路的抗干扰能力,SJA1000的TX0和RX0并不是直接与TJA1050的TXD和RXD相连,而是通过高速光耦TLP113后与TJA1050相连,实现了总线上各CAN节点间的电气隔离,提高了节点的稳定性和安全性。光耦部分电路所采用的两个电源VCC和CAN_V是完全隔离的,否则采用光耦合也就失去了意义。其中,CAN_V由CAN总线供电,而VCC由5V电源提供。

TJA1050与CAN总线的接口部分也采用了一定的安全和抗干扰措施。TJA1050的CANH和CANL引脚各自通过一个5 W的电阻与CAN总线相连,电阻可以起到一定的限流作用,保护TJA1050免受过大电流的冲击。CANH和CANL与地之间并联了两个30pF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。其硬件电路图如图3所示。

3 现场总线通信软件设计

软件开发平台的搭建即uC/OS_Ⅱ的建立,使用ADS开发工具,将uC/OS_Ⅱ内核进行移植,这里的移植方法可以参考文献[4-5],同时需要进行uC/OS_ Ⅱ的扩展来满足工程应用,这里用到的外设有键盘、LCD以及CAN接口来为应用提供需求。uC/OS_Ⅱ是一个基于任务调度的实时操作系统,当有多个任务时每个任务的优先级必须不同,系统总是运行进入就绪状态的优先级最高的那个任务。本文实现了CANopen设备的测试和配置功能,创建2个任务,测试任务的优先级高于配置任务,以便快速检错。任务之间是通过消息来通信的。

对CAN总线中挂接的CANopen设备的测试以及配置的实现过程如下:UP-NETARM300的键盘作为外部输入,成为人机接口的重要一部分,LCD作为输出显示,主要担任显示、刷新等职责。当硬件设备上电并完成初始化后,LCD会显示命令提示行,提示输入指令,键盘输入数字0时,实现测试CANopen通信参数的功能,将读取的CANopen设备的通信参数显示到LCD;输入1时实现默认配置CANopen通信参数的功能,同样将收到的应答信息显示到LCD。

4 实验调试与分析

程序编译通过后,通过JTAG烧写到S3C44B0X中进行调试。CANopen通信是以S3C440BX和CAN总线数据收发电路构成CAN总线上的主节点,以sysWORXXCANopen I/O 模块作为子节点进行通信。为了获得实际传输的数据,方便分析结果,采用CANopen MagicProDS进行仿真。

1. 测试CANopen设备的默认参数

 

主节点接收到来自子节点的应答报文,得到的参数信息如表1所示。ID为602对应SDO请求报文,ID为582对应SDO应答报文。

2. 默认配置CANopen设备的通信参数

键盘键入1,进行配置参数的功能,测试结果见表2。ID为602对应SDO请求报文,ID为582对应SDO应答报文。

表2 实验数据

通过测试表明本文所开发的总线通信软件和硬件能够完成CAN总线通信的要求。

CANopen协议以CAN芯片为硬件基础,有效利用CAN芯片提供的简单通讯功能去实现工业控制网络的复杂应用层协议要求。CANopen不仅定义了应用层和通信子协议,而且为可编程系统、不同器件、接口、应用子协议定义了大量的行规,遵循这些行规开发出的CANopen设备能够实现不同公司产品间的互操作。为

的增长,HID灯参数会逐渐变化。如果控制器不能动态

的检测这些指标并实时调整驱动策略,会影响灯的使用

效果和使用寿命。本文设计的基于单片机的HID灯控

制器,能自动检测冷热灯的状态,根据新、旧灯参数不

一样采取不同的控制策略,提高控制器可靠性,延长

HID灯使用寿命。

 


url: http://www.51lm.cn/p/templates/cn/show.php?cid=905&aid=2983

 

电话400-878-1895, 传真:021-51561359 邮箱:sales@51LM.cn
sales@51LM.cn 上海徐汇区斜土路2601号嘉汇广场T1-11B