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