毕业设计(论文)基于ARM USB控制的LED点阵设计.doc

上传人:仙人指路1688 文档编号:3978380 上传时间:2023-03-30 格式:DOC 页数:47 大小:4.68MB
返回 下载 相关 举报
毕业设计(论文)基于ARM USB控制的LED点阵设计.doc_第1页
第1页 / 共47页
毕业设计(论文)基于ARM USB控制的LED点阵设计.doc_第2页
第2页 / 共47页
毕业设计(论文)基于ARM USB控制的LED点阵设计.doc_第3页
第3页 / 共47页
毕业设计(论文)基于ARM USB控制的LED点阵设计.doc_第4页
第4页 / 共47页
毕业设计(论文)基于ARM USB控制的LED点阵设计.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《毕业设计(论文)基于ARM USB控制的LED点阵设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于ARM USB控制的LED点阵设计.doc(47页珍藏版)》请在三一办公上搜索。

1、基于ARM USB控制的LED点阵设计摘 要随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发布和宣传等。目前,对于那些需要显示的信息量不是很大,分辨率不是很高,又要求制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,它可以用单片机控制实现显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型。LED省电、寿命长、不需要高压条、屏幕进水不容易坏了,

2、代表着新的技术和潮流。现有的LED点阵显示器在显示模式上主要是采用固定的方式显示固定的内容,灵活性比较差。本文主要研究了LED点阵原理及应用、USB 2.0协议、LED点阵显示器的显示模式多样化和显示内容人工可控的实现、MFC人机交互界面深入设计。通过设计点阵控制LED点阵显示器电路板和编写控制电路板驱动程序,完成显示模式的多样化和显示内容人工可控。同时设计加入了MFC界面,使控制更加简单明了。设计中,使用Altium Designer Summer 09软件对所涉及的电路进行电路板模拟实现,购买所设计的电路板和需要的各种芯片等器件。使用Keil uVision4进行芯片控制程序编写,最后通过

3、JLINK下载器将上位机与下位机连接,并通过MFC界面进行显示模式控制,通过对Keil uVision4程序的修改完成显示内容的控制。在本文的最后,总结了本文的工作,并提了今后课题的一些展望。关键字 LED点阵 USB 2.0协议 显示 电路板 MFCThe Design of LED Lattice Baesd on The Control of ARM USBABSTRACTWith the rapid development of information industry, LED display as an important means is a shining mark of di

4、ssemination of information in modern information society. LED display has been widely used in recent years, both in indoor and outdoor services, to disseminate content and purpose of different kinds of services in public places such as banks, business department, railway stations, airports, ports, s

5、tadiums and other published information, government policies and decrees, and market information publicity in all kinds of market . At present, for those that need displaying where the amount of information is not large, the resolution needed is not very high, and relatively low manufacturing cost i

6、s required as well, the use of large and small screen, LED lattice display is more affordable, and it can accomplish displaying characters, numbers, characters and simple graphics in different sizes and styles fulfilling users needs with the control of the SCM. LED contains many advantages, like ene

7、rgy saving, long life, no high-pressure section, the screen not easy to break down with water seeping in, which represens the new trends of technologies. The display mode of LED lattice nowadays is mainly using fixed content in a fixed way, obviously short of flexibility. In this paper, we talk abou

8、t mainly five topics for one purpose of our design. Firstly, we discuss about the theory of LED dot matrix and its application. Secondly, we learn USB 2.0 protocol briefly. Then we research on how to achieve diverse and human-controllable display modes of LED lattice display. Fourthly, a MFC which s

9、ends commands to the USB interface is built to achieve human-computer interface design between LED lattice display control circuit board and the computer program. By designing the LED lattice display control circuit board and writeing the corresponding program which controls the designed circuit boa

10、rd, we accomplish diverse and human-controllable display modes of LED lattice display. In the whole design the software Altium Designer Summer 09 is used for the simulation of the circuit board and the design of the corresponding actual circuit boards, and latter using the chips and other relative m

