日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]引言 近幾年,隨著Flash Memory非易失存儲(chǔ)技術(shù)的發(fā)展,基于USB接口的閃存即U盤現(xiàn)已得到廣泛應(yīng)用。從理論上講,以U盤作為便攜式采集存儲(chǔ)系統(tǒng)的存儲(chǔ)載體完全能夠滿足長(zhǎng)時(shí)間采集海量數(shù)據(jù)的要求。但目前所面臨的問(wèn)題是,

引言
近幾年,隨著Flash Memory非易失存儲(chǔ)技術(shù)的發(fā)展,基于USB接口的閃存即U盤現(xiàn)已得到廣泛應(yīng)用。從理論上講,以U盤作為便攜式采集存儲(chǔ)系統(tǒng)的存儲(chǔ)載體完全能夠滿足長(zhǎng)時(shí)間采集海量數(shù)據(jù)的要求。但目前所面臨的問(wèn)題是,U盤主要應(yīng)用于PC機(jī)系統(tǒng)中。以單片機(jī)等微處理器為核心的嵌入式系統(tǒng)的應(yīng)用中,尚缺少與U盤的直接接口技術(shù)。因此將單片機(jī)技術(shù)與U盤存儲(chǔ)技術(shù)兩者結(jié)合起來(lái),利用單片機(jī)直接讀寫(xiě)U盤,并通過(guò)總線方式與嵌入式系統(tǒng)的其它部分實(shí)現(xiàn)命令和數(shù)據(jù)的通信,從而實(shí)現(xiàn)便攜儀器或者嵌入式系統(tǒng)的外掛式海量存儲(chǔ),具有廣闊的應(yīng)用前景。而以Cypress公司的SL811HS為代表的嵌入式USB主機(jī)接口芯片為這種方案的實(shí)現(xiàn)提供了可能。
SL811HS介紹[1]
采用單片機(jī)直接控制讀寫(xiě)U盤,牽涉到關(guān)鍵在于USB-HOST技術(shù)的實(shí)現(xiàn),即單片機(jī)作為USB主機(jī)系統(tǒng)。USB系統(tǒng)包括兩部分:USB主機(jī)和USB外設(shè),它們組合在一起就構(gòu)成了完整的USB系統(tǒng)。USB的拓?fù)浣Y(jié)構(gòu)中居于核心地位的是Host(也稱為主機(jī)),任何一次USB的數(shù)據(jù)傳輸都必須由主機(jī)來(lái)發(fā)起和控制,所有的USB外設(shè)都只能和主機(jī)建立連接,任何兩個(gè)外設(shè)之間或是兩個(gè)主機(jī)之間無(wú)法直接通信。
SL811HS作為嵌入式的USB主機(jī)/設(shè)備控制器,功能模塊框圖如圖1.1所示。
SL811HS實(shí)現(xiàn)了USB主機(jī)結(jié)構(gòu)中的第一個(gè)層次,即USB總線接口層的功能。SL811HS的主要特點(diǎn)如下:
•可作為USB主機(jī)或者設(shè)備的接口控制器;
•支持USB協(xié)議1.1,提供全速和低速2種USB總線速度方式;
•片上集成了SIE、單端口根Hub、USB收發(fā)器和256字節(jié)的SRAM;
•3.3V工作電壓,接口兼容5V電壓;
•硬件自動(dòng)產(chǎn)生幀起始包SOF和CRC5/16校驗(yàn)。

500)this.style.width=500;" border="0" />

