国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于ARM和μC/OS-Ⅱ的嵌入式USB主機(jī)設(shè)計(jì)與應(yīng)用

發(fā)布時(shí)間:2010-8-19 10:33    發(fā)布者:lavida
關(guān)鍵詞: arm , USB
1 引 言  

通常情況下,打印機(jī)、海量存儲(chǔ)等設(shè)備是由普通PC機(jī)來(lái)驅(qū)動(dòng)的,由于大量的測(cè)控、醫(yī)療等系統(tǒng)需要存儲(chǔ)、打印數(shù)據(jù),因此開發(fā)這類設(shè)備的嵌入式驅(qū)動(dòng)是非常有實(shí)用價(jià)值的。目前,各種嵌入式設(shè)備基本上是通過(guò)軟盤存儲(chǔ),并口打印的,而它們的存儲(chǔ)容量、數(shù)據(jù)傳輸速度已大大落后當(dāng)前各類嵌入式系統(tǒng)的需求。因此,開發(fā)基于USB接口的嵌入式海量存儲(chǔ)設(shè)備和打印機(jī)驅(qū)動(dòng)已成當(dāng)務(wù)之急。  

USB(Universal Serial Bus)是最近幾年逐步在PC領(lǐng)域廣為應(yīng)用的新型串行接口技術(shù),它通用性好、實(shí)時(shí)性強(qiáng)、傳輸方式多樣、成本低、易于擴(kuò)展和使用,這些優(yōu)點(diǎn)使它受到許多硬件廠商的青睞,各種類型的USB設(shè)備產(chǎn)品大量涌入市場(chǎng)。USB通訊必須是主機(jī)和外設(shè)通訊,每次通訊都是由主機(jī)發(fā)起,外設(shè)只是被動(dòng)地執(zhí)行主機(jī)發(fā)過(guò)來(lái)的命令。而市場(chǎng)上所買到和使用的USB 移動(dòng)設(shè)備, 都是USB 的外設(shè)(device) , 如USB 的移動(dòng)硬盤、USB 接口的數(shù)碼相機(jī)、打印機(jī)等。這些設(shè)備通常只能通過(guò)PC 來(lái)進(jìn)行相互的文件和數(shù)據(jù)交換,沒(méi)有了PC 機(jī), 這些設(shè)備就無(wú)法進(jìn)行數(shù)據(jù)交換。而實(shí)際上并非每個(gè)地方都擁有PC機(jī)或者適合使用PC機(jī),因此業(yè)界和用戶需求USB 主機(jī)的嵌入式化。也就是開發(fā)和設(shè)計(jì)嵌入式的USB 主機(jī)。  

根據(jù)具體醫(yī)療儀器(酶標(biāo)儀)的實(shí)際需要,我們?cè)谌堑?a href="http://www.qingdxww.cn/keyword/ARM" target="_blank" class="relatedlink">ARM7處理器 S3C44B0X上移植了實(shí)時(shí)操作系統(tǒng)(RTOS)——µC/OS-II,并編寫了基于USB主控制器芯片SL811的底層驅(qū)動(dòng)。為了能將酶標(biāo)儀所檢測(cè)的數(shù)據(jù)保存到外設(shè)(如U盤、移動(dòng)硬盤)中,研究了對(duì)應(yīng)的文件系統(tǒng)和UFI傳輸協(xié)議,實(shí)現(xiàn)了對(duì)FAT文件系統(tǒng)的海量存儲(chǔ)設(shè)備的讀寫。同時(shí),為了打印霉標(biāo)儀的檢測(cè)結(jié)果,研究了EPSON打印機(jī)的ESC/P打印語(yǔ)言,實(shí)現(xiàn)了EPSON C63系列、C65系列、ME1打印機(jī)基于USB通訊的嵌入式打印機(jī)驅(qū)動(dòng)。  

2 嵌入式USB主機(jī)的硬件設(shè)計(jì)  

酶標(biāo)儀的硬件平臺(tái)核心為三星公司的S3C44B0X(主頻最高可達(dá)66MHz),它集成了ARM7TDMI核,LCD控制器,是一款適用于中端應(yīng)用的微控制器。系統(tǒng)擴(kuò)展包括:存儲(chǔ)器(8MB SRAM、2MB NOR Flash)、USB主從機(jī)(SL811HS)和按鍵等硬件資源。其中USB部分硬件連接如圖1所示。  


  
圖1:硬件連接圖  

SL811HS 是Cypress公司推出的一款嵌入式USB Host/S1ave芯片。支持USB1.1的全速和低速設(shè)備。提供USB主機(jī)的硬件接口及總線管理的物理機(jī)制。帶有在片的SIE和USB發(fā)送器以及在片的根集線器Hub。因此, 滿足了嵌入式USB 主機(jī)系統(tǒng)所需要的功能, 即由主機(jī)接口芯片來(lái)完成總線底層物理數(shù)據(jù)包的發(fā)送、接收, 并能檢測(cè)總線狀態(tài), 發(fā)出中斷請(qǐng)求。所以, 選擇SL811HS 作為本系統(tǒng)的USB接口芯片是合適的。  