11、atters. Using the Keil uVision4 we complete the program which is finally downloaded to the designed circuit board through through the JLINK downloader. Through the MFC interface which has colorful background and a code control, the program enjoys the based human-computer function. In the last of thi

12、s paper, we sum up the whole design work and provide some prospects for future issues. KEY WORDS LED lattice USB 2.0 protocol Display Circuit Board MFC目 录第一章 绪论11.1 课题背景和意义11.2 课题来源11.3 国内外研究现状11.4 本文主要工作11.5 本论文章节内容安排2第二章 LED点阵原理及其PC数据表示32.1 LED点阵原理32.1.1 LED简单介绍32.1.2LED基本信息32.2 16*16n LED点阵PC数据表示

13、6第三章 USB 2.0 协议简介93.1 USB 2.0体系简介93.2 USB 2.0 协议层规范103.3 USB数据流传输模型123.2.1 控制传输123.2.2 中断传输133.2.3 批量传输143.2.4 同步传输153.4 USB的硬件控制相关特性163.4.1 USB的电气特性163.4.2 USB的插入检测机制173.5 USB框架18第四章 LED点阵控制电路及底层控制程序204.1 主要芯片介绍204.1.1 LPC1754FBD80204.1.2 SN74HC595D214.2 LED点阵控制电路设计22第五章 LED点阵电路控制程序设计305.1 初始化程序305

14、.2 其他主要程序32第六章 MFC人机交互界面设计346.1 访问HID设备时所用到的相关函数346.2 MFC向USB端口发送命令的实现386.3 主界面添加彩色背景396.4 添加登录密码控制界面40第七章 结束语41参考文献42致 谢43第一章 绪论1.1 课题背景和意义 LED是发光二极管英文Light Emitting Diode 的简称。LED电子显示屏由几万-几十万个半导体发光二极管像素点均匀排列组成。随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志。近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如银行

15、、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策、政令,各类市场行情信息的发布和宣传等。目前,对于那些需要显示的信息量不是很大,分辨率不是很高,又要求制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,它可以用单片机控制实现显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型。LED省电、寿命长、不需要高压条、屏幕进水不容易坏了,代表着新的技术和潮流。现在投入实际应用的大多LED显示屏都是显示几个或者一系列的固定字符,如字符有更改,所需要的软硬件工作量都十分的大,甚至造成一定程度的资源、时间的浪费,灵活性比较差。因此考虑同过PC控制LED点阵屏的显

16、示,按照人们的意愿显示一定的字符,同时如需要修改即可直接在PC端进行控制。这样不仅节省人力、物力,加上开发出的简单输入控制页面,对操作人员的技术要求也大大降低。1.2 课题来源课题来自工程实践性课题。1.3 国内外研究现状随着LED原材料市场的迅猛发展,表面贴装器件从2001年面世,主要用在室内全彩屏,并且以其亮度高、色彩鲜艳、温度低的特性,可随意调整的点间距,被不同价位需求者所接受,在短短两年多时间内,产品销售额已超过3亿元,表面贴装全彩色LED显示屏应用市场进入新世纪。LED行业的上游的绝大部分核心专利被国外的厂商所掌握。目前,我们没有掌握核心技术,尽管我们LED应用产品制造能力在全球占到

17、50%,份额占到50%,但利润却是最低的一环。LED显示屏的主要制造厂商集中在日本、北美等地,我国LED制造厂商出口的份额在其中微不足道。此外,中国的LED照明还存在一系列其它问题,例如中国目前还没有LED灯具国家标准,只有一些地方的标准;我国本土LED灯具造型创新设计能力明显不足等。1.4 本文主要工作本文对LED点阵显示器的显示模式及显示内容控制进行分析。考虑通过PC控制LED点阵屏的显示,按照人们的意愿显示一定的字符,同时如需要修改即可直接在PC端进行控制。本文重点是设计出显示模式多样、显示内容一定范围内可控的LED点阵研究。由点及面,通过对4个16*16的点阵组成的16*96的显示器显

