CP2102与C8051的USB-控制器局域网

发布者:温柔阳光最新更新时间:2016-06-07 来源: elecfans关键字:CP2102  C8051  USB  局域网 手机看文章 扫描二维码
随时随地手机看文章
      随着计算机技术的飞速发展,PC这个已经把USB采纳为通用总线和通用接口标准的控制器几乎已经成为各个领域操控终端的不二之选。只要接口标准统一,并安装必要的应用软件和驱动程序,PC就能接入到各个控制系统中去。因此,为了应用的高效率和操控的便利性,完全有必要采用技术手段实现通过PC的USB接口接入CAN专业网络,把USB的通用性和CAN的专业性结合起来,把它们的优势融合。

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

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Ω的电阻对,防止通信信号传输到导线端点时发生反射。

3 USB与CAN之间协议转换的实现

      设计在充分遵守USB和CAN协议的基础上,实现了USB数据与CAN数据之间的协议转换和转发。在设计过程中,USB的高速率和CAN的低速率,以及USB的大数据包和CAN的小数据包之间存在着矛盾,必须认真解决,否则可能造成数据丢失、协议转换不可靠、设备工作不稳定。本设计中USB和CAN都采用了接收中断方式,将USB和CAN的数据包先存储下来,作为缓冲进一步处理。在接收中断服务程序的数据时,只有将数据准确地收取下来,才将接收缓冲区释放,在此之前拒绝接收新的数据。在数据发送时,先确认发送缓冲区可用才写入数据。由于两端接口芯片都有内部的发送和接收缓冲区,主程序的主要任务就是完成数据的转发,以及提供通信同步的握手协议,防止数据丢失和顺序错误。

      相对于CAN总线传输速率,USB总线速率要高得多,128字节的缓冲区也比CAN总线芯片8字节缓冲区大得多。因此,向CAN接口发送数据需要完成拆包和重新打包的任务,属较慢的操作,采用定时查询式发送。CAN接收任务时,每次盲接转发CAN接口收到的8字节数据到USB接口发送缓冲区,采用2个信号量(CAN—rcv,USB—wr)完成数据同步操作。数据转发工作共有以下4个任务协调配合完成。

      (1)USB中断后续处理任务

      CP2102接收到数据或发送完成,都会触发中断程序运行。中断处理程序只需要简单地通知此任务有中断发生,以尽量减少中断关闭的时间。因此,这个任务的优先级最高,并且一旦开始运行便不再等待其他事件,要尽快处理完成。此任务根据USB接口的不同中断原因,通知其他任务进行后续的数据处理或转发工作。

      (2)控制端点信息处理任务

      当USB接口接收到主机发来的USB协议信息时,此任务得到通知。根据主机的要求,该任务按照USB协议规范的数据格式对主机应答。它主要用于USB设备枚举阶段,与主机之间进行信息交换。其他时间,此任务不占用处理器时间。

      (3)CAN总线发送任务

      当USB接口有新的数据要转发到CAN总线时,USB中断后续处理任务通知此任务运行。读出USB芯片接收缓冲区中的数据到内存缓冲区,然后分解成小于或等于8字节的数据包,增加CAN总线协议数据包头,送入C805lF040的发送缓冲区。微处理器的主要处理时间就是USB数据包的分解和重新打包发送。

      此任务占用处理器的时间最长。CAN发送任务每次等待USB接收中断触发USB_rd信号量后,开始读取CP2102接收缓冲区数据到内存数组Ep2out_Bur[128],然后采用查询式发送方式,将数据送到C8051F040的发送缓冲区,每次8字节。在查询过程中,如果C8051F040处于正在发送中,将任务休眠3个时钟嘀嗒(<5 ms),然后再次查询,避免长时间占用处理器。

      (4)CAN总线接收任务

      当CAN总线接收到数据后,由于数据包最多只有8个字节,因此可以一次放入USB接口芯片发送缓冲区,由主机读取。此任务很少占用处理器时间。主要是为了协调CAN总线与USB总线之间数据转发的同步,使数据包可以按照原来的顺序接收到,并且不覆盖尚未发送的上一个数据包,避免数据丢失。CAN接收中断首先读C8051F040中断寄存器,清除中断标志。然后触发CAN—rcv信号量,使CAN接收任务得以运行。CAN接收任务然后等待USB发送完成中断触发USB—wr信号量,表示USB接口可以发送新的数据。由于USB接口缓冲区较大,并且发送速度快,CAN接收任务直接将CAN接收到的数据送入USB接口芯片CP2012的发送缓冲区。然后打开CAN接收中断。

      在遵守USB和CAN协议的基础上,USB和CAN都采用了接收中断方式,通过通信同步的握手协议,实现了USB数据与CAN数据之间的协议转换和转发,很好地解决了USB的高速率和CAN的低速率,以及USB的大数据包与CAN的小数据包之间的矛盾,能够保证数据完整和协议的可靠转换。

