当前位置:首页 > 单片机 > 单片机
[导读]0引言近年来,随着集成电路以及芯片制造技术的不断发展,不同的USB通信芯片不断涌现,目前典型的USB通信芯片有CH375、PDIUSBD12等,这些器件的特点是功能较为强大,但价格较高,很难在中低价位的产品开发中使用。而A

0引言

近年来,随着集成电路以及芯片制造技术的不断发展,不同的USB通信芯片不断涌现,目前典型的USB通信芯片有CH375、PDIUSBD12等,这些器件的特点是功能较为强大,但价格较高,很难在中低价位的产品开发中使用。而AVR USB技术则是利用高性能的8位RISC架构的AVR单片机的IO口来模拟USB的通信端口,并由软件来实现USB通信协议,以将普通的AVR单片机模拟成一个USB低速设备,从而实现AVR单片机与计算机之间的通信和控制。尽管这种方式只能实现低速传输,但对常用数据量不是十分巨大的系统而言,它已经足够使用了,且其速度远远高于传统的串口传输速度,因而在产品开发中具有广阔的应用前景。本文便是利用AVR USB技术来实现对温度的测量和显示功能。

1 系统下位机软件流程

下位机软件设计及其实现可基于WINAVR编程环境,代码则可利用C语言实现。AVR单片机主要完成两个功能:温度测量和数据传送。温度测量主要是对电压信号进行采样,以确定温度的离散数值。传送数据则是将测量的数据通过AVR所模拟的USB端口传至PC端,以便PC端进行数据的显示和处理。其主要流程如图1所示。

2软件功能的实现
2.1温度数据的采集
ATmega8内含一个10位逐次逼近型ADC。该ADC可与一个8通道的模拟多路复用器连接,以对来自端口C的8路单端输入电压进行采样。单端电压输入以0 V(GND)为基准。AD转换的时序图如图2所示。
对于连续AD数据采集,可采用查询法和中断法,该程序中采用的是中断法,即一次AD转换结束后便产生中断。设计时可利用如下函数对电压数值进行采集:
首先定义全局变量Value,储存所测量到的温度数值,并将该值作为USB端口的发送数值。
2.2 USB数据传输
为了利用ATMEGA8模拟"软USB",应在WINAVR将AVRUSB的文件配置文件夹USBDRV放置在源文件目录下,在该目录下,编程中所需要的文件如表1所列。
该设计只要对usbconfig.h的内容进行配置,便可减小代码量。其主要参数配置如表2所列。
一般情况下,每种USB设备都有一个PID和VID。其中VID是生产商的代号,PID是产品的代号,每个代号都是一个双字节的整数。PID和VID不能随意设置,它是由USB标准协会进行分配的(0x16C0、0x05DC),并在用户配置文件中要遵循低位在前高位在后的原则。
2.3 USB数据传输的接口函数
(1)初始化函数
使用AVRUSB前,通常都要通过调用初始化函数usbInit ()来对USB端口进行初始化,调用该函数之前,考虑到该程序可能由其他程序段跳转而来,因此,初始化之前,一般要将USB端口进行重新复位,复位只需要将D-和D+端口的电平拉低即可,利用如下语句便可实现上述功能:
DDRD=0x14;PORTD=0x00;
通常可在程序其他部分初始化完成后再调用函数usbInit (),最后再调用sei ()函数允许中断。在main.c文件中的实现代码如下:
(2)事件处理函数
用户程序的主循环中需要定期调用USB事件处理函数usbPoll ()。USB事件处理函数usbPoll ()在没有USB事件需要处理时将直接返回,否则将调用内部函数来进行相应的事件处理,最后再将数据传递到用户接口函数中。通常的方法是:
一次USB通信的超时时间是50ms。所以,在编程时应注意其他事件不要占用太长的时间,以勉usbPoll ()函数不能及时执行。
(3)事件接口函数
在用户程序中,需要编写USB用户事件接口函数,以完成USB通信。AVRUSB将用户接口简化为以下3个函数:
上述三个函数需要用户进行编程处理,它们将完成USB通信的数据处理。
为了使代码最优化,本系统只使用usbFunctionSetup函数,而屏蔽了usbFunctionWrite和usbFnctionRead函数,方法是在usbconfig.h中设置相应的位为0或1即可(参见表2)。

函数usbFunctionSetup负责传递USB请求,其参数存放在一个8字节的数组中(uchar data [8]),其含义是:
由于该系统功能只需要将测得的温度值传送到PC端,因此,该函数中只需做数据传送即可,而无须作不同指令的辨识,设计时使用如下代码来实现上述功能:
2.4编译文件的配置
在WINAVR软件环境下,还需要配置MakeFile,以用于编译编程文件:

经过上述过程的配置和编程后,即可实现下位机的数据采样和USB端口的数据传输。
3 结束语
基于AVRUSB技术的温度测量和显示系统由于使用了一体的软USB技术,其硬件电路设计更加小巧稳定。经使用和测试证明:该系统具有性能稳定、价格低廉等特点。重要的是,本系统提供了一种低成本的USB设计方案,同时较详细的提供了下位机的设计流程和部分代码,从而为中低成本的USB设备开发提供了一个较好的思路。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