18、示的研究推广到实际应用中需要的各种尺寸乃至不同色彩的LED点阵显示器。由于考虑通过PC控制LED点阵屏,所以,本文设计到硬件的LED点阵电路板设计和PC上软件编写的相关控制程序。通过软硬件结合的方式达成LED点阵显示的显示模式多样化和显示内容人工可控的目标。1.5 本论文章节内容安排作为绪论,第一章简单介绍了研究背景及意义,课题来源,LED的特点及目前国内外LED市场发展的现状和我国LED市场存在的问题,并简单介绍本文所做的主要工作和内容安排。第二章阐述LED点阵的工作原理以及实际应用中的数据处理。第三章对USB 2.0 协议进行简单研究。为PC上对LED点阵电路控制程序的编写做USB方面的理

19、论铺垫。从第四章开始具体说明本文设计目标的实现。第四章主要介绍LED点阵电路板的设计和实际连接。第五章主要介绍电路板底层控制程序的设计。第六章是继续介绍设计目标的实现,继硬件工作之后,介绍相关的软件程序工作,即LED点阵班的控制程序。并对最终设计的实现及效果进行说明。第七章是全文结束语,对全文的工作加以总结,提出需要改进的内容及现有的改进措施。综述研究结果及结论,并提出有待于进一步研究和解决的几个问题。 第二章 LED点阵原理及其PC数据表示2.1 LED点阵原理2.1.1 LED简单介绍1、 LED产品和小常识LED(Light-Emitting-Diode,光电二极管)是一种能够将电能转化

20、为可见光的半导体,它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光。据分析,LED的特点非常明显,寿命长、光效高、无辐射与低能耗。LED的光谱几乎全部集中于可见光频段,其发光效率可超过1501m/W(2010)。将LED与普通白炽灯、螺旋节能灯及T5三基色荧光灯进行对比,结果显示:普通白炽灯的光效为121m/W,寿命小于2000小时,螺旋节能灯的光效为601m/W,寿命小于8000小时,T5荧光灯则为961m/W,寿命大约为10000小时,而直径为5mm的白光LED光效可以超过1501m/W,寿命柯达与100000小时。还有人预测,未来的LED寿命上限为无穷大。LED大功率是指

21、发光功率大,一般指0.5W、1W、3W、5W或更高的。光强与流明是比小功率大,但同样散热也很大,现在大功率都是单颗应用,加很大的散热片。小功率一般是0.06W左右的。现在LED手电一般是用小功率用的,光散不散,取决于LED的发光角度,有大角度小角度之分,小角度不散,大角度才散。市面上的手电筒一般是用草帽头做的,效果很好。LED的亮度是跟LED的发光角度有必然联系的,LED的角度越小它的亮度越高,如果是质量好的LED,不管是那家LED厂家生产的亮度都差不多。如果是5mm的LED180度角的白光的亮度只有几百MCD,如果是15度角的亮度就能得到一万多MCD的亮度了,亮度相差好几十倍。2.1.2LE

22、D基本信息LED的心脏是一个半导体的晶片,晶片的一端附着在一个支架上,一端是负极,另一端是连接电源的征集,使整个晶片被环氧树脂封装起来。图21 LED灯珠图22 贴片LED半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,他们之间就形成了一个“P-N结”。当电流通过导线作用于这个镜片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就以光子的形式发出能量,这就是LED的发光原理。而光的波长决定光的颜色,是由行程P-N结的材料决定的。2、 LED的调光控制传统上,LED的调光是利用一个DC信号或滤液PWM

23、对LED的正向电流进行调解来完成的。减小LED电流将起到调节LED光输出强度的作用,然而,正向电流的变化也会改变LED的色彩,因为LED的色度会随着电流的变化而变化。许多应用(例如汽车和LCD TV背光照明)都不能允许LED发生任何的色彩漂移。在这些应用中,由于周围环境中存在不同的光线变化,而且人眼对于光强的微小变化都很敏感,因此宽范围调光是必需的。通过世界一个PWM信号来控制LED亮度的做法允许不改变彩色的情况下完成LED的调光。人们常说的真正彩色PWM调光是利用一个PWM信号来调节LED的亮度。调节LED亮度有三种常用方法:(1)使用SET电阻,在LED驱动控制IC引脚RSET两端并联不同

