基于μCLinux的USB驅(qū)動程序?qū)崿F(xiàn)
1.3 電路設(shè)計
FT245BL芯片使用主板上的3.3 V和5 V電源供電,主板對外作為一個USB設(shè)備。USB總線的電源線連接在芯片的復(fù)位引腳RESET上,這樣保證了USB芯片平時處于復(fù)位狀態(tài)。本文引用地址:http://m.butianyuan.cn/article/202492.htm
當(dāng)USB總線連接到主機時,電源線變高,RESET變高,最終導(dǎo)致RSTOUT變高,由于USBDP引腳配置了一個1.5 kΩ的上拉電阻連到RSTOUT引腳,使得芯片以全速狀態(tài)連接到主機。FIFO控制器接口包括8位數(shù)據(jù)線D7~D0、讀RD、寫WR、發(fā)送使能TXE、接收完畢RXF的5個信號。由于FT245BL芯片沒有片選線,所以信號都是經(jīng)過主板CPLD內(nèi)部的譯碼電路處理后才連接的。DSP采用中斷機制讀取 FIFO的數(shù)據(jù),所以將RXF連接DSP的可編程端口(PF3),用以產(chǎn)生中斷。
2 FT245BL驅(qū)動程序的編寫
這里以ADI公司的ADSP-BF533為例,介紹USB接口芯片F(xiàn)T245BL在μClinux下驅(qū)動程序的編寫。依據(jù)FT245BL芯片的結(jié)構(gòu)和接口設(shè)計,決定將其作為字符設(shè)備來開發(fā)它的驅(qū)動程序。所用開發(fā)平臺的硬件結(jié)構(gòu)如下:
2.1 確定設(shè)備的設(shè)備名稱和主設(shè)備號
主設(shè)備號是內(nèi)核識別不同類型設(shè)備的惟一標(biāo)識,內(nèi)核利用主設(shè)備號將設(shè)備與相應(yīng)的驅(qū)動程序?qū)?yīng)起來。開發(fā)新的驅(qū)動程序,必須找到一個還未被使用的主設(shè)備號,分配給自己的字符設(shè)備。主設(shè)備號的確定可以通過兩種方法:一是靜態(tài)定義;二是動態(tài)分配。該驅(qū)動采用的是靜態(tài)主設(shè)備號,在ft245b1.C文件中直接定義設(shè)置為254,#define ft245bl_major 254。
2.2 確定編寫需要的file-operations數(shù)據(jù)結(jié)構(gòu)中的功能函數(shù)
該驅(qū)動文件ft245b1.C中定義的file_operations數(shù)據(jù)結(jié)構(gòu):
評論