0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C44BOX处理器和SL81lHST芯片实现USB主从机一体化模块的设计

电子设计 来源:微计算机信息 作者:刘佩锋,粟梅 2020-09-15 17:51 次阅读

1 引言

通用串行总线(Universal Serial Bus,即USB)是一种新型的高速串行总线,作为一种快速、灵活的总线接口,已经在电子产品中广泛应用。同时人们对USB的期望也越来越高,希望USB能应用在各种计算机领域中。但是,由于USB通信模型是一种Host/Slave主从式结构,经由USB总线进行通信的双方必须有一方在通信控制中担当主机,而两个USB设备之间则无法直接进行基于USB的数据交换。这就大大限制了USB在嵌入式设备中的应用。

ARMAdvanced RISe Machine)作为一种低功耗、高性能的32位嵌入式微处理器,在中高端嵌入式设备开发中有着广泛的应用。有些ARM芯片的生产厂商在以ARM为内核的微处理器中集成了USB主机控制器,但是,更多的ARM处理器是不带USB主机功能的。解决这一问题的方法就是在需要使用USB设备的嵌入式系统中外扩一片USB主机控制器芯片,使之具有与USB设备进行数据传输的能力。本设计考虑设计一种USB主、从机一体化的外部扩展模块,通过简单地改变跳线,使得ARM核心的嵌入式设备既可作为USB主机,又可以作为USB从机。

2 总体设计

由于目前USB从机的硬件及软件方面的开发已经比较成熟,可以直接使用现有的资源,所以本设计主要讨论USB主机功能的实现,目标任务是ARM核心板能够读写外接USB设备,这里选择最常用的u盘,实现读、写u盘数据。

系统分为ARM核心板和SL81 1HST扩展板两大部分。核心板是一个由ARM7微处理器、FLASH、SDRAM、JTAG口和串口组成的最小系统。ARM处理器选用的是三星公司的S3C44BOX,这是一款基于RM7TDMI内核的微处理器.具有低功耗、高性能的特点。FLASH用来存放ucLinux操作系统和一些十分重要的数据,SDRAM则是操作系统和应用程序的运行空间、数据及堆栈区,JTAG口和串口用于下载和调试。扩展板主要由USB主控芯片及其外围电路和USB主、从接口构成。USB主控制芯片选用的是Cypress公司的SL81 lHST,这是一款双功能的控制芯片,通过设置开关既可以用来做主机又可以做从机。USB接口分为主机接口和从机接口,与主控芯片功能配套。

3 硬件电路

FIash存储器是一种可在系统进行电擦写,掉电后信息不丢失的存储器。常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。系统中选用一片16位的Flash存储器SST39VF1601,单片存储容量2M,用于存放操作系统和程序代码,系统上电或复位后从此获得第一条指令并开始执行,因此,应将FIash存储器配置到BANK0,即将S3C44BOX的nGCS《0》接到其片选引脚CE#端;将S3CA4BOX的OM[l:0]置为10,选择BANK0为16位工作方式。

与Flash存储器不同,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,因此,它在系统中主要用作程序的运行空间、数据及堆栈区,系统及用户堆栈、运行数据也都存放在其中。系统中选用一片HY57V641620HG,它的存储容量为8M,工作电压为3.3V,16位数据宽度。1620的CS与$3C44BOX的nGCS6连接。

JTAG接口主要是用来实现芯片的嵌入式调试及在系统编程的功能,如对Flash器件进行编程等。串口的主要作用是向计算机传输信息,这些信息可以在计算机的超级终端上显示,以便于调试程序时监测程序的内部变量值;在ucLinux操作系统运行时,串口将用来显示它的启动信息和运行状态,向操作系统发送命令对其进行控制也需要通过串口来完成。

ARM核心板的硬件组成如图1所示:

基于S3C44BOX处理器和SL81lHST芯片实现USB主从机一体化模块的设计

图1 ARM核心板的构成

