基于CH375的USB移動存儲接口設(shè)計
摘要: 介紹基于CH1375國產(chǎn)芯片的USB移動存儲接口設(shè)計方法,通過詳細(xì)介紹CH375的功能、內(nèi)部結(jié)構(gòu)及特性,給出基于CH375控制芯片的USB移動存儲接口設(shè)計框圖,并重點(diǎn)介紹CH375與AVR單片機(jī)硬件接口電路和軟件流程工程設(shè)計方法。設(shè)計了具有USB數(shù)據(jù)存儲功能的實(shí)際智能蓄電池活化設(shè)備,驗(yàn)證了使用該芯片作為USB移動存儲設(shè)備接口芯片在電路設(shè)計上具有良好的軟、硬件接口及通信協(xié)議,可大大減少外圍電路,降低成本,提高研發(fā)速度。
關(guān)鍵詞:CH375;USB;移動存儲;通信協(xié)議;工程設(shè)計方法
O 引 言
隨著USB技術(shù)的快速發(fā)展,USB移動存儲設(shè)備的使用越來越廣泛,目前在一些具有數(shù)據(jù)采集分析功能的儀器設(shè)備上都提供了USB接口。在眾多USB移動存儲設(shè)備接口芯片中,CH375是一種具有極高性價比的國產(chǎn)芯片。這里介紹在蓄電池活化檢測設(shè)備中應(yīng)用該芯片的一些實(shí)踐經(jīng)驗(yàn),供讀者參考。
1 CH375功能及特點(diǎn)
1.1 芯片概述
CH375是一個USB總線通用接口電路,支持HOST主機(jī)方式和SLAVE設(shè)備方式。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線及中斷輸出,可以方便地掛接到單片機(jī)/DSP/MCU/MPU等控制器的系統(tǒng)總線上。在USB主機(jī)方式下,提供了串行通信方式,通過串行輸入、串行輸出和中斷輸出與單片機(jī)/DSP/MCU/MPU等相連。外部單片機(jī)/DSP/MCU/MPU可以通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信,使設(shè)計人員設(shè)計開發(fā)USB工作簡單化。應(yīng)用框圖見圖1。
1.2 內(nèi)部結(jié)構(gòu)
CH375內(nèi)部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動并行接口、異步串型接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等。
CH375芯片內(nèi)部具有7個物理端點(diǎn)。端點(diǎn)O是默認(rèn)端點(diǎn),支持上傳和下傳,上傳和下傳緩沖區(qū)各是8 B;端點(diǎn)1包括上傳端點(diǎn)和下傳端點(diǎn),上傳和下傳緩沖區(qū)各是8 B,上傳端點(diǎn)的端點(diǎn)號是81H,下傳端點(diǎn)的端點(diǎn)號是01H;端點(diǎn)2包括上傳端點(diǎn)和下傳端點(diǎn),上傳和下傳緩沖區(qū)各是64 B,上傳端點(diǎn)的端點(diǎn)號是82H,下傳端點(diǎn)的端點(diǎn)號是02H。主機(jī)端點(diǎn)包括輸出端點(diǎn)和輸入端點(diǎn),輸出和輸入緩沖區(qū)各是64 B,主機(jī)端點(diǎn)與端點(diǎn)2合用同一組緩沖區(qū),主機(jī)端點(diǎn)的輸出緩沖區(qū)就是端點(diǎn)2的上傳緩沖區(qū),主機(jī)端點(diǎn)的輸入緩沖區(qū)就是端點(diǎn)2的下傳緩沖區(qū)。其中,CH375的端點(diǎn)0、端點(diǎn)1、端點(diǎn)2只用于USB設(shè)備方式,在USB主機(jī)方式下只需要用到主機(jī)端點(diǎn)。CH375A內(nèi)部中斷邏輯圖如圖2所示。
[!--empirenews.page--]
1.3 芯片特性
(1)低速和全速USB-HOST主機(jī)接口,支持LISB 2.0,外圍元器件只需要1個晶振和2個電容;(2)低速和全速USB設(shè)備接口,支持動態(tài)切換主機(jī)與設(shè)備方式;
(3)主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各有64 B,支持常用的12 Mb/s全速USB設(shè)備和1.5 Mb/s低速設(shè)備;
(4)支持USB設(shè)備的控制傳輸、批量傳輸、中斷傳輸;
(5)自動檢測USB設(shè)備的連接和斷開,提供設(shè)備連接和斷開的事件通知;
(6)內(nèi)置控制傳輸?shù)膮f(xié)議處理器,簡化常用的控制傳輸;
(7)內(nèi)置固件處理海量存儲設(shè)備的專用通信協(xié)議;
(8)并行接口包含8位數(shù)據(jù)總線,4線控制:讀選通、寫選通、片選輸入和中斷輸出;
(9)串行接口包括串行輸入、串行輸出和中斷輸出,支持通信波特率的動態(tài)調(diào)整;
(10)支持5 V電源電壓和3.3 V電源電壓,支持低功耗模式。
2 硬件電路設(shè)計
2.1 蓄電池活化設(shè)備框圖
蓄電池活化設(shè)備是一種集電池數(shù)據(jù)采集、分析及活化處理多項(xiàng)功能于一體的智能設(shè)備。在活化過程中,需要分別對每組24節(jié)電池的端電壓實(shí)時采樣并存儲以供上層分析軟件進(jìn)行分析處理。傳統(tǒng)設(shè)備與上層軟件一般通過RS 232串行通信口進(jìn)行數(shù)據(jù)傳輸,在實(shí)際應(yīng)用中必須攜帶計算機(jī)到現(xiàn)場,同時要求計算機(jī)必須配備串口硬件使用極不方便。
在此,提出一種基于CH375A USB接口芯片的智能蓄電池活化設(shè)備,使蓄電池活化設(shè)備具有通用USB接口,為智能設(shè)備和計算機(jī)提供了一種簡單方便的數(shù)據(jù)通信方法,具有操作簡單使用方便等優(yōu)點(diǎn)。蓄電池活化設(shè)備系統(tǒng)如圖3所示,其工作原理如下所述。
蓄電池活化設(shè)備系統(tǒng)采用ATMEGA64單片機(jī)+U盤主控芯片CH375A,實(shí)現(xiàn)對U盤的讀寫,并把蓄電池活化設(shè)備的每次工作狀態(tài)及參數(shù)值,按照固定格式以單獨(dú)文件進(jìn)行存儲,可以為上層分析軟件提供基站信息、電池組信息、電池組充放電狀態(tài)、電池充放電電流、設(shè)置的充放電時間、實(shí)際充放電時間、電池組開路電壓、電池組電壓、單節(jié)電池電壓、電池組電流、電池組溫度、
告警等必要信息。這里重點(diǎn)介紹CH375芯片的應(yīng)用,系統(tǒng)中其他部分功能電路不做介紹。
2.2 CH375與ATMEGA64單片機(jī)接口原理
圖4所示為ATMEGA64單片機(jī)通過CH375實(shí)現(xiàn)USB接口的硬件電路。
[!--empirenews.page--]
在該設(shè)計中CH375工作于USB-HOST主機(jī)并行接口方式,即直接把CH375芯片的TXD引腳接地,使CH375通過被動并行接口電路掛接到8位單片機(jī)的系統(tǒng)總線上。CH7375的8位雙向數(shù)據(jù)總線D0~D7直接與單片機(jī)的PA數(shù)據(jù)口相連,RD和WR分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳。片選信號CS連接到系統(tǒng)譯碼電路74HCl38的P14引腳,該引腳為低電平時選通CH375。INT連接到單片機(jī)的中斷輸入PE7引腳,中斷請求是低電平有效,單片機(jī)通過中斷方式獲取中斷請求。地址輸入線AO連接至單片機(jī)的PD4引腳,當(dāng)AO引腳為高電平時選擇命令端口,可以寫入命令;當(dāng)AO引腳為低電平時選擇數(shù)據(jù)斷口,可以讀寫數(shù)據(jù)。
3 軟件設(shè)計
CH375可以支持各種常用USB全速設(shè)備,對符合Mass-Storage海量存儲設(shè)備的通信協(xié)議的USB設(shè)備,使用內(nèi)置固件可以通過Mass-Storage海量存儲設(shè)備的通信協(xié)議直接通信。對不符合上述要求的USB設(shè)備需要外部單片機(jī)通過控制傳輸以及ISSUE_TOKEN命令或ISSUE_TKN_X命令自行處理相關(guān)通信協(xié)議。
3.1 本地端單片機(jī)軟件
單片機(jī)通過8位并口對CH375芯片進(jìn)行讀寫,所有操作都由1個命令碼、若干輸入數(shù)據(jù)和若干個輸出數(shù)據(jù)組成。部分命令不需要輸入數(shù)據(jù),部分命令沒有輸出數(shù)據(jù)。命令操作步驟如下:
(1)在A0=1時向命令端口寫入命令代碼;
(2)如果該命令具有輸入數(shù)據(jù),則在A0=O時依次寫入輸入數(shù)據(jù),每次1個字節(jié);
(3)如果該命令具有輸出數(shù)據(jù),則在A0=0時依次讀取輸出數(shù)據(jù),每次1個字節(jié);
(4)命令完成,可以暫?;蜣D(zhuǎn)入(1)繼續(xù)執(zhí)行下一個命令。
CH375芯片專門用于處理USB通信,在檢測到USB總線的狀態(tài)改變或命令執(zhí)行完成后,CH375以中斷方式通知單片機(jī)進(jìn)行處理。
3.2 UBS接口軟件程序流程
HC375不僅是一個通用的USB-HOST硬件接口芯片,還內(nèi)置了相關(guān)的固定程序,可以方便地實(shí)現(xiàn)對USB存儲設(shè)備文件系統(tǒng)的管理。在該應(yīng)用中采用C語言編程,對蓄電池每次處理數(shù)據(jù)以一個文件的形式進(jìn)行存儲,程序支持文件打開、新建、刪除和讀寫等功能。設(shè)備與USB存儲設(shè)備之間通信過程主要包括對CH375芯片初始化、狀態(tài)查詢和并行數(shù)據(jù)的采集。通信部分程序流程如圖5所示。
4 結(jié) 語
這里在蓄電池活化設(shè)備USB接口電路中成功地使用了CH375芯片,取得了令人滿意的運(yùn)行效果。利用該設(shè)計能夠很好地實(shí)現(xiàn)檢測設(shè)備數(shù)據(jù)移動轉(zhuǎn)存,為蓄電池活化設(shè)備的使用者提供了極大方便。結(jié)果表明,在實(shí)現(xiàn)USB數(shù)據(jù)移動存儲接口電路設(shè)計中采用CH375芯片具有軟硬件接口設(shè)計簡單,性價比高,操作方便等優(yōu)點(diǎn)。