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

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

3天内不再提示

基于S3C44B0X处理器和mClinux实现USB设备两种模式的应用设计

电子设计 来源:电子设计应用 作者:闵华松,钱丽 2021-05-22 17:40 次阅读

引言

目前,USB 设备产品的应用非常广泛,但市场上能够提供Host/Slave两种模式的USB控制芯片并不多,本系统采用CYPRESS公司的SL811HST芯片作为USB接口的控制芯片,实现Host/Slave两种工作模式。

系统介绍

本系统是以三星公司的S3C44B0X为嵌入式处理器,mClinux操作系统的专用PDA,通过无线方式实现与上位机通信,同时也可通过USB接口直接控制USB打印机输出。其中USB控制芯片采用CYPRESS公司的SL811HST芯片,它有两种工作模式Host/Slave。模式的改变是由该芯片M/S脚的电平值决定,其值可以通过软件设置来改变。当置M/S脚为低电平时,它是Host模式,可以直接控制打印机;当置M/S脚为高电平时,它是Slave模式,可以下载PC的最新资料,同时可对PDA充电电池充电。

硬件设计

三星公司的S3C44B0X是一款专为手持设备和通用设备而设计的,16/32位RISC 结构的嵌入式处理器。

CYPRESS公司的SL811HST是嵌入式的USB 主机或外设接口控制器。其基本功能如下:

1) 支持USB 1.1 的全速和低速设备;

2) 虚拟的外部总线,使得仅需占用和外接CPU 的1 根地址线A0,数据线为8位;

3) 16 个内部寄存器,可以对USB Host 进行充分的控制;内部多达256 字节的RAM,为USB 传输建立了足够的缓冲区;

4) 操作电压为3.3V,但是I/O 端口为5V Tolerant,因此可以自由地和5V 或3.3V 的CPU 系统连接;

5) 可接12MHz 或48MHz外置晶振,对其操作通过16个寄存器来完成。

GPE5是Host/Slave模式控制管脚,它同时同步控制USB接口的负载方式。GPE4口可以监视USB接口上是否有主USB设备插入,如果有,VUSB为高电平;没有则为低电平。GPE3口用于显示USB设备是否处于就绪或相应的Host/Slave模式工作状态

软件设计

在Linux操作系统中,驱动程序的加载方式为:

1) 将驱动程序作为可加载的模块(Module),在系统超级用户(Root)权限下使用insmod命令动态加载,使之成为系统核心的一部分。对于USB 设备而言,由于可热插拔,一般采用模块化的设备驱动程序。

2) 将设备驱动程序的源代码加进系统内核,编译移植到嵌入式系统,系统启动后将自动加载驱动。USB 协议栈程序一般采用这种方法加入内核,进而产生一个叫做“USB 核心”的子系统。这个子系统提供了许多数据结构、宏定义、功能函数和应用程序接口(API)来对硬件或设备进行支持。

本系统就是采用第二种方式加载USB驱动的。由于本系统的mClinux包来自于英蓓特公司的包,因此节省了很多工作,具体编译过程如下:

1) 在mClinux内核的USB驱动目录中添加如下三个文件:sl811h-usb.c 、sl811h.h、 sl811husb.h。这两个头文件中主要定义了一些关于811HS/T寄存器的宏。

2) 编辑/uclinux-s3cev40/linux-2.4.x/drivers/usb/config.in文件。

首先在config.in文件开头添加如下语句:

dep_tristate ‘Support for USB’ CONFIG_USB $CONFIG_PCI

if [ “$CONFIG_USB” = “y” -o? “$CONFIG_USB” = “m” ]; then

?? bool ‘? USB verbose debug messages’ CONFIG_USB_DEBUG

comment ‘Miscellaneous USB options’

?? bool ‘? Preliminary USB device filesystem’ CONFIG_ USB_DEVICEFS

?? if [ “$CONFIG_ EXPERIMENTAL” = “y” ]; then

????? bool ‘? Enforce USB bandwidth allocation (EXPERIMENTAL)’ CONFIG_USB_BANDWIDTH

?? else

??? define_bool CONFIG_USB_ BANDWIDTH n

?? fi

?? bool ‘? Long timeout for slow-responding devices (some MGE Ellipse UPSes)’ CONFIG_USB_ LONG_TIMEOUT

fi

然后在makefile文件中添加

ifeq ($(CONFIG_USB_ DEBUG),y)

?????? L_OBJS+=sl811h-usb.o

endif

最后在/uclinux-s3cev40/linux-2.4.x/drivers/usb/sl811h_usb.c文件中添加如下代码:

#ifdef CONFIG_USB_DEBUG

?????? #define DEBUG

#else

?????? #undef DEBUG

#endif

#SL811HS/T----- USB Host Controller driver

INCLUDEDIR = /usr/src/linux/include

CFLAGS = -D__KERNEL__ -DMODULE -O -Wall -

static -I$(INCLUDEDIR)

VER = $(shell awk -F\“ ‘/REL/ {print $$2}’

$(INCLUDEDIR)/linux/version.h)

all:sl811h-usb.o

sl811h-usb.o:sl811h-usb.csl811h-usb.hsl811h.h

gcc sl811h-usb.c -c $(CFLAGS)

# End this file

