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