如圖2所示,ARM通過(guò)Cs3片選SL811HS來(lái)確定SL811HS的基地址。D0-D7為數(shù)據(jù)和地址的復(fù)用線,并通過(guò)A0來(lái)區(qū)分,當(dāng)A0為“0”的時(shí)候,D0-D7上傳輸?shù)氖瞧频刂罚环粗?dāng)A0為“1”的時(shí)候,D0-D7作為數(shù)據(jù)線用。  

3 嵌入式USB主機(jī)的軟件設(shè)計(jì)  

3.1 嵌入式USB主機(jī)的軟件總體框架  

系統(tǒng)的軟件平臺(tái)核心為µ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打印語(yǔ)言的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é)議所定義的用來(lái)磁盤管理及大容量數(shù)據(jù)傳輸?shù)摹SB定義了兩種海量存儲(chǔ)傳輸協(xié)議,它們分別是Buck-only Transport 和Control/Bulk/Interrupt(CBI) Transport。由于目前市場(chǎng)上所出現(xiàn)的海量存儲(chǔ)設(shè)備基本上都采用前者傳輸協(xié)議,即讀寫數(shù)據(jù)都是通過(guò)塊傳輸來(lái)實(shí)現(xiàn)通訊。在命令包CBW (Command Block Wrapper)中包含了標(biāo)志信息,數(shù)據(jù)長(zhǎng)度以及UFI命令等信息。其中UFI命令含有格式化磁盤、讀磁盤、寫磁盤和讀磁盤容量等一系列磁盤管理命令。  

大部分移動(dòng)存儲(chǔ)設(shè)備都采用FAT文件系統(tǒng)來(lái)管理文件。整個(gè)文件系統(tǒng)通過(guò)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ū)來(lái)獲得每扇區(qū)字節(jié)數(shù),每簇扇區(qū)數(shù),F(xiàn)AT表個(gè)數(shù)等文件系統(tǒng)基本信息。獲取這些基本信息后從海量存儲(chǔ)設(shè)備讀取一個(gè)文件的流程如圖3示。因?qū)懳募妥x文件的流程沒(méi)有很大的差別,在此就不累述了。  


  
圖3讀文件流程圖  

3.3 基于ESC/ P打印控制語(yǔ)言的打印機(jī)驅(qū)動(dòng)設(shè)計(jì)  

EPSON公司的打印機(jī)基本上都是基于ESC/ P打印控制語(yǔ)言的,不同系列的打印機(jī)的控制語(yǔ)言沒(méi)有太大的差別。因此,我們開發(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è)置單元大小(ESC (U nL nH m )、打印光柵圖像命令(ESC . c v h m N1 Nh d1 ⋯dk)等。  

EPSON打印機(jī)提供兩種打印方式,一種是用來(lái)打印文本文件,用該方式打印英文字母、阿拉伯?dāng)?shù)字、符合的時(shí)候向打印機(jī)發(fā)對(duì)應(yīng)的控制命令后,只要直接發(fā)打印內(nèi)容的ASCII碼即可。另一種方式是用來(lái)打印光柵圖形,當(dāng)需要打印表格、圖片和漢字的時(shí)候時(shí)往往會(huì)用到這種方式。在此,列出幾個(gè)關(guān)鍵API函數(shù)并予已說(shuō)明:  

print_image_init ( void ):因?yàn)榇蛴C(jī)初始化后默認(rèn)為打印文本模式,所以要打印光柵圖形必須進(jìn)行相關(guān)的初始化。  

