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

上传人:沈*** 文档编号:44681309 上传时间:2021-12-05 格式:DOC 页数:49 大小:4.70MB
收藏 版权申诉 举报 下载
毕业设计(论文)基于ARM USB控制的LED点阵设计_第1页
第1页 / 共49页
毕业设计(论文)基于ARM USB控制的LED点阵设计_第2页
第2页 / 共49页
毕业设计(论文)基于ARM USB控制的LED点阵设计_第3页
第3页 / 共49页
资源描述:

《毕业设计(论文)基于ARM USB控制的LED点阵设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于ARM USB控制的LED点阵设计(49页珍藏版)》请在装配图网上搜索。

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

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

3、4进行芯片控制程序编写,最后通过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 sh

4、ining mark of dissemination 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, ai

5、rports, ports, stadiums 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 manu

6、facturing cost is 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 adva

7、ntages, like energy 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 pap

8、er, we talk about 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. Fourthl

9、y, a MFC which sends 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 desi

10、gned circuit board, 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

11、other relative matters. 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

12、 the last of this 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

13、*16n LED点阵PC数据表示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点阵电路控制程序

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

29、6n LED点阵PC数据表示点阵的其中一个应用是图像表示,点阵图即我们所指的矢量图。我们以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;

31、0x00,0x02;0x00,0x04;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;0x0

32、000。因此,纵向每相邻16个LED就对应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得到的

33、16个8位二进制数据,相同位置上的数据对应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)主机时,主机可以通过分离传输来支持

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

35、是说任何一个USB系统中最多可以晕讯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

36、HUB不但实现了普通HUB的功能,还包括其他一些关于增强型主机控制器的功能,提供一个连接主控制器与设备之间的接口和通路。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 接口

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

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

40、到同步域宽度由于USB HUB的关系,可能会小于理论值。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三个部分。其中数据的格式针对

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

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

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

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

45、值为8Byte;全速设备可以是8或16或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

48、%。中断端点的轮训间隔由在端点描述符中定义,全速端点的轮询间隔可以是1255ms,低速端点为10255ms,高速端点为()*125us,其中interval取1到16之间的值。除高速高带宽中断端点外,一个微帧内仅允许一次中断事务传输,高速高带宽端点最多可以在一个微帧内进行三次中断事务传输,传输高达3072字节的数据。所谓单向传输,并不是说该传输只支持一个方向的传输,而是指在某个端点上该传输仅支持一个方向,或输出。或输入,如果需要在两个方向上进行某种单向传输,需要占用两个端点,分别配置不同的方向,可以拥有相同的端点编号。中断传输在流程上除不支持PING外,其他都跟批量传输是一样的。他们之间的区别

49、也仅在于事务传输发生的端点不一样、支持的最大包长度不一样、优先级不一样等这样一些对用户来说透明的东西。主机在排定中断传输任务时,会根据对应中断端点描述符中指定的查询间隔发起中断事务传输。中断传输有较高的优先级,仅次于同步传输。同样中断传输也采用PID翻转的机制来保证收发端数据同步。下图为中断传输的流程图。图3-7 中断事务传输流程图 3.2.3 批量传输结果如图38所示:批量传输是一种可靠的单向传输,但延迟没有保证,它尽量利用可以利用的带宽来完成传输,适合数据量比较大的传输。低速USB设备不支持批量传输,高速批量端点的最大包长度为512Byte,全速批量端点的最大包长度可以为8、16、32、6

50、4Byte。批量传输在访问USB总线时,相对于其他传输类型具有较低的优先级,USB HOST总是优先安排其它类型的传输,当总线带宽有富余时才安排批量传输。高速的批量端点必须支持PING操作,向主机报告端点的状态,NYTE表示否定应答,没有准备好接收下一个数据包,ACK表示肯定应答,已经准备好接收下一个数据包。图3-8中一个方框表示一个Packet,灰色的包表示主机发出的包,白色的包表示Device发出的包。批量传输是可靠的传输,需要握手包来表明传输的结果。若数据量比较大,将采用多次批量事务传输来完成全部数据的传输,传输过程中的数据包的PID按照DATA0-DATA1-DATA0的方式翻转,以保

51、证发送端和接收端的同步。翻转同步:发送端按照DATA0-DATA1-DATA0的顺序发送数据包,只有成功的事务传输才会导致PID翻转,也就是说发送端只有在接收到ACK后才会翻转PID,发送下一个数据包,否则会重试本次事务传输。同样,若在接收端发现接收到的数据包不是按照次顺序翻转的,比如连续收到两个DATA0,那么接收端认为第二个DATA0为前一个DATA0的重传。图3-8 批量事务传输流程图USB允许连续3次以下的传输错误,会重试该传输,若成功则将错误次数计数器清零,否则累加该计数器。超过三次后,HOST认为该端点功能错误(STALL),放弃该端点的传输任务。一次批量传输(Trancfer)由

