基于μCLinux的USB驅(qū)動程序?qū)崿F(xiàn)
1.3 電路設計
FT245BL芯片使用主板上的3.3 V和5 V電源供電,主板對外作為一個USB設備。USB總線的電源線連接在芯片的復位引腳RESET上,這樣保證了USB芯片平時處于復位狀態(tài)。本文引用地址:http://www.ex-cimer.com/article/202492.htm
當USB總線連接到主機時,電源線變高,RESET變高,最終導致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芯片的結構和接口設計,決定將其作為字符設備來開發(fā)它的驅(qū)動程序。所用開發(fā)平臺的硬件結構如下:
2.1 確定設備的設備名稱和主設備號
主設備號是內(nèi)核識別不同類型設備的惟一標識,內(nèi)核利用主設備號將設備與相應的驅(qū)動程序?qū)饋?。開發(fā)新的驅(qū)動程序,必須找到一個還未被使用的主設備號,分配給自己的字符設備。主設備號的確定可以通過兩種方法:一是靜態(tài)定義;二是動態(tài)分配。該驅(qū)動采用的是靜態(tài)主設備號,在ft245b1.C文件中直接定義設置為254,#define ft245bl_major 254。
2.2 確定編寫需要的file-operations數(shù)據(jù)結構中的功能函數(shù)
該驅(qū)動文件ft245b1.C中定義的file_operations數(shù)據(jù)結構:
評論