微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > CP2102与C8051的USB-CAN转换器设计

CP2102与C8051的USB-CAN转换器设计

时间:11-04 来源:互联网 点击:
CAN(Controller Area Network,控制器局域网)总线是德国Bosch公司在20世纪80年代初为解决汽车中众多控制与测试仪器间的数据交换而开发的一种串行数据通信协议,主要用于各种设备检测及控制。CAN总线是一种多主机控制局域网标准,具有物理层和数据链路层的网络协议、多主节点、无损仲裁、高可靠性及扩充性能好等特点,能有效支持分布式控制系统的串行通信网络。一方面,其通信方式灵活,可实现多主方式工作,还可实现点对点、点对多点等多种数据收发方式;另一方面,它能在相对较大的距离间进行较高位速率的数据通信。因此无论是在高速网络还是在低成本的节点系统,CAN总线都得到了广泛的应用。USB(Universal Serial Bus,通用串行总线)是1995年以Intel为首的7家公司推出的一种协议规范,具有即插即用、软硬件支持广泛、功耗低、价格低、数据传输率高、硬件结构标准化和总线拓扑结构完备等特点,因此USB自1995年问世以来,显示出了强大的生命力。在以计算机为上位机的控制系统中,USB口比较适合作为计算机与测控网络的接口。

随着计算机技术的飞速发展,PC这个已经把USB采纳为通用总线和通用接口标准的控制器几乎已经成为各个领域操控终端的不二之选。只要接口标准统一,并安装必要的应用软件和驱动程序,PC就能接入到各个控制系统中去。因此,为了应用的高效率和操控的便利性,完全有必要采用技术手段实现通过PC的USB接口接入CAN专业网络,把USB的通用性和CAN的专业性结合起来,把它们的优势融合。

1 芯片的选择

1.1 CP2102芯片介绍

CP2102是Silicon Labs公司研发的一种高度集成的USB转UART桥接芯片,具有价格低、开发简单等特点,能够用最简单的外部电路和最少的外部器件简便地实现USB到UART的转换。CP2102包含USB2.O全速功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UART)。该芯片的全部功能集成在一个5mm×5 mm的QFN28封装的IC中。CP2102内置与计算机通信的协议,工作时,所提供的免费的实用COM口器件驱动器允许基于CP2102的产品将其作为1个口使用,也就是通常所说的产生1个虚拟的口,而电路无需任何外部的USB器件即可工作,工作特性可以满足CAN总线的传输波特率要求。

1.2 C8051F040芯片介绍

C8051F系列单片机是Silicon Labs公司推出的混合信号系统级芯片,具有与80C51兼容的CIP一51内核,指令集与MCS一51完全兼容。C8051F040内部集成的CAN控制器包括一个CAN内核、消息RAM(独立于CIP一51内核)、消息处理单元、控制寄存器等。C8051F040内部的CAN控制器是一个协议控制器,它并没有提供物理层的驱动器,实现与CAN总线的接口,例如82C250、TJAl050等。数据接收和滤波都由CAN控制器完成,不需要CIP一51内核的参与。通过这种方式使CAN通信时占用的系统资源最小。CIP一51内核通过其内部的特殊功能寄存器来配置CAN控制器以及实现数据交互。C8051F040内部的CAN结构框图如图1所示。




CAN的控制协议寄存器包括控制寄存器CANOCN、状态寄存器CANOSTA、测试寄存器CANOTST、错误计数寄存器、位定时寄存器、波特CAN控制器、处理中断、监视总线状态、设定控制器的测试模式等。CAN控制器收发的数据存放在消息RAM中,CAN处理器有32个消息目标,可以通过配置用于数据发送或接收。这些消息RAM的数据不能被直接访问,而必须通过接口寄存器IFl或IF2来访问。除此之外,可以被直接访问的寄存器是CANOCN、CANOSTA、CANOTST。CAN内部其他不能被直接访问的寄存器通过CANOADR、CANODATH、CANODATL这三个寄存器来访问,这三个寄存器分别表示要访问的寄存器的地址和数据,向CANOADR中写入要访问的寄存器地址后,对CANODAT的读/写就相当于读/写相应的寄存器。由于C8051F040内部集成了CAN总线控制器,所以只需外加总线驱动器并加上适当的隔离就可以了,电路显得非常简洁。

2 硬件实现

系统电路如图2所示,由CP2102、C8051F040、CAN驱动芯片PCA82C250以及光电隔离芯片6N137等组成。CP2102的RTX、TXD引脚分别是串口的接收及输出端,与单片机的对应引脚相连。USB的终止和恢复信号支持功能便于CP2102器件以及外部电路的电源管理。当在总线上检测到终止信号时,CP2102将进入终止模式。在进入终止模式时,CP2102会发SUSPEND和SUSPEND信号。但是,SUSPEND和SUSPEND在CP2102复位期间会暂时处于高电平。为避免这种情况出现,需要用1个10kΩ的电阻来确保SUSPEND在复位期间保持在低电平。PCA82C250是CAN收发器,可增加总线驱动能力,RS端接地,系统处于高速工作方式。6N137是光电隔离芯片,CAN总线信号CANTX和CANRX从C8051F040出来后先分别经过高速光耦6N137进行电气隔离,再经过CAN总线控制器接口芯片82C250驱动,然后接到CAN数据线上。6N137实现智能节点与CAN总线之间的电气隔离,不但提高了节点的可靠性和系统的抗干扰能力,而且也保护了总线及总线上的其他节点。总线两端124Ω的电阻对,防止通信信号传输到导线端点时发生反射。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top