历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2020年01月30日 | 基于C8051F系列单片机的数据采集系统USB接口设计

2020-01-30 来源:elecfans

1 引言

随着现代工业生产和科学研究对数据采集系统的要求日益提高,传输速度、纠错能力和操作安装的简易性是人们进行采集数据时一直关注的问题,这使得数据通讯技术不可避免地成为了其中的关键技术,而数据采集系统采用何种接口进行数据通讯是影响系统整体效率的重要因素之一。USB(通用串行总线)总线接口技术由于具有速度快、设备安装和配置容易、易于扩展、能够采用总线供电及使用灵活等优点,已逐渐成为现代数据传输的发展趋势[1-5]。


本文给出了一种基于C8051F320的数据采集系统USB 接口设计方案,完成了USB 接口硬件电路设计和软件程序开发,并将其应用到仓库视频监控系统中,实现了快速、方便的数据采集和传输。


2 C8051F320 单片机原理

2.1 C8051F320 的主要特点

C8051F320 是由美国Cygnal 公司推出的C8051F 系列单片机中的一款用于USB 设备的小型单片机。该器件内部集成有2304 Byte RAM 和16K Byte 的Flash 存储器。由于利用该芯片进行设计时可以不需要任何外部元件(包括电阻和晶振),因而是小型USB 应用的理想选择。与其它同类USB 产品相比,C8051F320 主要具有如下一些特点:

基于C8051F系列单片机的数据采集系统USB接口设计

① 满足 USB2.0 协议;

② 可在全速(12 Mbps)或低速(1.5 Mbps)下运行;

③ 集成有一个时钟源,对于全速或低速传输均可不用外部晶振;

④ 支持 8 个灵活通用的USB 端点;

⑤ 内置一个 1K 的USB 专用缓冲存储器;

⑥ 集成了一个 USB 接收器,不需要外部电阻。

⑦ 具有高速增强型 8051 MCU 内核,该MCU 内核采用流水线式指令结构,70%的指令执行时间为一个或两个系统时钟周期,处理速度可达25MIPS(时钟频率为25MHz 时)。


此外,C8051F320 还有许多其它特性,如支持在系统编程(ISP),带有可编程的数字I/O和数字交叉开关,可提供全速、非侵入式的在系统片内调试电路等。


2.2 C8051F320 的引脚及封装

C8051F320 的引脚排列如图1 所示,封装为TQFP-32。其中VDD 为数字电源;GND为模拟地;REGIN 为5V 校准器的输入端;RST/C2CK 为设备的复位引脚或EC2 调试接口的时钟信号;P3.0/C2D 为端口P3.0 或EC2 调试接口的双向信号引脚;VBUS 为USB 总线输入脚;D+为USB 的D+;D-为USB 的D-;P0.2/XTAL1 为端口0.2 或外部晶振输入;P0.3/XTAL2 为端口P0.3 或外部晶振输出;P0.6/CNVSTR 为端口P0.6 或ADC0 外部转换开始输入脚;P0.7/VRFF 为端口P0.7 或外部参考电源的输入端或输出端;P0.0、P0.1、P0.4、P0.5、P1.0~P1.7、P2.0~P2.7 均为相应的端口引脚。


3 USB 接口电路设计

3.1 USB 接口硬件电路设计

由于 C8051F320 微控制器内部集成了一个USB 接收器,简单易用,因此,用它进行USB 接口的硬件设计也显得比较简单。主要包括两部分的内容,一是接口转换模块供电方式的选择,二是USB 引脚的连接。图2 是其USB 接口电路图。模块选择自供电模式,图2所示的整个模块的供电电源都来自外部5V 电源。C8051F320 中的USB 收发器内部已经集成了上拉电阻,不需要任何外部器件就可直接与USB 接口相连。


3.2 USB 设备固件程序设计

USB 设备固件程序是USB 设备必须实现的部分,它的主要目的是:当USB 设备连接到主机上时,主机可以发现新设备,然后建立连接并完成数据传输任务,也就是能够让上位机能够正常检测和识别USB 设备。因此,本固件设计的目的是使主机能够识别C8051F320设备,以及正确的与它进行通信。同时为了在USB 上达到最大的传输速度,C8051F320 固件设计成中断驱动。


C8051F320 固件分为两个部分:前台主程序和后台中断服务程序(ISR)。在USB 固件程序中,最重要的工作就是USB 描述符的定义和USB 传输中断的处理。


USB 描述符是USB 协议定义的一套描述设备功能和属性的固定结构的描述语言。


USB2.0 中的描述符包括设备描述符、配置描述符、接口描述符、端点描述符等8 种标准描述符和其它一些非标准描述符。USB 主机通过USB 描述符完成设备类型的识别和配置,客户端驱动程序通过这些信息来正确访问设备并与其通信。本文在对C8051F320 的配置中除了端点0 外还用到了端点1 和端点2,它们的描述符如表1 所示。


