0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于S3C44B0X處理器和mClinux實(shí)現(xiàn)USB設(shè)備兩種模式的應(yīng)用設(shè)計(jì)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)應(yīng)用 ? 作者:閔華松,錢麗 ? 2021-05-22 17:40 ? 次閱讀

引言

目前,USB 設(shè)備產(chǎn)品的應(yīng)用非常廣泛,但市場上能夠提供Host/Slave兩種模式的USB控制芯片并不多,本系統(tǒng)采用CYPRESS公司的SL811HST芯片作為USB接口的控制芯片,實(shí)現(xiàn)Host/Slave兩種工作模式。

系統(tǒng)介紹

本系統(tǒng)是以三星公司的S3C44B0X為嵌入式處理器,mClinux操作系統(tǒng)的專用PDA,通過無線方式實(shí)現(xiàn)與上位機(jī)通信,同時(shí)也可通過USB接口直接控制USB打印機(jī)輸出。其中USB控制芯片采用CYPRESS公司的SL811HST芯片,它有兩種工作模式Host/Slave。模式的改變是由該芯片M/S腳的電平值決定,其值可以通過軟件設(shè)置來改變。當(dāng)置M/S腳為低電平時(shí),它是Host模式,可以直接控制打印機(jī);當(dāng)置M/S腳為高電平時(shí),它是Slave模式,可以下載PC的最新資料,同時(shí)可對(duì)PDA充電電池充電。

硬件設(shè)計(jì)

三星公司的S3C44B0X是一款專為手持設(shè)備和通用設(shè)備而設(shè)計(jì)的,16/32位RISC 結(jié)構(gòu)的嵌入式處理器。

CYPRESS公司的SL811HST是嵌入式的USB 主機(jī)或外設(shè)接口控制器。其基本功能如下:

1) 支持USB 1.1 的全速和低速設(shè)備;

2) 虛擬的外部總線,使得僅需占用和外接CPU 的1 根地址線A0,數(shù)據(jù)線為8位;

3) 16 個(gè)內(nèi)部寄存器,可以對(duì)USB Host 進(jìn)行充分的控制;內(nèi)部多達(dá)256 字節(jié)的RAM,為USB 傳輸建立了足夠的緩沖區(qū);

4) 操作電壓為3.3V,但是I/O 端口為5V Tolerant,因此可以自由地和5V 或3.3V 的CPU 系統(tǒng)連接;

5) 可接12MHz 或48MHz外置晶振,對(duì)其操作通過16個(gè)寄存器來完成。

GPE5是Host/Slave模式控制管腳,它同時(shí)同步控制USB接口的負(fù)載方式。GPE4口可以監(jiān)視USB接口上是否有主USB設(shè)備插入,如果有,VUSB為高電平;沒有則為低電平。GPE3口用于顯示USB設(shè)備是否處于就緒或相應(yīng)的Host/Slave模式工作狀態(tài)

軟件設(shè)計(jì)

在Linux操作系統(tǒng)中,驅(qū)動(dòng)程序的加載方式為:

1) 將驅(qū)動(dòng)程序作為可加載的模塊(Module),在系統(tǒng)超級(jí)用戶(Root)權(quán)限下使用insmod命令動(dòng)態(tài)加載,使之成為系統(tǒng)核心的一部分。對(duì)于USB 設(shè)備而言,由于可熱插拔,一般采用模塊化的設(shè)備驅(qū)動(dòng)程序。

2) 將設(shè)備驅(qū)動(dòng)程序的源代碼加進(jìn)系統(tǒng)內(nèi)核,編譯移植到嵌入式系統(tǒng),系統(tǒng)啟動(dòng)后將自動(dòng)加載驅(qū)動(dòng)。USB 協(xié)議棧程序一般采用這種方法加入內(nèi)核,進(jìn)而產(chǎn)生一個(gè)叫做“USB 核心”的子系統(tǒng)。這個(gè)子系統(tǒng)提供了許多數(shù)據(jù)結(jié)構(gòu)、宏定義、功能函數(shù)和應(yīng)用程序接口(API)來對(duì)硬件或設(shè)備進(jìn)行支持。

本系統(tǒng)就是采用第二種方式加載USB驅(qū)動(dòng)的。由于本系統(tǒng)的mClinux包來自于英蓓特公司的包,因此節(jié)省了很多工作,具體編譯過程如下:

1) 在mClinux內(nèi)核的USB驅(qū)動(dòng)目錄中添加如下三個(gè)文件:sl811h-usb.c 、sl811h.h、 sl811husb.h。這兩個(gè)頭文件中主要定義了一些關(guān)于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中增加一個(gè)設(shè)備文件。因?yàn)閁SB設(shè)備主要都是通過快速串行通訊來讀寫數(shù)據(jù), 故一般作為字符設(shè)備。在/usr/local/src/uClinux-s3cev40/fs/devfs 下執(zhí)行:

mknod usb0 c 127 0

mknod usb1 c 127 1

4) 執(zhí)行make xconfig,用戶內(nèi)核設(shè)置選擇y。

5) 執(zhí)行make dep。

6) 執(zhí)行make。USB設(shè)備驅(qū)動(dòng)程序被編譯進(jìn)mClinux內(nèi)核,包含在image.bin文件中。

在嵌入式系統(tǒng)啟動(dòng)時(shí),USB設(shè)備驅(qū)動(dòng)就自動(dòng)執(zhí)行了。

結(jié)語

