嵌入式arm9的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可人机交互,网口可连接因特网,所以开发出的嵌入式终端不但可提升整体性能,还为日后的应用奠定了基础。
硅异质结太阳能电池的湿化学清洗步骤
关于法兰接口投入式压力液位传感器的介绍
曲率如何选择?曲率半径越小越好?
常用熔断器的应用
柔屏显示 “设”想未来 成都柔性显示工业设计大赛隆重启动
嵌入式ARM9的USB设计与实现
如何通过数字电源管理延长物联网电池寿命
最简单闪光灯电路图大全(晶体管/电容器/照相机闪光灯)
国内最大的汽车芯片制造公司
我国5G基站总数接近240万个,智慧杆提供新助力
基于STM32F的电脑鼠控制系统设计
线束测试仪怎么选型号的(常见的线束测试仪故障)
iQOO新旗舰机曝光将搭载骁龙865平台并配备了LPDDR5内存
将 GaN 技术推向新的阶段
光电池用途及应用
你所不知道的linux匿名管道知识详解
浅谈螺杆式压缩机的工作过程及工作原理
DBSyncer支持多种数据源和预警功能
腾讯医疗人工智能与医疗科技发展论坛在深圳举行
英特尔推出AI平台Articul8,提供全栈GenAI软件平台