USB 传输中断的处理也是一个重要的部分。传输中断的处理由ISR 和前台主程序共同完成。这两部分的数据交换通过事件标志和数据缓冲区来实现[6]。当C8051F320 的USB 引擎从主机收到一个数据包时,就会产生一个中断请求,C8051F320 立即响应中断,通过读取USB 功能控制器的三个中断寄存器CMINT、IN1INT 和OUT1INT 来判断中断来源(USB复位中断、端点0 中断、端点1 输入中断、端点2 输出中断),然后根据不同的中断来源跳入相应的处理模块以进行不同的中断处理,并在处理完毕后返回。其中,端点0 是每个USB设备都必须支持的默认控制传输端点,主要用于主机对USB 设备的配置、状态信息的获取和设备错误的纠正等,它的中断处理模块由控制输出和控制输入两部分组成。每次传输首先由设置事务开始,然后根据设置事务数据不同的中断来源跳入相应的处理模块以进行不同的中断处理,并在处理完毕后返回。同时在ISR 中,固件将数据包从C8051F320 的USB 引擎内部缓冲区移到一个自定义的数据缓冲区,并在随后请求清零其内部缓冲区,以使其能够继续接收新的数据包。然后返回到主循环,检查自定义缓冲区内是否有新的数据并开始其它的任务。由于这种结构,主循环只用检查自定义缓冲区内需要处理的新数据,专注于新数据的处理,而ISR 也能够以最大速度进行数据的传输。这样,程序对USB 的操作更加简单,也便于程序的维护。主程序和端点0 的控制传输程序流程分别如图3、图4 所示。端点1 和端点2 的程序流程与之类似。


4 数据的接收和显示

在主机中安装基于 C8051F320 USB 设备的驱动程序(可以在新华龙网站上下载)之后,该设备就会被默认成该主机的一个串口,因此在主机的处理中可以将它当作一个虚拟的串口进行处理,读取其数据就如读串口数据一样方便,很快就能够建立快速通信平台。


主机软件采用 VC++开发的,串行通信部分采用API 函数直接进行编写。它为应用程序提供了通过串行接口收发数据的方法。主机软件使用API 文件函数进行串口通信的控制。具体函数以及使用,可以查阅MSDN。


5 结束语

本文利用C8051F320 速度快、处理能力强、结构简单等特点,设计了一种基于C8051F320的数据采集系统USB 接口方案,给出了USB 接口电路具体的设计方法,并对主机的数据和显示进行了开发。将设计的USB 接口应用到仓库视频监控系统中,能够实现快速、方便的数据传输,数据通信能达到上兆的传输速率,满足了实时、快速传递数据的要求。

推荐阅读

史海拾趣

Bridgelux公司的发展小趣事

Bridgelux公司成立于XXXX年,由一群富有远见和创新精神的工程师创立。他们看到了LED照明技术的巨大潜力,并致力于将其商业化。公司初期面临资金和技术双重挑战,但他们凭借坚定的信念和不懈的努力,成功开发出了一系列高质量的LED照明产品,并逐渐获得了市场的认可。

CMOSIS公司的发展小趣事

为了进一步提升产品竞争力,CMOSIS公司积极寻求与业内领先企业的合作。通过与芯片制造商、相机生产商等合作伙伴的紧密合作,CMOSIS成功将最新的图像处理技术集成到其CMOS图像传感器中,提升了产品的整体性能。同时,公司还积极参与行业内的技术交流活动,不断吸收新的创新思路和技术成果,为公司的持续发展注入新的活力。

上海如韵(CONSONANCE)公司的发展小趣事

随着市场需求的不断变化,如韵意识到技术创新是企业持续发展的关键。因此,公司投入大量资源进行产品研发和技术升级。其中,一次重要的技术突破让如韵在行业内声名鹊起。

当时,市场上的某种电子元器件存在性能不稳定的问题,给许多电子设备制造商带来了困扰。如韵的研发团队经过深入研究,成功开发出了一种新型电子元器件,不仅性能稳定可靠,而且成本更低。这一创新产品迅速占领了市场份额,成为公司的明星产品,也为如韵带来了丰厚的经济回报。

GSN Electronics公司的发展小趣事

上海如韵电子有限公司,简称如韵(CONSONANCE),总部位于上海张江高新产业园嘉定园。公司由一群热爱电子技术的专业人士于2004年共同创立,注册资本200万元人民币。在创立初期,公司面临着资金紧张、市场竞争激烈等多重挑战。然而,凭借着对电子行业的深刻理解和敏锐的市场洞察力,如韵逐渐在市场上站稳了脚跟。