Cypress公司的SL811HST芯片是一款嵌入式的USB主机/从机控制器,它的双功能端口既可作为USB主机又可作为从机来支持全速或低速的USB器件,能够与单片机DSP和ARM等实现无缝接口。数据线为8位,只需要9根线用于系统的数据通讯,16个内部寄存器,可以对USB Host进行充分的控制。内部多达256字节的RAM,为USB传输建立了足够的缓冲区。它的主要优点有:通过其M/S引脚对主/从模式方便的进行选择;提供全速和低速2种USB总线速度方式;硬件自动产生帧起始包SOF和CRC5/16校验;片上集成了接口引擎(SIE)、单端口根Hub、USB收发器和256B的SRAM,其中0x00一0x0F共16个字节是寄存器区,其余的240B是数据缓冲区。SL811HS只有一根地址线A0。A0=1用于设定偏移量,A0=0用于读写数据。读写数据应该首先指定偏移量,然后实现读取时序。A0与ARM的ADDRO相连。nCS和ARM的nGCS2相连。即把SL81lHST分配到ARM的外部I/O口02。

SL811HST与S3C44BOX的连接如图2所示:

图2 SL811HST与S3C44BOX连接图

4 软件系统

本设计的软件系统是在Linux环境下编写调试运行的,前期工作为下载ucLinux内核包,打补丁包等。ucLinux是专门针对如ARM7这类无MMU的CPU而设计的,它主要由以下几个部分构成:BootLoader、内核初始化、系统调用函数脯获函数、设备驱动和文件系统。其中BootLoader被用来初始化系统板上的硬件资源,必须根据系统板上不同的硬件资源进行相应的配置。本系统中主要是更改了FLASH和SDRAM的容量及数据宽度,开启了外部I/O口2并设定为8位数据宽度以用来配置SL811HST,并把它的基地址设定为0x012000000完成对源代码的修改之后就可以进行内核的编译。编译是在装有Linux及所需的交叉编译工具链的计算机上来进行的,编泽生成的image,ram文件可以下载到SDRAM中直接运行,image.rom文件可以烧写到FLASH中,系统上电或重启后,将从FLASH的0x0地址处开始执行。对硬件资源进行初始化后进入ucLinux。

从Linux2.4内核以后,Linux的设备驱动中加入了对USB的支持,ucLinux也秉承了这一特点。本设计采用内核编译的方式加载USB驱动,将驱动程序的源代码加进ucLinux系统内核,编译移植到嵌入式系统,系统启动后将自动加载驱动。

编泽过程如下:

1:在ucLinux内核的USB驱动目录中添加如下三个文件:

s1811h-usb.C、s1811h.h、s181 lhusb.ho;

2:编辑/uclinux-s2cev40/linux-2.4.x/drivers/usb/config.in文件。修改这个文件的内容加入对SL811HST的描述语句:

6:执行make xconfig,用户内核设置选择y;

7:执行make dep;

8:执行make。

USB设备驱动程序被编译进ucLinux内核,包含在image.bin文件中。在系统启动时,USB设备驱动就自动执行了。

5 总结

本文作者创新点:巧妙利用ucLinux内核模块,简化开发过程,节约成本。

本设计以uclinux嵌入式操作系统为平台,充分发挥了SL811HST芯片的Host/Slave两种模式的作用,整套系统上电运行结果证明。本系统设计能够顺利的读写u盘数据,并且达到USBI.1的全速。此系统价格低廉,实现简单有效。为嵌入式系统添加USB主机接口,使得USB能应用在没有PC的领域中,真正实现USB点对点的通讯。在需要野外大量采集记录数据的场合,如勘测,气象等领域,嵌入式USB主机方便携带;在需要远距离传输数据的场合,在USB设备上增加无线网卡,数据就可以实时传送,等等。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18261

    浏览量

    222086
  • usb
    usb
    +关注

    关注

    59

    文章

    7422

    浏览量

    258046
  • 操作系统
    +关注

    关注

    37

    文章

    6280

    浏览量

    121869