3) 在/usr/local/src/uClinux-s3cev40/fs/dev中增加一个设备文件。因为USB设备主要都是通过快速串行通讯来读写数据, 故一般作为字符设备。在/usr/local/src/uClinux-s3cev40/fs/devfs 下执行:

mknod usb0 c 127 0

mknod usb1 c 127 1

4) 执行make xconfig,用户内核设置选择y。

5) 执行make dep。

6) 执行make。USB设备驱动程序被编译进mClinux内核,包含在image.bin文件中。

在嵌入式系统启动时,USB设备驱动就自动执行了。

结语

本设计以mClinux嵌入式操作系统为平台,充分发挥了SL811HST芯片的Host/Slave两种模式的作用,使其在实际使用中非常方便。随着嵌入式USB设备Host/Slave模式的研发,USB设备的使用会更加普及。

责任编辑:gt

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

    关注

    68

    文章

    19265

    浏览量

    229687
  • 嵌入式
    +关注

    关注

    5082

    文章

    19111

    浏览量

    304881
  • 操作系统
    +关注

    关注

    37

    文章

    6808

    浏览量

    123292
收藏 人收藏

    评论

    相关推荐

    基于S3C44B0X的WAVE音频文件播放

    采用S3C44B0X内置IIS总线和音频数模转换芯片CS4334,本文搭建了以二者为核心的工作平台,并详细讨论了基于此平台实现播放WAVE音频文件的方法.由于S3C44B0X及CS4334模块具有较强的通用性
    发表于 11-09 17:08 1698次阅读
    基于<b class='flag-5'>S3C44B0X</b>的WAVE音频文件播放

    基于S3C44B0X处理器实现运动系统电流信号采集电路的设计

    本文首先以三星公司的S3C44B0X处理器为核心芯片,设计电流信号采集电路,然后介绍了非线性能量故障诊断算法。最后以X-Y运动平台为实验对象,验证该算法的有效性。
    的头像 发表于 03-24 16:23 6467次阅读
    基于<b class='flag-5'>S3C44B0X</b>微<b class='flag-5'>处理器</b><b class='flag-5'>实现</b>运动系统电流信号采集电路的设计

    怎么实现基于S3C44B0X和M12模块的GPS接收终端的设计?

    本文介绍一以目前比较流行的基于ARM7架构的嵌入式处理器S3C44B0X和Motorola的M12模块的GPS数据接收终端的设计。
    发表于 05-12 06:14

    怎么实现基于S3C44B0X的嵌入式Socket通信设计?

    本文给出一适合于中/低端应用的通信平台设计方案,它可支持Ethernet网络之间的数据传输,并且具有RS232、 RS485、 USB等接口。文中围绕嵌入式uClinux环境设计了基于嵌入式通信微处理器
    发表于 05-27 06:59

    S3C44B0X pdf

    S3C44B0X p
    发表于 06-27 09:37 76次下载

    s3c44b0x中文资料,s3c44b0x中文数据手册

    S3C44B0X 中文数据手册...........................................................116 IIC 总线接口
    发表于 06-27 09:40 152次下载

    S3C44B0X的培训资料及源代码程序

    S3C44B0X的培
    发表于 12-25 22:08 37次下载
    <b class='flag-5'>S3C44B0X</b>的培训资料及源代码程序

    基于S3C44B0X处理器的JFFS2件系统的实现

    基于S3C44B0X处理器的JFFS2件系统的实现
    发表于 03-28 09:50 16次下载

    基于S3C44B0X 的uClinux的移植

    S3C44B0X 作为一款以ARM7TDMI 为内核的微处理器,正日益受到广泛的应用;uClinux作为一运行于没有MMU 的嵌入式微处理器的Linux 衍生操作系统,也广泛应用于嵌
    发表于 05-15 15:40 14次下载

    μC/OS-Ⅱ在S3C44B0X上的移植

    本文简介了一实时多任务内核μC/OS-Ⅱ。并根据S3C44B0X 芯片的硬件特性,给出了一把μC/OS-Ⅱ移植到
    发表于 08-31 11:46 18次下载

    基于S3C44B0X处理器的VxWorks中断设计

    通过基于立宇泰S3C44B0X 开发板的BSP 移植调试,阐述了VxWorks 的异常中断处理机制,实现了VxWorks 基于S3C44B0X 处理
    发表于 09-03 11:25 17次下载

    S3C44B0X中文手册 pdf

    S3C44B0X中文数据 三星的S3C44B0X 16/32位RISC处理器被设计来为手持设
    发表于 02-10 12:07 254次下载

    S3C44B0X datasheet, RISC MICRO

    S3C44B0X d
    发表于 03-09 09:47 35次下载

    处理器S3C44B0X音频文件播放

    处理器S3C44B0X音频文件播放 S3C44B0X是三星公司针对嵌入式系统推出高性价比微处理器,它是基于ARM7TDMI内核的16/32位RISC
    发表于 03-16 11:46 775次阅读
    微<b class='flag-5'>处理器</b><b class='flag-5'>S3C44B0X</b>音频文件播放

    S3C44B0X原理图

    S3C44B0X原理图:
    发表于 09-14 15:28 167次下载
    <b class='flag-5'>S3C44B0X</b>原理图