datasheet

基于ARM的嵌入式的USB接口设计

2016-09-05来源: eepw关键字:ARM  USB接口
随着嵌入式系统的广泛应用,各种小型终端需要开发出与外界联系的USB接口。目前,常用的技术有两种。基于单片机的USB接口,特点是需要外置芯片,电路复杂,留下的CPU资源不多;基于ARM的USB接口,特点是资源丰富,但ARM系列产品较多,如果选型不当,还需要搭接较多的外围电路,且不能很好地发挥CPU性能。 
USB(Universal Serial Bus)是通用串行总线的缩写,因其具有方便易用,动态分配带宽,容错性优越和高性价比等特点,现已成为计算机的主流接口。 
该设计采用三星公司ARM9核的S3C2440A芯片作为CPU,因为该芯片内部集成了控制USB的所有部件,外围电路简单,易于实现。 
1 S3C2440A特点 
S3C2440A的CPU部分主要集成了电源模块、复位和时钟模块、触摸屏和小键盘模块、程序存储器和数据存储器模块。同时提供如下丰富的外围接口:同步存储器(SDRAM)和NAND FLASH控制接口,可扩展到1 GB的存储的空间;4个DMA通道和24个中断端口;能控制STN LCD和TFT液晶屏显示,支持触摸屏功;USB接口A型和B型各一个;3个串行口、I2C,SPI,I2S等接口;带AC97音频接口;具备SD卡、数码相机接口和网络接口。 
 
S3C2440A还具备多种工作模式,管脚为17×17方型分布,横向从左1到右17编号,纵向从下A到上U编号,分类为A1~A17,B1~B17, C1~C17依此类推到U1~U17。这些管脚所对应的功能并不是惟一的,通常只要使能变化,S3C2440A就能实现不同的控制功能。该设计涉及到的 S3C2440A,其管脚如表1所示分为3类。 
 
2.2 串口电路 
串口在该设计中的作用是通过计算机加载USB驱动程序,原理如图2所示。 
 
2.3 电源电路 
由于S3C2440A芯片的管脚对电压提出了不同要求,所以需要完成电源的变压,其原理如图3所示。 
 
3 驱动程序的研究 
按USB接口,其设备结构可分为USB Host(主机)和USB Device(外部设备)。USB主机控制USB设备进行通信,而主机与主机之间,或USB设备与USB设备之间是不能通信的。 
3.1 USB主机 
USB主机的功能通常包含以下几个部分:验证USB设备是否安插好或拔除;控制USB主机与设备两者中的数据流;返回USB主机的所显状态。 
USB系统软件由以下3个部分组成:主机控制器驱动(HCD)、USB驱动(USBD)、主机软件(Host Software)。主机控制器所具备的功能如表2所示。HCD和USBD包含基于不同抽象层次的软件接口,两者以一定的方式协同完成任务,用以实现 USB系统的功能。它们的任务差别没有具体定义,然而HCD要具备的一项功能就是必须支持多种不同主机控制器芯片。在一些操作系统中,当系统必须实现某些基本功能时,可由Host Software实现。 
 
3.2 USB传输类型 
USB定义了4种传送类型:控制传送、同步传送、中断传送、批传送。其中,控制传送是指可靠的、非周期性的、突发的,并由主机客户软件所发起的通信,主要应用于控制命令和状态信息的传送;同步传送是指在主机和设备之间周期性的、连续的通信,一般用于传送时实信息,这种类型保留了将时间概念包含于数据的能力,但传送并不一定很紧急;中断传送是指少量数据的、低速的、周期的传送;批传送是指非周期的、大量的、可靠的传送,其典型应用在于传送那些可以利用带宽的数据。 
3.3 USB设备请求 
USB设备应通过缺省控制管道(Default Control Pipe)响应来自主机的请求命令。这些请求是通过使用控制传输来完成的。请求及请求的参数通过Setup包发向设备,由主机负责设置Setup包内的每个域的值。USB设备请求包含的请求类型有三种:标准、厂商和设备类。标准请求用来完成设备的枚举过程;厂商请求用来完成使用者自己定义的请求;设备类请求指的是某些特定的USB设备类所传输出的请求,例如打印机类就属于这一类。设备请求要求有严格的定义,包含的内容有类型、设备请求、值、索引和长度。 
3.4 USB驱动程序结构 
S3C2440A芯片支持USB1.1协议和USB 2.0协议。该设计是针对USB Host(主机,A型),并基于USB 1.1协议编写的。程序结构和数据传输的流向如图4所示。 
 
驱动程序的编写主要分为以下几个部分考虑:硬件提取层、中断服务程序、标准设备请求和主循环。硬件提取层实现的是S3C2440A对I/O端口直接的读写操作;中断服务程序处理各种中断,包括总线任务上的请求;标准设备请求完成主机送来的各种标准请求,用于完成各种枚举请求;而主循环则负责完成前台的数据采集等工作,所有的任务结束后都要回到主循环上去。 
4 结 语 
该设计采用三星公司ARM9的S3C2440A芯片作为CPU,比原来基于单片机的模式,外围电路简单,容易可靠地实现嵌入式终端的USB接口功能。在调试中,用到的嵌入式开发板GEC2440A套件还提供了串口工具DNW。用这一工具可以检测驱动程序的正确与否,如:程序编写无误,则DNW串口会提示 “USB IS CONNECT”。由于S3C2440A芯片功能丰富,如处理器可提高运算速度,LCD可人机交互,网口可连接因特网,所以开发出的嵌入式终端不但可提升整体性能,还为日后的应用奠定了基础。