关键字:CP2102  C8051  USB  局域网 引用地址:CP2102与C8051的USB-控制器局域网

上一篇:基于T89C51CC0X系列的程序下载器与通讯调试器设计
下一篇:使用51单片机驱动YM12232B型液晶显示屏

推荐阅读最新更新时间:2024-03-16 14:56

用于车载USB供电的NCV8852(一)
  一前言   在目前的车载娱乐系统中, USB 接口已经成为系统的标配。随着大电池容量的便携设备的流行,做为车载充电接口的USB电源,需要提高更大的 电流 以满足设备的需要。目前主流方案中,单个USB口的负载能力需要达到2.5A。车载USB系统的架构为:从汽车蓄电池取电,经过降压 电路 后得到5V的稳定电源,提供给USB的VBUS。汽车蓄电池的 电压 并不是一个稳定的电压,其变化范围是非常大的,以小型乘用车为例,其蓄电池电压典型值为13V,电压范围为9~16V,在启停等恶劣情况下,会低至6V,甚至更低。不少整车厂对USB电源有着非常严苛的要求,6V电池电压下要保证5V输出,考虑到输入端的反极性保护及线损,USB电源的输入端电压会更
[嵌入式]
通用串行总线(USB)电缆隔离器电路 (CN0159)
电路功能与优势 通用串行总线(USB)正迅速成为大部分PC外设的标准接口。由于它具有出色的速度、灵活性,并且支持设备热插拔,因而正在取代RS232和并行打印机端口。工业和医疗设备制造商也非常希望使用这种总线,但苦于没有很好的方式来为控制危险电压的机器连接或者医疗应用中的低泄漏防去颤连接提供必要的隔离,导致应用推广相当缓慢。 ADuM4160主要设计用作USB外设的隔离元件。但在某些情况下,它也可以用于实现隔离电缆功能。为此,必须先解决几个问题。ADuM4160上游和下游的缓冲器完全相同,均能驱动USB电缆,但下游缓冲器还必须能够根据与之相连的全速或低速外设调整速度。上游连接必须像外设一样工作,下游连接必须像
[模拟电子]
<font color='red'>通用串行总线</font>(<font color='red'>USB</font>)电缆隔离器电路 (CN0159)
芯片及IP供应商Kandou宣布完成9320万美元C轮融资
日前,芯片及IP供应商Kandou宣布完成9320万美元C轮融资。 此次融资的参与者包括Bessemer领导的现有投资者,以及两名新投资者Climb Ventures和由Flexstone Partners管理的Swiss Select Opportunities。迄今为止,公司的总融资额为1.328亿美元。 C轮融资将用于Kandou的首款Matterhorn芯片,这是一款支持USB4的USB-C多协议重定时器解决方案,以支持电子设备的消费和网络应用。此外,资金将用于正在进行的Chord信号技术与Glasswing超短距离(USR)SerDes IP。 Kandou创始人兼首席执行官Amin Shokrollahi表
[半导体设计/制造]
全面认识USB的技术精髓
  USB是Universal Serial Bus的简称。它是一种可以同时处理计算机与具有USB接口的多种外设之间通信的电缆总线。这些连接到计算机上的外设共同分享USB的带宽。USB的分时处理机制真正在硬件的意义上实现了计算机外设的即插即用。    如果留心一下当前市场上的电脑外设,大家会发现采用USB设备的产品正在逐渐增加。键盘、鼠标、MODEM、游戏杆、音箱、扫描仪等,以前插在串行、并行等外部扩展接口上的部件,甚至一些以前要连接到电脑内部扩展槽上的设备,都开始以USB接口的界面出现,USB设备的发展势头正如日中天。    本文将从技术的角度来探讨一下USB,有关它的实用部分请参阅本刊1999年第5、7和11期的相关文章
