USB HOST相關(guān)模塊的總體設計 汽車(chē)行駛記錄儀中的USB HOST相關(guān)模塊由單片機、USB HOST接口、FLASH、鐵電存儲體(FRAM)、實(shí)時(shí)時(shí)鐘和電源管理等部分組成,其功能框圖如圖1所示。汽車(chē)行駛記錄儀工作時(shí),由單片機通過(guò)前端接口電路拾取汽車(chē)行駛狀態(tài)的各種信息,包括車(chē)速、發(fā)動(dòng)機轉速和各種車(chē)輛開(kāi)關(guān)信號等。汽車(chē)行駛記錄儀以實(shí)時(shí)時(shí)鐘為基準,把車(chē)輛信息按類(lèi)別分別存入FRAM和FLASH。需要從汽車(chē)行駛記錄儀中獲取汽車(chē)記錄狀態(tài)信息時(shí),用戶(hù)插入優(yōu)盤(pán),單片機自動(dòng)識別優(yōu)盤(pán)并加載驅動(dòng)程序,當完成設備枚舉和Bulk_Only傳輸協(xié)議后,單片機就可以把汽車(chē)行駛記錄儀中記錄的狀態(tài)信息以文件的形式傳輸到優(yōu)盤(pán)。本文重點(diǎn)介紹電源模塊、USB HOST模塊、數據存儲模塊的硬件設計。 考慮到汽車(chē)的復雜工況以及記錄儀的性?xún)r(jià)比,單片機至少為工業(yè)級產(chǎn)品,由于有USB HOST結構,FLASH和RAM要足夠大,這樣系統資源才夠用。另外,考慮到成本和開(kāi)發(fā)周期,單片機選擇51系列比較有利,綜合以上因素,單片機選擇AT89C51RD2,擴展RAM;目前市場(chǎng)上的USB設備芯片比較多,而HOST要少一些。選擇USB HOST接口芯片要考慮兩點(diǎn):一是在硬件上必須比較容易和51單片機相連接,二是軟件開(kāi)發(fā)難度不能太大,因此選擇SL811HST。對于數據存儲體,必須滿(mǎn)足存儲時(shí)間為15年有效,而且存儲容量為至少360小時(shí)有效數據,普通數據FLASH擦寫(xiě)次數為100萬(wàn)次,不能滿(mǎn)足記錄儀中頻繁擦寫(xiě)數據的要求,而鐵電擦寫(xiě)次數為無(wú)限次,但大容量FRAM價(jià)格很高,綜合這兩點(diǎn),存儲體采用小容量FRAM和FLASH結合,這樣既滿(mǎn)足記錄儀要求又有比較低的成本。 電源模塊硬件設計 汽車(chē)電子產(chǎn)品產(chǎn)生電磁干擾的最根本原因就是在其工作過(guò)程中產(chǎn)生的di/dt。電源模塊設計就是要在這些干擾源下能正常工作,其硬件電路如圖2所示。 在電源輸入處,二極管VD1(IN4007)的作用是防止反接,這樣即使在電源接反的情況下,電子設備也不會(huì )被損壞;VD2(A36A)為瞬態(tài)抑制二極管,能吸收高壓脈沖電壓,防止大功率器件工作時(shí)產(chǎn)生的高壓脈沖對電子設備的損壞;L1和L2是低電感磁條,其能有效的損耗干擾成分的能量,能很好改善電源性能;F1和F2為自復位二級管,防止電子設備內有器件被損壞時(shí),電源短路造成對其他器件的損壞。三端穩壓管7812(N2)提供12V電壓滿(mǎn)足前端輸入接口拾取電路的需要,同時(shí)給三端穩壓器7808(N1)提供輸入,N1提供8V電壓,滿(mǎn)足里程輸出以及速度輸出需要,開(kāi)關(guān)穩壓器LM2576(N3)提供5V輸出,最大輸出電流為3A,滿(mǎn)足記錄儀帶打印機的需要。WRD24B05(N4)為DC-DC轉換器,隔離汽車(chē)和電子設備電源,使設備電源穩定可靠。正向電壓調節器SPX1117(N5)提供3.3V電壓,供SL811HST和存儲體的需要,N6前端的晶體管8550控制N6的輸入,N6給IC卡供電,需要電源可控。 USB HOST模塊硬件設計 在汽車(chē)行駛記錄儀USB HOST模塊中,單片機采用AT89C51RD2,USB HOST接口芯片采用SL811HST,該模塊硬件電路如圖3所示,SL811HST提供并口總線(xiàn)數據協(xié)議和控制線(xiàn)CS、RD、WR、INTRQ以及A0,利用單片機的讀寫(xiě)信號線(xiàn)RD、WR,以及控制線(xiàn)A0、INT1就能把SL811HST和AT89C51RD2連接起來(lái),其中8根數據線(xiàn)在控制線(xiàn)的控制下與AT89C51RD2進(jìn)行數據交換。USB HOST包含有USB設備枚舉協(xié)議、Bulk_Only傳輸協(xié)議以及FAT文件結構,AT89C51RD2的RAM資源不夠,因此,系統擴展了32Kb SRAM,其占有低32Kb地址。為了保證操作SL811HST的可靠性,用HC00擴展了邏輯電路,因此SL811HST占有0x8000和0x8001兩個(gè)地址。另外,USB總線(xiàn)的電氣特性要求在USB收發(fā)器之前必須串接22~44Ω電阻,同時(shí)必須根據不同的USB設備傳輸速度(全速或低速),配置好上拉電阻和下拉電阻的位置。 當CS、RD有效時(shí),如果A0為高,這是讀當前地址或寄存器數據,如果A0為低,則讀當前地址或寄存器地址。當CS、WR有效時(shí),如果A0為高,這是寫(xiě)當前地址或寄存器數據,如果A0為低,則寫(xiě)當前地址或寄存器地址。 USB HOST識別設備過(guò)程如下:當SL811HST連接上USB設備后,就會(huì )產(chǎn)生一個(gè)中斷。AT89C51RD2接收到中斷后,進(jìn)入枚舉過(guò)程。從USB設備插入接口開(kāi)始到客戶(hù)驅動(dòng)程序能夠使用該設備還有一些工作要做,這一段可以稱(chēng)作設備識別過(guò)程,也稱(chēng)枚舉過(guò)程。枚舉過(guò)程是所有USB設備使用前必經(jīng)的過(guò)程,USB HOST端在使用前需要知道這是一個(gè)低速設備還是一個(gè)全速設備,需要知道這個(gè)設備的一些特性和能力,以便載入相應的驅動(dòng)程序。當USB HOST配置完USB設備后,通過(guò)描述符提供的信息識別出Bulk_Only的Mass Storage設備,然后進(jìn)入Bulk_Only 傳輸方式,在此方式下,USB與設備之間的所有數據均通過(guò)Bulk_In和Bulk_Out 來(lái)傳輸,不再通過(guò)控制端點(diǎn)傳輸任何數據。在這種傳輸方式下,有三種數據類(lèi)型在USB和設備之間傳輸,CBW、CSW和普通數據。CBW(Command Block Wrapper,即命令塊分組)是從USB HOST發(fā)送到設備的命令,命令的格式遵從接口中的bInterfaceSubClass所指定的命令塊,這里為SCSI傳輸命令集。USB設備需要將SCSI命令從CBW中提取出來(lái),執行相應的命令,完成以后向HOST發(fā)出當前命令執行狀態(tài)CSW(Command Status Wrapper), HOST根據CSW來(lái)決定是否繼續傳送下一個(gè)CBW或數據。USB HOST要求USB設備執行的命令如果為發(fā)送數據,則此時(shí)需要將特定的數據傳送出去,傳送完畢后發(fā)出CSW,使USB HOST進(jìn)行下一步操作。 圖2 電源模塊原理圖 圖3 USB HOST模塊原理圖 存儲模塊硬件設計 結合普通FLASH和FRAM來(lái)存儲數據,既滿(mǎn)足了數據存儲擦寫(xiě)次數的要求,也有比較低的成本。數據存儲模塊的硬件電路如圖4所示。 FRAM芯片FM24CL16通過(guò)I2C接口和AT89C51RD2相連,I2C總線(xiàn)通過(guò)兩根線(xiàn)——串行數據(SDA)和串行時(shí)鐘(SCL)線(xiàn)連接到總線(xiàn)上的任何一個(gè)器件,每個(gè)器件都有一個(gè)唯一的地址,而且都可以作為一個(gè)發(fā)送器或接收器。此外,器件在執行數據傳輸時(shí)也可以看作是主機或從機,I2C是一個(gè)多主機總線(xiàn),SDA和SCL都是雙線(xiàn)路,連接到總線(xiàn)的器件的輸出級必須是漏極開(kāi)路或集電極開(kāi)路,都通過(guò)一個(gè)電流源或上拉電阻連接到正的電源電壓。當總線(xiàn)空閑時(shí),這兩條線(xiàn)路都是高電平。FLASH芯片AT45DB041通過(guò)SPI接口和AT89C51RD2相連接,SPI是一個(gè)全雙工的串行接口,采用三線(xiàn)同步的數據傳輸形式。在一定的數據傳輸過(guò)程中,接口上只能有一個(gè)主機和一個(gè)從機進(jìn)行通信。在一次傳輸過(guò)程中,主機總是向從機發(fā)送一個(gè)字節數據,而從機也總是向總機發(fā)送一個(gè)字節數據。 圖4 存儲模塊原理科 小結 本設計實(shí)現了汽車(chē)行駛記錄儀的USB HOST功能,使汽車(chē)行駛記錄儀與優(yōu)盤(pán)可進(jìn)行大量數據的快速交換;诒驹O計的產(chǎn)品在送檢、認證和使用過(guò)程中,USB HOST技術(shù)性能達到了產(chǎn)品設計要求和技術(shù)要求,方便了用戶(hù)對大量數據進(jìn)行快速采集。 |