基于单片机MSP430F449的USB接口数据传输系统设计.docx
《基于单片机MSP430F449的USB接口数据传输系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机MSP430F449的USB接口数据传输系统设计.docx(32页珍藏版)》请在冰点文库上搜索。
基于单片机MSP430F449的USB接口数据传输系统设计
1绪论
1.1USB概述
1.1.1USB的起源和发展历史
USB是英文UniversalSerialBus的缩写,中文含义是"通用串行总线"。
它是一种应用在PC领域的新型接口技术上面提到的外设接口没有统一的标准,USB就将这些接口统一起来,使用一个4针插头作为标准插头。
通过这个插头,采用菊花链形式可以把所有的外设连接起来,并且不会损失带宽。
USB0.9是由7家主要电脑、电子科技厂商,包括了Compaq、Digital、IBM、Intel、微软、NEC以及北方电讯(加拿大在1995年11月研发出来的。
1998年后,随着微软在Windows98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口才逐步走进了实用阶段。
这几年,随着大量支持USB的个人电脑的普及,USB成为PC的标准接口已是大势所趋。
在主机(host端,最新推出的PC机几乎100%支持USB;而在外设(device端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。
1.1.2USB的特点
USB之所以有着巨大的魅力主要是由于它的许多其他总线无法比拟的优点。
这里主要就目前国内应用的USB1.1技术做一些研究和应用。
USB的规范
能针对不同的性能价格比要求提供不同的选择,以满足不同的系统和部件及相应不同的功能,其主要优点可归结为以下几点:
A速度快。
B设备安装和配置容易。
C易于扩展。
D能够采用总线供电。
E使用灵活。
F价廉物美。
1.1.3目前USB的应用
由于USB设备的诸多优点,自97年,微软推出WIN95\97后,USB进入实战阶段,但由于这个版本对USB的支持属于外挂式模块,因此直到Windows98推出后,USB接口的支持模块才真正日趋成熟。
随着计算机技术的迅速发展,对外部总线速度的要求越来越高。
在许多便携式电脑上,已经找不到RS-232接口。
迄今为止,常用的USB总线标准有1998年发布的USB1.1版本和2000年发布的USB2.0版本。
其中1.1版本支持两种传输速率:
1.5Mbps和12Mbps,主要应用在低速传输要求的场合;而2.0版本面向高数据率传输的场合,支持480Mbps的传输速度,并向下完全兼容USB1.1协议。
1.2USB在嵌入式系统上的应用前景
USB在嵌入式系统中的应用发展迅速。
现在,计算机外围设备的市场上使用USB接口的数码相机,扫描仪,硬盘,鼠标等家庭设备比较常见,但是使用USB接口的智能仪器还没有见到。
由于USB的诸多优点,在传输距离不是问题的前提下,我们可以设计出许多具有市场前途的智能仪器。
1.3USB系统组成
一个USB系统主要被定义为三个部分:
USB的互连,USB的设备,USB的主机。
1.3.1USB的互连
USB的互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:
·总线的拓扑结构:
USB设备与主机之间的各种连接方式;
·内部层次关系:
根据性能叠置,USB的任务被分配到系统的每一个层次;·数据流模式:
描述了数据在系统中通过USB从产生方到使用方的流动方式;
·USB的调度:
USB提供了一个共享的连接。
对可以使用的连接进行了调度以支持同步数据传输,并且避免的优先级判别的开销。
总线拓朴结构包括四个重要的组成部分。
1主机和设备:
USB系统的基础组成部分。
2物理拓朴结构:
描述USB系统中的各组成部分是如何连接起来的。
3逻辑拓朴结构:
描述USB系统中各种组成部分的地位和作用,以及描述从主机和设备的角度观察到的USB系统。
4客户软件层与应用层的关系:
描述从客户软件层看到的应用层的情况,以及从应用层看到的客户软件层的情况。
1.3.2USB的主机
图1.1展示了USB通信模型之间基本的信息流与互连关系。
由图可见,主机与设备都被划分成不同的层次。
主机上垂直的箭头是实际的信息流。
设备上对应的接口是基于不同实现的。
在主机与设备之间的所有通信最终都是通过USB的电缆进行,然而,在上层的水平层之间存在逻辑的主机—设备信息流。
主机上的客户软件和设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。
客户软件与功能部件之间的透明通信的要求,决定主机和设备下层部件的功能以及它们的界面(interface。
1.3.3USB设备架构
USB设备可被划分三层:
◆底层是传送和接收数据包的总线接口;
◆中间层处理总线接口与不同端点之间的数据路由,端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(Sink;
◆最上层的功能由串行总线设备提供,比如鼠标,或ISDN接口。
2基于MSP430单片机的USB接口数据传输系统硬件设计
本设计的硬件系统实现了信号的采集、转换,并将所得的数字信号进行传输,并通过大量中断来实现系统的低功耗。
本设计的硬件系统是以超低功耗16位单片机MSP430F449为核心的数据传输系统。
整个系统可分为:
信号A/D转换系统、单片机系统、复位电路设计、电源设计及USB控制器系统。
原理图如图2.1所示。
图2.1系统结构图
5
2.1单片机的选择
单片机以其超小型化、高可靠性和高性价比的特点,广泛应用于各个领域。
使传统的电子技术产生了一场巨变。
经过多年的发展,单片机品种不断增多,功能不断增强,应用范围不断扩大,相应的开发技术也有了很大发展。
随着移动通信、网络技术、多媒体技术等高科技产品应用的日益广泛,16位、32位单片机也都得到了长足的发展。
就目前而言,嵌入式应用硬件设计采用满足要求的单片机是理想的选择,采用CPU+PLD+AD/DA模式是明智的选择。
现在新型的单片机内部已经集成了越来越多的部件,这些部件包括一般常用的电路,例如:
定时器,比较器,A/D转换器,D/A转换器,串行通信接口,WATCHDOG电路,LCD控制器等。
有的单片机为了构成控制网络或形成局域网,内部含有局域网络控制模块CAN。
现在内置FLASH的芯片也有带JTAG或类似接口的产品,支持在线程序下载,只需简单的下载开发工具,大大方便了程序的开发和现场的修改。
课题中所使用的单片机是美国德州仪器公司在2000年开发的MSP430F449。
该单片机在设计上打破常规采用了全新观念。
其突出优点是低电源电压、超低功耗、多种功能。
由于其功能远远超过其他系列的单片机,又称其为混合型单片机。
MSP430F449中的各个模块都是完全独立运行的,每个模块都可以在主CPU休眠状态下运行,当需要主CPU工作时任何一个模块都可以通过中断唤醒CPU从而使系统以最低功耗运行。
这一点是这一款单片机最突出的优点,也是与其他单片机最大的区别。
而且,MSP430F449还内置了液晶驱动模块,更加简化了外围电路的软件。
6
图2.2MSP430F449管脚示意图
MSP430F449管脚示意图如图2.2所示。
主要管脚功能如下:
1外接晶体引脚XT2IN和XT2OUT
XT2IN接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
XT2OUT接外部晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
7
2端口P0,P1和P2
P0,P1和P2这3个8位端口都能用做输入和输出,同时都有中断能力,每个信号都可作为一个中断源。
P0口有6个寄存器用于引脚控制,P1口和P2口有7个寄存器用于引脚控制。
这些模块寄存器位于地段地址,须用字节指令以绝对寻址模式访问。
3端口P3,P4,P5,和P6
这些端口没有中断能力,其余功能与P1和P2一样,能实现输入/输出功能和外围模块功能。
每个端口有4个寄存器供用户使用。
用户可通过这4个寄存器对它们进行访问和控制。
4电源引脚
DVcc和DVss为数字电源正端和负端;AVcc和AVss为模拟电源正端和负端。
2.2USB器件的选择
2.2.1概述
USB控制器一般有两种类型:
一种是MCU集成在芯片里面的,如Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及MOTOLORA、NationalSemiconductors等公司的产品;另一种就是纯粹的USB接口芯片,仅处理USB通信,如PHILIPS的PDIUSBD11(I2C接口、PDIUSBP11A、PDIUSBD12(并行接口,NationalSemiconductor的USBN9602、USBN9603、USBN9604等。
前一种由于开发时需要单独的开发系统,因此开发成本较高;而后一种只是一个
8
芯片与MCU接口实现USB通信功能,因此成本较低,而且可靠性高。
本课题选择的是PHILIPS公司的PDIUSBD12器件。
2.2.2PDIUSBD12芯片特点和内部结构
PDIUSBD12是一个性能优化的USB器件,通常用于基于微控制器的系统并与微控制器通过高速通用并行接口进行通信,也支持本地DMA传输。
该器件采用模块化的方法实现一个USB接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构并使固件投资减到最小。
这种灵活性减少了开发时间、风险和成本,是开发低成本且高效的USB外围设备解决方案的一种最快途径。
PDIUSBD12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等,因此,PDIUSBD12非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器(Zip驱动器和数码相机等。
现在用SCSI实现的很多设备如果用USB来实现可以直接降低成本。
PDIUSBD12挂起时的低功耗以及LazyClock输出符合ACPI、OnNOW和USB电源管理设备的要求。
低功耗工作允许实现总线供电的外围设备。
PDIUSBD12还集成了像SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。
所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的USB功能。
PDIUSBD12的内部结构框图如图2.3所示。
9
图2.3PDIUSBD12的内部结构框图
①模拟收发器。
集成的收发器直接通过终端电阻与USB电缆接口。
②电压校准器。
片上集成的1个3.3V电压校准器为模拟收发器供电,也提供连接到外部1.5kΩ上拉电阻的输出电压。
③PLL。
片上集成1个6~48MHz的倍频PLL(锁相环,允许使用6MHz的晶振,EMI也由于使用低频晶振而减小。
PLL的工作不需要外部器件。
④位时钟恢复。
位时钟恢复电路用4倍过采样原理从输入的USB数据流中恢复时钟,能跟踪USB规范中指出的信号抖动和频率漂移。
⑤PHILIPS串行接口引擎SIE。
PHILIPS的SIE完全实现USB协议层。
考虑到速度,它是全硬件的,不需要固件(微程序介入。
这个模块的功能包括:
同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定。
⑥SoftConnect。
高速设备与USB的连接是靠把D+通过1个1.5kΩ的上拉电阻接到高电平来建立的。
在PDIUSBD12中,这个上拉电阻是集成在芯片内的,
缺省是没有连接到V
DD
这个连接是靠外部MCU发一个命令来建立的。
这使得系统微处理器可以在决定建立USB连接之前完成初始化。
重新初始化USB总线连接也可以不用拔掉电缆来完成。
⑦GoodLink。
GoodLink是靠一个引脚接发光二极管实现的。
在USB设备枚举时LED指示灯将立即闪亮;当PDIUSBD12被成功枚举并配置时,LED指示灯将会始终亮;经过PDIUSBD12的USB数据传输过程中,LED将一闪一闪,传输成功后LED熄灭;在挂起期间,LED熄灭。
这种特性可以使我们知道PDIUSBD12的状态,方便电路调试。
⑧存储器管理单元MMU和集成RAM。
MMU和集成RAM能缓冲USB(工作在12Mb/s数据传输和微控制器之间并行接口之间的速度差异,这允许微控制器以自己的速度读写USB包。
⑨并行和DMA接口。
并行接口容易使用、速度快并且能直接与主微控制器接口。
对于微控制器,PDIUSBD12可以看成是一个有8位数据总线和1位地址线的存储设备。
PDIUSBD12支持多路复用和非多路复用的地址和数据总线。
在主端点(端点2和局部共享存储器之间也可使用DMA(直接存储器存取传输。
它支持单周期模式和块传送模式两种DMA传输。
2.3单片机外围电路
2.3.1晶振电路
单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XT2IN和XT2OUT分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。
本设计系统中的晶振电路如图2.4所示:
图2.4本设计系统中的晶振电路
2.3.2复位电路设计
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
目前为止,单片机复位电路主要有四种类型:
(1微分型复位电路;(2积分型复位电路;(3比较器型复位电路;(4看门狗型复位电路。
1微分型复位电路
微分型复位电路的等效电路如图2.5所示。
图2.5微分型复位电路
2积分型复位电路
积分型复位电路常常在二次电源开关相对较短的时间间隔情况下出现异常。
这主要是由于放电回路与充电回路相同,导致放电时间常数较大,从而导致UC电压下降过度。
如图2.6所示
图2.6积分型复位电路
3比较器型复位电路
比较器型复位电路的基本原理是:
上电复位时,由于组成了一个RC低通网络,所以比较器的正相输入端的电压比负相端输入电压延迟一定时间。
而比较器的负相端网络的时间常数远远小于正相端RC网络的时间常数,因此在正端电压还没有超过负端电压时,比较器输出低电平,经反相器后产生高电平。
复位脉冲的宽度主要取决于正常电压上升的速度。
4看门狗型复位电路
看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。
典型应用的Watchdog复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。
一般设计,将此段程序放在定时器中断服务子程序中。
本系统中所采用的复位电路
在本设计的系统中,由于电路较为简化,系统性能应该较为稳定,所以采用微分型的复位电路,它的电路如图2.7所示。
图2.7本系统中的复位电路
2.3.3电源的设计
由于系统的设计实现了超低功耗,用纽扣电池供电是非常适合的。
节省了器件的空间,减轻了重量,大大提高了实用性,携带非常方便。
在电源的正负极之间并联了一个电容,以增强系统性能的稳定性和可靠性。
2.4A/D转换器的选择
单片机控制系统通常要用到A/D转换。
根据输出的信号格式,比较常用的A/D转换方式可分为并行A/D和串行A/D。
并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,在PCB板上占用的空间也小,但需要软件处理才能得到所需要的数据。
2.4.1TLC0834串行A/D转换器简介
TLC0834串行A/D转换器是TI公司生产的8位逐次逼近模数转换器具有输入可配置的多通道多路器和串形输入输出方式。
其多路器可由软件配置为单端或差分输入,也可以配置为伪差分输入。
另外,其输入基准电压大小可以调整。
在全8位分辨率下,它允许任意小的模拟电压编码间隔。
由于TLC0834转换器采用的是串行输入结构,因此封装体积小,可节省单片机I/O资源,价格也较适中。
2.4.2TLC0834串行A/D转换器工作特点
TLC0834转换器可通过和控制处理器相连的串行数据链路来传送控制命令,因而可用软件对通道进行选择和输入端进行配置。
输入配置可在多路器寻址时序中进行。
多路器地址可通过DI端移入转换器。
多路器地址选择模拟输入通道可决定输入是单端输入还是差分输入。
当输入是差分时,应分配输入通道的极性,并应将差分输入分配到相邻的输入通道对中。
例如通道0和通道1可被选为一对差分输入。
另外,在选择差分输入方式时,极性也可以选择。
一对输入通道的两个输入端的任何一个都可以作为正极或负极。
通常TLC0834转换器在输出以最高位(MSB开头的数据流后,会以最低位(LSB开头重输出一遍(前面的数据流。
其工作时序如图2.8所示。
图2.8TLC0834时序图
2.4.3TLC0834串行A/D转换器引脚功能
TLC0834转换器的引脚排列如图2.9所示,其中CH0~CH3为模拟输入端;CS为片选端;DI为串行数据输入,该端仅在多路器寻址时(MUXSettlingTime才被检测;D0为A/D转换结果的三态串行输出端;CLK为时钟;SARS为转换状态输出端,该端为高电平时,表示转换正在进行,为低电平则表示转换完成;REF为参考电压输入端;Vcc为电源;DGTLGND为数字地,ANGLGND为模拟地。
2.5A/D转换器与单片机的接口电路设计
TLC0834与MSP430单片机的硬件接口电路的电路原理如图2.10所示。
图中,单片机的P6.7接TLC0834的片选信号,P6.6用于产生A/D转换的时钟,P6.5为一个双向I/O口位,可用于对模拟输入进行配置及输出转换所得的数据。
在这里,模拟信号以单端方式输入,参考电压为5V,即A/D模拟量的输入范围为0~5V。
图2.10TLC0834与MSP430单片机的硬件电路图2.6PDIUSBD12与MSP430单片机的连接
2.6.1PDIUSBD12引脚说明
PDIUSBD12引脚图如图2.11所示,引脚说明如表2.1所列。
图2.11PDIUSBD12引脚图
表2.1PDIUSBD12引脚说明
2.6.2PDIUSBD12与MSP430单片机的连接
图2.12所示的是采用了MSP430系列微控制器与PDIUSBD12集成电路相互连接的原理图。
图2.12PDIUSBD12与MSP430单片机的原理图
由于MSP430系列单片机是近些年以来,应用比较广泛的一种单片机微控制器,软件开发工作者在其基础上开发大量的软件开发平台,大多数电子工程师对其都比较熟悉的原因。
因此,可以利用比较熟悉的微处理器(MSP430进行核心程序的设计,即用MSP430来实现其所需的功能,具体将数据信号转换
为符合USB规则的信号,则完全由PDIUSBD12来完成。
这样以来,既可以利用单片机中丰富的软件资源,又可以利用USB总线技术的即插即用、热插拔等特性,可以使开发设备的成本降低、缩短开发产品的时间周期。
在这样的连接中,ALE始终接低电平,说明采用单独地址和数据总线配置。
D0脚接MSP430单片机的P1.0I/O引脚,控制是命令还是数据输入到PDIUSBD12的数据总线相连接,CLKOUT时钟输出为MSP430提供时钟输入。
2.7本设计系统的原理图及制版图的绘制
Protel99SE能实现从电学概念设计到输出物理生产数据,以及这之间的所有分析、验证和设计数据管理。
因而今天的Protel已不是单纯的PCB(印制电路板设计工具,而是一个系统工具,覆盖了以PCB为核心的整个物理设计。
Protel99SE共分5个模块,分别是原理图设计、PCB设计(包含信号完整性分析、自动布线器、原理图混合信号仿真、PLD设计。
图2.13为本设计的Protel原理图。
做PCB板就是把设计好的原理图变成一块实实在在的PCB电路板,请别小看这一过程,有很多原理上行得通的东西在工程中却难以实现,或是别人能实现的东西另一些人却实现不了,因此说做一块PCB板不难,但要做好一块PCB板却不是一件容易的事情。
同样的原理设计,同样的元器件,不同的人制作出来的PCB就具有不同的结果,那么如何才能做出一块好的PCB板呢?
结合毕业设计的经验,想就以下几方面谈谈自己的想法:
1.要明确设计目标
接受到一个设计任务,首先要明确其设计目标,如果是普通的PCB板,只要做到布局布线合理整齐,机械尺寸准确无误即可,如有中负载线和长线,就要采用一定的手段进行处理。
图2.13基于MSP430F449的USB接口数据传输系统原理图
2.还要考虑其他一些相关因素,如板子层数,采用元器件的封装外形,板子的机械强度等。
在做PCB板子前,要做到对该设计的设计目标心中有数。
3.元器件布局的考虑
元器件的布局首先要考虑的一个因素就是电性能,把连线关系密切的元器件尽量放在一起,尤其对一些高速线,布局时就要使它尽可能地短,功率信号和小信号器件要分开。
在满足电路性能的前提下,还要考虑元器件摆放整齐、美观,便于测试,板子的机械尺寸,插座的位置等也需认真考虑。
制版图如下图2.14所示:
图2.14基于MSP430F449的USB接口数据传输系统制版图
3基于MSP430单片机的USB接口数据传输系统软件设计3.1单片机软件开发
单片机生产厂家不断增多,单片机品种层出不穷。
单片机广泛选择是当今产品开发的一个重要环节。
每个单片机系列的指令系统不同,与指令系统对应的汇编助记符就不同。
汇编语言的不兼容性使得一种单片机上编制的程序,在另一种单片机上不能运行,单片机重新选型后程序必须重新编制