圖1.1  SL811HS功能框圖
SL811HS與單片機(jī)的硬件接線[2][3]
單片機(jī)采用的是AT89C55WD,它通過(guò)SL811HS芯片對(duì)U盤進(jìn)行讀寫(xiě),實(shí)現(xiàn)存儲(chǔ)。這部分的電路原理圖如圖1.2所示。
圖中SL811HS與CPU的連接是關(guān)鍵。SL811HS是3.3V供電的系統(tǒng),而AT89C55WD是5V供電的系統(tǒng),但二者的端口能夠彼此兼容對(duì)方的高低電平。因此SL811HS的數(shù)據(jù)引腳D0~D7直接與單片機(jī)的低八位地址/數(shù)據(jù)總線AD0~AD7連接,讀寫(xiě)選通引腳nRD、nWR則直接與單片機(jī)的讀寫(xiě)線/RD、/WR連接;對(duì)AT8955WD而言,SL811HS不過(guò)是其在片外擴(kuò)展的I/O芯片之一,地址線A15與/CS_SL811(AT89C55WD的P3.3引腳)組合后充當(dāng)SL811HS的片選,地址線A0與SL811HS的A0引腳相連,于是SL811HS的地址指針寄存器的地址為7FFEH(A0、/CS_SL811為低電平),SL811HS的數(shù)據(jù)寄存器的地址為7FFFH(A0為高電平,/CS_SL811為低電平)。之所以需要/CS_SL811配合,是因?yàn)锳T89C55WD在外部還擴(kuò)展了一片128KB的SRAM62256(省略未畫(huà)),片選線也是A15。SL811HS的M/S引腳經(jīng)下拉電阻后接地,使得其工作于主機(jī)控制器模式。此外,SL811HS的中斷請(qǐng)求信號(hào)為高電平有效,故反向后連接到AT89C55WD的外部中斷引腳/INT0。本系統(tǒng)沒(méi)有采用SL811HS內(nèi)部的鎖相環(huán),直接使用外部的48MHz有源晶振作為時(shí)鐘源,更準(zhǔn)確。
存儲(chǔ)模塊是主機(jī)系統(tǒng),其PCB板上安裝有A型插座,用于為下層的設(shè)備提供連接點(diǎn)。因?yàn)檫B接的外設(shè)是功耗量極低的USB盤,下行端口的電源VCC直接連到了檢測(cè)系統(tǒng)的電源上。
500)this.style.width=500;" border="0" />

基于U盤的海量存儲(chǔ)板中單片機(jī)固件程序編寫(xiě)
過(guò)去,基于個(gè)人計(jì)算機(jī)的USB開(kāi)發(fā),僅僅是對(duì)USB外設(shè)的開(kāi)發(fā),USB核心驅(qū)動(dòng)程序和USB主控制器驅(qū)動(dòng)程序均由Windows等操作系統(tǒng)提供。而實(shí)現(xiàn)USB主機(jī)的功能,這兩部分驅(qū)動(dòng)程序都必須設(shè)計(jì)。
 嵌入式USB主機(jī)的軟件設(shè)計(jì)思路[4]
USB主機(jī)協(xié)議描述了USB系統(tǒng)軟件(核心驅(qū)動(dòng)程序和主控制器驅(qū)動(dòng)程序)的設(shè)計(jì)規(guī)范。根據(jù)該設(shè)計(jì)規(guī)范,嵌入式USB主機(jī)的軟件設(shè)計(jì)應(yīng)包括以下三部分:USB主機(jī)系統(tǒng)軟件部分,主要實(shí)現(xiàn)對(duì)USB外設(shè)的配置,讀取USB外設(shè)的信息,從而判斷該設(shè)備屬于USB的哪一類,并確定下一步選用哪個(gè)特定的程序加以支持;USB Mass Storage設(shè)備類協(xié)議軟件部分,實(shí)現(xiàn)USB Mass Storage類所規(guī)定的各種命令;USB用戶軟件部分,實(shí)現(xiàn)用FAT文件系統(tǒng)管理和存儲(chǔ)數(shù)據(jù)。因此,基于U盤的海量存儲(chǔ)模塊中單片機(jī)的固件程序有著如圖1.3所示的積木式的結(jié)構(gòu)。

500)this.style.width=500;" border="0" />

