当前位置:首页 > 智能硬件 > 智能硬件
[导读]USB总线就是一种新型、快速、双向、同步传输、并可以热插拔的数据传输总线,它满足了人们对总线易用性、扩展能力强和低成本的要求,因此,USB在PC外设领域的传输速率从1.5Mbps的低速和12 Mbps的全速提高到如今的480

USB总线就是一种新型、快速、双向、同步传输、并可以热插拔的数据传输总线,它满足了人们对总线易用性、扩展能力强和低成本的要求,因此,USB在PC外设领域的传输速率从1.5Mbps的低速和12 Mbps的全速提高到如今的480 Mbps的高速数据传输。目前,USB总线已经逐渐成为计算机领域中应用最广泛的外设总线连接规范。

与此同时CAN(Controller Area Network)总线技术也日趋成熟,其传输距离远,传输速率高,抗干扰能力强,易于组网,而且节约成本,已被公认为是最有前途的现场总线之一,并在国内外控制领域获得了普遍重视。目前,德国现代汽车公司和欧洲其他几个主要汽车公司的车内控制系统全部采用CAN总线,国内的很多工业控制系统,(如车载控制系统、医疗控制系统和很多智能小区中的智能控制系统)都采用了CAN总线技术。随着更加完善的CAN2.0B协议的提出,国外已有专家提出预言,CAN总线的应用寿命至少还有二十年。

虽然上述两种总线的特点都比较突出,但二者在控制领域的应用仍有其自身局限性。USB的传输距离通常不超过几十米,经常达不到工业应用的要求;而CAN适配器与主机在传统接口上的连接十分繁琐和复杂,不利于CAN的应用扩展。所以,本设计考虑将传输距离较远的CAN总线技术与即插即用的USB接口技术相结合,即利用USB接口方便的实现CAN总线和主机的连接,从而有力的扩展了CAN总线的监控和管理功能,扩大CAN总线的应用范围。

1 接口模块的总体设计

本文所介绍的USB-CAN转接技术总体框图如图1所示,该设计分两大部分:一是与主机USB接口相连的USB控制部分;二是与CAN总线相连的CAN控制器部分。两者中间通过单片机联系起来。USB控制部分用USB接口控制芯片CH372来实现数据的接收和发送;CAN控制器SJA1000用来实现CAN总线间的数据通信。单片机用来进行相应的控制、协调以及系统的通信。

2 AT89C52在系统中的功能

单片机AT89C52在系统中主要起到一个桥梁和协调控制的作用。主机通过CH372把数据发送到单片机,单片机再把数据通过SJA1000发送到CAN总线,从而实现整个系统的通信。此外,单片机还需要对CH372和SJA1000进行初始化,并通过地址/数据以复用的方式访问CH372和SJA1000。由于在访问其中一个芯片时,如果另一个芯片还保持有输出,那么单片机就不能读到正确的数据,因此,单片机要通过片选控制信号分配有效地址。单片机主要通过主循环来监控系统的通信,其主循环流程图见图2所示。

3 USB控制部分

USB控制部分使用USB接口控制芯片CH372来实现数据的接受和发送。CH372是一个USB总线的通用设备接口芯片,CH372在单片机端,具有8位数据总线和读、写、片选控制线以及中断输出,因此可以方便地挂接到单片机/DSP/MCU等控制器的系统总线上;在计算机系统中,CH372的配套软件提供了简洁易用的操作接口,因此,与本地端的单片机通讯就如同读写文件一样简单。

CH372在计算机端提供有应用层接口,应用层接口是由CH372动态链接库DLL提供的面向功能应用的API,所有API在调用后都会有操作状态返回,但不一定有应答数据。CH372动态链接库提供的API包括:设备管理API、数据传输API、中断处理API等。

在应用层设计中,笔者采用的是请求加应答的方式。该方式使用一个下传的主动请求和一个上传的被动应答进行交互式双向数据通讯,下传与上传一一对应,相互关联。主动请求是指由计算机应用层下传给单片机的数据请求,被动应答则是单片机收到数据请求后,上传给计算机应用层的应答数据。所有的通讯都由计算机应用层发起,然后以接收到单片机的应答结束,其完整的过程包括如下步骤:

(1) 计算机应用层按事先约定的格式将数据请求发送给CH372芯片;

(2) CH372芯片以中断方式通知单片机;

(3) 单片机进入中断服务程序,以获取CH372的中断状态并分析;

(4) 如果是上传,则释放当前USB缓冲区,然后退出中断程序;

(5) 如果是下传,则从数据下传缓冲区中读取数据块;

(6) 分析接收到的数据块,准备应答数据,或者先退出中断程序再处理;

(7) 单片机将应答数据写入批量端点的上传缓冲区,然后退出中断程序;

(8) CH372芯片将应答数据返回给计算机;

(9) 计算机应用层接收到应答数据。

在单片机端,CH372芯片占用两个地址位,当A0引脚为高电平时,系统选择命令端口,此时可以写入命令;当A0引脚为低电平时,选择数据端口,此时可以读写数据。单片机通过8位并口对CH372芯片进行读写时,所有操作都是由一个命令码、若干个输人数据和若干个输出数据组成。

但部分命令不需要输入数据,而部分命令也可以没有输出数据。

CH372芯片专门用于处理USB通讯。在接收到数据或发送完数据后,CH372将以中断方式通知单片机进行处理。单片机通过CH372接收和发送数据的流程图如图3所示。

4 CAN控制器部分

CAN控制器SJA1000可以通过总线驱动器PCA82C250接收CAN总线上的信号,并将其传送到微控制器,同时接收微控制器传来的信号,然后通过驱动器再传送到CAN总线。

由于SJA1000与CH372的地址/数据总线共用,故应通过片选加以区别。操作时可将地址锁存管脚ALE/AS与单片机的ALE/P相连接,WR和RD管脚分别与单片机的WR、RD相连接。MODE管脚拉高则选用INTEL模式。应用时应将中断管脚INT与AT89C52的INT1相连,并接外部中断1,同时应接上拉10 kΩ电阻。电源与地之间应连接去耦电容。

SJA1000的TX0和RX0管脚分别与驱动器82C250的TX和RX相连接,可用于向CAN总线发送和接收数据。此时,需要将RX1管脚接到一个稳定的电平上,并将系统中的RX1接地。

在CAN总线端,单片机控制着传输流程。SJA1000的初始化由单片机完成,其初始化流程图见图4所示,在正常工作模式下,单片机可控制SJA1000的收发等操作,以完成和CAN总线的通信。当主机端传来数据时,单片机将数据转发到SJA1000的发送缓冲区,并由SJA1000根据CAN协议自动封装后发送到CAN总线上;当SJA1000接收到来自CAN总线上的一个有效的报文后,系统将在INT引脚上产生一个硬件中断信号(低有效),当单片机收到中断信号后,即进人中断服务程序,以完成数据的接收和处理,其中断服务流程见图5所示。

5 结束语

本文介绍的USB-CAN转接系统可以实现预期的目标。它能够实现数据的传输,从而为CAN总线和PC机的连接提供了一个方便实用的USB接口。

更多计算机与外设信息请关注21ic计算机与外设频道

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2025年8月13日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Asahi Kasei Microdevices (AKM) 的...

关键字: 数模转换器 USB 无线扬声器

物联网与智能化设备快速普及,供电方式的选择直接影响设备部署的灵活性、成本与可靠性。PoE(以太网供电)与USB供电作为两大主流技术,分别在工业网络、智能家居、消费电子等领域占据关键地位。本文将从设备适配性、传输距离、功率...

关键字: PoE USB

在无线技术的发展历程中,部署的简便性往往是成功的关键。像Wi-Fi、蓝牙和早期的蜂窝技术,只有在集成变得简单、无缝且实惠时,才能实现大规模的应用。而如今,Wi-Fi HaLow——一种专为物联网(IoT)设计的远距离、低...

关键字: 物联网 Wi-Fi USB

2025年8月5日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics)即日起开售Microchip Technology的新款AVR® SD 8位MCU。AVR...

关键字: MCU 工业自动化 USB

随着高解析度音频应用的不断发展和广泛部署,诸如USB与I2S之间等不同专业接口之间的高品质音频转换需求日益增长,由此带来了实现高性能、高实时性与高灵活性的新挑战。为此,边缘AI和智能音频专家XMOS携手其全球首家增值分销...

关键字: SoC USB 处理器

【2025年7月24日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日推出新型英飞凌ID Key系列,进一步扩展其通用串行总线(USB)...

关键字: 控制器 USB 非易失性存储器

其他电脑(比如安卓手机/平板电脑)的屏幕坏了,你可能想在安排维修之前紧急访问一些东西。你可以使用android的USB OTG功能(是的,几乎每个android都支持这个功能,你可以将鼠标和键盘连接到它)。

关键字: USB 鼠标 Android 树莓派

M5Stack Cardputer非常适合作为硬件密码管理器。它很小巧,有一个内置键盘,一个SD卡插槽,运行在带有本地USB支持的ESP32-S3上。屏幕使其易于使用,并且由于USB HID,它可以直接在登录字段中键入密...

关键字: 密码管理器 M5Stack Cardputer USB

在工业自动化与智能交通领域,CAN总线因其高可靠性、抗干扰能力和实时性,成为设备间通信的核心协议。然而,单CAN总线存在单点故障风险,一旦总线节点或线路损坏,可能导致整个系统瘫痪。针对这一痛点,基于STM32的双CAN总...

关键字: STM32 CAN总线

CAN总线(Controller Area Network)‌是一种串行通信协议,旨在解决现代汽车中众多电子控制系统之间的通信问题。

关键字: CAN总线
关闭