基于s3c44b0和COS-II的嵌入式USB主機(jī)(SL811)設(shè)計(jì)與
3 嵌入式USB主機(jī)的軟件設(shè)計(jì)
3.1 嵌入式USB主機(jī)的軟件總體框架
系統(tǒng)的軟件平臺(tái)核心為micro;C/OS-II,它是一個(gè)源碼公開的、占先式多任務(wù)管理的實(shí)時(shí)操作系統(tǒng)內(nèi)核,其性能完全可與許多商業(yè)產(chǎn)品競(jìng)爭(zhēng),已在相當(dāng)多的系統(tǒng)中得到成功應(yīng)用,是一個(gè)經(jīng)實(shí)踐證明穩(wěn)定可靠的內(nèi)核,且其核心代碼短小精悍,簡(jiǎn)單易學(xué)。
USB 主機(jī)為USB系統(tǒng)提供的功能有:(1) 檢測(cè)USB 外設(shè)的接入和移出;(2) 管理主機(jī)和外設(shè)之間進(jìn)行的USB 標(biāo)準(zhǔn)流量控制;(3) 枚舉外設(shè); (4) 管理主機(jī)和外設(shè)之間的數(shù)據(jù)流; (5) 搜集系統(tǒng)狀態(tài)和性能的統(tǒng)計(jì)信息;(6) 主機(jī)與外設(shè)之間的電氣接口,包括供電。
USB協(xié)議規(guī)定了人機(jī)接口設(shè)備HID 類、MassStorage 類、音頻類和打印類等一系列的設(shè)備類型, 用于支持不同的設(shè)備。根據(jù)實(shí)際需要,我們開發(fā)了USB接口的海量存儲(chǔ)類設(shè)備和基于ESC/P打印語言的EPSON打印機(jī)嵌入式驅(qū)動(dòng)程序。具體驅(qū)動(dòng)程序棧如圖2所示。該系統(tǒng)支持熱插拔,可以知道識(shí)別插上是哪種設(shè)備,并調(diào)用對(duì)應(yīng)的驅(qū)動(dòng)。
圖2:USB驅(qū)動(dòng)程序棧
3.2 USB Mass Storage 類協(xié)議框架的實(shí)現(xiàn)
USB Mass Storage 類是USB 協(xié)議所定義的用來磁盤管理及大容量數(shù)據(jù)傳輸?shù)?。USB定義了兩種海量存儲(chǔ)傳輸協(xié)議,它們分別是Buck-only Transport 和Control/Bulk/Interrupt(CBI) Transport。由于目前市場(chǎng)上所出現(xiàn)的海量存儲(chǔ)設(shè)備基本上都采用前者傳輸協(xié)議,即讀寫數(shù)據(jù)都是通過塊傳輸來實(shí)現(xiàn)通訊。在命令包CBW (Command Block Wrapper)中包含了標(biāo)志信息,數(shù)據(jù)長(zhǎng)度以及UFI命令等信息。其中UFI命令含有格式化磁盤、讀磁盤、寫磁盤和讀磁盤容量等一系列磁盤管理命令。
大部分移動(dòng)存儲(chǔ)設(shè)備都采用FAT文件系統(tǒng)來管理文件。整個(gè)文件系統(tǒng)通過Mass Storage 的UFI 命令與外設(shè)的磁盤建立聯(lián)系。FAT文件系統(tǒng)將海量存儲(chǔ)設(shè)備上的數(shù)據(jù)大致分成5個(gè)部分:MBR區(qū)(主引導(dǎo)區(qū))、DBR區(qū)(系統(tǒng)引導(dǎo)區(qū))、FAT區(qū)(文件分配表)、FDT區(qū)(文件目錄表)和DATA區(qū)(數(shù)據(jù)區(qū))。當(dāng)有USB接口的海量存儲(chǔ)設(shè)備插上后,系統(tǒng)讀取MBR區(qū)和DBR區(qū)來獲得每扇區(qū)字節(jié)數(shù),每簇扇區(qū)數(shù),F(xiàn)AT表個(gè)數(shù)等文件系統(tǒng)基本信息。獲取這些基本信息后從海量存儲(chǔ)設(shè)備讀取一個(gè)文件的流程如圖3示。因?qū)懳募妥x文件的流程沒有很大的差別,在此就不累述了。
圖3讀文件流程圖
3.3 基于ESC/ P打印控制語言的打印機(jī)驅(qū)動(dòng)設(shè)計(jì)
EPSON公司的打印機(jī)基本上都是基于ESC/ P打印控制語言的,不同系列的打印機(jī)的控制語言沒有太大的差別。因此,我們開發(fā)的驅(qū)動(dòng)程序具有比較強(qiáng)的通用性,針對(duì)EPSON的C63系列打印機(jī)開發(fā)的驅(qū)動(dòng)完全適用C65系列和ME1打印機(jī)。
各種型號(hào)打印機(jī)的編程手冊(cè)可以到EPSON的開發(fā)網(wǎng)站上下載。編程手冊(cè)對(duì)各種控制命令作了詳細(xì)介紹,如初始化打印機(jī)(ESC @)、選擇圖形方式( ESC (C nL nH m )、設(shè)置單元大?。‥SC (U nL nH m )、打印光柵圖像命令(ESC . c v h m N1 Nh d1 #8943;dk)等。
評(píng)論