资料下载
×
CP2102与C8051F040的USB-CAN转换器设计资料下载
消耗积分:0
|
格式:pdf
|
大小:197.75KB
|
2021-04-10
靓仔峰
8年用户
分享资料693个
关注
引言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.0全速功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UART)。该芯片的全部功能集成在一个5 mm×5 mm的QFN28封装的IC中。CP2102内置与计算机通信的协议,工作时,所提供的免费的实用COM口器件驱动器允许基于CP2102的产品将其作为1个口使用,也就是通常所说的产生1个虚拟的口,而电路无需任何外部的USB器件即可工作,工作特性可以满足CAN总线的传输波特率要求。1.2 C8051F040芯片介绍C8051F系列单片机是Silicon Labs公司推出的混合信号系统级芯片,具有与80C51兼容的CIP51内核,指令集与MCS51完全兼容。C8051F040内部集成的CAN控制器包括一个CAN内核、消息RAM(独立于CIP51内核)、消息处理单元、控制寄存器等。C8051F040内部的CAN控制器是一个协议控制器,它并没有提供物理层的驱动器,实现与CAN总线的接口,例如82C250、TJA1050等。数据接收和滤波都由CAN控制器完成,不需要CIP51内核的参与。通过这种方式使CAN通信时占用的系统资源最小。CIP51内核通过其内部的特殊功能寄存器来配置CAN控制器以及实现数据交互。C8051F040内部的CAN结构框图如图1所示。CAN的控制协议寄存器包括控制寄存器CAN0CN、状态寄存器CAN0STA、测试寄存器CAN0TST、错误计数寄存器、位定时寄存器、波特CAN控制器、处理中断、监视总线状态、设定控制器的测试模式等。CAN控制器收发的数据存放在消息RAM中,CAN处理器有32个消息目标,可以通过配置用于数据发送或接收。这些消息RAM的数据不能被直接访问,而必须通过接口寄存器IF1或IF2来访问。除此之外,可以被直接访问的寄存器是CAN0CN、CAN0STA、CAN0TST。CAN内部其他不能被直接访问的寄存器通过CAN0ADR、CAN0DATH、CAN0DATL这三个寄存器来访问,这三个寄存器分别表示要访问的寄存器的地址和数据,向CAN0ADR中写入要访问的寄存器地址后,对CAN0DAT的读/写就相当于读/写相应的寄存器。由于C8051F040内部集成了CAN总线控制器,所以只需外加总线驱动器并加上适当的隔离就可以了,电路显得非常简洁。2 硬件实现系统电路如图2所示,由CP2102、C8051F040、CAN驱动芯片PCA82C250以及光电隔离芯片6N137等组成。CP2102的RTX、TXD引脚分别是串口的接收及输出端,与单片机的对应引脚相连。USB的终止和恢复信号支持功能便于CP2102器件以及外部电路的电源管理。当在总线上检测到终止信号时,CP2102将进入终止模式。在进入终止模式时,CP2102会发SUSPEND和SUSPEND信号。但是,SUSPEND和SUSPEND在CP2102复位期间会暂时处于高电平。为避免这种情况出现,需要用1个10 kΩ的电阻来确保SUSPEND在复位期间保持在低电平。PCA82C250是CAN收发器,可增加总线驱动能力,RS端接地,系统处于高速工作方式。6N137是光电隔离芯片,CAN总线信号CANTX和CANRX从C8051F040出来后先分别经过高速光耦6N137进行电气隔离,再经过CAN总线控制器接口芯片82C250驱动,然后接到CAN数据线上。6N137实现智能节点与CAN总线之间的电气隔离,不但提高了节点的可靠性和系统的抗干扰能力,而且也保护了总线及总线上的其他节点。总线两端124 Ω的电阻对,防止通信信号传输到导线端点时发生反射。3USB与CAN之间协议转换的实现设计在充分遵守USB和CAN协议的基础上,实现了USB数据与CAN数据之间的协议转换和转发。在设计过程中,USB的高速率和CAN的低速率,以及USB的大数据包和CAN的小数据包之间存在着矛盾,必须认真解决,否则可能造成数据丢失、协议转换不可靠、设备工作不稳定。本设计中USB和CAN都采用了接收中断方式,将USB和CAN的数据包先存储下来,作为缓冲进一步处理。在接收中断服务程序的数据时,只有将数据准确地收取下来,才将接收缓冲区释放,在此之前拒绝接收新的数据。在数据发送时,先确认发送缓冲区可用才写入数据。由于两端接口芯片都有内部的发送和接收缓冲区,主程序的主要任务就是完成数据的转发,以及提供通信同步的握手协议,防止数据丢失和顺序错误。相对于CAN总线传输速率,USB总线速率要高得多,128字节的缓冲区也比CAN总线芯片8字节缓冲区大得多。因此,向CAN接口发送数据需要完成拆包和重新打包的任务,属较慢的操作,采用定时查询式发送。CAN接收任务时,每次直接转发CAN接口收到的8字节数据到USB接口发送缓冲区,采用2个信号量(CANrcv,USBwr)完成数据同步操作。数据转发工作共有以下4个任务协调配合完成。(1) USB中断后续处理任务CP2102接收到数据或发送完成,都会触发中断程序运行。中断处理程序只需要简单地通知此任务有中断发生,以尽量减少中断关闭的时间。因此,这个任务的优先级最高,并且一旦开始运行便不再等待其他事件,要尽快处理完成。此任务根据USB接口的不同中断原因,通知其他任务进行后续的数据处理或转发工作。(2) 控制端点信息处理任务当USB接口接收到主机发来的USB协议信息时,此任务得到通知。根据主机的要求,该任务按照USB协议规范的数据格式对主机应答。它主要用于USB设备枚举阶段,与主机之间进行信息交换。其他时间,此任务不占用处理器时间。(3) CAN总线发送任务当USB接口有新的数据要转发到CAN总线时,USB中断后续处理任务通知此任务运行。读出USB芯片接收缓冲区中的数据到内存缓冲区,然后分解成小于或等于8字节的数据包,增加CAN总线协议数据包头,送入C8051F040的发送缓冲区。微处理器的主要处理时间就是USB数据包的分解和重新打包发送。此任务占用处理器的时间最长。CAN发送任务每次等待USB接收中断触发USB_ rd信号量后,开始读取CP2102接收缓冲区数据到内存数组Ep2out_ Buf[128],然后采用查询式发送方式,将数据送到C8051F040的发送缓冲区,每次8字节。在查询过程中,如果C8051F040处于正在发送中,将任务休眠3个时钟嘀嗒(<5 ms),然后再次查询,避免长时间占用处理器。(4) CAN总线接收任务当CAN总线接收到数据后,由于数据包最多只有8个字节,因此可以一次放入USB接口芯片发送缓冲区,由主机读取。此任务很少占用处理器时间。主要是为了协调CAN总线与USB总线之间数据转发的同步,使数据包可以按照原来的顺序接收到,并且不覆盖尚未发送的上一个数据包,避免数据丢失。CAN接收中断首先读C8051F040中断寄存器,清除中断标志。然后触发CANrcv信号量,使CAN接收任务得以运行。CAN接收任务然后等待USB发送完成中断触发USBwr信号量,表示USB接口可以发送新的数据。由于USB接口缓冲区较大,并且发送速度快,CAN接收任务直接将CAN接收到的数据送入USB接口芯片CP2012的发送缓冲区。然后打开CAN接收中断。结语在遵守USB和CAN协议的基础上,USB和CAN都采用了接收中断方式,通过通信同步的握手协议,实现了USB数据与CAN数据之间的协议转换和转发,很好地解决了USB的高速率和CAN的低速率,以及USB的大数据包与CAN的小数据包之间的矛盾,能够保证数据完整和协议的可靠转换。(mbbeetchina)
CAN
安防
工业
航空
所需积分:0
苹果系统暂不支持下载
下载并关注上传者
开通VIP,低至0.08元下载/次
下载资料需要
登录
,并消耗一定积分。
评论(
0
)
发评论
下载排行榜
电路的基础知识PPT
2023-03-09
305次下载
下载
周立功单片机:分散加载文件浅释
2023-03-13
69次下载
下载
储能逆变器资料原理图,pcb,源代码)
2023-03-01
66次下载
下载
FPX8341彩色图像传感器手册
2023-02-28
36次下载
下载
STM32 IAP升级
2023-03-13
28次下载
下载
从0开始学单片机入门教程
2023-03-03
18次下载
下载
相关下载
相关文章
FXMA
2102
I2
C
转换器
2022-11-15
0次下载
下载
CP2102
USB
转串口电路图
与
PCB源文件
2022-11-02
262次下载
下载
Pro Mini
CP2102
USB
转UART模块
2022-10-19
4次下载
下载
基于
CP2102
的
USB
串口编程
器
2022-07-25
2次下载
下载
USB
至RS232
转换器
资料
下载
2022-01-25
15次下载
下载
CH9102
与
CP2102
应用注意事项
2022-01-12
15次下载
下载
使用
CP2102
通过串口
下载
程序到STM32
F
103中 (MCUISP)
2021-12-06
8次下载
下载
USB
Type-
C
到HDMI2.0
的
转换器
芯片CS5265AN
2021-07-31
59次下载
下载
基于
C8051F040
DK微控制
器
的
参考
设计
2021-07-10
12次下载
下载
基于
C8051F040
单片机
的
便携式心电监护仪
的
低功耗
设计
2021-06-24
17次下载
下载
设计
USB-C
产品
与
传统标准
USB
产品有什么差别
资料
下载
2021-04-03
25次下载
下载
USB
和UART驱动程序
CP2102
应用程序免费
下载
2020-05-15
34次下载
下载
USB
串口
转换器
模块
的
使用手册和
CP2102
驱动和串口调试软件免费
下载
2019-09-30
9次下载
下载
CP2102
和
CP
2109高度集成
的
USB
到UART桥接控制
器
的
数据手册免费
下载
2019-05-28
18次下载
下载
VC++ 6.0
C8051F
340
USB
通信
的
程序
资料
免费
下载
2019-05-10
8次下载
下载
西门子
USB
-RS232驱动和HL340
USB
转串口驱动及
CP2102
驱动程序
2019-04-11
10次下载
下载
C8051F
系列元件封装
的
详细
资料
免费
下载
2019-03-01
29次下载
下载
C8051F
04x系列混合信号ISP FLASH微控制
器
数据手册免费
下载
2019-01-16
12次下载
下载
CP2102
USB
串口
转换器
模块使用说明
资料
免费
下载
2018-11-05
69次下载
下载
CP2102
USB
器件驱动x86和x64位版本应用程序免费
下载
2018-10-09
22次下载
下载
C8051F
04X系列混合信号 ISP FLASH微控制
器
的
中文数据手册
资料
免费
下载
2018-09-25
5次下载
下载
C8051F040
DK开发板全部
资料
软件例程,使用手册,原理图
的
资料
概述
2018-06-19
60次下载
下载
基于
C8051F040
的
嵌入式PLC芯片组及其开发体系
2017-11-20
31次下载
下载
基于
C8051F
远程温度控制系统应用研究
2017-09-07
15次下载
下载
基于
C8051F040
的
纳秒钬激光触摸屏控制系统_陈瑞涛
2017-03-19
2次下载
下载
CP2102
USB
转TTL模块
资料
2017-02-15
50次下载
下载
CP2102+USB
转TTL模块
资料
2017-02-15
69次下载
下载
c8051f
单片机中文
资料
下载
2016-12-16
30次下载
下载
基于
C8051F
020单片机
的
16位AD
转换器
设计
2016-07-29
10次下载
下载
USB
转TTL-
CP2102
驱动
2016-07-26
61次下载
下载
FXMA
2102
I2
C
转换器
2022-11-15
50
CP2102
USB
转串口电路图
与
PCB源文件
2022-11-02
890
Pro Mini
CP2102
USB
转UART模块
2022-10-19
98
基于
CP2102
的
USB
串口编程
器
2022-07-25
174
Silicon Labs
CP
210x
USB
转串口驱动程序
2022-06-02
1404
USB
至RS232
转换器
资料
下载
2022-01-25
429
CH9102
与
CP2102
应用注意事项
2022-01-12
1637
使用
CP2102
通过串口
下载
程序到STM32
F
103中 (MCUISP)
2021-12-06
569
基于
C8051F040
DK微控制
器
的
参考
设计
2021-07-10
234
基于
C8051F040
单片机
的
便携式心电监护仪
的
低功耗
设计
2021-06-24
476
CP2102
与
C8051F040
的
USB-CAN
转换器
设计
资料
下载
2021-04-10
443
USB
和UART驱动程序
CP2102
应用程序免费
下载
2020-05-15
704
USB
串口
转换器
模块
的
使用手册和
CP2102
驱动和串口调试软件免费
下载
2019-09-30
899
CP2102
和
CP
2109高度集成
的
USB
到UART桥接控制
器
的
数据手册免费
下载
2019-05-28
940
VC++ 6.0
C8051F
340
USB
通信
的
程序
资料
免费
下载
2019-05-10
645
西门子
USB
-RS232驱动和HL340
USB
转串口驱动及
CP2102
驱动程序
2019-04-11
1292
C8051F
04x系列混合信号ISP FLASH微控制
器
数据手册免费
下载
2019-01-16
490
CP2102
USB
串口
转换器
模块使用说明
资料
免费
下载
2018-11-05
2116
CP2102
USB
器件驱动x86和x64位版本应用程序免费
下载
2018-10-09
912
C8051F
04X系列混合信号 ISP FLASH微控制
器
的
中文数据手册
资料
免费
下载
2018-09-25
640
C8051F040
DK开发板全部
资料
软件例程,使用手册,原理图
的
资料
概述
2018-06-19
906
基于
C8051F040
的
嵌入式PLC芯片组及其开发体系
2017-11-20
654
基于
C8051F
远程温度控制系统应用研究
2017-09-07
631
基于
C8051F040
的
纳秒钬激光触摸屏控制系统_陈瑞涛
2017-03-19
702
CP2102
USB
转TTL模块
资料
2017-02-15
1171
CP2102+USB
转TTL模块
资料
2017-02-15
1532
c8051f
单片机中文
资料
下载
2016-12-16
949
基于
C8051F
020单片机
的
16位AD
转换器
设计
2016-07-29
827
USB
转TTL-
CP2102
驱动
2016-07-26
1147
C8051F
320在
USB
设计
中
的
应用
2016-04-01
806
全部
0
条评论
快来发表一下你的评论吧 !
发送