24、的转换电阻,使用一个直流电压设置LKED驱动控制IC引脚RSET电流,从而改变LED的正向工作电流,达到ALED发光亮度的目的。(2)采用PWM技术,利用PWM控制信号,通过控制LED的正向工作电流的占空比来调节ALED的发光亮度。(3)线性调节最简便的方法是在LED驱动控制IC中使用外部SET电阻来实现LED的调光控制。虽然,这种调光控制方法有效,但却缺乏灵活性,无法让用户改变光强度。线性调节则会降低效率,并引起白光LED朝向黄色光谱的色彩偏移。采用数字或叫PWM的LED调光控制法以大于100HZ的开关工作频率,以脉宽调制的方法改变LED驱动电流的脉冲占空比来实理LED的调光控制,选用大于1

25、00HZ开关调光控制频率主要是为了避免人眼感觉到调光闪烁现象,在LED的PWM调光控制下,LED的发光亮度正比于PWM的脉冲占空比,在这种调光控制方法下,可以在高度调光比范围内保持LED的发光颜色不变,采用PWM的LED调光控制的调光比范围可达3000:1。 线性LED调光控制方法就是采用模拟调光控制方法,在模拟调光控制下,通过调节LED的正向工作电流来实现LED的调光控制,调光控制范围可达10:1。 如果要进一步降低LED的正向工作电流则会产生LED发光颜色发生变化和不能准确调节控制LED的正向工作电流的问题。4、LED的重要参数释疑 (1)正向工作电流IF:指发光二极体正常发光时的正向电流

26、值。在实际使用中应根据需要选择IF在0.6IFm以下。 (2)正向工作电压VF:参数表中给出的工作电压是在给定的正向电流下得到的。一般是在IF=20mA时测得的。发光二极体正向工作电压VF在1.43V。在外界温度升高时,VF将下降。 (3)V-I特性:发光二极体的电压与电流的关系,在正向电压正小于某一值(叫阈值)时,电流极小,不发光。当电压超过某一值后,正向电流随电压迅速增加,发光。 (4)最大正向直流电流IFm:允许加的最大的正向直流电流。超过此值可损坏二极体。 (5)最大反向电压VRm:所允许加的最大反向电压。超过此值,发光二极体可能被击穿损坏。 (6)允许功耗Pm: 允许加于LED两端正

27、向直流电压与流过它的电流之积的最大值。超过此值,LED发热、损坏。 (7)LED上拉电阻:一般LED工作时,加10mA足以使之正常工作,故电阻值为Vo/10mA,Vo即为外加电压的值,如+5V的电压下可以使用500欧姆的电阻。(8)工作环境topm:发光二极体可正常工作的环境温度范围。低于或高于此温度范围,发光二极体将不能正常工作,效率大大降低。 (9)发光强度IV:发光二极体的发光强度通常是指法线(对圆柱形发光管是指其轴线)方向上的发光强度。若在该方向上辐射强度为(1/683)W/sr时,则发光1坎德拉(符号为cd)。由于一般LED的发光二强度小,所以发光强度常用烛光(坎德拉, mcd)作单

28、位。 (10)LED的发光角度:-90- +90。(11)光谱半宽度: 发光管的光谱纯度。 (12)半值角和视角:是指发光强度值为轴向强度值一半的方向与发光轴向(法向)的夹角。 (13)全形:根据LED发光立体角换算出的角度,也叫平面角。 (14)视角:指LED发光的最大角度,根据视角不同,应用也不同,也叫光强角。 (15)半形:法向0与最大发光强度值/2之间的夹角。严格上来说,是最大发光强度值与最大发光强度值/2所对应的夹角。LED的封装技术导致最大发光角度并不是法向0的光强值,引入偏差角,指得是最大发光强度对应的角度与法向0之间的夹角。 2.2 16*16n LED点阵PC数据表示点阵的其

29、中一个应用是图像表示,点阵图即我们所指的矢量图。我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。1图2-5 汉字显示原理为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的P00P07口,方向为P00到P07,显示汉字“人”时,为全灭,即二进制