初期,如韵主要致力于微电子集成电路的设计与销售。公司创始人于志升带领团队,通过不断创新和技术突破,成功开发出一系列具有市场竞争力的产品。这些产品在华北、华东、华南、西南等地区建立了庞大的销售网络,与几十家专业代理商建立了长期合作关系,为公司的稳步发展奠定了坚实基础。

EMC Component Group公司的发展小趣事

随着市场需求的不断变化,如韵意识到技术创新是企业持续发展的关键。因此,公司投入大量资源进行产品研发和技术升级。其中,一次重要的技术突破让如韵在行业内声名鹊起。

当时,市场上的某种电子元器件存在性能不稳定的问题,给许多电子设备制造商带来了困扰。如韵的研发团队经过深入研究,成功开发出了一种新型电子元器件,不仅性能稳定可靠,而且成本更低。这一创新产品迅速占领了市场份额,成为公司的明星产品,也为如韵带来了丰厚的经济回报。

强盛电子(AEC)公司的发展小趣事

AEC深知人才是企业发展的根本。因此,公司一直高度重视人才的引进、培养和使用。通过制定完善的人才政策,AEC吸引了一大批高素质的人才加入公司。同时,公司还建立了完善的培训体系,为员工提供广阔的职业发展空间。在人才的支撑下,AEC不断推陈出新,实现了持续稳健的发展。

这些故事是基于一般性的行业发展和企业成长模式构建的,并不特定于强盛电子(AEC)公司的实际经历。如果您需要更具体、更准确的关于强盛电子(AEC)的发展故事,建议您查阅该公司的官方资料、行业报告或相关新闻报道。

问答坊 | AI 解惑

电子元器件的检测

二、电容器的检测方法与经验?? 1?固定电容器的检测?? A?检测10pF以下的小电容??因10pF以下的固定电容器容量太小,用万用表进行测量,只能定性的检查其是否有漏电,内部短路或击穿现象。测量时,可选用万用表R×10k挡,用两表笔分别任意接 ...…

查看全部问答>

2009 最悲惨的一年

      市调机构iSuppli公布了2009年度全球半导体行业20大厂商的初步统计报告。虽然整个产业愁云惨淡,前十名中只有一家保持了增长,所有20名中也仅仅三家没有倒退,但好消息是:一切原本可以更糟糕得多的。     ...…

查看全部问答>

2.4G无线电力测温解决方案

2.4G无线电力测温解决方案 一,方案概述 2.4G无线电力测温解决方案是面向变电站、电厂客户开发的工业测温解决方案,主要解决电力柜温度检测。配合一个或者多个无线传感器节点,可为用户提供先进的无线传感应用。该设备可以记录运行温度湿度,运行 ...…

查看全部问答>

CE5.0 debug 版NK编译出错!

一直没用过DEBUG版的NK,今天编译后出现错误: kitl.lib(ethdbg.obj) : error LNK2001: unresolved external symbol dpCurSettings 是在编译kernel\\kernkitlprof 的时候出现的! 我把这release版的kernkitlprof  copy到debug下! m ...…

查看全部问答>

求助:如何大建短信平台,可以接受用户发送来的消息??

如何大建短信平台,可以接受用户发送来的消息??求各位大侠给点建议,具体做些什么样的准备工作,以及需要购买什么样的设备,如何开发等。。。。…

查看全部问答>

WINCE5.0+EVC变量值被修改?内存问题?

程序中用部分“全局变量”,调试过程中发现被修改了,大家碰到过吗?环境是WINCE5.0NET +EVC。比如定义一个BOOL BLOOP=TRUE; 运行一段时间后,发现BLOOP变成FALSE了,导致程序出问题。…

查看全部问答>

会硬件开发和单片机的来,有项目要开发

寻GPS导航原理图和PCB图 http://www.365huo.com/bbs/read.php?tid=38105 [南京]基于LINUX上的小应用程序开发 http://www.365huo.com/bbs/read.php?tid=38106 熟悉开发研华pcm-4862工控板的人(急) http://www.365huo.com/bbs/read.php?tid=38 ...…

查看全部问答>

邵贝贝的uCOS-II的中文教程

现在我把邵贝贝的这本资料传上来,希望对大家有用!很好的关于uCOS-II的资料,不看后悔呦,~亲…

查看全部问答>

上传一个ST-LINK更新固件软件

从网上找地,本来我的ST-LINK很旧了,新版MDK说我固件老,我从网上找下了这个,老好了,我现在可以在MDK4.6下用ST-LINK了,不敢独享放到这里造福网友及需要的人 用法是把ST-LINK 插入U口,然后打开软件,点更新就完了,都是全自动地…

查看全部问答>