嵌人式操作系統(tǒng)中USB雙向通信的設(shè)計(jì)與實(shí)現(xiàn)
返回值:
0x10:USB驅(qū)動(dòng)出錯(cuò)(Windows USB 驅(qū)動(dòng)程序出錯(cuò))
0x20:內(nèi)存空間不足
0x30:請求的數(shù)據(jù)大小為0 B
0x01:下位機(jī)讀取數(shù)據(jù)軟超時(shí)
0x04:發(fā)送成功
void RequestUSB(void *pRequestBuffer,DWORD Size=5):讀取下位機(jī)返回的操作狀態(tài)。
參數(shù)說明:void *pRequestBuffer:5 B控制包緩沖
其中每次Read或Write函數(shù)的調(diào)用被分為若干次讀/寫發(fā)送。具體處理是: 設(shè)待讀寫的數(shù)據(jù)字節(jié)數(shù)為X B,當(dāng)X=5B時(shí),分割為X1=4 B和X2=1 B兩次發(fā)送(由于自定義包是5 B,為了與自定義控制包區(qū)分開);當(dāng)5 B16 kB時(shí)則分割以16kB為單位的數(shù)據(jù)進(jìn)行發(fā)送,不足16 kB的部分再發(fā)送一次。每次讀/寫發(fā)送分3個(gè)階段:發(fā)控制包,讀/寫數(shù)據(jù),讀控制包狀態(tài)。
4結(jié)語
基于S1C33L11芯片在嵌入式操作系統(tǒng)基礎(chǔ)上實(shí)現(xiàn)的USB雙向通信嚴(yán)格遵循USB1.1協(xié)議,充分利用了S1C33L11芯片的內(nèi)置功能和嵌入式操作系統(tǒng)的作用,具有交互作用強(qiáng)、嵌入式操作系統(tǒng)中設(shè)備無關(guān)性好的特點(diǎn)。
評論