關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于s3c44b0和COS-II的嵌入式USB主機(SL811)設計與

        基于s3c44b0和COS-II的嵌入式USB主機(SL811)設計與

        作者: 時間:2009-09-15 來源:網絡 收藏

        EPSON打印機提供兩種打印方式,一種是用來打印文本文件,用該方式打印英文字母、阿拉伯數字、符合的時候向打印機發對應的控制命令后,只要直接發打印內容的ASCII碼即可。另一種方式是用來打印光柵圖形,當需要打印表格、圖片和漢字的時候時往往會用到這種方式。在此,列出幾個關鍵API函數并予已說明:

        print_image_init ( void ):因為打印機初始化后默認為打印文本模式,所以要打印光柵圖形必須進行相關的初始化。

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

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

        3.4 協議的實現

        這是整個 體系軟件的根基, 它負責主機和設備之間數據傳輸。其代碼都包含在文件slhost.c中,可供上層驅動調用的API函數主要有:

        EnumUsbDev ():該函數主要實現枚舉設備的功能。當有設備插上時,系統通過調用到該函數得到設備的標準描述符(接口、配置、端點)并識別是海量存儲設備還是打印機。設置地址(SetAdress),設置配置描述符(SetDecriptor),設置配置值(SetConfiguration),設置接口(SetInterface)也在該函數里實現。

        BuckSend():該函數主要實現主機上的數據通過塊傳輸方式發送到設備上;

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

        BuckSend()和BuckReceive()兩個函數是最調度最平凡的兩個函數,因為對海量存儲設備的讀寫,對打印機發送控制命令、打印數據都是通過塊傳輸通訊的,也就是通過調用這兩個函數來實現的。

        處理器讀寫SLHS單個寄存器或數據存儲器的函數如下:

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

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

        這兩個函數是ARM處理器和SL811芯片進行數據交互的基石,所有控制寄存器和數據存儲器的讀寫都可以通過以上兩個函數來實現。當需要連續讀寫SL811中的儲存器時可以采用以下方式來實現,可以加快讀寫速度。

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

        {SL811H_ADDR = addr;   

           while (c--)

               SL811H_DATA = *s ;}

        4 結 論

        在基于實時內核micro;C/OS-II和32位RISC架構ARM7 Core的系統板上,我們實現了嵌入式USB主機設計和開發,為酶標儀這一特定醫療設備提供了讀寫海量存儲設備和打印的功能。經測試,本系統讀海量存儲設備數據的速度可達750kB/s,寫數據的速度最高可達450kB/s;打印功能也完全滿足系統要求,性能穩定可靠,使用方便,是一種可行、實用的方案。


        上一頁 1 2 3 下一頁

        關鍵詞: s3c44b0 COS-II 811 USB

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 赫章县| 象山县| 赤城县| 安福县| 西盟| 拉萨市| 峨山| 商都县| 金门县| 鄢陵县| 射洪县| 潞西市| 涟水县| 邳州市| 乳山市| 邹城市| 蒙山县| 阳谷县| 依安县| 牡丹江市| 翼城县| 丰镇市| 盐边县| 定陶县| 多伦县| 佛冈县| 徐州市| 隆安县| 大同县| 济宁市| 玛沁县| 原平市| 重庆市| 灵丘县| 林甸县| 闽侯县| 富顺县| 大方县| 晴隆县| 邵阳县| 营山县|