SPCE061A单片机在USB通讯中的应用

2007-03-09 19:03:27来源: 互联网
USB(Universal Serial Bus)是通用串行总线。最初USB是由Compaq、Digital、IBM、Intel、Microsoft、NEC以及Northern Telecom(北方电信公司)七家公司共同开发的一种新的外设连接技术。诸家公司联合提出这一新型总线,是为了解决PC机外围设备的拥挤和提高设备的传输速度。目前普遍采用的USB1.1主要应用在中低速外部设备上,它提供的传输速度有低速1.5Mbps和全速 12Mbps两种。扣除用于总线状态、控制和错误监测等的数据传输,USB的最大理论传输速率仍达1.2Mb/s或9.6Mb/s,远高于一般的串行总线接口。现有的USB外设有:数字照相机、音箱、游戏杆、调制解调器、键盘、鼠标、扫描仪、打印机、光驱、软驱等。1998年后随着微软在Windows98中内置了对USB接口的支持模块,加上 USB设备的日渐增多,USB逐步走进了实用阶段、以惊人的速度发展。 由于现在市面上新出一款单片机SPCE061A,它非常有特色。本文主要介绍,利用SPCE061A和USB接口芯片PDIUSBD12来开发USB设备。SPCE061A单片机由台湾凌阳公司制造,SPCE061A单片机款式新颖,而且性价比极高。 SPCE061A在2.6V"3.6V工作电压范围内的工作速度范围为0.32MHz"49.152MHz;2K字SRAM和32K字FLASH仅占一页存储空间;32位可编程的多功能I/O端口;两个16位定时器/计数器;低电压复位/监测功能;8通道10位模/数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;双通道10位DAC方式的音频输出功能;指令系统提供具有较高运算速度的16位%26;#215;16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能.....。较高的处理速度使SPCE061A能够非常容易地、快速地处理复杂的数字信号。开发数字声音和语音识别产品,选择SPCE061A是一种最经济的选择。 本文所设计的USB设备系统的功能比较简单,它主要实现SPCE061A与PC机之间的简单通讯,是SPCE061A单片机的一种基本应用。这篇文章的主要目的是希望能够给读者起抛砖引玉的作用,开发者可以在这个基础上修改程序,轻松实现USB设备系统开发。本文所设计的系统具有三种简单功能:1.检测USB外设是否连接成功。 2.通过点击PC端的应用软件上的按钮,可以点亮或熄灭与SPCE061A单片机IO口相连的LED灯。3.应用软件发送任意字符串到SPCE061A,SPCE061A接受、回送字符串,应用软件接受到字符串时,能够将它显示出来。 4.1系统组成 本USB通讯系统,主要由凌阳十六位单片机SPCE061A,Philips公司的USB接口芯片PDIUSBD12组成,系统框图如图3.10所示。 这个系统的基本工作流程为:PC端应用软件,发送ID0(为了使主机和设备方能同步,该系统定义了三个握手ID:ID0,ID1,ID2。)给PDIUSBD12,PDIUSBD12接收数据,产生中断通知SPCE061A单片机读取数据。SPCE061A如果读取的数据为ID0,那么发送ID0给PDIUSBD12;PC机端应用软件发送完数据后,读取外设发送的数据,如果读到的数据为ID0,那么弹出一个提示框,提示USB外设连接成功。此后PC机端的应用软件和USB外设之间的通讯都是通过ID来进行的。 4.2硬件设计 系统电路原理图如图3.11所示。其中PDIUSBD12用作实现PC机与SPCE061A单片机进行通信的高速通用并行接口。USB协议层的相关通讯协议通过PDIUSBD12来实现,它由硬件实现不需要固件的参与。SPCE061A单片机的主要作用:1.windows系统配置、枚举USB外设时,SPCE061A发送、接收相关的USB设备信息。2. windows系统配置、枚举USB外设成功后,根据接收到的ID,进行相应的操作,起控制作用。 SPCE061A内嵌32K的FLASH的存储空间、14个中断源,它在2.6"3.6V的工作电压范围内的工作速率范围为0.32MHz~49MHz,这使得它有较高的速率和存储空间来应付USB通讯。单片机SPCE061A与PDIUSBD12之间通讯采用中断方式,数据交换主要是靠SPCE061A单片机给PDIUSBD12发命令和数据来实现的。 PDIUSBD12通过这种方式来识别命令和数据:在ALE信号的下降沿时锁定地址,如果是奇地址,那么它接收的是命令;如果是偶地址,那么它发送或接收的是数据。PDIUSBD12的中断寄存器只要不为0,它的中断输出引脚(INT_N)就保持低电平,所以系统初始化时可将SPCE061A单片机的外部中断(下降沿触发)引脚IOB2设置为带上拉电阻输入。当PDIUSBD12的中断寄存器由零变为非零时,马上触发SPCE061A的外部中断,SPCE061A单片机在中断处理时,读取PDIUSBD12芯片的状态寄存器以清除中断寄存器中对应位,使得中断引脚变为高电平。这样使得SPCE061A可以在退出中断后,可随时响应外部中断。 图3.11中的LED1灯非常有用,它是PDIUSBD12的GOODLINK指示灯,在系统枚举时会根据通信的状况间歇闪烁,当PDIUSBD12被枚举和配置成功后,将一直点亮。随后在USB通信时会闪烁,这对调试非常有用。 4.3软件设计 USB设备的软件设计主要包括两部分:一、USB设备端的单片机软件,主要完成USB协议处理与数据交换。二、PC端的程序,由USB驱动程序和用户服务程序两部分组成,用户服务程序通过USB驱动程序通信,由系统完成USB协议的处理与数据传输。 该系统单片机端的软件流程如图3.12所示。SPCE061A单片机控制程序由三部分组成:第一、初始化SPCE061A和PDIUSBD12。 第二、主循环部分,主要任务是判断标志位是否改变,如果改变则执行相应的程序,否则一直循环等待中断。第三、中断服务程序,主要任务是接收、发送数据,设置相应的标志位。主机首先要发令牌包给PDIUSBD12,PDIUSBD12接收到令牌包后就给单片机发中断,单片机进入中断服务程序,首先读PDIUSBD12的中断寄存器,判断 USB令牌包的类型,然后执行相应的操作。因此,单片机程序主要就是中断服务程序的编写。在 USB单片机程序中要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端点0的编程。 系统初始化部分包括系统时钟,IO口,中断设置(开外部中断),PDIUSBD12芯片软件复位、初始化。该主流程的核心部分是协议层的请求处理,它关系到PC机枚举USB外设成功与否。所以在调试单片机程序的时候,要特别注意Window对USB设备的枚举顺序。如果枚举成功,主机将找到新的设备,提示安装驱动程序;否则找到未知设备,USB外设不可用。 中断服务子程序的编写,采用混合编程,也就是说,在汇编程序中调用C函数,这样可以提高代码的可读性。中断服务子程序的流程如图3.13所示,有好几个地方,只做清中断处理,这是因为有些端点没有用到。它只作为一个程序接口,为扩展系统功能用。 目前编写主机的USB驱动程序主要采用三种方法。第一,使用Windows DDK来编写驱动程序,难度很大,但是非常灵活;第二,使用DriverStudio开发工具来生成驱动程序;第三,使用Windriver开发工具来生成驱动程序。用后面两种方法来开发驱动程序的周期短,但是不灵活。本系统的驱动程序采用DDK编写,用户服务程序能够通过驱动程序与PDIUSBD12芯片中任意端点通讯,因此编写用户服务程序也是非常灵活的。 4.4总结 通常在开发USB设备产品,需要编写实时性、程序可读性要求很高的代码,这时就需要采用混合编程。而凌阳的m’nSP%26;#8482; IDE具有良好的编程环境,它可以很轻松、很容易进行混合编程(在C程序中调用汇编程序,在汇编程序中调用C程序)。 在该系统中,只用到了SPCE061A单片机的外部中断、IO口资源。其实SPCE061A单片机的资源很丰富,它除了具有普通单片机功能以外,还具有语音识别、语音录放等功能。因此这个系统只是一个雏形,SPCE061A还能够实现比较复杂的功能,比如使用SPCE061A的录音功能进行录音并将语音数据存储到外扩的FLASH,然后通过USB通讯,将语音数据送到PC机上播放,同样也可以将PC机上压缩后的语音文件下载到SPCE061A上进行播放。这样可以很容易使用SPCE061A可以开发录音笔、电话记录仪等USB设备。因此利用SPCE061A开发USB设备产品的前景是非常广阔的。

关键字:单片机  通讯  应用

编辑: 引用地址:http://www.eeworld.com.cn/gykz/GYTX/200703/331.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
单片机
通讯
应用

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved