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