您的位置 首页 电子

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

随着计算机技术的飞速发展,PC这个已经把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的小数据包之间的对立,可以确保数据完好和协议的牢靠转化。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/265087.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部