嵌入式学习小组
直播中

张宁

7年用户 189经验值
私信 关注

如何实现嵌入式系统与CAN总线网络的通信?

如何利用CPLD去实现接口电路
怎样去设计MAX+PLUSⅡ程序?

回帖(1)

刘飞

2021-4-28 17:27:49
  1.引言
  可编程逻辑器件PLD(Programmable logic Device)就是由用户进行编程实现所需逻辑功能的数字专用集成电路ASIC。可编程逻辑器件在现代电子工程设计中得到了广泛应用。它是在PAL,GAL等逻辑器件的基础上发展起来的,具有高密度,高速度,低功耗体系结构和逻辑单元,灵活以及运用范围宽等特点,同时还具有设计周期短,制造成本低,开发工具先进,标准产品无需测试,质量稳定及可实时布线检验等优点。
  现场总线技术广泛应用于工业和军用测控局域网中,它可以实现较远距离、较快速度的信息传输,而且只需要双绞线作为传输媒介,简单可靠。但是,在该技术应用中总线控制器与微机之间的接口电路一般采用单片机来实现。采用这种方式将导致较长的研发周期和庞大的电路,且难于实现高速数据传输。本文利用CPLD成功地实现了嵌入式系统与CAN总线网络的通信,速度快,易于实现,而且非常稳定。
  本系统采用的器件是Altera公司的CPLD,属于MAX7000系列。Altera公司的CPLD器件主要包括MAX系列、ACEX系列、FLEX系列和APEX系列。其中MAX系列器件为高速实际应用提供了非常高的性价比,这基于它先进的MAX架构。MAX7000系列提供了速度最快的可编程逻辑器件解决方案,它基于CMOS EEPROM工艺,传播延迟最小为3.5ns。
  2.CPLD实现接口电路
  实时控制系统中,测控局域网利用CAN控制器实现微机间的数据传输。其基本的设计思想是:由于PC总线协议与CAN控制器不一致,因而在它们中间设计了一个硬件电路作为接口来实现转换。PC地址与数据总线是分离的,而CAN控制器数据与地址线通过分时复用来实现地址与数据分离,刚好与单片机一致。单片机技术虽然较成熟,但是,由于涉及单片机编程和开发的周期较长,且采用单片机系统需要较庞大的外围电路,不利于研制系统应用于嵌入式系统中。因此,用可编程逻辑器件设计接口电路,可以有效解决这些问题。
  本系统采用“主-从”式点对点通信。系统硬件由两台PC104主机和两块CAN总线通信模块组成,如图1所示。主机采用CPU主频为300MHz的奔腾处理器;CAN总线控制器位SJA1000T;一带屏蔽的双绞线作为系统总线;通信波特率可用软件设置为1Mbps;为了提高通信的可靠性,用CAN控制器的报文筛选器对报文进行筛选,来对由于干扰而产生的错误报文进行滤波。
  
  图1 系统硬件组成
  本系统主要是利用主机PC(PC104)采集多个下位机从被控对象得到的数据,并进行实时控制和综合调度,其原理框图如图2所示。
  
  图2 原理框图
  其中CPLD完成从CAN控制器到PC总线的数据转换。CAN控制器负责从总线上采集数据。总线驱动部分由89C250完成总线驱动;光电隔离器完成CAN控制器与传输电缆的信号隔离,防止电缆上的非规则信号对CAN控制器产生干扰。
  3.MAX+PLUSⅡ程序设计
  Altera公司的MAX+PLUS Ⅱ是一个高效实用的工具。直接采用原理图输入方式,进行编译后写入器件中;同时可在线更改写入内容,修改和调试简单易行。利用MAX+PLUS Ⅱ可以对输入输出关系进行在线调试和仿真,开发和调试周期短而高效。MAX+PLUSⅡ的软件设计的流程包括设计输入、功能仿真、编译、后仿真、编程验证几个部分。
  本文所论述的系统已经实现并进行通信测试,在最高通信速度、通信距离、热冗余和冷冗余实验等测试中都取得了良好的表现。这里仅论述逻辑设计输入和功能仿真。
  CPLD主要用于实现PC接口板的地址选择比较器和CAN控制器到PC总线的数据转换,其设计输入如图3所示。
  
  
  
  
  图3 设计输入
  其中compare完成选址功能,MUX2×8完成总线转换。
  4.仿真实验
  为简明起见,这里仅给出核心的部分时序仿真图形,如图4所示。
  
  图4 核心的部分时序仿真图形
  由仿真波形可知,在PC总线的读写操作进行时,地址和数据很好的实现了转换,读写的周期完整,触发迅速,保证转换的准确和迅速,满足了设计的要求。
  5.结论
  可编程逻辑器件的应用已经成为现代电子电路设计中的高效方式,它可以实现高效率、可靠的设计,也可以进一步提高电路的集成度;使用它设计的CAN通信卡可以作为通信接口而满足嵌入式系统的要求。同时,基于PC104系统的CAN通信的通信效率较高,具有较强的实时性,可以满足工业现场高速通信的需要,也可为复杂控制系统实现实时控制提供强有力的工具。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分