print_image_command(unsigned int horiz_position,unsigned int verti_position, unsigned char rows, unsigned int columns, char color):調(diào)用該函數(shù)之前必須事先至少調(diào)用過(guò)一次print_image_init(),它的功能是向打印機(jī)發(fā)打印圖片命令。其中,第一和第二個(gè)輸入?yún)?shù)是打印圖形的橫縱坐標(biāo),第三和第四個(gè)輸入?yún)?shù)分別是打印圖形的行數(shù)和列數(shù)(特別值得注意的是,C63系列和C65系列打印機(jī)一次最多可打16行,而 EPSON M1一次只能打15行),第五個(gè)輸入?yún)?shù)color是選擇打印顏色。在調(diào)用該函數(shù)后,直接向打印機(jī)發(fā)打印的數(shù)據(jù)就可以實(shí)現(xiàn)打印圖片功能了。迎訪問(wèn)無(wú)由電子開發(fā)網(wǎng)(技術(shù)文章 在線閱讀 在線商城  

由于打印文本模式和打印圖形的操作基本相同,而且更簡(jiǎn)單,在此就不作說(shuō)明。  

3.4 USB協(xié)議的實(shí)現(xiàn)  

這是整個(gè)USB 體系軟件的根基, 它負(fù)責(zé)主機(jī)和設(shè)備之間數(shù)據(jù)傳輸。其代碼都包含在文件sl811host.c中,可供上層驅(qū)動(dòng)調(diào)用的API函數(shù)主要有:  

EnumUsbDev ():該函數(shù)主要實(shí)現(xiàn)枚舉設(shè)備的功能。當(dāng)有USB設(shè)備插上時(shí),系統(tǒng)通過(guò)調(diào)用到該函數(shù)得到設(shè)備的標(biāo)準(zhǔn)描述符(接口、配置、端點(diǎn))并識(shí)別是海量存儲(chǔ)設(shè)備還是打印機(jī)。設(shè)置地址(SetAdress),設(shè)置配置描述符(SetDecriptor),設(shè)置配置值(SetConfiguration),設(shè)置接口(SetInterface)也在該函數(shù)里實(shí)現(xiàn)。  

BuckSend():該函數(shù)主要實(shí)現(xiàn)主機(jī)上的數(shù)據(jù)通過(guò)塊傳輸方式發(fā)送到設(shè)備上;  

BuckReceive():塊傳輸接受函數(shù);  

BuckSend()和BuckReceive()兩個(gè)函數(shù)是最調(diào)度最平凡的兩個(gè)函數(shù),因?yàn)閷?duì)海量存儲(chǔ)設(shè)備的讀寫,對(duì)打印機(jī)發(fā)送控制命令、打印數(shù)據(jù)都是通過(guò)塊傳輸通訊的,也就是通過(guò)調(diào)用這兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)的。  

處理器讀寫SL811HS單個(gè)寄存器或數(shù)據(jù)存儲(chǔ)器的函數(shù)如下:  

void SL811Write(char a, char d){SL811_ADDR = a;SL811_DATA = d;}  

char SL811Read(char a){SL811_ADDR = a; return (SL811_DATA);}  

這兩個(gè)函數(shù)是ARM處理器和SL811芯片進(jìn)行數(shù)據(jù)交互的基石,所有控制寄存器和數(shù)據(jù)存儲(chǔ)器的讀寫都可以通過(guò)以上兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)。當(dāng)需要連續(xù)讀寫SL811中的儲(chǔ)存器時(shí)可以采用以下方式來(lái)實(shí)現(xiàn),可以加快讀寫速度。  

void SL811BufWrite(BYTE addr, BYTE *s, BYTE c)  

{SL811H_ADDR = addr;  

while (c--)  

SL811H_DATA = *s ;}  

4 結(jié) 論  

在基于實(shí)時(shí)內(nèi)核µC/OS-II和32位RISC架構(gòu)ARM7 Core的系統(tǒng)板上,我們實(shí)現(xiàn)了嵌入式USB主機(jī)設(shè)計(jì)和開發(fā),為酶標(biāo)儀這一特定醫(yī)療設(shè)備提供了讀寫海量存儲(chǔ)設(shè)備和打印的功能。經(jīng)測(cè)試,本系統(tǒng)讀海量存儲(chǔ)設(shè)備數(shù)據(jù)的速度可達(dá)750kB/s,寫數(shù)據(jù)的速度最高可達(dá)450kB/s;打印功能也完全滿足系統(tǒng)要求,性能穩(wěn)定可靠,使用方便,是一種可行、實(shí)用的方案。
本文地址:http://www.qingdxww.cn/thread-22325-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 我們是Microchip
  • 你仿真過(guò)嗎?使用免費(fèi)的MPLAB Mindi模擬仿真器降低設(shè)計(jì)風(fēng)險(xiǎn)
  • 更佳設(shè)計(jì)的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产只有精品66 | 日本中文在线 | 国产小视频在线免费观看 | 亚洲一区浅井舞香在线播放 | 欧美精品v日韩精品v国产精品 | 国产青青草视频 | 日韩免费大片 | 国产麻豆91在线 | 国产91极品福利手机观看 | 一日本道加勒比高清一二三 | 一个人www免费观看视频 | 在线a久青草视频在线观看g | 国内第一永久免费福利视频 | poopoo的视频丨vk | 91精选视频 | 9l国产精品久久久久麻豆 | 高清国产在线播放成人 | 麻豆91国语视频 | 欧美亚洲三级 | 国产成人亚洲综合在线 | 国产在线视频专区 | 亚洲经典一区二区三区 | 日本高清中文字幕 | 国产 欧美 日韩在线 | 一级毛片在线免费看 | 老外毛片 | 国产精品视频免费看 | 99精品视频在线这里只有 | 成人国产精品一区二区网站 | 欧美在线视频二区 | 亚洲欧美精品久久 | 国产免费观看网站黄页 | 永久国产 | 日本欧美另类 | 四虎国产永久免费久久 | 国内精品久久久久久久久蜜桃 | 久久sese| 传媒天美果冻aaaaa | 向日葵视频免费下载 | 射综合网| 免费看隐私男生网站 |