嵌入式操作系統中USB雙向通信的實(shí)現
1 嵌入式操作系統中USB雙向通信系統整體層次結構
嵌入式操作系統中USB雙向通信系統整體層次結構如圖1所示。
2.1 S1C33L11及其USB BLOCK簡(jiǎn)介
S1C33L11是EPSON公司的32位高速,低功耗,低電壓MCU。他是以C33 STD 32位RISC CPU為核心,功能強大,除一般外圍設備外有LCD控制器,Camera接口,JPEG編碼,USB1.1功能控制器,MAC(SPI模式)接口,SmartMedia接口,還包括3個(gè)振蕩電路和2個(gè)鎖相環(huán)(PLL),內置16kB RAM ,無(wú)ROM。
S1C33L11內建支持USB1.1協(xié)議的全速模式。支持控制、塊、同步和中斷4種傳輸方式,支持4個(gè)通用通道(Epr(r=a,b,c,d))和一個(gè)控制通道(endpoint0),并為每個(gè)通道(endpoint)提供1 kB的FIFO。
2.2 S1C33L11DMT01開(kāi)發(fā)板簡(jiǎn)介
S1C33L11DMT01開(kāi)發(fā)板采用S1C33L11F00A1芯片為核心,外接2 MB RAM,32 MB FLASH,還帶有STN TFT 雙屏彩色LCD等,此硬件環(huán)境適用于各種嵌入式操作系統的運行及多媒體手機、PDA等產(chǎn)品的開(kāi)發(fā)。
3 USB雙向通信的設計與實(shí)現
本文USB雙向通信在基本傳輸方式上采用USB塊傳輸[1]。他由USB初始化、USB中斷處理、控制傳輸和塊傳輸幾部分組成[2]。在實(shí)現雙向通信上,具體通信機制是:嵌入式應用程序通過(guò)讀寫(xiě)循環(huán)隊列和信號量狀態(tài)與USB 硬件模塊中的OUT 和IN FIFO相互通信,而USB下位機與上位機(PC)的讀寫(xiě)通信則通過(guò)上位機對控制包的讀寫(xiě)來(lái)實(shí)現,最后通過(guò)循環(huán)隊列、信號量、控制包3者結合達到USB雙向通信的目的。
3.1 USB雙向通信固件程序的設計與實(shí)現
(1)循環(huán)隊列
采用IN傳輸一個(gè)循環(huán)隊列,OUT傳輸一個(gè)循環(huán)隊列(以下簡(jiǎn)稱(chēng)隊列),每隊列動(dòng)態(tài)分配32 kB。OUT隊列做為OUT傳輸時(shí)的二級緩沖,即OUT傳輸時(shí)的FIFO的數據必須先放入OUT隊列才能由嵌入式操作系統讀寫(xiě);IN隊列做為IN傳輸時(shí)的二級緩沖,即IN傳輸時(shí)的FIFO數據必須來(lái)自IN隊列;嵌入式操作系統只對二級緩沖進(jìn)行讀寫(xiě),操作系統對隊列的管理是采用信號量通知機制來(lái)實(shí)現。
(2)控制包
為實(shí)現雙向通信,規定一種控制包格式,讀控制包是在USB協(xié)議之外自定義的。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論