基于s3c44b0和COS-II的嵌入式USB主機(SL811)設(shè)計與
EPSON打印機提供兩種打印方式,一種是用來打印文本文件,用該方式打印英文字母、阿拉伯數(shù)字、符合的時候向打印機發(fā)對應(yīng)的控制命令后,只要直接發(fā)打印內(nèi)容的ASCII碼即可。另一種方式是用來打印光柵圖形,當需要打印表格、圖片和漢字的時候時往往會用到這種方式。在此,列出幾個關(guān)鍵API函數(shù)并予已說明:
print_image_init ( void ):因為打印機初始化后默認為打印文本模式,所以要打印光柵圖形必須進行相關(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)用過一次print_image_init(),它的功能是向打印機發(fā)打印圖片命令。其中,第一和第二個輸入?yún)?shù)是打印圖形的橫縱坐標,第三和第四個輸入?yún)?shù)分別是打印圖形的行數(shù)和列數(shù)(特別值得注意的是,C63系列和C65系列打印機一次最多可打16行,而 EPSON M1一次只能打15行),第五個輸入?yún)?shù)color是選擇打印顏色。在調(diào)用該函數(shù)后,直接向打印機發(fā)打印的數(shù)據(jù)就可以實現(xiàn)打印圖片功能了。迎訪問無由電子開發(fā)網(wǎng)(技術(shù)文章 在線閱讀 在線商城
由于打印文本模式和打印圖形的操作基本相同,而且更簡單,在此就不作說明。
3.4 USB協(xié)議的實現(xiàn)
這是整個USB 體系軟件的根基, 它負責(zé)主機和設(shè)備之間數(shù)據(jù)傳輸。其代碼都包含在文件sl811host.c中,可供上層驅(qū)動調(diào)用的API函數(shù)主要有:
EnumUsbDev ():該函數(shù)主要實現(xiàn)枚舉設(shè)備的功能。當有USB設(shè)備插上時,系統(tǒng)通過調(diào)用到該函數(shù)得到設(shè)備的標準描述符(接口、配置、端點)并識別是海量存儲設(shè)備還是打印機。設(shè)置地址(SetAdress),設(shè)置配置描述符(SetDecriptor),設(shè)置配置值(SetConfiguration),設(shè)置接口(SetInterface)也在該函數(shù)里實現(xiàn)。
BuckSend():該函數(shù)主要實現(xiàn)主機上的數(shù)據(jù)通過塊傳輸方式發(fā)送到設(shè)備上;
BuckReceive():塊傳輸接受函數(shù);
BuckSend()和BuckReceive()兩個函數(shù)是最調(diào)度最平凡的兩個函數(shù),因為對海量存儲設(shè)備的讀寫,對打印機發(fā)送控制命令、打印數(shù)據(jù)都是通過塊傳輸通訊的,也就是通過調(diào)用這兩個函數(shù)來實現(xiàn)的。
處理器讀寫SL811HS單個寄存器或數(shù)據(jù)存儲器的函數(shù)如下:
void SL811Write(char a, char d){ SL811_ADDR = a; SL811_DATA = d;}
char SL811Read(char a) { SL811_ADDR = a; return (SL811_DATA); }
這兩個函數(shù)是ARM處理器和SL811芯片進行數(shù)據(jù)交互的基石,所有控制寄存器和數(shù)據(jù)存儲器的讀寫都可以通過以上兩個函數(shù)來實現(xiàn)。當需要連續(xù)讀寫SL811中的儲存器時可以采用以下方式來實現(xiàn),可以加快讀寫速度。
void SL811BufWrite(BYTE addr, BYTE *s, BYTE c)
{SL811H_ADDR = addr;
while (c--)
SL811H_DATA = *s ;}
4 結(jié) 論
在基于實時內(nèi)核micro;C/OS-II和32位RISC架構(gòu)ARM7 Core的系統(tǒng)板上,我們實現(xiàn)了嵌入式USB主機設(shè)計和開發(fā),為酶標儀這一特定醫(yī)療設(shè)備提供了讀寫海量存儲設(shè)備和打印的功能。經(jīng)測試,本系統(tǒng)讀海量存儲設(shè)備數(shù)據(jù)的速度可達750kB/s,寫數(shù)據(jù)的速度最高可達450kB/s;打印功能也完全滿足系統(tǒng)要求,性能穩(wěn)定可靠,使用方便,是一種可行、實用的方案。
評論