基于μCLinux的USB驅(qū)動(dòng)程序?qū)崿F(xiàn)
摘 要:μClinux是一種面向嵌入式微處理器的微型操作系統(tǒng),已經(jīng)在嵌入式操作系統(tǒng)中占有重要地位。在此介紹FTDI公司的USB芯片F(xiàn)T245BL的主要性能、工作原理,并將其應(yīng)用在Blackfin ADSP-BF533微處理器的嵌入式開發(fā)平臺上,說明在μClinux下編寫與加載USB接口芯片F(xiàn)T245BL的驅(qū)動(dòng)程序方法,實(shí)現(xiàn)了DSP主板的 USB端口通信。
關(guān)鍵詞:μClinux;嵌入式系統(tǒng);FT245BL;設(shè)備驅(qū)動(dòng)程序
0 引 言
μClinux是針對嵌入式控制領(lǐng)域的操作系統(tǒng),它繼承了Linux內(nèi)核的絕大部分特性,專為沒有內(nèi)存管理單元MMU的嵌入式微處理器而設(shè)計(jì)。它內(nèi)核小,效率高,源代碼開放,包含了完整的TCP/IP網(wǎng)絡(luò)協(xié)議。ADSP-BF533是ADI公司Blackfin系列的高速數(shù)字信號處理器芯片。 Blackfin系列是ADI與Intel聯(lián)合開發(fā)的體現(xiàn)高性能體系結(jié)構(gòu)的首款第四代DSP產(chǎn)品,16位定點(diǎn)DSP內(nèi)核,新型指令結(jié)構(gòu),支持C/C++編程,主頻達(dá)600 MHz,內(nèi)核電壓1.2 V,具有動(dòng)態(tài)電源管理能力,功耗低,擴(kuò)展能力強(qiáng),被廣泛應(yīng)用于各種信號處理。
這里使用基于Blackfin ADSP-BF533微處理器的μClinux開發(fā)板,在對外通信時(shí)需用到USB接口。結(jié)合實(shí)際情況,選擇FTDI公司推出的USB芯片F(xiàn)T245BL。主要介紹USB芯片F(xiàn)T245BL的工作原理和電路設(shè)計(jì),以及如何在μClinux操作系統(tǒng)下編寫和添加其驅(qū)動(dòng)程序的方法。
1 FT245BL工作原理與電路設(shè)計(jì)
傳統(tǒng)USB芯片要求設(shè)計(jì)人員對USB的標(biāo)準(zhǔn)、Firmware編程及驅(qū)動(dòng)程序的開發(fā)等有較深入的理解,工作量大,開發(fā)周期長,需要經(jīng)驗(yàn)豐富的設(shè)計(jì)者才能完成;而FTDI(Future Technology Devices Intl.Ltd.)公司推出的USB芯片F(xiàn)T245BL集成了微控制器,并且把實(shí)現(xiàn)USB通信協(xié)議的固件程序直接固化在芯片中,同時(shí)提供了PC端的沒備驅(qū)動(dòng)程序,用戶只需進(jìn)行必要的硬件設(shè)計(jì)和簡單的軟件編程,所以大大降低了開發(fā)難度。
1.1 功能結(jié)構(gòu)
FT245BL是FTDI公司的一款并行FIFO雙向數(shù)據(jù)傳輸?shù)腢SB芯片,對于微處理器它提供8位并行數(shù)據(jù)總線D0~D7,對于外部主機(jī)是標(biāo)準(zhǔn)串行總線或虛擬接口,其數(shù)據(jù)傳輸速率最高可達(dá)1 MB/s,提供USBl.1/2.O規(guī)范的全速物理接口,支持UHCI/OHCI/EHCI主控制器。
FT245BL芯片的內(nèi)部系統(tǒng)結(jié)構(gòu)框架圖如圖1所示,芯片主要由3.3 V穩(wěn)壓器、USB收發(fā)器、串行接口引擎(SIE)、USB協(xié)議引擎和先進(jìn)先出(FIFO)控制器、6 MHz振蕩器、8×倍頻器、USB鎖相環(huán)、復(fù)位器、E。PROM接口等構(gòu)成。其內(nèi)部設(shè)置了2個(gè)FIFO數(shù)據(jù)緩沖區(qū),一個(gè)是128 B的接收緩沖區(qū);一個(gè)是384 B的發(fā)送緩沖區(qū)。串行接口引擎用來完成USB數(shù)據(jù)的串/并雙向轉(zhuǎn)換;USB協(xié)議引擎用于管理來自USB設(shè)備控制端口的數(shù)據(jù)流,實(shí)現(xiàn)USB主機(jī)控制器需要的 USB底層協(xié)議。
1.2 工作原理
DSP與FT245BL接口框圖如圖2所示。主板CPLD用AMS[0:3]和高5位地址線(A19~A15)進(jìn)行譯碼;FT245BL的TXE和RXF 信號在查詢地址有效時(shí),通過DSP讀取其狀態(tài),判斷是否發(fā)送數(shù)據(jù)或接收數(shù)據(jù);TXE用于判斷發(fā)送FIFO是否滿,0為不滿,1為滿,當(dāng)TXE為0時(shí),外部 DSP向發(fā)送FIFO緩沖區(qū)寫數(shù)據(jù),直到發(fā)送數(shù)據(jù)全部寫入;RXF用于判斷接收FIFO是否有數(shù)據(jù),只要數(shù)據(jù)個(gè)數(shù)≥1,RXF就為低,通知DSP可以讀取數(shù)據(jù)。FT245BL的RD和WR信號在讀寫地址有效時(shí),分別與DSP的ARE和AWE相連,DSP可以讀取接收數(shù)據(jù)和寫入發(fā)送數(shù)據(jù)。
評論