30、00000000。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们设计成由上往下扫描,第一列的下半部分由上往下排列,为:P08灭,P09灭,P10灭,P11灭,P12灭,P13灭,P14灭,P15亮,即二进制00000001,转换为十六进制为0x01h。第二列的上半部分全灭,下半部分扫描时,我们仍设计成由上往下扫描,即从P27向P20方向扫描,从图3可以看到,这一列P14亮,即为00000010,十六进制则为0x02h。依照这个方法转向第三列、第四列,直至第十六列的扫描,一共扫描32个8位,可以得出汉字“人”的扫描代码为:0x00,0x01;0x00,0x02;0x00,0x0

31、4;0x00,0x08;0x00,0x30;0x00,0xC0;0x03,0x00;0xFC,0x00;0x03,0x00;0x00,0xC0;0x00,0x30;0x00,0x08;0x00,0x04;0x00,0x02;0x00,0x01;0x00,0x00。将16组数据中的第二个数据作低位,第一个数据作做高位,即可得到16个4为16进制数:0x0001;0x0002;0x0004;0x0008;0x0030;0x00C0;0x3000;0xFC00;0x0300;0x00C0;0x0030;0x0008;0x0004;0x0002;0x0001;0x0000。因此,纵向每相邻16个LED

32、就对应16位二进制数,并且可以用4位16进制数的机器语言表示和存储,如此任何数量的16*16n都可被分割成16n个4位16进制的机器语言进行数据处理。对于一般的汉字和黑白图像的数据数据提取,举例如下:1、 汉字-“北京邮电大学”图2-6 点阵显示汉字“北京邮电大学”图2-7 “北京邮电大学”点阵4位16进制数据提取结果2、 较小图像像素,如取64*16(宽*高)图28 点阵显示64*16的简单黑白图像图2-9 上图点阵4位16进制数据提取结果以上数据提取结果图中,从头开始,前一半数据表示上方8*16得到的16个8位二进制数据,后一半数据表示下方8*16得到的16个8位二进制数据,相同位置上的数

33、据对应16*16n的同一列数据。对于尺寸不满足16*16n的屏幕可以根据具体情况对数据进行整理;对于彩色屏幕数据会更加复杂,本文不予深入研究。 第三章 USB 2.0 协议简介3.1 USB 2.0体系简介USB是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达 480Mb/S。USB支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得 500mA 的电流。USB2.0被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条 USB总线上,可达到的最

34、高传输速度等级由该总线上最慢的“设备”决定,该设 备包括主机、HUB以及 USB功能设备。2USB体系包括“主机”、“设备”以及“物理连接”三个部分。其中主机是一个提供 USB接口及接口管理能力的硬件、软件及固件的复合体,可以是 PC,也可以是 OTG设备。一个USB系统中仅有一个 USB主机;设备包括 USB功能设备和 USB HUB,最多支持 127个设备;物理连接即指的是 USB的传输线。在 USB 2.0系统中,要求使用屏蔽的双绞线。USB体系采用分层的星型拓扑来连接所有的USB设备,以HOST-ROOT HUB为起点,最多支持7层(Tier),也就是说任何一个USB系统中最多可以晕讯

35、5个USB HUB级联。一个复合设备(Compound Device)将同时占据两层或更多的层。理论上,一个USB HOST最多可以同时支持128个地址,地址0为默认地址,只在设备枚举期间给为初始化的设备使用,而不能被分配给任何设备,因此一个USB HOST最多可以同时支持127个设备。在实际的USB体系中,如果要连接127个USB设备,必须使用USB HUB,而USB HUB也需要占用地址,所以时间可支持的USB功能设备数量将小于127。图3-1 USB分层星型拓扑结构ROOT HUB是一个特殊的USB HUB,它集成在主机控制器里,不占用地址。ROOT HUB不但实现了普通HUB的功能,还

