基于s3c44b0和COS-II的嵌入式USB主機(SL811)設計與
1 引 言
本文引用地址:http://2s4d.com/article/202652.htm通常情況下,打印機、海量存儲等設備是由普通PC機來驅動的,由于大量的測控、醫(yī)療等系統(tǒng)需要存儲、打印數(shù)據(jù),因此開發(fā)這類設備的嵌入式驅動是非常有實用價值的。目前,各種嵌入式設備基本上是通過軟盤存儲,并口打印的,而它們的存儲容量、數(shù)據(jù)傳輸速度已大大落后當前各類嵌入式系統(tǒng)的需求。因此,開發(fā)基于USB接口的嵌入式海量存儲設備和打印機驅動已成當務之急。
USB(Universal Serial Bus)是最近幾年逐步在PC領域廣為應用的新型串行接口技術,它通用性好、實時性強、傳輸方式多樣、成本低、易于擴展和使用,這些優(yōu)點使它受到許多硬件廠商的青睞,各種類型的USB設備產(chǎn)品大量涌入市場。USB通訊必須是主機和外設通訊,每次通訊都是由主機發(fā)起,外設只是被動地執(zhí)行主機發(fā)過來的命令。而市場上所買到和使用的USB 移動設備, 都是USB 的外設(device) , 如USB 的移動硬盤、USB 接口的數(shù)碼相機、打印機等。這些設備通常只能通過PC 來進行相互的文件和數(shù)據(jù)交換,沒有了PC 機, 這些設備就無法進行數(shù)據(jù)交換。而實際上并非每個地方都擁有PC機或者適合使用PC機,因此業(yè)界和用戶需求USB 主機的嵌入式化。也就是開發(fā)和設計嵌入式的USB 主機。
根據(jù)具體醫(yī)療儀器(酶標儀)的實際需要,我們在三星的ARM7處理器 S3C44B0X上移植了實時操作系統(tǒng)(RTOS)――micro;C/OS-II,并編寫了基于USB主控制器芯片SL811的底層驅動。為了能將酶標儀所檢測的數(shù)據(jù)保存到外設(如U盤、移動硬盤)中,研究了對應的文件系統(tǒng)和UFI傳輸協(xié)議,實現(xiàn)了對FAT文件系統(tǒng)的海量存儲設備的讀寫。同時,為了打印霉標儀的檢測結果,研究了EPSON打印機的ESC/P打印語言,實現(xiàn)了EPSON C63系列、C65系列、ME1打印機基于USB通訊的嵌入式打印機驅動。
2 嵌入式USB主機的硬件設計
酶標儀的硬件平臺核心為三星公司的S3C44B0X(主頻最高可達66MHz),它集成了ARM7TDMI核,LCD控制器,是一款適用于中端應用的微控制器。系統(tǒng)擴展包括:存儲器(8MB SRAM、2MB NOR Flash)、USB主從機(SL811HS)和按鍵等硬件資源。其中USB部分硬件連接如圖1所示。
圖1:硬件連接圖
SL811HS 是Cypress公司推出的一款嵌入式USB Host/S1ave芯片。支持USB1.1的全速和低速設備。提供USB主機的硬件接口及總線管理的物理機制。帶有在片的SIE和USB發(fā)送器以及在片的根集線器Hub。因此, 滿足了嵌入式USB 主機系統(tǒng)所需要的功能, 即由主機接口芯片來完成總線底層物理數(shù)據(jù)包的發(fā)送、接收, 并能檢測總線狀態(tài), 發(fā)出中斷請求。所以, 選擇SL811HS 作為本系統(tǒng)的USB接口芯片是合適的。
如圖2所示,ARM通過Cs3片選SL811HS來確定SL811HS的基地址。D0-D7為數(shù)據(jù)和地址的復用線,并通過A0來區(qū)分,當A0為“0”的時候,D0-D7上傳輸?shù)氖瞧频刂?;反之,當A0為“1”的時候,D0-D7作為數(shù)據(jù)線用。
評論