嵌入式系統中USB控制的Host/Slave模式的應用
引言
目前,USB 設備產(chǎn)品的應用非常廣泛,但市場(chǎng)上能夠提供Host/Slave兩種模式的USB控制芯片并不多,本系統采用CYPRESS公司的SL811HST芯片作為USB接口的控制芯片,實(shí)現Host/Slave兩種工作模式。
系統介紹
本系統是以三星公司的S3C44B0X為嵌入式處理器,mClinux為操作系統的專(zhuān)用PDA,通過(guò)無(wú)線(xiàn)方式實(shí)現與上位機的通信,同時(shí)也可通過(guò)USB接口直接控制USB打印機輸出。其中USB控制芯片采用CYPRESS公司的SL811HST芯片,它有兩種工作模式Host/Slave。模式的改變是由該芯片M/S腳的電平值決定,其值可以通過(guò)軟件設置來(lái)改變。當置M/S腳為低電平時(shí),它是Host模式,可以直接控制打印機;當置M/S腳為高電平時(shí),它是Slave模式,可以下載PC的最新資料,同時(shí)可對PDA充電電池充電。
硬件設計
三星公司的S3C44B0X是一款專(zhuān)為手持設備和通用設備而設計的,16/32位RISC 結構的嵌入式處理器。
CYPRESS公司的SL811HST是嵌入式的USB 主機或外設接口控制器。其基本功能如下:
1) 支持USB 1.1 的全速和低速設備;
2) 虛擬的外部總線(xiàn),使得僅需占用和外接CPU 的1 根地址線(xiàn)A0,數據線(xiàn)為8位;
3) 16 個(gè)內部寄存器,可以對USB Host 進(jìn)行充分的控制;內部多達256 字節的RAM,為USB 傳輸建立了足夠的緩沖區;
4) 操作電壓為3.3V,但是I/O 端口為5V Tolerant,因此可以自由地和5V 或3.3V 的CPU 系統連接;
5) 可接12MHz 或48MHz外置晶振,對其操作通過(guò)16個(gè)寄存器來(lái)完成。
GPE5是Host/Slave模式控制管腳,它同時(shí)同步控制USB接口的負載方式。GPE4口可以監視USB接口上是否有主USB設備插入,如果有,VUSB為高電平;沒(méi)有則為低電平。GPE3口用于顯示USB設備是否處于就緒或相應的Host/Slave模式工作狀態(tài)
軟件設計
在Linux操作系統中,驅動(dòng)程序的加載方式為:
1) 將驅動(dòng)程序作為可加載的模塊(Module),在系統超級用戶(hù)(Root)權限下使用insmod命令動(dòng)態(tài)加載,使之成為系統核心的一部分。對于USB 設備而言,由于可熱插拔,一般采用模塊化的設備驅動(dòng)程序。
2) 將設備驅動(dòng)程序的源代碼加進(jìn)系統內核,編譯移植到嵌入式系統,系統啟動(dòng)后將自動(dòng)加載驅動(dòng)。USB 協(xié)議棧程序一般采用這種方法加入內核,進(jìn)而產(chǎn)生一個(gè)叫做“USB 核心”的子系統。這個(gè)子系統提供了許多數據結構、宏定義、功能函數和應用程序接口(API)來(lái)對硬件或設備進(jìn)行支持。
晶振相關(guān)文章:晶振原理
評論