36、包括其他一些关于增强型主机控制器的功能,提供一个连接主控制器与设备之间的接口和通路。USB采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个USB体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包。端点(Endpoint)是USB设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传输。设备支持端点的数量是有限制的,除默认端点外低速设备最多支持2组端点(2个输入、2个输出),高速和全速设备最多支持15组端点。USB设备连接到HOST时,HOST必须通过默认的控制管道对其进行枚举,完成获得期设备描述、进行分配地址、获得其配置描述、进行配置等操作

37、方可正常使用。USB设备的即插即用特性即依赖于此。枚举是USB体系中的一个很重要的活动,由一系列标准请求组成(若设备属于某个子类,还包含该子类定义的特殊请求)。通过枚举HOST可以获得设备的基本描述信息,如支持的USB版本、PID、VID、设备分类(Class)、供电方式、最大消耗电流、配置数量、各种类型端点的数量级传输能力(最大包长度)。HOST根据PID和VID加载设备驱动程序,并对设备进行合适的配置。只有经过枚举的设备才能正常使用。对于总线供电设备,在枚举完成前最多可从总线获取100mA的电流。USB HUB 提供了一种低成本、低复杂度的 USB 接口扩展方法。HUB 的上行 PORT

38、面 向 HOST,下行 PORT 面向设备(HUB 或功能设备)。在下行 PORT 上,HUB 提供了设备 连接检测和设备移除检测的能力,并给各下行 PORT 供电。HUB 可以单独使能各下行 PORT, 不同 PORT 可以工作在不同的速度等级(高速/低速/全速)。HUB由 HUB重发器、转发器以及 HUB控制器三部分组成。HUB Repeater是上行PORT和下行PORT之间的一个协议控制开关,它负责告诉数据包的重生与并发。HUB控制器负责和HOST的通信,HOST通过HUB类请求和HUB控制器通讯,获得关于HUB本身和下行PORT的HUB描述符,进行HUB和下行PORT的监控和管理。转

39、发器提供了从高速和全速/低速通讯的转换能力,通过HUB可以在高速HOST和全速/低速设备之间进行匹配。3.2 USB 2.0 协议层规范USB采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。握手包表示了传输的成功与否。USB采用little edian字节顺序,在总线上先传输一个字节的最低有效位,最后传输最高有效位。所有的USB包都由同步域(SYNC)开始,高速包的同步域宽度为32bit,全速/低速包的同步域宽度为8bit。实际接收到同步域宽度由于USB HUB的关系

40、,可能会小于理论值。USB数据包的格式:图3-2 USB数据包格式PID表征了数据包的类型,分别为令牌(Token)、数据(Data)、握手(Handshake)以及特殊包4大类,共16种类型的PID。令牌包用来启动一次USB传输,包括4种,分别为输出(OUT)、输入(IN)、建立(SETUP)、和帧起始(SOF)。对于令牌包来说,PID之后是7位的地址和4位的端点号。令牌包没有数据域,以5位的CRC校验和结束。SOF是一类特殊的令牌包,PID后跟的是11位帧编号。数据包是USB总线上数据传输的最小单位,包括SYNC、数据及EOP三个部分。其中数据的格式针对不同的包有不同的格式。但都以8位的P

41、ID开始。PID指定了数据包的类型(共16中)令牌包即指PID为IN/OUT/SETUP的包。对于数据包来说,PID之后直接跟数据域,数据域的长度为N字节,数据域后以16位的CRC校验和结束。握手包包括ACK、NAK、STALL、NYTE四种,其中ACK表示肯定的应答,成功的数据传输;NAK表示否定的应答,失败的数据传输,要求重新传输;STALL表示功能错误或者端点被设置了STALL属性;NYTE表示尚未准备好,要求等待。握手包仅有PID域,没有数据域也没有校验和。分离传输会用到一类特殊的包,Start_Split和Complete_Split包,格式如下:图3-3 Start_Split包格

42、式 图3-4 Complete_Split包在Start_Split和Complete_Split包中,主要指定了此次分离所在的HUB的地址和下行端口编号一急端点类型(控制、中断、批量、同步)以及此次传输中数据包在整个数据中的位置(第一个包、中间的包、末尾的包)。数据在USB总线上的传输以包为单位,包只能在帧内传输。高速USB总线的帧周期为125us,全速以及低速USB总线的帧周期为1ms。帧的起始由一个特定的包(SOF包)表示,帧尾为EOF。EOF不是一个包,而是一个电平状态,EOF期间不允许有数据传输。注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,当时SOF包中帧编号的增加