單片機(jī)嵌入式USB主機(jī)固件程序
1、SL811HS與AT89C55WD的通信程序設(shè)計(jì)
SL811與單片機(jī)AT89C55WD的通信程序設(shè)計(jì)可以簡(jiǎn)單地認(rèn)為是實(shí)現(xiàn)了PC的USB主機(jī)的主控制器驅(qū)動(dòng)程序的部分功能。
①讀數(shù)據(jù)
由于SL811HS的外接總線的地址和數(shù)據(jù)信號(hào)是復(fù)用的,通過(guò)A0信號(hào)來(lái)區(qū)分地址和數(shù)據(jù)。因此,AT89C55WD讀取或?qū)懭隨L811HS內(nèi)存的時(shí)候首先發(fā)送地址,然后再發(fā)送數(shù)據(jù)。此外,由于SL811HS采用了地址自動(dòng)增址的機(jī)制,因此,如果需要讀取或?qū)懭脒B續(xù)地址內(nèi)的數(shù)據(jù)時(shí),只需要發(fā)送起始地址即可,以后每讀取或?qū)懭胍淮螖?shù)據(jù),SL811HS會(huì)自動(dòng)將尋址地址加1。根據(jù)SL811HS的讀數(shù)據(jù)時(shí)序的要求,讀取數(shù)據(jù)前首先發(fā)送地址,再讀取數(shù)據(jù),程序如下:
unsigned char SL811Read(unsigned char a)

 unsigned char nVal;
 unsigned char xdata *exAddress;
 exAddress = SL811_ADDR_PORT;    /*發(fā)送地址  */
 SL811_CS=0;
 *exAddress=a;
 exAddress=SL811_DATA_PORT;     /*讀取數(shù)據(jù)  */
 nVal = *exAddress;
 SL811_CS=1;
 return nVal;
}
②寫(xiě)數(shù)據(jù)
與讀數(shù)據(jù)類似,AT89C55WD向SL811HS的內(nèi)存單元寫(xiě)數(shù)據(jù)時(shí),也必須首先發(fā)送地址,然后發(fā)送要寫(xiě)入的數(shù)據(jù)。根據(jù)SL811HS的寫(xiě)數(shù)據(jù)時(shí)序,函數(shù)實(shí)現(xiàn)程序如下:
void SL811Write(unsigned char a, unsigned char d)

 unsigned char xdata *exAddress;
 exAddress = SL811_ADDR_PORT;       /*發(fā)送地址  */
 SL811_CS=0;
 *exAddress=a;
 exAddress=SL811_DATA_PORT;         /*寫(xiě)入數(shù)據(jù)  */
 *exAddress = d;
 SL811_CS=1;
}
單片機(jī)AT89C55WD與SL811HS通信的實(shí)現(xiàn),是整個(gè)USB體系軟件的根基。在此基礎(chǔ)上即可實(shí)現(xiàn)USB主機(jī)協(xié)議的系統(tǒng)軟件、Mass Storage類協(xié)議軟件、FAT文件系統(tǒng)軟件。
2、AT89C55WD的初始化
單片機(jī)AT89C55WD的初始化程序安排在主程序main.c中,主要是完成定時(shí)器T0、外部中斷INT0、I/O口、串行通訊口以及SL811HS 的初始化,包括工作方式設(shè)定、初值設(shè)置、相關(guān)的數(shù)據(jù)緩沖器清零等,程序較為簡(jiǎn)單,此處省略。
3、人機(jī)接口程序
人機(jī)接口程序?qū)?lái)自主CPU模塊的串口命令進(jìn)行相應(yīng)的處理,并將處理結(jié)果返回。因?yàn)橹鰿PU模塊需將采集的數(shù)據(jù)值通過(guò)存儲(chǔ)模塊存入U(xiǎn)盤,所以主CPU模塊的串口命令包括查詢U盤、創(chuàng)建文件、打開(kāi)文件、寫(xiě)文件、讀文件等,如同人們?cè)赑C機(jī)對(duì)U盤的操作。
該段程序首先通過(guò)串口處理入口函數(shù),判別主CPU發(fā)出何種命令,再跳轉(zhuǎn)至功能操作子函數(shù)。U盤的功能操作子函數(shù)依據(jù)USB Mass Storage類的UFI命令,按照微軟的FAT文件規(guī)范進(jìn)行相應(yīng)文件操作。
由于篇幅關(guān)系其它部分的實(shí)現(xiàn)本文不作具體介紹。
結(jié)語(yǔ)
總之,運(yùn)用單片機(jī)直接控制讀寫(xiě)U盤,部分地實(shí)現(xiàn)PC上USB主機(jī)的USB核心驅(qū)動(dòng)程序的功能,是嵌入式系統(tǒng)的軟件和硬件的集合,是一個(gè)全新的概念。基于U盤單片機(jī)低功耗海量存儲(chǔ)系統(tǒng)將使測(cè)控系統(tǒng)體積減小,更有利于野外作業(yè)或其它便攜性要求較高的場(chǎng)合,為儀器便攜化發(fā)展開(kāi)拓了新的思路。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

串口作為單片機(jī)開(kāi)發(fā)的一個(gè)常用的外設(shè),應(yīng)用范圍非常廣。大部分時(shí)候,串口需要接收處理的數(shù)據(jù)長(zhǎng)度是不定的。那么怎么才能判斷一幀數(shù)據(jù)是否結(jié)束呢,今天就以STM32單片機(jī)為例,介紹幾種接收不定長(zhǎng)數(shù)據(jù)的方法。

