基于Blackfin 533 SPORTs口的USB主從接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 采用SPI接口協(xié)議實(shí)現(xiàn)了SPORTs口與CH376的通信。描述了一種基于USB主從接口芯片CH376與Blackfin533的通信設(shè)計(jì)方案,包括SPORTs口的接口配置、USB模塊的硬件設(shè)計(jì)、驅(qū)動(dòng)程序、CH376芯片的驅(qū)動(dòng)程序等。實(shí)現(xiàn)了DSP對(duì)USB存儲(chǔ)設(shè)備的讀寫(xiě)訪(fǎng)問(wèn),以及計(jì)算機(jī)與DSP的通信,實(shí)驗(yàn)表明,整個(gè)設(shè)計(jì)可實(shí)現(xiàn)對(duì)U盤(pán)的快速讀寫(xiě),并方便與PC機(jī)進(jìn)行通信。
關(guān)鍵詞 SPORTs;SPI;CH376;USB
1 設(shè)計(jì)原理
模塊主要實(shí)現(xiàn)DSP與計(jì)算機(jī)的通信及數(shù)據(jù)的存儲(chǔ)?;贒SP的USB主從雙向通信設(shè)計(jì)方案,通過(guò)ADSP BF533 SPORTs模擬SPI口,完成ADSP與CH376的通信,實(shí)現(xiàn)DSP與PC機(jī)、DSP與U盤(pán)的雙向通信以及兩種方式的自由切換,圖1為系統(tǒng)總體框圖。
2 芯片介紹
2.1 CH376芯片
CH376是南京沁恒公司生產(chǎn)的一種文件管理控制芯片。CH376支持USB設(shè)備方式和USB主機(jī)方式,且內(nèi)置了USB通訊協(xié)議的基本固件、處理Mass—Storage海量存儲(chǔ)設(shè)備的專(zhuān)用通訊協(xié)議固件、SD卡的通訊接口固件、FAT16和FAT32以及FAT12文件系統(tǒng)的管理固件,支持常用的USB存儲(chǔ)設(shè)備和SD卡。
CH376支持3種通訊接口:8位并口、SPI接口或異步串口。單片機(jī)/DSP/MCU/MPU等控制器可通過(guò)上述通訊接口控制CH376芯片,存取U盤(pán)和SD卡中的文件或與計(jì)算機(jī)通訊。
2.2 ADSP—BF533芯片
ADSP—BF533處理器是Blackfin系列產(chǎn)品之一,是為滿(mǎn)足嵌入式音頻、視頻和通信應(yīng)用的計(jì)算要求和低功耗條件而設(shè)計(jì)的新型16位嵌入式處理器。其基于由ADI和Intel公司聯(lián)合開(kāi)發(fā)的微信號(hào)架構(gòu)(MicroSignalArchitecture,MSA),將一個(gè)32位RISC型指令集和雙16位乘法累加(MAC)信號(hào)處理功能與通用型微控制器所具有的易用性相組合。ADSP—BF533處理器具有豐富的外設(shè)資源,包括一個(gè)UART口、一個(gè)SPI口、兩個(gè)串行口(SPORTs)和PF口等。
Blackfin533有兩個(gè)相同的同步串口SPORT0和SPORT1。這兩個(gè)串口支持各種串行數(shù)據(jù)通信協(xié)議。圖2是SPORT的簡(jiǎn)化框圖。將要發(fā)送的數(shù)據(jù),從內(nèi)部寄存器寫(xiě)入SPORT、的存儲(chǔ)器映射寄存器SPORTx_TX中。根據(jù)選擇,此數(shù)據(jù)可由硬件進(jìn)行壓擴(kuò)后自動(dòng)傳送至移位寄存器,也可不執(zhí)行硬件壓擴(kuò)。移位寄存器的位從SPORT的DT引腳移出,最高位或最低位在前均可,并與TCLK引腳的時(shí)鐘同步。SPORT的接收部分從DR接收數(shù)據(jù),并與串行時(shí)鐘同步。接收一個(gè)完整字后,數(shù)據(jù)展開(kāi)的同時(shí)自動(dòng)傳送到SPORT的存儲(chǔ)器映射寄存器SPORTx_TX中,該寄存器可被處理器訪(fǎng)問(wèn)。
3 硬件設(shè)計(jì)
CH376總是從SPI時(shí)鐘SCK的上升沿輸入數(shù)據(jù),而允許輸出是從SCK的下降沿輸出數(shù)據(jù),數(shù)據(jù)位順序是高位在前,記滿(mǎn)8位1Byte。DSP按SPI輸出方式發(fā)出1 Byte數(shù)據(jù),CH376將SPI片選SCS有效后收到的首個(gè)字節(jié)當(dāng)作命令碼,后續(xù)字節(jié)當(dāng)做數(shù)據(jù)。寫(xiě)操作時(shí),DSP向CH376發(fā)出1 Byte的待寫(xiě)數(shù)據(jù),等待SPI接口空閑后,DSP繼續(xù)發(fā)出若干個(gè)字節(jié)的待寫(xiě)數(shù)據(jù),CH376依次接受,直到DSP禁止SPI片選;讀操作時(shí),DSP從CH376接收1 Byte數(shù)據(jù),等待SPI接口空閑后,DSP繼續(xù)從CH376接收若干個(gè)字節(jié)的數(shù)據(jù),直到DSP禁止SPI片選。圖3是SPI接口的邏輯時(shí)序圖,前一個(gè)發(fā)出命令12H并寫(xiě)入數(shù)據(jù)34H,后一個(gè)是發(fā)出命令28H并讀出數(shù)據(jù)78H。
為實(shí)現(xiàn)DSP的USB主從雙向通信設(shè)計(jì)方案,現(xiàn)將DSP的SPORTs接口模擬SPI接口并與支持SPI接口通信模式的設(shè)備進(jìn)行通信。主模式下SPI接口需要4個(gè)信號(hào):數(shù)據(jù)輸入(MISO),數(shù)據(jù)輸出(MOSI),時(shí)鐘(SCK)和片選(/SPISS)。這4個(gè)信號(hào)其中有3個(gè)和SPORTs接口相對(duì)應(yīng):(1)MOSI對(duì)應(yīng)SPORTs口的傳輸引腳(DTxPRI)。(2)MISO對(duì)應(yīng)SPORTs口的接受引腳(DRxPRI)。(3)SCK對(duì)應(yīng)SPORTs口的時(shí)鐘引腳(TSCLKx/RSCLKx)。
SPI接口中未與SPORTs接口對(duì)應(yīng)的引腳信號(hào)就是片選信號(hào)。片選信號(hào)(/SPISS)在SPI接口中用作時(shí)鐘SCK的選通。作為一個(gè)SPI從設(shè)備,只有片選/SPISS被拉低,響應(yīng)才在時(shí)鐘信號(hào)SCK的邊沿發(fā)生,一旦設(shè)備被使能通信開(kāi)始,SPORTs主接口就會(huì)產(chǎn)生一個(gè)持續(xù)的時(shí)鐘。要將SPORTs口模擬SPI口,正確的時(shí)序和片選/SPISS信號(hào)是重點(diǎn)。TFS被配置成低時(shí),同一周期內(nèi)數(shù)據(jù)被放置在SPORTs的發(fā)送引腳DTxPRI上,且在數(shù)據(jù)的傳輸過(guò)程中TFS信號(hào)始終被拉低,直到新的數(shù)據(jù)開(kāi)始傳輸,這恰好與SPI接口的/SPISS信號(hào)一致。反之作為從模式下,也一樣。因此用SPORTs接口的同步時(shí)序信號(hào)模擬/SPISS片選信號(hào)即可滿(mǎn)足要求。硬件連接如圖4所示。
系統(tǒng)硬件電路如圖5所示,系統(tǒng)將CH376配置為串行通信方式,使用SPORT1口,DSP主模式時(shí),數(shù)據(jù)流通過(guò)Blackfin533的SPORT1口,經(jīng)上述配置方式模擬SPI通信方式與CH376模塊SPI口進(jìn)行通信,在經(jīng)過(guò)外部USB端口時(shí)CH376以USB—HOST的方式來(lái)訪(fǎng)問(wèn)U盤(pán),反之,DSP從模式時(shí),PC機(jī)通過(guò)USB端口,CH376以USB—SLAVE的方式與Blackfin533進(jìn)行通信。
CH376芯片的SCS引腳由DSP的SPORT口幀同步引腳TFS和RFS驅(qū)動(dòng),SCK由DSP得SPORT發(fā)送和接受時(shí)鐘輸出引腳TSCLK和RSCLK驅(qū)動(dòng),SDI引腳由DSP得SPORT數(shù)據(jù)輸出引腳DTxPRI驅(qū)動(dòng),SDO引腳則連接到DSP的SPORT數(shù)據(jù)輸入引腳DRxPRI。
CH376芯片的配置,電容C2用于內(nèi)部電源節(jié)點(diǎn)退耦從而降低USB傳輸過(guò)程中的EMI,晶體X1是振蕩電路,用于向CH376提供系統(tǒng)時(shí)鐘信號(hào),P1是USB端口,電阻R1用于限制輸出給外部USB設(shè)備的電流,C1主要用于減少在USB設(shè)備剛插入時(shí)的電源電壓紋波。關(guān)于Blackfin533的外圍電路配置可參考ADI官方設(shè)計(jì)手冊(cè)。
4 軟件設(shè)計(jì)
CH376S對(duì)U盤(pán)的讀寫(xiě)分為扇區(qū)模式和字節(jié)模式兩種。扇區(qū)模式以扇區(qū)為單位,對(duì)U盤(pán)文件進(jìn)行讀寫(xiě),其讀寫(xiě)速度快,但通常需要額外的緩沖區(qū)。字節(jié)模式以字節(jié)為單位對(duì)U盤(pán)文件進(jìn)行讀寫(xiě),讀寫(xiě)速度慢,通常用作小數(shù)據(jù)量的讀寫(xiě),但使用較為方便。
系統(tǒng)軟件流程如圖6所示,DSP判斷用戶(hù)選擇寫(xiě)U盤(pán)操作或上位機(jī)操作。當(dāng)選擇讀取U盤(pán)操作時(shí),首先初始化CH376芯片,通過(guò)循環(huán)不斷檢測(cè)U盤(pán)是否連接就緒,U盤(pán)就緒后,創(chuàng)建文件名,并將數(shù)據(jù)寫(xiě)入文件,同時(shí)關(guān)閉文件,進(jìn)入到開(kāi)始。當(dāng)選擇上位機(jī)操作,通過(guò)USB數(shù)據(jù)線(xiàn),將系統(tǒng)連入PC機(jī),首先初始化CH376芯片,DSP判斷上位機(jī)軟件是否發(fā)出操作命令,若發(fā)出的是命令控制字,則執(zhí)行相應(yīng)的操作,并繼續(xù)判斷上位機(jī)是否發(fā)出命令字;若發(fā)出的命令是交出控制權(quán),則系統(tǒng)恢復(fù)本地控制,并進(jìn)入到開(kāi)始。
5 實(shí)驗(yàn)測(cè)試
整個(gè)系統(tǒng)設(shè)計(jì)的測(cè)試主要分為U盤(pán)測(cè)試和上位機(jī)測(cè)試。
選擇USB從接口模式,測(cè)試工具為USB設(shè)備CH372或CH375調(diào)試工具,由于在上位機(jī)程序中定義#define uREAD_DATA 0x80,所以在調(diào)試工具中,設(shè)置端口下傳數(shù)據(jù)為接收數(shù)據(jù)命令即80。實(shí)驗(yàn)結(jié)果表明,在端點(diǎn)上傳中成功接收0~3F,共64個(gè)數(shù)據(jù)。實(shí)驗(yàn)結(jié)果如圖7所示。
6 結(jié)束語(yǔ)
設(shè)計(jì)從硬件和軟件兩方面對(duì)基于ADSP-Blackfin533 SPORTs口的USB主從接口設(shè)計(jì)進(jìn)行了詳細(xì)論述,其具有傳輸速度快、結(jié)構(gòu)簡(jiǎn)單、操作方便及傳輸數(shù)據(jù)量大等優(yōu)點(diǎn)。經(jīng)測(cè)試,性能穩(wěn)定可靠,可廣泛應(yīng)用于各種實(shí)際場(chǎng)合。