43、速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,因此其帧编号额增加周期也为1ms。3.3 USB数据流传输模型USB体系定义了四种类型的传输,他们是:控制传输:主要用于在设备连接时对设备进行枚举以及其他因设备而做的特定操作。中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。批量传输:用于对延迟要求宽松,大量数据的可靠传输,如U盘等。同步传输:用于对可靠性要求不高的实时数据传输,如摄像头、USB音响等。3注意:中断传输并不意味着传输过程中,设备会中断HOST,继而通知HOST启动传输。中断传输也是HOST发起的

44、传输,采用轮询的方式询问设备是否有数据发送,若有则传输数据,否则NAK主机。不同的传输类型在物理上并没有太大差别,知识在传输机制、逐渐牌传输任务、可占用USB带宽的限制一急最大包长度有一定的差异。 3.2.1 控制传输控制传输是一种可靠的双向传输,一次控制传输可以分为三个阶段。第一阶段为从HOST到Device的SETUP事务传输,这个阶段指定了此次控制传输的请求类型;第二阶段为数据阶段,也有些请求没有数据阶段;第三阶段为状态阶段,通过一次IN/OUT传输表明请求是否成功完成。控制传输对于最大包长度有固定的要求。对于高速设备该值为64Byte;对于低速设备该值为8Byte;全速设备可以是8或1

45、6或32或64Byte。最大包长度表征一个端点单次接收/发送数据的能力,实际上反应的是该端点对应的Buffer的大小。Buffer越大,单次可接收/发送的数据包越大。当通过一个端点进行数据传输时,若数据的大小超过该端点的最大包长度时,需要将数据分成若干个数据包传输,并要求出最后一个包外,所有的包长度均等于该最大包长度。这也就是说如果一个端点收到/发送一个长度小于最大包长度的包,即意味着数据传输结束。控制传输在访问总线时也受到一些限制,如:高速端点的控制传输不能占用超过20%的微帧,全速和低速的则不能超多10%。在一帧内如果有多余的未用时间,并且没有同步和中断传输,可以用来进行控制传输。一次控制

46、事务传输分为三(或两个)阶段:建立(Setup)、数据(DATA)(可能没有)以及状态(Status)。每个阶段都由一次或多次(数据阶段)事务传输组成。下图为简历简短的事务传输流程图。可以看出:与批量传输相比,在流程上并没有多大区别,区别只在于该事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。建立阶段过后,可能会有数据阶段,这个阶段将会通过一次或多次控制传输事务,完成数据的传输。同样也会采用PID翻转的机制。建立阶段,Device只能返回ACK包,或者不返回任何包。图3-5 控制事务传输流程图最后是状态阶段,通过一次方向与前一次相反的控制事务传输来

47、表明传输的成功与否。如果成功会返回一个长度为0的数据包,否则会返回NAK或STALL。下图为整个控制事务传输的示意图。图3-6 控制事务传输示意图 3.2.2 中断传输中断传输是一种轮询的传输方式,是一种简单的单向传输,HOST通过固定的建哥对中断端点进行查询,若有数据传输或可以接收数据则返回数据或发送数据,否则返回NAK,表示尚未准备好。中断传输的延迟有保证,但并不是实时传输,它是一种延迟有限的可靠传输,支持错误传输。对于高速/全速/低速端点,最大包长度分别可以达到1024/64/8Byte。高速中断传输不得占用超过80%的微帧时间,全速和低速不得超过90%。中断端点的轮训间隔由在端点描述符中定义,全速端点的轮询间隔可以是1255ms,低速端点为10255ms,高速端点为()*125us,其中interval取1到16之间的值。除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达3072字节的数据。所谓单向传输,并不是说该传输只支持一个方向的传输,而是指在某个端点上该传输仅支持一个方向,或输出。或输入,如果需要在两个方向上进行某种单向

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号