收藏 人收藏

    评论

    相关推荐

    代电梯一体化控制

    监控。最高楼层数达40 层,广泛应用于各种住宅、办公楼、商场、医院等区域的乘客、载货电梯。3000系列电梯一体化控制可驱动交流异步电机和永磁同步电机,只需更改个参数即可轻松实现同步
    发表于 06-03 12:43

    HZD-B一体化振动变送器

    HZD-B一体化振动变送器一体化振动变送器将磁电式速度传感、精密测量电路集成在起,实现了传统的“传感
    发表于 05-23 13:57

    什么是机电一体化

    像人类那样会思考判断。4) 机电一体化的例子机电一体化产品中定有运动机械,并且采用了电子技术使运动机械实现柔性和智能
    发表于 08-29 09:06

    机电一体化系统

    的运动。5) 计算机根据来自旋转编码或测速发电机的信号,判断机器人的当前状态,并计算和判断要达到所希望的状态或者移动到某目标应该如何动作。2.其它机电一体化系统机器人是实现人类
    发表于 08-29 09:11

    一体化模块贴片概述

      一体化模块贴片是最近几年在新型贴片机设备研发过程中提出来的—种全新概念的机型,其主要特点是:以贴片的主机为标准设备,为其装备统、标
    发表于 09-04 15:43

    如何实现机电一体化设计?

    用户总是要求我们提高所设计的机械的性能,同时减少资金成本。为了达到这两个矛盾的目标,我们将注意力放到在机械设计方面有巨大潜力的机电一体化上。本文着重展示了使用嵌入式分析工具的现代计算机辅助设计(CAD)系统,告诉大家,如何才能实现机电
    发表于 08-07 06:48

    怎么设计基于ARM7芯片S3C44BOX的嵌入式定量分析系统?

    监管部门及企业需要解决的问题。为解决上述问题,本文基于ARM7芯片S3C44BOX,设计了个集数据采集、处理、显示为一体的嵌入式定量分析系
    发表于 09-26 07:02

    如何实现一体化芯片-封装协同设计系统的设计?

    如何实现一体化芯片-封装协同设计系统的设计?如何优化封装和芯片接口设计?
    发表于 04-21 07:01

    S3C44BOX开发板上的设备是通过何种方式控制的?

    S3C44BOX开发板上的设备是通过何种方式控制的?
    发表于 05-09 16:01

    ARM CPU S3C44BOX在水表智能抄表系统中的应用

    ARM CPU S3C44BOX在水表智能抄表系统中的应用 介绍水表智能表系统的核心部分--抄表手机,以及如何用32位机S3C44BOX实现抄表手机的功能。
    发表于 10-01 21:53 45次下载

    关于三星S3C44BOX目标板的tClinux Bootlo

    S3C44BOX是常用的一款基于ARM7TDM1内核的RISC处理器。I.tClinux操作系统可以很好地支持此类无MMU的处理器。本文介绍了在S3C44BOX目标板上移植I.tCli
    发表于 12-01 13:37 20次下载

    基于S3C44BOX的键盘接口设计

    本文介绍了键盘的工作原理,设计了基于 S3C44BOX 嵌入式微处理器的键盘硬件接口电路,研究了键盘程序的工作机制,在此基础上了给出了详细的程序流程图。
    发表于 01-13 16:51 47次下载

    S3C44BOX IIS音频接口与DMA应用实验

    S3C44BOX IIS音频接口与DMA应用实验
    发表于 07-13 20:30 53次下载

    μC/OS-II在S3C44BOX处理器上的移植

     摘要:介绍实时操作系统μC/OS-II的特点和内核结构,给出μC/OS-II在Samsung嵌入式S3C44BOX ARM7微处理器上的移植的步骤及详细相关代码,同时阐述μC/OS-II在应用中应注意的问题
    发表于 03-11 12:39 1218次阅读
    μC/OS-II在<b class='flag-5'>S3C44BOX</b><b class='flag-5'>处理器</b>上的移植

    基于S3C44BOX的嵌入式系统设计

    本文介绍了Samsung公司基于ARM7内核的S3C44BOX处理器的结构、功能、内部资源和存储器特点及其具体应用,以及pC/OS - II嵌入式实时操作系统在具体设计中任务的划分和系统构成
    发表于 09-21 16:54 92次下载
    基于<b class='flag-5'>S3C44BOX</b>的嵌入式系统设计