关键字:ARM  USB接口

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2016090529100.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:uboot移植详解
下一篇:嵌入式USB主机的硬件设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM投资ARM服务器芯片的厂商Ampere

基于ARM的服务器产品当中,有一些公司正在争夺尽可能多的市场,这些公司不仅要吸引x86客户,而且他们还有相互竞争以获得客户。他们中的大多数通过拥有高度专注和利基产品来针对一些关键的特定市场。Ampere是其中之一,现在该公司的投资者阵容中出现了非常稳固强大的成员ARM。Ampere由前英特尔总裁RenéeJames创立,由凯雷集团资助,自2018年10月开始提供eMAG系列处理器。该公司于2018年初购买了AppliedMicro的基于X-Gene ARM的服务器资产,并提供定制的基于ARM v8.0架构的32核芯片,采用TSMC 台积电16FF +工艺构建,运行频率为3.3 GHz。该芯片基于X-Gene II平台并进行了优化
发表于 2019-04-17
ARM投资ARM服务器芯片的厂商Ampere

ARM启动代码中_main 与用户主程序main()的区别

STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数。跳转具体到代码段部分如下:Reset_Handler   PROC                  EXPORT  Reset_Handler             [WEAK]                  IMPORT  __main 
发表于 2019-04-16

安谋科技结合中国市场需求自主研发基于ARM技术的IP与标准

2018年,ARM中国业务完成拆分,成立了由中方控股51%的合资公司。作为ARM公司在中国IP业务的总部,安谋科技(中国)有限公司将向总部设在中国的合作伙伴开展集成电路知识产权(IP)的授权与技术服务;并结合中国市场需求自主研发基于ARM技术的IP与标准,赋能中国智能科技创新。 ARM公司继2018年9月推出汽车安全强化处理器Cortex-A76AE之后,12月又推出了一款新的自动驾驶汽车芯片——Cortex-A65AE。它也是面向汽车电子市场的,主要针对7nm优化,其最大特点就是支持了SMT多线程,性能吞吐率比前代高3.5倍,预计2020年上市。 2019第四届ADAS与自动驾驶论坛于3月21-22日在上
发表于 2019-04-03
安谋科技结合中国市场需求自主研发基于ARM技术的IP与标准

Arm Pelion 物联网平台为全面部署物联网公共设施奠定基础

 Arm提供端到端物联网安全机制,以满足水电、天然气和水计量中从设备到数据的应用需求。  Arm 与各大智能电表以及先进仪表基础设施(Advance Meter Infrastructure;AMI)厂商合作,联手在Mbed OS 与Pelion 物联网平台的基础上为公共设施提供完备的物联网解决方案。 EDMI 运用Pelion物联网平台进行连接、管理、以及扩展各种智能仪表解决方案。 Arm宣布与EDMI合作,将Mbed OS 与Pelion 物联网平台整合到先进的智能仪表解决方案中,实现安全的设备连接、管理、固件升级,并为未来物联网公共设施的应用打下基础。 随着智能公共事业的快速
发表于 2019-04-01

Arm 力助联咏科技推进数字电视芯片

Arm宣布基于台积公司22纳米ULP技术的Arm POP IP受联咏科技(Novatek)采用,结合Arm big.LITTLE架构的核心优势,为数字电视市场的芯片发展开创全新局面。 当前,电视系统正迈入革命性的新时代。更高分辨率的视频、全面扩展的服务以及全新的AI驱动功能,将带动用户需求的提升与设备数量的增长。这让终端消费者为之振奋,但同时也为SoC芯片设计人员带来巨大的挑战。要在电视系统中增加上述功能,意味着芯片的复杂度也随之增加,因此工程团队不仅要努力在成本与功能之间找到平衡点,还需提供出色的用户体验,并缩短产品的上市时间。 Arm的合作伙伴联咏科技致力于提供种类众多的显示驱动IC以及多媒体SoC
发表于 2019-03-27

STM32与ARM启动代码比较分析

从ARM转到STM开发,开发工具也由ADS转到了Keil。借助STM的固件库,使得开发效率更加高效,比如你可以不用关心启动代码的具体实现,只需要专注于具体的应用代码,嵌入式开发也变得越来越“傻瓜”。此事好坏,暂且不论,来看看STM启动代码的特点,或者说相对于ARM的区别。通常的启动代码结构:1.  首先是中断向量表的定义.Ø         ARMARM代码在这块的代码为跳转语句,因为指令长度的限制,4个字节也就能放个跳转语就差不多了。通常两种实现方式:1.       B   
发表于 2019-03-24

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved