新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > CAN/RS232接口卡的设计及实现方法

CAN/RS232接口卡的设计及实现方法

作者:时间:2010-03-30来源:网络收藏

控制器局域网(Controller Area Network,CAN)属于现场总线的范畴,其总线规范已被ISO国际标准化组织制定为国际标准,并被公认为是最有前途的现场总线之一。CAN总线广泛应用于控制系统中的各检测和执行机构之间的数据通信。因为CAN总线数据的传输和处理都由节点的单片机完成。这样就使者和观察者没有办法以比较直观的方式掌握总线的运行情况。

本文引用地址:http://www.amcfsurvey.com/article/157543.htm

现在市场上主要有两种CAN的,使用PCI总线和使用USB接口。前者具有传输速度快的特点,但却要占用一个计算机的插槽,并且上十分困难;后者的传输速度也很快,且价格较便宜,但要花费很大的精力进行USB的固件开发和维护,并要编写复杂的驱动程序。根据此,需要一种能够方便读取CAN总线数据,并通过RS 232串行口将数据送给PC机处理和显示的;此外还需对其串行传输的协议进行加强,以使能有效地降低传输过程中出现的错误。

  1 的硬件设计

  硬件部分主要包括主控制器、CAN总线控制器、CAN总线收发器以及与计算机的RS 232通信接口芯片等。系统的总体结构如图1所示。主控制器通过CAN总线接口接收和缓存数据。根据PC机的命令进行选择性的数据传输。

系统的总体结构

  1.1 与CAN总线接口

  如图2所示,接口卡的控制器选用Atmel公司的AT89S51,该单片机的引脚和功能与8051兼容,并且内部含有4 KB的FLASH ROM,支持在系统编程(ISP),这样可以很方便地将应用程序下载到单片机里。

接口卡的控制器

  CAN总线控制器选用Philips公司生产的SJA1000,该芯片是PCA82C200CAN控制器的替代品,而且新增加了一种PeliCAN工作模式,能够支持CAN 2.0B协议。它还支持错误中断、报警限制、验收滤波器扩展和自接收请求等功能。在系统中,将SJA1000的中断输出引脚INT接到单片机的中断输入引脚,这样可以在接收数据或者总线错误时产生中断,由控制器进行相应的处理。SJA1000的片选CS端接单片机的P2.7引脚,这样SJA1000的地址就确定为7F00H~7FFFH。

  选用芯片82C250作为CAN控制器和物理总线间的驱动接口,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力,其最高速可达1 Mb/s。由于实际系统中存在干扰,故增加高速光隔6N137,以起到隔离的作用。电气接口很简单,有CANH和CANL两根线,用以完成CAN的数据传输。在CAN总线的两端有一个120Ω的电阻,其作用为匹配总线阻抗,用于提高数据通信的抗干扰性及可靠性。具体电路如图2所示。

  1.2 与RS 232接口

  RS 232标准是美国电子工业联合会(EIA)制定的一种串行物理接口标准,它适合于数据传输率在O~20 000 b/s范围内的通信,目前广泛用于计算机与终端或外设之间的近端连接。实际工作时,应保证电平在5~15V之间。所以为了与单片机进行通信。必须对其电平进行转换。现在常用的转换芯片是MAX232。MAX232内部有电压倍增电路和转换电路,只需5V电源便可TTL电平与RS 232电平的转换,使用十分方便。串口接口电路如图3所示。

串口接口电路

  2 接口卡的软件设计

  2.1 RS 232接口软件设计

  单片机与PC端的数据通信需要设计一个通信协议,采用同步通信方式进行。将通信协议分成命令帧、应答帧和数据帧三种格式。每种帧都包含有起始字节、数据长度、校验字节和帧结束字节。具体格式如图4所示。

通信协议


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