摘要:分析了基于STC單片機(jī)的SD卡的讀寫(xiě)操作,給出了一種基于高速、低功耗、超強(qiáng)抗干擾的新一代STCl2C5A60S2系列IT單片機(jī)的SD卡讀寫(xiě)方法。該方法利用串行外圍接口總線(xiàn)與SD卡相連,從而實(shí)現(xiàn)了對(duì)SD卡的數(shù)據(jù)讀寫(xiě)。
關(guān)鍵詞:SD卡讀寫(xiě);STCl2C5A613S2;單片機(jī);串行接口總線(xiàn);外圍設(shè)備
O 引言
SD卡是一種微型、低功耗、可移動(dòng)的Flash多功能存儲(chǔ)卡,該卡向上兼容MMC卡,并增加了智能保護(hù)機(jī)制,以有效地防止盜版,同時(shí)具有更快的傳輸速率及更高的存儲(chǔ)容量,可廣泛用于便攜式消費(fèi)類(lèi)電子產(chǎn)品中。本文首先介紹了STC12C5A60S2單片機(jī)在SPI協(xié)議下與SD卡的硬件接口電路,然后簡(jiǎn)要闡述了SPI總線(xiàn)模式以及軟件模擬的SPI總線(xiàn)數(shù)據(jù)通訊,最后給出了實(shí)現(xiàn)SD卡的初始化和讀寫(xiě)操作的軟件流程。
1 STC單片機(jī)
STCl2C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(IT)的單片機(jī),這是一種高速、低功耗、超強(qiáng)抗干擾的新一代805l單片機(jī),它的指令代碼完全兼容傳統(tǒng)8051,但速度比8051快8~12倍.工作電壓為5.5~3.3 V (5 V單片機(jī)),工作頻率范圍為O~35 MHz。該單片機(jī)內(nèi)部集成有MAX810專(zhuān)用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250 K/S),片上還集成有1280字節(jié)RAM,I/O口驅(qū)動(dòng)能力均可達(dá)到20 mA,無(wú)需專(zhuān)用編程器和仿真器數(shù)秒內(nèi)即可通過(guò)串口(P3.0/P3.1)下載用戶(hù)程序,由于其帶有通用全雙工異步串行口(UART),因此,特別適合電機(jī)控制,而且干擾較強(qiáng)的場(chǎng)合。
2 硬件電路設(shè)計(jì)
本SD卡讀寫(xiě)系統(tǒng)中的接口電路采用的STCl2C5A60S2單片機(jī)控制,并通過(guò)軟件編程實(shí)現(xiàn)SPI模式的數(shù)據(jù)傳輸(包括串行時(shí)鐘、數(shù)據(jù)的輸入和輸出)。在SPI模式下。單片機(jī)與SD卡的連接主要有四根線(xiàn)(包括時(shí)鐘線(xiàn),兩根數(shù)據(jù)傳輸線(xiàn)和一根片選線(xiàn)),其接口硬件連接電路如圖1所示。
圖2所示是基于STCl2C5A60S2單片機(jī)的SD卡讀寫(xiě)電路設(shè)計(jì)原理圖,其中包括STC12C5A60S2單片機(jī)的晶振電路和復(fù)位電路SD卡連接電路、和SD卡套插座連接電路。
3 通訊模式的選擇
通常,SD卡有兩種總線(xiàn)模式,即SD總線(xiàn)模式和SPI總線(xiàn)模式。其中SD總線(xiàn)模式采用四條數(shù)據(jù)線(xiàn)并行傳輸數(shù)據(jù),數(shù)據(jù)傳輸速率高,但是傳輸協(xié)議復(fù)雜,只有少數(shù)單片機(jī)才提供有此接口,而用軟件方法模擬SD總線(xiàn)又比較繁瑣,會(huì)降低SD卡的數(shù)據(jù)傳輸速率;而SPI總線(xiàn)模式只有一條數(shù)據(jù)傳輸線(xiàn)。傳輸協(xié)議簡(jiǎn)單,易于實(shí)現(xiàn),雖然數(shù)據(jù)傳輸速率較低,但絕大多數(shù)中高檔單片機(jī)都提供有SPI總線(xiàn),同時(shí)由于其易于用軟件方法來(lái)模擬。因此,本設(shè)計(jì)采用SPI總線(xiàn)模式。
SPI總線(xiàn)技術(shù)是MOTOROIA公司推出的一種同步串行總線(xiàn)接口,是目前單片機(jī)應(yīng)用系統(tǒng)中最常用的幾種串行擴(kuò)展接口之一。 SPI總線(xiàn)主要通過(guò)三根線(xiàn)進(jìn)行數(shù)據(jù)傳輸,包括同步時(shí)鐘線(xiàn)SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(xiàn)MISO、主機(jī)輸出/從機(jī)輸人數(shù)據(jù)線(xiàn)MOSI。另外,它還有一條低電平有效的從機(jī)片選線(xiàn)CS,片選信號(hào)以及同步時(shí)鐘脈沖由主機(jī)提供。SPI總線(xiàn)模式的數(shù)據(jù)是以字節(jié)為單位進(jìn)行傳輸?shù)?,主機(jī)與SD卡的各種通信都由主機(jī)控制。
4 軟件設(shè)計(jì)
4.1 SD卡的初始化
SD卡從上電到對(duì)SD卡進(jìn)行正確的讀寫(xiě)操作,往往都需要一個(gè)上電初始化的過(guò)程。SD卡上電后,主機(jī)必須先向SD卡發(fā)送74個(gè)時(shí)鐘周期,以完成SD卡的上電過(guò)程。通常SD卡上電后會(huì)自動(dòng)進(jìn)入SD總線(xiàn)模式,并在SD總線(xiàn)模式下向SD卡發(fā)送復(fù)位命令(CMD0)。因此,主機(jī)在對(duì)SD卡進(jìn)行任何操作前,都必須先要拉低SD卡的片選信號(hào)CS(card select),以使SD卡進(jìn)入SPI總線(xiàn)模式,然后再由主機(jī)向SD卡發(fā)送命令。SD卡可以響應(yīng)主機(jī)發(fā)來(lái)的各種應(yīng)答信號(hào),同時(shí)向主機(jī)發(fā)送一個(gè)特殊的數(shù)據(jù)響應(yīng)標(biāo)志。若主機(jī)讀到的應(yīng)答信號(hào)為01,即表明SD卡已進(jìn)人SPI模式,此時(shí),主機(jī)即可不斷地向SD卡發(fā)送命令字(CMDl)并讀取SD卡的應(yīng)答信號(hào),直到應(yīng)答信號(hào)為00,表明SD卡已完成初始化過(guò)程,并準(zhǔn)備好接受下一命令。此后,系統(tǒng)便可讀取SD卡的各寄存器,以進(jìn)行讀寫(xiě)等操作。SD卡初始化流程如圖3所示。下面是SD卡初始化的程序代碼:
在疫情的影響下,出門(mén)后、用餐前使用酒精消毒已成了人們的日常,而酒精噴霧機(jī)也因此變得十分熱銷(xiāo)。為了避免交叉感染的風(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ù)字邏輯芯片 受控元件最近由于換季,天氣突然的轉(zhuǎn)涼,大家也是直呼好冷。天冷了自然是要注意防寒保暖。一個(gè)能夠當(dāng)充電寶用的暖手寶會(huì)是你最好的陪伴。暖手寶是一種非常便捷易用的發(fā)熱工具,并且體形小巧,可以隨身攜帶并輕易握在手中,也可以放置在身上的其它...
關(guān)鍵字: 芯嶺技術(shù) 方案開(kāi)發(fā) 解決方案 單片機(jī)(全球TMT2022年10月13日訊)愛(ài)立信與歐洲合作伙伴加強(qiáng)在6G生態(tài)系統(tǒng)與標(biāo)準(zhǔn)化方面的合作。隨著歐盟委員會(huì)(EC)6G旗艦項(xiàng)目第二階段 -- Hexa-X-II的啟動(dòng)。愛(ài)立信將延續(xù)其在Hexa-X項(xiàng)目第一階段中的技...
關(guān)鍵字: TCL 愛(ài)立信 電子 生態(tài)系統(tǒng)