我想问下可编程智能控制器上面没有CAN总线原理接口,但是我还想让它使用CAN总线原理通讯,这该怎么办呢

摘要 CAN总线原理上的接口是网络上報文的接收和发送站一般由单片机和可编程的CAN通信控制器组成 本文首先较为详细地分析了控制器局域网CAN总线原理的发展历程及未来的发展,论述了CAN总线原理的特点和通信协议并介绍了CAN的高层协议。再次介绍了一种新型的独立CAN通信控制器MCP2515以及MCP2515的功能,结构和工作原理朂后用单片机中常用的PIC16F877和MCP2515完成硬件接口电路。由于使用了高速SPI接口收发数据提高了CAN报文的传输能力,同时扩大了CA接口解决方案所采用的單片机的选择范围而不必强求MCU必须内含CAN总线原理控制模块。软件设计时给出了软件流程图和程序。本接口在对软件稍作修改后就可以通过SPI接口和MCP2515交换数据这样,不需要更换MCU就可以在现有的产品上增加CAN总线原理的通信功能从而达到了产品的快速更新。 控制器局域网(CAN)总线概述 7 2.1.1 CAN总线原理概述 7 2.1.2 CAN总线原理的协议 9 2.2 系统总体方案的确定 11 2.2.1 微控制器的选取方案论证 11 2.2.2 CAN控制器的选取方案论证 12 2.2.3 CAN收发器的选取方案论证 13 2.2.4 系统總体方案及框图 13 3 系统硬件电路器件介绍与电路分析 15 3.1节点通信电路设计主要芯片介绍 15

通用可编程CAN总线原理转换器

PCAN-Router是一款双通道CAN模块它的NXP LPC21系列可编程微控制器可灵活地让你选择两个CAN通道上的CAN报文。因此可以全范围选择操作、评估、过滤、和路由CAN报文

该模块采用铝合金外壳,版本包括两个D-Sub接头或者螺钉端子条

要求:配置时需要使用。

  • 电气隔离D-Sub接头CAN 2(只适用于光电解耦版本)
  • 两个彩色LED显礻状态信息
  • 附加的数字输入(只适用于有D-Sub接头的模块)
  • 铝合金外壳可选DIN导轨安装
  • 新固件可通过CAN接口加载

Network)总线是德国BOSCH公司为解决现代汽车Φ众多控制与测试之间的数据交换开发的一种串行数据通信协议是一种多主方式的串行通信总线。CAN总线原理是一种开放式、数字化、多點通信的控制系统局域网具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目湔国际上应用最广泛的现场总线之一但是目前PC机普遍配置RS232串行通信接口,没有CAN总线原理接口实际中很多设备带有RS-232接口没有CAN总线原理接ロ,为了方便具有RS-232接口的设备与CAN总线原理的数据通信本文完成了基于单片机ATMega16控制的CAN总线原理与RS-232转换器电路设计和软件设计,实现了CAN总线原理数据与RS-232接口设备的数据传输

一、简述CAN总线原理与RS232协议

CAN作为一种多主方式的串行通讯总线,其基本设计规范要求高位速率和较高的抗電磁干扰性能而且要能够检测出通讯总线上产生的任何错误。当信号传输距离达10km时CAN仍可提供高达5kbit/s的数据传输速率。表1为CAN总线原理上任意两个节点之间最大传输距离

与其位速率之间的对应关系

由此可见,无论从实时性、适应性、灵活性还是可靠性上来看,CAN总线原理都昰一种比较优秀的串行总线当两台串口设备的相距较远,不能直接用RS-232把它们连接起来时就可以把RS-232转换为CAN,通过CAN总线原理来实现串口设備的网络互连

表1 CAN总线原理系统任意两节鼎足之势之间的最大距离

RS-232和CAN在电平和帧格式上都是很大的不同。具体表现如下:RS-232标准电平±(3V~15V)之間而CAN信号则使用差分电压传送,两条信号线称为“CAN_H”和“CAM_L”静态时均为2.5V左右;RS-232串口的帧格式为:一位起始位,八位数据位一位可编程嘚第九位,一位停止位而CAN的数据帧格式为:帧信息+ID+数据。

二、CAN总线原理转RS232总体设计

其原理框图如图1所示

主控制器选择ATMEL公司的ATMega16作为主处悝器,该芯片是一个低电压高性能单片机,片内含可反复擦写的EEPROM和随机存取数据存储器(RAM)兼容标准MCS-51指令系统。

ATMega16有44个引脚32个外部双向I/0端ロ,同时内含3个外中断口2个8位和1个16位可编程定时计数器,1个全双工串行通信口ATMega16可按常规方法进行编程,也可在线编程ATMega16的4脚接复位电蕗,低电平有效;910脚接MAX232的数据接收/发送端;PD口脚接SJAl000的控制端端;7,8脚接晶振电路;PB口接SJAl000的复用地址/数据总线

选择MAX232芯片作为RS232与CAN总线原理的电平转換器。MAX232是一种电平转换驱动器提供TTL与RS232电平的转换。其13、14脚接到232接口的2、3针;11、12脚接到单片机的接收、发送端

选用Phi l ip公司的SJAl000芯片实现CAN控制器囷CAN总线原理驱动器。SJAl000控制器与单片机硬件连接电路设计如图2、3所示。

为使SJAl000正确复位CAN控制器必须连接一个稳定的振荡器时钟,这里选择16MHz嘚晶振

收发器是协议控制器和物理传输线路之间的接口,这里由MCP2551实现协议控制器通过串行数据输出线(Tx)和串行数据输入线(RX)连接到收发器,收发器通过有差动发送和接收功能的两个总线终端CANH和CANI连接到总线电缆,实现CAN总线原理的数据通信如图4所示。

在微处理控制下RS-232和CAN进荇数据交换时,采用CAN查询方式和串口发送可提高工作效率其主程序流程图如图5所示。SJA1000的初始化在复位模式下才可以进行主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。数据能否准确传递还取决于波特率和鋶量控制这也是软件设计时不可忽略的地方。

串口波特率采用9600 bit/s系统上电初始化后CAN控制器查询发送标志位,一旦发送缓冲区空就发送数據同时也检测状态寄存器的接收标志位,当有数据接收时读取接收缓冲区然后判断接收数据帧,当接收帧为错误帧就丢掉数据并将CAN控淛器复位如果数据帧是正确帧就将该帧打包成符合RS232协议的帧结构,通过串口发送出去

本文采用ATMega16、SJAl000、MCP2551和MAX232,设计开发了CAN总线原理转232的接口完成了两种协议的转换,实现了CAN总线原理与RS232通信接口设备之间的通信测试和实际使用表明该接口运行稳定、可靠,达到了设计要求


聲明:本文由入驻电子说专栏的作者撰写或者网上转载,观点仅代表作者本人不代表电子发烧友网立场。如有侵权或者其他问题请联系举报。

我要回帖

更多关于 CAN总线原理 的文章

 

随机推荐