52、一次到多次批量事务传输(Transaction)组成。 3.2.4 同步传输同步传输是一种实时的、不可靠的传输,不支持错误重发机制。只有高速和全速端点支持同步传输,高速同步端点的最大包长度为1024Byte,全速的为1023Byte。除高速高带宽同步端点外,一个微帧内仅允许一次同步事务传输,高速高带宽端点最多可以在一个微帧内进行三次同步事务传输,传输高达3072Byte的数据。全速同步传输不得占用超过80%的微帧时间,高速同步传输不得占用超过90%的微帧时间。同步端点的访问也和中断端点一样,有固定的时间间隔限制。同步传输不是不可靠的传输,所以它没有握手包,也不支持PID翻转。主机在排定事务传输

53、时,同步传输有最高的优先级。图3-9 同步事务传输流程图在主机控制器和USB HUB之间还有另外一种传输-分离传输(Split Transactions),它仅在主机控制器和HUB之间执行,通过分离传输,可以允许全速/低速设备连接到高速主机。分离传输对于USB设备来说是透明的、不可见的。分离传输,顾名思义就是把一次完整的事务传输分成两个事务传输来完成。其出发点是高速传输和全速/低速传输的速度不相等,如果使用一次完整的事务传输,势必会造成比较长的等待时间,从而降低了高速USB总线的利用率。通过将一次传输分为两次,将令牌(和数据)的传输与响应数据(和握手)的传输分开,这样就可以在中间插入其他高速传

54、输,从而提高总线的利用率。3.4 USB的硬件控制相关特性3.4.1 USB的电气特性标准的USB连接线使用4芯电缆:5V电源线()、差分数据线负(D-)、差分数据线正(D+)及地线(GND)。在USB OTG中,又增加了一种MINI USB接头,使用的是5条线,比标准的USB多了一条身份识别(ID)线。USB使用的是差分传输模式,因而有2条数据线,分别是D+和D-。在USB的低速和全速模式中,采用的是电压传输模式。而在高速模式下,采用的是电流传输模式。4图3-10 NRZI编码示意图USB使用的是NRZI编码方式:当数据为0时,电平翻转;数据为1时,电平不翻转,如图3-7所示。为了防止长时间

55、点评不变化(这样不利于时钟信号的提取),在发送数据前要经过位填充(bit stuffing)处理。为填充处理的过程是这样的:当遇到连续6个数据1时,就强制插入一个数据0。经过位填充后的数据,由串行接口引擎(SIE)将数据串行化和NRZI编码后,发送到USB的差分数据线上。在接收端,刚好是一个相反的过程。接收端采样数据线,由SIE将数据并行化(反串行化),然后去掉位填充(反位填充),恢复出原来的数据。USB协议规定:设备在配置之前,可以从上最多获取100mA的电流;在配置之后,最多可从上获取500mA的电流。3.4.2 USB的插入检测机制在USB集线器的每个下游端口的D+和D-上,分别接了一个

56、15 k的下拉电阻到地。这样,当集线器的端口悬空时,输入端就被两个下拉电阻拉到了低电平。而在USB设备端,在D+和D-上接了一个1.5 k的上拉电阻到3.3V的电源。当设备插入到集线器时,接了上拉电阻的那条数据线的电压由1.5 k的上拉电阻和15 k的下拉电阻分压决定,结果大概在3V左右。这对集线器的接收端来说,是一个高电平信号。集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。1.5 k的上拉电阻是接在D+还是D-上,由设备的速度决定。对于全速设备和高速设备,上拉电阻是接在D+上的,而低速设备的上拉电阻是接在D-上的。

57、集线器根据检测到被拉高的数据线是D+还是D-来判断插入的是什么速度类型的设备。USB高速设备先是被识别为全速设备,然后通过集线器和设备两者的确认再切换到高速模式下,同时由于高速模式采用电流传输模式,要讲D+上的上拉电阻断开。一些USB芯片内部已经集成了一个1.5 k的上拉电阻,并且有些还具有软连接(softconnect)功能,例如PIDUSBD12。这个功能其实是通过开关来控制1.5 k的上拉电阻是否跟3.3V电源接通来实现的,通常我们使用三极管或者场效应管来控制。图3-11是一个实现软连接的简单电路,这是在基于AT89C51SND1C芯片的硬盘MP3上使用的电路,该芯片的USB口没有内部上