本設(shè)計(jì)以mClinux嵌入式操作系統(tǒng)為平臺(tái),充分發(fā)揮了SL811HST芯片的Host/Slave兩種模式的作用,使其在實(shí)際使用中非常方便。隨著嵌入式USB設(shè)備Host/Slave模式的研發(fā),USB設(shè)備的使用會(huì)更加普及。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19100

    瀏覽量

    228813
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302015
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6684

    瀏覽量

    123140
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于S3C44B0X的WAVE音頻文件播放

    采用S3C44B0X內(nèi)置IIS總線和音頻數(shù)模轉(zhuǎn)換芯片CS4334,本文搭建了以二者為核心的工作平臺(tái),并詳細(xì)討論了基于此平臺(tái)實(shí)現(xiàn)播放WAVE音頻文件的方法.由于S3C44B0X及CS4334模塊具有較強(qiáng)的通用性
    發(fā)表于 11-09 17:08 ?1688次閱讀
    基于<b class='flag-5'>S3C44B0X</b>的WAVE音頻文件播放

    基于S3C44B0X處理器實(shí)現(xiàn)運(yùn)動(dòng)系統(tǒng)電流信號(hào)采集電路的設(shè)計(jì)

    本文首先以三星公司的S3C44B0X處理器為核心芯片,設(shè)計(jì)電流信號(hào)采集電路,然后介紹了非線性能量故障診斷算法。最后以X-Y運(yùn)動(dòng)平臺(tái)為實(shí)驗(yàn)對(duì)象,驗(yàn)證該算法的有效性。
    的頭像 發(fā)表于 03-24 16:23 ?6424次閱讀
    基于<b class='flag-5'>S3C44B0X</b>微<b class='flag-5'>處理器</b><b class='flag-5'>實(shí)現(xiàn)</b>運(yùn)動(dòng)系統(tǒng)電流信號(hào)采集電路的設(shè)計(jì)

    怎么實(shí)現(xiàn)基于S3C44B0X和M12模塊的GPS接收終端的設(shè)計(jì)?

    本文介紹一以目前比較流行的基于ARM7架構(gòu)的嵌入式處理器S3C44B0X和Motorola的M12模塊的GPS數(shù)據(jù)接收終端的設(shè)計(jì)。
    發(fā)表于 05-12 06:14

    怎么實(shí)現(xiàn)基于S3C44B0X的嵌入式Socket通信設(shè)計(jì)?

    本文給出一適合于中/低端應(yīng)用的通信平臺(tái)設(shè)計(jì)方案,它可支持Ethernet網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸,并且具有RS232? RS485? USB等接口?文中圍繞嵌入式uClinux環(huán)境設(shè)計(jì)了基于嵌入式通信微處理器
    發(fā)表于 05-27 06:59

    S3C44B0X pdf

    S3C44B0X p
    發(fā)表于 06-27 09:37 ?76次下載

    s3c44b0x中文資料,s3c44b0x中文數(shù)據(jù)手冊(cè)

    S3C44B0X 中文數(shù)據(jù)手冊(cè)...........................................................116 IIC 總線接口
    發(fā)表于 06-27 09:40 ?152次下載

    S3C44B0X的培訓(xùn)資料及源代碼程序

    S3C44B0X的培
    發(fā)表于 12-25 22:08 ?37次下載
    <b class='flag-5'>S3C44B0X</b>的培訓(xùn)資料及源代碼程序

    基于S3C44B0X處理器的JFFS2件系統(tǒng)的實(shí)現(xiàn)

    基于S3C44B0X處理器的JFFS2件系統(tǒng)的實(shí)現(xiàn)
    發(fā)表于 03-28 09:50 ?16次下載

    基于S3C44B0X 的uClinux的移植

    S3C44B0X 作為一款以ARM7TDMI 為內(nèi)核的微處理器,正日益受到廣泛的應(yīng)用;uClinux作為一運(yùn)行于沒有MMU 的嵌入式微處理器的Linux 衍生操作系統(tǒng),也廣泛應(yīng)用于嵌
    發(fā)表于 05-15 15:40 ?14次下載

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

    本文簡介了一實(shí)時(shí)多任務(wù)內(nèi)核μC/OS-Ⅱ。并根據(jù)S3C44B0X 芯片的硬件特性,給出了一把μC/OS-Ⅱ移植到
    發(fā)表于 08-31 11:46 ?18次下載

    基于S3C44B0X處理器的VxWorks中斷設(shè)計(jì)

    通過基于立宇泰S3C44B0X 開發(fā)板的BSP 移植調(diào)試,闡述了VxWorks 的異常中斷處理機(jī)制,實(shí)現(xiàn)了VxWorks 基于S3C44B0X 處理
    發(fā)表于 09-03 11:25 ?17次下載

    S3C44B0X中文手冊(cè) pdf

    S3C44B0X中文數(shù)據(jù) 三星的S3C44B0X 16/32位RISC處理器被設(shè)計(jì)來為手持設(shè)
    發(fā)表于 02-10 12:07 ?254次下載

    S3C44B0X datasheet, RISC MICRO

    S3C44B0X d
    發(fā)表于 03-09 09:47 ?35次下載

    處理器S3C44B0X音頻文件播放

    處理器S3C44B0X音頻文件播放 S3C44B0X是三星公司針對(duì)嵌入式系統(tǒng)推出高性價(jià)比微處理器,它是基于ARM7TDMI內(nèi)核的16/32位RISC
    發(fā)表于 03-16 11:46 ?766次閱讀
    微<b class='flag-5'>處理器</b><b class='flag-5'>S3C44B0X</b>音頻文件播放

    S3C44B0X原理圖

    S3C44B0X原理圖:
    發(fā)表于 09-14 15:28 ?167次下載
    <b class='flag-5'>S3C44B0X</b>原理圖