關(guān)鍵字: 單片機(jī) 串口 STM32

單片機(jī)誕生于1971年,經(jīng)歷了SCM、MCU、SoC三大階段。單片機(jī)由以前的1位、4位、8位、16位,發(fā)展到現(xiàn)在的32位甚至64位。當(dāng)前國(guó)內(nèi)MCU廠商已有上百家,對(duì)標(biāo)進(jìn)口芯片的情況非常嚴(yán)重,導(dǎo)致國(guó)內(nèi)MCU產(chǎn)品將陷入同質(zhì)化...

關(guān)鍵字: 單片機(jī) MCU 市場(chǎng)

(微控制單元 MCU(Microcontroller Unit),又稱單片機(jī),是把中央處理器(CentralProcess Unit; CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計(jì)數(shù)器(Timer)、US...

關(guān)鍵字: 單片機(jī) 芯片 CPU

在疫情的影響下,出門后、用餐前使用酒精消毒已成了人們的日常,而酒精噴霧機(jī)也因此變得十分熱銷。為了避免交叉感染的風(fēng)險(xiǎn),自動(dòng)酒精噴霧器也就應(yīng)運(yùn)而生。不同于傳統(tǒng)手動(dòng)噴霧器不美觀、手部接觸不衛(wèi)生的bug,此款自動(dòng)感應(yīng)酒精噴霧器使...

關(guān)鍵字: 芯嶺技術(shù) 方案開(kāi)發(fā) 解決方案 單片機(jī)

在實(shí)際的單片機(jī)控制系統(tǒng)中,有時(shí)候會(huì)使用數(shù)字邏輯芯片對(duì)單片機(jī)和受控元件進(jìn)行隔離,以保護(hù)單片機(jī),或者令單片機(jī)更好地對(duì)后級(jí)進(jìn)行控制。

關(guān)鍵字: 單片機(jī) 數(shù)字邏輯芯片 受控元件

MH32F103AVET6使用高性能的32位內(nèi)核,內(nèi)置了多達(dá)2個(gè)高級(jí)定時(shí)器、10個(gè)通用定時(shí)器、2個(gè)基本定時(shí)器、3個(gè)12位的ADC、2個(gè)12位的DAC,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口包括:3個(gè)SPI接口、2個(gè)I2S接口、2個(gè)I...

關(guān)鍵字: 單片機(jī) MCU

最近由于換季,天氣突然的轉(zhuǎn)涼,大家也是直呼好冷。天冷了自然是要注意防寒保暖。一個(gè)能夠當(dāng)充電寶用的暖手寶會(huì)是你最好的陪伴。暖手寶是一種非常便捷易用的發(fā)熱工具,并且體形小巧,可以隨身攜帶并輕易握在手中,也可以放置在身上的其它...

關(guān)鍵字: 芯嶺技術(shù) 方案開(kāi)發(fā) 解決方案 單片機(jī)

以前在工作中,同事遇到一個(gè)問(wèn)題,LDO輸出接了一個(gè)負(fù)載,負(fù)載有低功耗和普通模式兩種工作模式,低功耗模式時(shí)正常,普通模式時(shí)工作也正常,但是從低功耗切換到普通模式時(shí),卻發(fā)生了異常,測(cè)量得到LDO的輸出電壓波形大約如下,綠色是...

關(guān)鍵字: LDO 低功耗 負(fù)載調(diào)整率

XL32F003 系列微控制器采用高性能的 32 位 ARM?Cortex?- M0+ 內(nèi)核,寬電壓工作范圍的MCU。嵌入高達(dá)64 Kbytes flash和8 Kbytes SRAM存儲(chǔ)器,最高工作頻率32 MHz。包...

關(guān)鍵字: 單片機(jī) MCU

電動(dòng)洗鼻器是一種全新的鼻腔清潔工具,一般是通過(guò)水壓將生理鹽水送進(jìn)鼻腔,借助于生理鹽水的殺菌作用及水流的沖擊力,將鼻腔內(nèi)已聚集的致病菌及污洉排出,從而使鼻腔恢復(fù)正常的生理環(huán)境,恢復(fù)鼻腔的自我排毒功能,達(dá)到保護(hù)鼻腔的目的。讓...

關(guān)鍵字: 芯嶺技術(shù) 方案開(kāi)發(fā) 解決方案 單片機(jī)

單片機(jī)

21600 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