58、拉电阻。图中,J4是一个跳线,用于直接连通上拉电阻。因为这个芯片是用USB口进行ISP下载的,但是在运行ISP程序时,没有程序负责将上拉电阻接入,所有使用一个跳线,手动强制接通上拉电阻。正常使用时,J4拔下,由用户自己的程序来控制上拉电阻的接通和断开。这样设计的好处在于,当需要连接USB时,才讲上拉电阻接通。如果一开始就将上拉电阻接通,可能设备还在执行初始化程序,但是主机已经检测到有设备插入,从而发送请求,结果设备还未完成初始化而无法响应,导致设备不能被正常识别。另外一个功能就是可以实现二次枚举。当设备插入后,它先被识别为一个设备,该设备负责从主机下载固件到设备RAM内,然后设备将上拉电阻断开

59、(模拟拔下,但是设备未断电),接着重新连接上拉电阻。当主机检测到新设备插入时,重新识别设备,这时设备使用的已经是刚下载的新固件了。图3-11 一个简单的上拉电阻控制图 3.5 USB框架在USB框架中,规范主要定义了USB设备的各种状态、常用操作、USB设备请求、描述符、设备类等。图3-12 USB状态转移图上图为USB的状态转移图。5这里重点介绍下枚举的过程。当设备连接到主机时,按照一下顺序进行枚举:1、 连接了设备的HUB在HOST查询其状态改变端点时返回对应的bitmap,告知HOST某个PORT状态发生了改变。2、 主机向HUB查询该PORT的状态,得知有设备连接,并知道了该设备的基本

60、特性。3、 主机等待(至少100ms)设备上电稳定,然后向HUB发送请求,复位并使能该PORT。4、 HUB知性PORT复位操作,复位完成后该PORT就使能了现在设备进入到default状态,可以从Vbus获取不超过100mA的电流。主机可以通过0地址与其通讯。5、 主机通过0地址向该设备发送GET_DEVICE_DESCRIPTOR标准请求获取设备的描述符。6、 主机再次向HUB发送请求,复位该PORT。7、 主机通过标准请求SET_ADDRESS给设备分配地址。8、 主机通过新地址向设备发送GET_DEVICE_DESCRIPTOR标准请求,获取设备的描述符。9、 主机通过新地址向设备发送

61、其他GET_CONFIGURATION请求,获取设备的配置描述符。10、 根据配置信息,主机选择合适配置,通过SET_CONFIGURATION请求对设备而进行配置。这时设备方可正常使用。USB设备的常用操作包括:设备连接、设备移除、设备配置、地址分配、数据传输、设备挂起、设备唤醒等。USB的请求包括标准请求、类请求以及厂商请求三类。所有的请求都通过默认管道发送,按照控制传输的三个阶段进行。首先HOST通过一次事务控制想Device发送一个8字节的Setup包,这个包说明了请求的具体信息,如请求类型、数据传输方向、接收目标(Device/Interface/Endpoint等)。具体定义参考U

62、SB 2.0 Spec p248。USB标准请求共包括11个请求,如清除特性(CLEAR_FEATURE)、得到配置(GET_CONFIGURATION)、得到描述(GET_DESCRIPTOR)、设置地址(SET_ADDRESS)等。第四章 LED点阵控制电路及底层控制程序4.1 主要芯片介绍5 4.1.1 LPC1754FBD80图4-1 LPC1754FBD80示意图LPC1700系列Cortex-M3微控制器用于处理要求高度集成和低功耗的嵌入式应用。ARM Cortex-M3是下一代新生内核,它可提供系统增强型特性,例如现代化调试特性和支持更高级别的块集成。6LPC1700系列Cort

63、ex-M3微控制器的操作频率可达100MHz。ARM Cortex-M3 CPU具有3级流水线和哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线。ARM Cortex-M3 CPU还包含一个支持随机跳转的内部预取指单元。LPC1700系列Cortex-M3微控制器的外设组件包含高达512KB的Flash存储器、64KB的数据存储器、以太网MAC、USB主机/从机/OTG接口、8通道的通用DMA控制器、4个UART、2条CAN通道、2个SSP控制器、SPI接口、3个I2C接口、2-输入和2-输出的I2S接口、8通道的12位ADC、10位DAC、电机控制PWM、正交编码器接口、4个通用定时器、6-输出的通用PWM、带独立电池供电的超低功耗RTC和多达70个的通用I/O管脚。 4.1.2 SN74HC595D图4-2 SN54HC595示意图SN54HC595设备包含一个8bit连续输入、平行输出的转移寄存器,满足一个8bit D型存储器。这个存储寄存器有平行的三态输出端口。设备为转移寄存器和存储寄存器分别提供

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!