I艘一皇子蕴术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一
AVR单片机的v—usB和串口通携方式比经
93707部队王志海
【播要】AVR单片机与计算机静数据传精方式通常使用串口通信,随着USB接口的快速普及,豆接提供串口的pc机主板和应用串口进行数据传橹曲井围设备也越来越
少。选择一个简单、快速、适用的通信方式对于单片机系统的设计开发就尤为关键。本文对AVR单片机使用的串口通信方式和V.USB通信方式的开发实现过程进行比
较,分析了两种通讯方式的特点和应用场合,方便工程人员参考选择数据通信实现
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。
【关键词】USB接口;V—USB;串口通信;AVR单片机
1.引言
串口通信是单片机与上位机最常用
的数据通信方式,随着USB接口的普及,
单片机与计算机之间越来越多的使用USB
接口进行数据传输,但是直接选用USB接
口控制芯片会增加开发成本与难度。为
单片机设备选择一个简单、快速、适用
的通信方式,不但可以降低开发成本和
技术难度,也可以最大程度的提高单片
机系统的运行效率。本文对AVR单片机使
用串口通信和V—USB方案的开发实现过程
进行比较,分析了两种通讯方式的特点
和应用场合。
1.1VUSB简介
V-USB的全称是VirtualUSBfor
AVRmicrocontroZlers,是一个开源项
目。它利用纯软件的实现方式在ATMEGA
公司的AVR系列单片机上虚拟出USB口,
将其模拟为低速USB设备,实现方案不需
要添加其他的USB接口芯片。通常单片机
与上位机进行USB通信,需要用专用的芯
片进行USB
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
的转换,例女[ICP2101、
PL2303、SL8ll、PDIUSBDl2等。其中
CP2101、PL2303芯片使用起来虽然简
单,但是功能单一,只能做USB转串口的
通讯设备;而PDIUSBDl2、SL811芯片功
能较强,但是设计使用复杂,这些USB芯
片的价格都相对较高,增加了系统的硬
件成本。而V-USB简单易用,成本较低,
绝大多数的AVR系列单片机加上很少的几
个外部元件,就可以组成一个USB系统。
1.2串口通信简介
串口通信基于RS一232一c串行总线接
口标准,最初是为了连接计算机主机与
CRT终端之间的通信,后来逐渐广泛地应
用于各种设备之间的数据交换。早期的
计算机主机都带有RS一232接口,是最常
用的数据接口,具有传输距离远、连接
方式简单、线路占用少、开发资料多等
优点。绝大多数的单片机都内置USART单
元用于串行通信。
2.下位机实现
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
2.1V—USB下位机实现
V-USB系统的硬件结构很简单,需要
一个AVR单片机(片上具有2KBFlash,
128字节RAM的大部分型号都可以),再
加上少量的外部元件(晶振、电阻、
稳压二极管等),就组成了一个基本
的V-USB系统,实现方案需占用单片机
的两个数据引脚(其中D+必须连接至
INTO),并不占用其他的UART、计时器
等硬件资源。系统组成如图l。
图中的D1和D2是3.6V稳压二极管,
目的是限SUUSB数据线上的电平。USB通
信
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
中规定,数据线D一、D一上的电平
范围在3.OV至3.6v之间,而AVR单片机
的输出电平是VCC。如果单片机的VCC是
5V,如没有D1、D2的情况下将导致电平
不匹配,会出现在计算机中无法正确识
别出usB设备的情况。单片机所需的电源
VCC可由USB的5V输出电源直接提供,电
阻R1和R2起到了限流和保护的作用,避
免意外情况下损坏计算机的USB端口或单
片机的端口。
V-USB的软件源代码是由c代码和汇
编代码组成的,开发环境为AVRGCC,己
组织好几种小同USB设备的框架,开发者
只需直接利用即可。最小化的V-USB程序
框架编译后需要占用单片机1150至1400
字节的程序空间。
由于V—USB使用单片机IO口模拟USB
通信,是用纯软件的方式实现J,硬件芯
片的功能。而USB通信的速率要求是比
较高的。因此在进行USB通信时单片机
的CPU占用率比较高的。为保证可靠的
USB数据传输,单片机CPU时钟必须是工
作在12MHz、12.8MHz、15MHz、1GMHz、
16.5删z、18MHz、20删z这几个频率。
2.2串口通信下位机实现
具备USART单元的AVR单片机都可以
使用串行通信方式,硬件实现仅使用单
片机的RXD和TxD引脚。为和计算机的RS
232接口连接,一般使用MAX232芯片进行
电平转换,这需要增加部分外围电路,
MAX232应用电路如图2:
若要提高用串口通讯硬件的易用
性,还可以选择成品的USB转TTL接口芯
片,可以方便的将使用串口通信的单片
机设备变为USB设备,并且不影响上位机
和下位机的程序编制。
为减小波特率偏差,USART对单片机
的使用的晶振频率和串口设置的通讯速
率有一些要求,不匹配的波特率和晶振
频率会使传输出现通讯错误。具体可查
各型单片机的数据手册中的波特率设置
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
。
3上位机程序编制
3.1V-USB上位机程序编写
V-USB项目在计算机端使用跨平台
的开源项目LibusB来访问USB设备。
LibUSB—Win32是LibUSB在Windows操作
系统(win2k,WinXP,ViSta,Win7)
上的通用USB设备驱动程序及开发包。
表1两种通信接口特征对比
特征 串口通信 VUSB
计算机接口 RS232 USB
接口特点 兼容性好 即插即用、主机供电、应用广泛
可靠传输距离 远(15米) 近(2米)
对单片机要求 具备USART单元 AVR系列,2kBFlash,1288RA^f
系统时钟要求(单位心z) 各种时钟频率均可 12、12.8、15、16、16.j、18、20
外围硬件实现 需TTL电平转换 仅需很少的简单元件
上位机程序 支持多种开发语言 跨平台、支持多种开发语言
编程难度 简单 简单
开发工具 多 多
下位机程序 理解USART的原理7利用固有框架、占用1150’1400字节
理论传输速度 2400bps115.2kbps 20kbps
参考文献
[11程磊.基于STM32的MP3播放嚣的设计U]技术创
新,201102).
【2】王永虹,徐炜,郝立平等STM32系列AV,MCortex—M3
徽控制器原理与实践【M】.北京航空航天大学出版
社2008.
一24一 电子世界/2012.041
翻江力,蔡骏等单片机原理与应用技术【MJ清华大学出
版社,2006.
【4】潘浩.嵌人武MP3播放系统研究ID】北方工业大
学,2008.
【5]李宁基于MDK的STM32处理器开发应用D田.北京航
空航天大学&版社,2008.
作者简介:
张学慧,男,山东青岛人,山东科技大学在读硕士研
究生,研究方向:计算机控制及仿真。
朱爱珍,女,山东青岛人,山东科技大学在读硕士研
究生,研究方向:电力系统自动化。
万方数据
I ICI
垃
P£5俜CKI
韭一 P6引MS0’nPB3rMOS栈jGa
PB2‘0S,DCl8、
韭一 PBIf0C’A
Pgm,?CPj
誉1唿 釜 PD7t^INll
p
f4u7{ 』l
POeipiNc,{
13
oJ l一 “半锄—工6
PD}fTfr忙Cj_ 一
P04『X洲n01
n. 一T.}号 4 PD3f|lt'J711 eND
e .
卜~-.1l封赫薹PD2fINT01 01 02PDl7TIDl
写掣态泰 P∞:Rx聊PBilxT矗{2H。sC计
—k
—L
苫j g{ Pt弛(XTALl^09c1}L———U 鼓 PC5r^£C5喀0¨以
PC4’^口C48D^】 jVC0踅u PG3i‘∞31 ^HEF
C4^ ‰
PC2阻DC21 AGND _
GNU 敏
PCI;ADGll
_
丑一 ’L lOOnP。。幢口C嘲PC',6(旧EGET)J
—
.ATIMEGA8·16P 510 GfI[)
囝1
利用LibUSB可以在不设计核心驱动程序
代码的情况下,访问windows系统上的
USB设备。I.ibUSB—Win32的开源项目网站
是http://libusb—win32.sourceforge.
net,遵守GNULesserGeneralPubliC
License(LGPL)和GNUGeneralPublic
LiCense(GPL)许可协议。协议规定
LibUSB—Win32可以开源也可以用于商业
软件。
LibUSB—Win32为C/C++程序员提供了
可直接用于开发的头文件和Lib文件,其
中Lib文件还提供了BCC、GCC和MSVC这
三个版本。C/C++程序员在自己的程序
中要使用LibUSB—Win32时,只需包含提
供的头文件,并链接合适的Lib文件即
可。对于使用其他语言的开发者,可以
通过直接调用LibUsb—Win32的动态链接
库中的函数来使用LibUSB的功能来访问
USB设备。如果开发者希望具体的控制
通讯细节,可以使用LibLrSB提供的函数
usb—init0、usb—find—busses0、usb
control—msg0来实现设备操作、控制传
输、批量传输、中断传输等功能。
在V-USB项目中。有多个使用LibUSB—
Win32访问USB设备的工程。开发者可以
直接在自己的工程中添)J【|opendevice.h和
opendevice.cpp来访问外SusB设各,编
程时仅使用已经编写好的usbopenDevice
()、usb—set—configuration()、[ISb
control—msg()、usb—close()等几个
函数就可以快速实现与外围USB设备的数
据通信功能。
由于AVR单片机具有低成本、高性能
的特性,使得V—usB非常适合于应用于
USBJJ[I密狗、低速USB数据采集设备、HID
设备等,这样通过使用极少元件构成的
县有USB通信功能的单片机系统比很多
使用专用芯片的系统成本低、开发难度
低。
目前应用V—USB的成熟产品有:
usBasP(UsB接口的AVR编程写
入器)、AVRcDC(USB转Rs232)、usB
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.皇子蕉盔翼曼l
Bootlader等。在V—USB网站上(见参考
文献)还有许多使用V—USB的开源项目,
这些项目提供了完整的单片机程序和计
算机程序的代码及原理图,非常方便开
发者查阅参考这些资源,并在这些开源
工程实例的基础上进行修改,快速开发
适合于应用需求的单片机设备。
3.2串口通信上位机程序编写
在wjndows下,常用的串口方法主
要有:使用MSComm控件、WindoCsAPI
函数、第三方类库等。使用MSComm控件
比较简单,多种计算机编程语言均可利
用其实现对串口的控制,但是对于通讯
速度和实时性要求高的场合,如果处理
不好就会出现内存泄露等问题。使用
WindowsAPI中用于控制串口通信的函
数,需要对相关的参数和数据结构有一
定的了解,虽然各种语言、各种应用场
合都可以使用,但是编程较为复杂,开
发周期长,只适合需要精准的控制通讯
细节的情况。相对而言第三方的开发类
库例如CgerialPort类,CSerialPortEx
等,不但支持多串口多线程,而且使用
简单,开发周期短,应用场合较,“。
4.通讯速度比较
V-USB将单片机实现为支持USBl.ib
议的低速设备。由于低速USB设备的速度
是1.5M位/秒,而AVR单片机为单指令周
期的,当单片机使剧12MHz的时钟频率
时,荦片机运行时每8条指令就精确完
成⋯个数据位的采集。这对单片机的时
序要求非常严格,所以V—USB项目的核
心部分代码完全由汇编语言实现,并对
AVRGCC编译器做了优化。笔者使用V-USB
的最小框架进行数据传输测试,上位机
发送~次USB命令,下位机不做处理直接
应答,每次传输8字节时数据交换速度最
快,约为1600B/s,当传输字节数增加时
速度会下降,这种数据通讯是应答式,
总数据传输速度为3200B/s目P25.6kbps,
加上单片机数据处理的耗时,通讯速率
应该可以达至q20kbps。
图2
单片机的串口通信速度依赖于单片
机USART所设置的波特率,其单位时位/
秒(b/s),即每秒钟传输的二进制位数。
若设置为9600b/s,则每秒钟传输的字
节数为9600/8--1200Byte。由于USART本
身是串行通信,所以收发数据时均是单
字节到达的。而V—USB可以设置一次通
讯所传输的字节数,最大一次可以传输
254Byte。在编程卜可以一次传输处理指
定字节的数据结构,设计使用上更为简
单。
5.结束语
综上所述,两种通信接r_1(如表1所
示)各有优缺点。V-USB适用于对单片机
空闲时间多、通讯速度要求不高,硬件
成本较低、易用性好、需要快速开发应
用USB接口设备的单片机项目。串口通信
适用于传输距离远、处理器功能任务复
杂、需要对数据通信严格控制的单片机
项目。
参考文献
[airUSB项目http://www.obdcvat/rush/.
[2J/ibusb-wm32项目.htrp://libusb-win32sourceforgenet.
[3]ATIvlEI.公司hnp://wwwamaelcom
14}MSDN.hrIp//wⅥwmicrosoftcom/msdn.
作者简介:王志海(1978一),男,河北人,大学本
科,二程师,现服役干93707部队。
/2012.04电子世拜~25—
万方数据
AVR单片机的V-USB和串口通信方式比较
作者: 王志海
作者单位: 93707部队
刊名: 电子世界
英文刊名: Electronics World
年,卷(期): 2012(8)
参考文献(4条)
1.查看详情
2.查看详情
3.libusb-win32 项目
4.V-USB项目
本文链接:http://d.g.wanfangdata.com.cn/Periodical_dzsj201208013.aspx