[嵌入式]
如何在手持设备中将全速USB升级为高速USB
移动手持终端市场已经出现对高速 (HS) USB 的巨大需求,这比预期计划实现的时间要来的更快,开发人员对此有些措手不及,因此他们不得不将这种需求添加到现有的设计中,而不是在未来的设计中重新开始。消费类电子的快速变化特性推动着高速USB的市场需求,例如音乐和图片文件传输。在现有设计中,全速USB用于实现这些文件传输以及其它一些功能,如诊断功能、调制解调器连通性以及系统升级。现在,开发可处理用户文件传输的高速 USB 时需要确保消费者体验不会受到低速数据传输的影响。至于其它全速 USB 功能仍不需要更改为高速 USB 功能,这样一来就带来了更多的软件修改风险和超越了目前高速USB所能提供的高速端点数的要求。 本文将描述开发人员如何
[应用]
Maxim推出集成USB收发器的MAXQ微控制器
Maxim推出集成了USB收发器的高性能16位RISC微控制器MAXQ622。该款微控制器针对低功耗应用而设计,采用外部电源(1.7V至3.6V)供电或直接由USB电源供电。当连接USB接口时,智能电源监测电路可主动将器件的供电电源由主电源切换至USB电源,从而节省了电能。MAXQ622在停止模式下仅消耗300nA (典型值)的超低电流,可进一步延长电池使用寿命。上述独特的省电特性使MAXQ622能够理想用于远端控制、安全系统、温度调节器、血压监测仪以及其它多种消费类电子产品和医疗设备。 MAXQ622包含128KB闪存、6KB数据RAM、两个USART端口、两个SPI™主/从通信端口、一个I²C端口、一个带有
[单片机]
Maxim推出集成<font color='red'>USB</font>收发器的MAXQ微控制器
基于CAN总线结合射频和USB实现车载故障诊断仪的设计方案
设计一款基于2.4G 射频 的车载 CAN 总线故障诊断仪,详细介绍其工作原理及系统硬件 电路 ,最后分别阐述接收端、发射端和PC端的软件模块。 该方案采用自动跳频的2.4G空中协议,经 测试 统计误码率保持在有效范围之内,在14m内仍能正常工作。采用 USB 作为接收端和PC 接口 ,保证了系统的即插即用及数据的高速传输。 控制器局域网络CAN(Controller Area Network)为汽车内部各种复杂的电子设备、控制器、 测量 仪器等提供了统一数据交换渠道,已得到广泛的应用。目前,太多数汽车部件都提供了CAN总线通信接口。 在当今的中高档汽车中,都采用了CAN总线技术。针对车载CAN总线会出现的故障.结合射
[汽车电子]
基于CAN总线结合射频和<font color='red'>USB</font>实现车载故障诊断仪的设计方案
基于USB通信的FPGA高速数据采集系统
摘要:为了解决高速数据采集以及数据传输问题,设计了基于USB通信的FPGA高速数据采集系统。方案以FPGA为控制核心,实现A/D控制、数据缓存双口RAM和控制CY7C68013A三个功能。系统采用Verilog HDL语言,通过ISE软件编程控制多个AD7356同时进行数据采集,将采集所得数据存入双口RAM,控制CY7C68013A将数据通过USB总线上传到PC机。系统进行实测实验表明,在CY7C68013A设定为16.7Mb/s的传输速率下,系统工作正常。 关键词:USB;FPGA;高速数据采集;CY7C68013A;双口RAM 0 引言 现代安全防卫系统中及时发现和定位入侵行为具有重要的现实意义。传统的安全防卫系统存
[嵌入式]
基于<font color='red'>USB</font>通信的FPGA高速数据采集系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved