




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要近年來(lái), SD存儲(chǔ)卡在嵌入式產(chǎn)品中的應(yīng)用越來(lái)越廣泛, 但SD卡接口一般僅集成在32位高端處理器中, 一般51單片機(jī)則由于資源限制沒(méi)有該接口。因此,如何解決51單片機(jī)應(yīng)用系統(tǒng)存取SD卡大容量數(shù)據(jù)就顯得很有實(shí)際意義。本系統(tǒng)使用MXT8051F04A作為單片機(jī)與SD卡的接口芯片, 采用SPI串行方式對(duì)SD卡的扇區(qū)進(jìn)行讀寫(xiě),讀寫(xiě)過(guò)程和結(jié)果通過(guò)串口調(diào)試助手在主機(jī)上顯示。本論文的核心主要從硬件設(shè)計(jì)和軟件編程兩個(gè)大的方面介紹了系統(tǒng)的實(shí)現(xiàn)。硬件電路設(shè)計(jì)主要包括MXT8051F04A最小系統(tǒng)電路、電源電路、串口電路、SD卡接口電路。程序采用C語(yǔ)言在Keil軟件下進(jìn)行編寫(xiě)、調(diào)試,程序主要包括SD卡扇區(qū)讀寫(xiě)程
2、序、串口程序等軟件模塊。系統(tǒng)實(shí)現(xiàn)了對(duì)SD卡扇區(qū)的讀寫(xiě),達(dá)到了設(shè)計(jì)的要求和目的。關(guān)鍵字:MXT8051F04A,SD卡,KeilABSTRACTIn recent years, SD memory card applications in the embedded products more widely, but generally only the integrated SD card interface in 32-bit high-end processor, microcontroller 51 is generally not the interface due to resourc
3、e constraints. Therefore, how to solve the 51 SCM applications to access data on large-capacity SD cards seem very practical. The system uses MXT8051F04A as SCM and SD card interface chip, using SPI mode on the SD card serial read and write sectors, reading and writing process and results through th
4、e serial port on the host display debugging assistant. The core of this thesis, the main hardware and software design introduces two major aspects of the system implementation. Hardware design includes MXT8051F04A minimum system circuit, power circuit, the serial port circuitry, SD card interface ci
5、rcuit. Program using C language under the Keil software write, debug, the program includes reading and writing SD card sector program, serial procedures of software modules. System realizes the SD card read and write sectors, meets the design requirements and objectives. Keywords: MXT8051F04A,SD Car
6、d,Keil目 錄第1章 引言11.1 選題背景11.2 研究目標(biāo)和意義11.3 本文要完成的工作1第2章 單片機(jī)讀寫(xiě)SD卡的硬件電路設(shè)計(jì)32.1 系統(tǒng)硬件平臺(tái)組成32.2 電源模塊32.3 MXT8051F04A單片機(jī)最小系統(tǒng)電路設(shè)計(jì)42.3.1 MXT8051F04A簡(jiǎn)介42.3.2 晶振復(fù)位電路82.4 SD卡電路設(shè)計(jì)82.4.1 通訊模式92.4.2 電平匹配92.4.3 硬件接口設(shè)計(jì)102.5 串口電路設(shè)計(jì)122.6 PCB繪制132.7 本章小結(jié)14第3章 單片機(jī)讀寫(xiě)SD卡的軟件設(shè)計(jì)143.1 SD卡的扇區(qū)讀寫(xiě)143.1.1 模擬SPI協(xié)議143.1.2 SD卡命令153.1.3
7、SD卡的初始化193.1.4 數(shù)據(jù)塊的讀寫(xiě)203.2 串口程序25第4章 調(diào)試264.1 系統(tǒng)硬件調(diào)試264.2 軟件調(diào)試274.3 軟硬件的聯(lián)合調(diào)試274.4 本章小結(jié)29第5章 結(jié)束語(yǔ)305.1 總結(jié)305.2 展望30參考文獻(xiàn)31致謝32附錄33附錄一:?jiǎn)纹瑱C(jī)讀寫(xiě)SD卡的完整原理圖33附錄二:?jiǎn)纹瑱C(jī)讀寫(xiě)SD卡的完整程序36外文資料原文63譯文64第1章 引言1.1 選題背景SD卡(Secure Digital Memory Card)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛地于便攜式裝置上使用,例如個(gè)人數(shù)碼助理(PDA)、數(shù)碼相機(jī)和多媒體播放器等。SD卡
8、由日本松下、東芝及美國(guó)SanDisk公司于1999年8月共同開(kāi)發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2克左右,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性。SD卡在現(xiàn)在的日常生活與工作中使用非常廣泛,時(shí)下已經(jīng)成為最為通用的數(shù)據(jù)存儲(chǔ)卡。在諸如MP3、數(shù)碼相機(jī)等設(shè)備上也都采用SD卡作為其存儲(chǔ)設(shè)備。SD卡之所以得到如此廣泛的使用,是因?yàn)樗鼉r(jià)格低廉、存儲(chǔ)容量大、使用方便、通用性與安全性強(qiáng)等優(yōu)點(diǎn)。既然它有著這么多優(yōu)點(diǎn),那么如果將它加入到單片機(jī)應(yīng)用開(kāi)發(fā)系統(tǒng)中來(lái),將使系統(tǒng)變得更加出色,特別是一些單片機(jī)系統(tǒng)需要長(zhǎng)時(shí)間地采集、記錄海量數(shù)據(jù)時(shí),選擇SD卡作為存儲(chǔ)媒質(zhì)是開(kāi)發(fā)者們一個(gè)很
9、好的選擇。這就要求對(duì)SD卡的硬件與讀寫(xiě)時(shí)序進(jìn)行研究。1.2 研究目標(biāo)和意義研究51單片機(jī)對(duì)SD卡的讀寫(xiě),解決51單片機(jī)應(yīng)用系統(tǒng)存取大容量數(shù)據(jù)。1.3 本文要完成的工作本課題是針對(duì)單片機(jī)讀寫(xiě)SD卡進(jìn)行研究,由研究目的決定了研究的內(nèi)容涉及了單片機(jī)系統(tǒng)硬件設(shè)計(jì)和SD卡數(shù)據(jù)讀取兩方面。在系統(tǒng)硬件設(shè)計(jì)方面,包括硬件電路的設(shè)計(jì);在軟件設(shè)計(jì)方面,包括SD卡讀寫(xiě)程序,串口程序。本文將完成以下的任務(wù):1. 基于MXT8051F04A微控制器進(jìn)行讀寫(xiě)SD卡系統(tǒng)的設(shè)計(jì),即完成本系統(tǒng)硬件器件的選擇和電路的初步設(shè)計(jì)。2. 各子功能模塊硬件電路設(shè)計(jì)、調(diào)試以及軟硬件的聯(lián)合調(diào)試。進(jìn)行模塊軟硬件調(diào)試和實(shí)驗(yàn),驗(yàn)證系統(tǒng)的可靠性。3
10、. 進(jìn)行軟件方面的研究,即SD卡協(xié)議和命令研究還有單片機(jī)串口程序,程序采用C語(yǔ)言在Keil環(huán)境下編寫(xiě) 。第2章 單片機(jī)讀寫(xiě)SD卡的硬件電路設(shè)計(jì)2.1 系統(tǒng)硬件平臺(tái)組成圖2-1 系統(tǒng)硬件平臺(tái)如圖2-1所示系統(tǒng)硬件平臺(tái)配置如下:控制器:時(shí)代民芯科技有限公司的MXT8051F04A單片機(jī),運(yùn)行頻率可達(dá)80M。晶振復(fù)位電路:系統(tǒng)采用了RC上電復(fù)位。JTAG電路:用來(lái)完成程序的下載和調(diào)試。SD卡電路:SD卡使用的是存儲(chǔ)容量為2G的金士頓SD卡。串口電路:采用了MAX232EP進(jìn)行電平轉(zhuǎn)換和主機(jī)進(jìn)行通信。電源電路:系統(tǒng)采用9V供電,使用兩片ASM1117電源轉(zhuǎn)換芯片分別獲得5V 和3.3V為系統(tǒng)供電。2.
11、2 電源模塊電源是系統(tǒng)最關(guān)鍵的部分,決定著整個(gè)系統(tǒng)的成敗。本系統(tǒng)單片機(jī)供電范圍為3.6-5V電源,而SD卡的供電范圍為2.7-3.6V,所以系統(tǒng)需要兩種電源。本系統(tǒng)采用9V電源供電,通過(guò)低壓差三端線(xiàn)性穩(wěn)壓器ASM1117芯片得到5V和3.3V電源。電路如圖2-2所示。圖2-2 電源模塊系統(tǒng)輸入的9V電源首先通過(guò)ASM1117-5.0電源轉(zhuǎn)換芯片把輸入的9V電壓轉(zhuǎn)換為5V,然后5V電壓再通過(guò)ASM1117-3.3把5V電壓轉(zhuǎn)換為3.3V.。ASM1117前后并行接了多個(gè)濾波、退藕電容,以進(jìn)一步穩(wěn)定線(xiàn)性電源的平滑度,減小電源的紋波,提高電源的帶負(fù)載能力和瞬態(tài)響應(yīng)。2.3 MXT8051F04A單片
12、機(jī)最小系統(tǒng)電路設(shè)計(jì)單片機(jī)最小系統(tǒng)包括:晶振電路、復(fù)位電路。復(fù)位采用了簡(jiǎn)單可靠的上電復(fù)位。2.3.1 MXT8051F04A簡(jiǎn)介本系統(tǒng)采用了北京時(shí)代民芯科技有限公司自行研制的高性能8051單片機(jī)MXT8051F04A。MXT8051F04A是以高速單指令周期8051為核的MCU。電路擁有豐富的外設(shè),包括PWM、UART、WDT,Timer等,大容量存儲(chǔ)器,內(nèi)嵌32Kx8可在線(xiàn)編程Flash,10位AD,8位DA,若干OP,36x4 LCD driver、POR以及可編程增益放大器(PGA)等模擬電路。電路集成片上調(diào)試系統(tǒng),通過(guò)標(biāo)準(zhǔn)JTAG接口,快速診斷復(fù)雜SOC,該調(diào)試系統(tǒng)具有不占用任何硬件資源
13、,支持全速運(yùn)行、單步運(yùn)行、硬件斷點(diǎn)、軟件斷點(diǎn)以及觀(guān)察內(nèi)部特殊功能寄存器、程序指針和內(nèi)部RAM等功能。上位機(jī)通過(guò)標(biāo)準(zhǔn)JTAG接口以及用戶(hù)定義指令執(zhí)行在線(xiàn)編程和在線(xiàn)調(diào)試。同時(shí)提供調(diào)試和編程軟件包。MXT8051F04A的系統(tǒng)框圖如圖2-3。圖2-3 MXT8051F04A系統(tǒng)框圖MXT8051F04A共有128個(gè)引腳,采用QFP128封裝,其引腳排列如圖2-4。圖2-4 MXT8051F04A引腳排列管腳功能大致說(shuō)明如下(詳細(xì)介紹請(qǐng)看MXT8051F04A數(shù)據(jù)手冊(cè)):系統(tǒng)時(shí)鐘:XTAL1、XTAL2為MXT8051F04A系統(tǒng)時(shí)鐘晶振的輸出、輸入引腳。MXT8051F04A有三個(gè)時(shí)鐘源,外部晶體振
14、蕩器,內(nèi)部振蕩器和32768Hz晶體振蕩器。外部晶體振蕩器和內(nèi)部振蕩器提供主時(shí)鐘,通過(guò)內(nèi)部寄存器PCON.1(CKSEL)來(lái)選擇。32768Hz晶體振蕩器為RTC提供時(shí)鐘。RTC: RTCXTAL1和RTCXTAL2是RTC的32768Hz晶體振蕩器的輸入輸出引腳。I/O口:MXT8051F04A共提供一個(gè)8位雙向口P0、兩個(gè)5位雙向口P1,P2,每個(gè)口通過(guò)口控制寄存器控制輸入輸出,通過(guò)上拉控制寄存器控制內(nèi)部上拉電阻,P2具有第二功能,通過(guò)方式控制寄存器控制P2口的第二功能。P0、P1、P2分別對(duì)應(yīng)內(nèi)部數(shù)據(jù)寄存器P0、P1、P2,這些寄存器即可字節(jié)尋址也可位尋址,寫(xiě)入端口的值通過(guò)內(nèi)部寄存器鎖存
15、以保證I/O引腳輸出的值保持不變。當(dāng)進(jìn)行讀操作時(shí),當(dāng)引腳配置為輸入時(shí),引腳的電平被讀入,但通過(guò)讀-修改-寫(xiě)指令或者當(dāng)引腳被配置為輸出時(shí)所讀取的是內(nèi)部鎖存器的值,而非引腳的值。CPU通過(guò)MOV傳送指令對(duì)I/O口進(jìn)行讀寫(xiě)操作。 UART :TXD、RXD分別為單片機(jī)串口的發(fā)送引腳和接受引腳。UART 是一個(gè)能進(jìn)行異步傳輸?shù)拇锌?。UART 可以工作在全雙工方式。在所有方式下,接收數(shù)據(jù)放入數(shù)據(jù)緩沖器。這就允許在軟件尚未讀取前一個(gè)數(shù)據(jù)字節(jié)的情況下開(kāi)始接收第二個(gè)輸入數(shù)據(jù)字節(jié)。 UART在特殊功能寄存器中有一個(gè)串行控制寄存器(SCON)和一個(gè)串行數(shù)據(jù)緩沖器(SBUF)。用同一個(gè)地址訪(fǎng)問(wèn)發(fā)送寄存器和接收寄存
16、器。讀操作訪(fǎng)問(wèn)接收寄存器,寫(xiě)操作訪(fǎng)問(wèn)發(fā)送寄存器。 如果被允許,UART能產(chǎn)生中斷。UART有兩個(gè)中斷源:一個(gè)發(fā)送中斷標(biāo)志TI(SCON.1)(數(shù)據(jù)字節(jié)發(fā)送結(jié)束時(shí)置位)和一個(gè)接收中斷標(biāo)志RI(SCON.0)(接收完一個(gè)數(shù)據(jù)字節(jié)后置位)。當(dāng)UART轉(zhuǎn)向中斷服務(wù)程序時(shí)硬件不清除UART中斷標(biāo)志,中斷標(biāo)志必須用軟件清除。這就允許軟件查詢(xún)UART中斷的原因。PWM口:PWM0、PWM1、PWM2為PWM輸出口。MXT8051F04A內(nèi)建3個(gè)10位PWM, 每個(gè)PWM由兩個(gè)8位寄存器構(gòu)成,它們分別是PWM0H,PWM0L,PWM1H,PWM1L,PWM2H,PWM2L。由PWMXL和PWMXH的低兩位構(gòu)成
17、一個(gè)10位的寄存器。寫(xiě)入到PWMXH和PWMXL的值代表一個(gè)PWM周期中的高電平寬度。當(dāng)PWM計(jì)數(shù)器等于PWM寄存器時(shí)PWM輸出低電平,當(dāng)PWM計(jì)數(shù)器溢出時(shí)輸出高電平,從而改變PWM輸出的占空比,實(shí)現(xiàn)脈寬調(diào)制。 JTAG接口:MXT8051F04A包含一個(gè)片內(nèi)JTAG接口和邏輯,提供在線(xiàn)編程和在調(diào)試所需要的邊界掃描功能,支持FLASH的讀和寫(xiě)操作以及非侵入式在系統(tǒng)調(diào)試。JTAG接口有四個(gè)專(zhuān)用引腳,它們是:TCK、TMS、TDI和TDO。運(yùn)放:MXT8051F04A內(nèi)部集成有5個(gè)運(yùn)放器,分別是OP1-OP5。其中OP1、OP2與電阻網(wǎng)絡(luò)一起組成一個(gè)帶256級(jí)增益控制的差分輸入可編程增益控制器PG
18、A,PGA的輸出送到一個(gè)起調(diào)零作用的運(yùn)算放大器OP3,經(jīng)調(diào)零電路調(diào)整后輸出到ADC的模擬通道3(AIN3)。另外三個(gè)運(yùn)算放大器可與外部電阻一起組成恒流源和放大電路。 LCD驅(qū)動(dòng):MXT8051F04A內(nèi)部集成段式LCD驅(qū)動(dòng),LCD 驅(qū)動(dòng)由主要偏壓產(chǎn)生電路、COM驅(qū)動(dòng)器、SEG驅(qū)動(dòng)器幾部分組成。COM1-COM4為位選,SEGMENT0-SEGMENT36為段選。數(shù)模轉(zhuǎn)換器 (DAC):MXT8051F04A片內(nèi)的數(shù)模轉(zhuǎn)換器(DAC)采用電阻串分壓結(jié)構(gòu),主要由8-256譯碼器、模擬開(kāi)關(guān)、電阻串和輸出緩沖器等幾部分組成。電阻串將參考電源分成256等份,輸入數(shù)據(jù)經(jīng)譯碼器譯碼后,控制模擬開(kāi)關(guān)選擇合適的
19、電壓經(jīng)輸出緩沖器輸出。2.3.2 晶振復(fù)位電路單片機(jī)最小系統(tǒng)包括:晶振電路、復(fù)位電路。復(fù)位采用了簡(jiǎn)單可靠的上電復(fù)位電路。電路如圖2-5所示:圖2-5 晶振復(fù)位電路2.4 SD卡電路設(shè)計(jì)應(yīng)用單片機(jī)讀寫(xiě)SD卡有兩點(diǎn)需要注意。首先,需要尋找一個(gè)單片機(jī)與SD卡通訊的解決方案;其次,SD卡所能接受的邏輯電平為3.3V,如果是5V單片機(jī)則需要解決電平匹配問(wèn)題。2.4.1 通訊模式SD卡有兩個(gè)可選的通訊協(xié)議:SD模式和SPI模式。SD模式是SD卡標(biāo)準(zhǔn)的讀寫(xiě)方式,但是在選用SD模式時(shí),往往需要選擇帶有SD卡控制器接口的MCU,或者必須加入額外的SD卡控制單元以支持SD卡的讀寫(xiě)。然而MXT8051F04A單片機(jī)
20、沒(méi)有集成SD卡控制器接口,若選用SD模式通訊增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫(xiě)時(shí)間要求不是很?chē)?yán)格的情況下,選用SPI模式可以說(shuō)是一種最佳的解決方案。因?yàn)樵赟PI模式下,通過(guò)四條線(xiàn)就可以完成所有的數(shù)據(jù)交換,并且目前市場(chǎng)上很多MCU都集成有現(xiàn)成的SPI接口電路,采用SPI模式對(duì)SD卡進(jìn)行讀寫(xiě)操作可大大簡(jiǎn)化硬件電路的設(shè)計(jì)。雖然MXT8051F04A不帶SD卡硬件控制器,也沒(méi)有現(xiàn)成的SPI接口模塊,但是可以用軟件模擬出SPI總線(xiàn)時(shí)序。本文用SPI總線(xiàn)模式讀寫(xiě)SD卡。2.4.2 電平匹配SD卡的邏輯電平相當(dāng)于3.3V TTL電平標(biāo)準(zhǔn),而控制芯片的邏輯電平為5V電平標(biāo)準(zhǔn)。因此,它們之間不能直接相連,否
21、則會(huì)有燒毀SD卡的可能。出于安全的考慮,有必要解決電平匹配問(wèn)題。要解決這一問(wèn)題,最根本的就是解決邏輯器件接口的電平兼容問(wèn)題,原則主要有兩條:一為輸出電平器件輸出高電平的最小電壓值,應(yīng)該大于接收電平器件識(shí)別為高電平的最低電壓值;另一條為輸出電平器件輸出低電平的最大電壓值,應(yīng)該小于接收電平器件識(shí)別為低電平的最高電壓值。一般來(lái)說(shuō),通用的電平轉(zhuǎn)換方案是采用類(lèi)似SN74ALVC4245的專(zhuān)用電平轉(zhuǎn)換芯片,這類(lèi)芯片不僅可以用作升壓和降壓,而且允許兩邊電源不同步。但是,這個(gè)方案代價(jià)相對(duì)昂貴,而且一般的專(zhuān)用電平轉(zhuǎn)換芯片都是同時(shí)轉(zhuǎn)換8路、16路或者更多路數(shù)的電平,相對(duì)本系統(tǒng)僅僅需要轉(zhuǎn)換3路來(lái)說(shuō)是一種資源的浪費(fèi)。
22、考慮到SD卡在SPI協(xié)議的工作模式下,通訊都是單向的,于是在單片機(jī)向SD卡傳輸數(shù)據(jù)時(shí)采用晶體管加上拉電阻法的方案,基本電路如圖2-6所示。而在SD卡向單片機(jī)傳輸數(shù)據(jù)時(shí)可以直接連接,因?yàn)樗鼈冎g的電平剛好滿(mǎn)足上述的電平兼容原則,既經(jīng)濟(jì)又實(shí)用。這個(gè)方案需要雙電源供電(一個(gè)5V電源、一個(gè)3.3V電源供電),3.3V電源直接用AMS1117三端線(xiàn)性穩(wěn)壓器從5V電源穩(wěn)壓獲取。圖2-6 SD卡電平轉(zhuǎn)換2.4.3 硬件接口設(shè)計(jì)SD卡提供9Pin的引腳接口便于外圍電路對(duì)其進(jìn)行操作,9Pin的引腳隨工作模式的不同有所差異。在SPI模式下,引腳1(DAT3)作為SPI片選線(xiàn)CS用,引腳2(CMD)用作SPI總線(xiàn)的
23、數(shù)據(jù)輸出線(xiàn)MOSI,而引腳7(DAT0)為數(shù)據(jù)輸入線(xiàn)MISO,引腳5用作時(shí)鐘線(xiàn)(CLK)。除電源和地,保留引腳可懸空,詳細(xì)的引腳定義見(jiàn)表2-1。引腳排列如圖2-7。 圖2-7 SD卡引腳定義表2-1 SD卡引腳功能定義引腳SD模式 SPI模式名稱(chēng)類(lèi)型描述名稱(chēng)類(lèi)型描述1CD/DAT3IO或PP數(shù)據(jù)線(xiàn)3CSI片選2CMDPP命令DII數(shù)據(jù)輸入3VSS1S電源地VSSS電源地4VDDS電源VDDS電源5CLKI時(shí)鐘SCLKI時(shí)鐘6VSS2S電源地VSS2S電源地7DAT0IO或PP數(shù)據(jù)線(xiàn)0DOO或PP數(shù)據(jù)輸出8DAT1IO或PP數(shù)據(jù)線(xiàn)1RSV 保留 9DAT2IO或PP數(shù)據(jù)線(xiàn)2RSV 保留 單片機(jī)與
24、SD卡的接口電如圖2-8所示。圖2-8 單片機(jī)與SD卡接口電2.5 串口電路設(shè)計(jì)本系統(tǒng)設(shè)計(jì)串口電路主要用于通過(guò)串口調(diào)試助手調(diào)試程序和主機(jī)顯示讀寫(xiě)過(guò)程以及結(jié)果。單片機(jī)與PC機(jī)之間采用RS232方式的串行通信。RS232是美國(guó)電子工業(yè)協(xié)會(huì)EIA和Bell公司一起開(kāi)發(fā)的于1969年頒布的通信協(xié)議。它適合傳輸速率在0-20KB/S范圍內(nèi)的通信,現(xiàn)已成為微機(jī)串行通信接口中廣泛應(yīng)用的一種標(biāo)準(zhǔn)。RS232規(guī)定,當(dāng)數(shù)據(jù)傳輸速度小于0-20KB/S且電纜的電容負(fù)荷小于2500pF時(shí),傳輸距離小于15m。本系統(tǒng)采用RS232異步通信方式。為增加信號(hào)在線(xiàn)路上的傳輸距離和提高抗干擾能力,RS232提高了信號(hào)的傳輸電平
25、。該接口采用雙極性信號(hào),公共地線(xiàn)和負(fù)邏輯。對(duì)于發(fā)送端:-5V15V表示邏輯1,+5V+15V表示邏輯O。對(duì)于接收端:電壓低于-3V表示1,高于+3V表示O。它與單片機(jī)的邏輯電平不一致,因此在實(shí)際應(yīng)用時(shí),必須把TTL電平轉(zhuǎn)換為RS232或者對(duì)兩者進(jìn)行逆轉(zhuǎn)換。為方便設(shè)計(jì),提高系統(tǒng)穩(wěn)定性,保護(hù)器件,根據(jù)產(chǎn)品資料,選用MAXIM公司生產(chǎn)的MAX232CPE芯片。MAX232CPE內(nèi)部有2個(gè)線(xiàn)路驅(qū)動(dòng)器(Tx)和2個(gè)接收器(Rx)。內(nèi)部具有兩個(gè)充電泵,把+3.3VDC轉(zhuǎn)換成士10vDC。具有+15KVESD保護(hù),RS232收發(fā)器體積小,應(yīng)用方便,外圍電路簡(jiǎn)單。串行接口電路如圖2-9所示。圖2-9 串口電路
26、2.6 PCB繪制PCB設(shè)計(jì)是硬件工作中的難點(diǎn),前面所有工作都集中體現(xiàn)在電路板上,因而PCB的設(shè)計(jì)直接影響整個(gè)系統(tǒng)的性能。在PCB布線(xiàn)之前先對(duì)原理圖進(jìn)行了電氣規(guī)則檢查,在檢查正確無(wú)誤的情況下開(kāi)始布線(xiàn),布線(xiàn)采用手工布線(xiàn)完成,其中元器件的封裝參考了標(biāo)準(zhǔn)封裝庫(kù),對(duì)于一些Protel中沒(méi)有自帶封裝的元器件按照數(shù)據(jù)手冊(cè)上的規(guī)范進(jìn)行制作,并對(duì)二極管、三極管等極性元件,以及一些非對(duì)稱(chēng)性元件的引腳定義做了仔細(xì)的檢查。在布局上將模擬電路和數(shù)字電路分開(kāi),整體上采用模塊化布局,去藕電容放置在靠近器件的電源/地的地方,并將跳線(xiàn)放置在板子的邊緣。為了系統(tǒng)能夠穩(wěn)定的運(yùn)行,電路板子采用雙層設(shè)計(jì),上層為元件層,為了過(guò)濾高頻干
27、擾,我們?cè)?V電源與地之間及3.3V電源與地之間分別加入了采用0.luF的濾波電容,以濾除高頻干擾。不同層采用相互垂直走線(xiàn)的方式以避免串?dāng)_。布線(xiàn)時(shí)應(yīng)注意以下規(guī)則:(1)各部件之間引線(xiàn)盡量短。(2)發(fā)熱量大的元件不能放在底層,底層不方便放置散熱片。(3)晶振,電解電容等怕熱元件應(yīng)該遠(yuǎn)離發(fā)熱量大的元件,晶振用地線(xiàn)包圍。(4)接插件應(yīng)該放在板子邊緣。(5)開(kāi)關(guān),滑動(dòng)電阻器等手工調(diào)整元件應(yīng)該放在合適手工調(diào)整的地方,盡量放 在板子邊緣,可調(diào)旋鈕應(yīng)朝外。(6)每個(gè)IC都應(yīng)該放置0.1uF和10uF旁路電容,濾除高頻雜波和電源去耦。2.7 本章小結(jié)本章屬于系統(tǒng)的硬件電路設(shè)計(jì)部分,其中簡(jiǎn)要的介紹了系統(tǒng)的組成,
28、參考了相關(guān)的技術(shù)文檔,其中包括MXT8051F04A芯片的DataSheet,以及MAX232的DataSheet和SD官方資料,根據(jù)系統(tǒng)的需要并結(jié)合他人的開(kāi)發(fā)經(jīng)驗(yàn)設(shè)計(jì)了每部分的電路,文中給出了各部分的主要信號(hào)電路連接圖,詳細(xì)的電路原理圖可在附錄A中得到,這一章將作為后續(xù)的基礎(chǔ),可靠的硬件平臺(tái)是本系統(tǒng)得以有效運(yùn)行最有力的保障。第3章 單片機(jī)讀寫(xiě)SD卡的軟件設(shè)計(jì)軟件設(shè)計(jì)主要包括二部分: 對(duì)SD扇區(qū)讀寫(xiě), 單片機(jī)跟上位機(jī)(HOST)依據(jù)RS232傳輸協(xié)議的通信程序設(shè)計(jì)。3.1 SD卡的扇區(qū)讀寫(xiě)SD卡扇區(qū)讀寫(xiě)主要包含:?jiǎn)纹瑱C(jī)普通I/O口模擬SPI協(xié)議,SD卡初始化,SD卡扇區(qū)數(shù)據(jù)的讀寫(xiě)。3.1.1
29、模擬SPI協(xié)議SD卡的SPI通信接口使其可以通過(guò)SPI通道進(jìn)行數(shù)據(jù)讀寫(xiě)。從應(yīng)用的角度來(lái)看,采用SPI接口的好處在于,很多單片機(jī)內(nèi)部自帶SPI控制器,不光給開(kāi)發(fā)上帶來(lái)方便,同時(shí)也見(jiàn)降低了開(kāi)發(fā)成本。對(duì)于不帶SPI串行總線(xiàn)接口的MXT8051F04A單片機(jī),需要用軟件來(lái)模擬SPI總線(xiàn)操作。軟件模擬SPI協(xié)議讀寫(xiě)字節(jié)如圖3-1和3-2。圖3-1 讀取一個(gè)字節(jié)圖3-2 發(fā)送一個(gè)字節(jié)3.1.2 SD卡命令SD卡自身具有完備的命令系統(tǒng),以實(shí)現(xiàn)各項(xiàng)操作。SD卡命令共分為12類(lèi),分別為Class0-Class12。不同的SD卡支持的指令集不盡相同,SP1模式下支持的命令和SD總線(xiàn)模式下支持的命令也不一致。SD卡
30、所有的命令都由6個(gè)字節(jié)組成,發(fā)送的時(shí)候首先發(fā)送最高位。其命令格式如表3-1。表3-1 SD卡命令的格式Byte1Byte2-Byte5Byte6765 0 31 07 001命令號(hào)命令參數(shù)CRC校驗(yàn)碼1Byte1:命令的開(kāi)始位為始終為0;1表明是主機(jī)發(fā)送給SD卡的命令,后面是命令號(hào)(命令號(hào),由指令標(biāo)志定義,如CMD39為即十六進(jìn)制為0x27,那么完整的CMD39第一字節(jié)為,即0x27+0x40)。Byte2-5:命令參數(shù),有些命令沒(méi)有參數(shù)。例如CMD0命令參數(shù)就為0。CMD24為寫(xiě)單塊命令就有命令參數(shù),命令參數(shù)就是要寫(xiě)扇區(qū)的地址。Byte6:前7位為CRC校驗(yàn)位,最后一位為停止位0。命令傳輸過(guò)
31、程采用發(fā)送應(yīng)答機(jī)制過(guò)程如圖3-3所示。 圖3-3 命令應(yīng)答表3-2列取了SPI模式下常用的命令。表3-2 SPI模式下常用命令命令號(hào)功能CMD0復(fù)位SD卡CMD1讀OCR寄存器CMD9讀CSD寄存器CMD10讀CID寄存器CMD12停止讀多塊時(shí)的數(shù)據(jù)傳輸CMD16設(shè)置塊的長(zhǎng)度CMD17寫(xiě)單塊CMD18讀多塊,直到主機(jī)發(fā)送CMD12為止CMD24寫(xiě)單塊CMD25寫(xiě)多塊CMD32設(shè)置擦出塊的起始地址CMD33設(shè)置擦出塊的終止地址CMD38擦出所選的塊CMD55狀態(tài)每一個(gè)命令都有自己命令應(yīng)答格式。在SPI模式中定義了三種應(yīng)答格式,如表3-3、表3-4、表3-5所示。表3-3 二字節(jié)應(yīng)答模式字節(jié)位含義
32、 17開(kāi)始位,始終為06參數(shù)錯(cuò)誤5地址錯(cuò)誤4擦除序列錯(cuò)誤3CRC錯(cuò)誤2非法命令1擦除復(fù)位0閑置狀態(tài) 27溢出,CSD覆蓋6擦除參數(shù)5寫(xiě)保護(hù)非法4卡ECC失敗3卡控制器錯(cuò)誤2未知錯(cuò)誤1寫(xiě)保護(hù)擦除跳過(guò),鎖解鎖失敗0鎖卡表3-5 六字節(jié)應(yīng)答模式字節(jié)位含義17開(kāi)始位,始終為06參數(shù)錯(cuò)誤5地址錯(cuò)誤4擦除序列錯(cuò)誤3CRC錯(cuò)誤2非法命令1擦除復(fù)位0閑置狀態(tài)25全部操作條件寄存器,高位在前表3-3 一字節(jié)應(yīng)答模式字節(jié)位含義 17開(kāi)始位,始終為06參數(shù)錯(cuò)誤5地址錯(cuò)誤4擦除序列錯(cuò)誤3CRC錯(cuò)誤2非法命令1擦除復(fù)位0閑置狀態(tài)3.1.3 SD卡的初始化SD卡的初始化是非常重要的,只有進(jìn)行了正確的初始化,才能進(jìn)行扇區(qū)讀
33、寫(xiě)等操作。根據(jù)SD卡的手冊(cè)說(shuō)明,在初始化過(guò)程中,SPI的時(shí)鐘不能太快,否則會(huì)造初始化失敗。在初始化成功后,應(yīng)盡量提高SPI的速率。在剛開(kāi)始要先發(fā)送至少74個(gè)時(shí)鐘信號(hào),這是必須的,因?yàn)樵谏想姵跗?,電壓的上升過(guò)程據(jù)SD卡組織的計(jì)算約合64個(gè)CLK周期才能到達(dá)SD卡的正常工作電壓,其后的10個(gè)CLK是為了與SD卡同步,如果疏忽了這一點(diǎn),可能使初始化不成功。隨后就是寫(xiě)入命令CMD0,為了實(shí)現(xiàn)兼容性,發(fā)送CMD0后,再發(fā)送CMD55和ACMD41(使用ACMD類(lèi)的指令前應(yīng)先發(fā)CMD55,CMD55起到一個(gè)切換到ACMD類(lèi)命令的作用)確認(rèn)是否有回應(yīng),如果有回應(yīng)則為SD卡,如果等回應(yīng)超時(shí),則可能是MMC卡,
34、再發(fā)CMD1確認(rèn)。完成上面操作后SD卡進(jìn)入SPI模式。主機(jī)還可以繼續(xù)通過(guò)CMD10讀取SD卡的CID寄存器,通過(guò)CMD16設(shè)置數(shù)據(jù)Block長(zhǎng)度,通過(guò)CMD9讀取卡的CSD寄存器。從CSD寄存器中,主機(jī)可獲知卡容量,支持的命令集等重要參數(shù)。SD卡初始化的C語(yǔ)言程序見(jiàn)附錄。其流程圖如圖3-4所示。圖3-4 SD卡初始化3.1.4 數(shù)據(jù)塊的讀寫(xiě)完成SD卡的初始化之后即可進(jìn)行它的讀寫(xiě)操作。SD卡的讀寫(xiě)操作都是通過(guò)發(fā)送SD卡命令完成的。SPI總線(xiàn)模式支持單塊(CMD24)和多塊(CMD25)寫(xiě)操作,多塊操作是指從指定位置開(kāi)始寫(xiě)下去,直到SD卡收到一個(gè)停止命令CMD12才停止。單塊寫(xiě)操作的數(shù)據(jù)塊長(zhǎng)度只能
35、是512 字節(jié)。單塊寫(xiě)入時(shí),命令為CMD24,當(dāng)應(yīng)答為0時(shí)說(shuō)明可以寫(xiě)入數(shù)據(jù),大小為512 字節(jié)。SD卡對(duì)每個(gè)發(fā)送給自己的數(shù)據(jù)塊都通過(guò)一個(gè)應(yīng)答命令確認(rèn),它為1個(gè)字節(jié)長(zhǎng),當(dāng)?shù)?位為00101 時(shí),表明數(shù)據(jù)塊被正確寫(xiě)入SD 卡。寫(xiě)SD卡程序流程圖如圖3-5。具體C程序?qū)崿F(xiàn)如下:unsigned char SD_WriteSector(unsigned char *buffer, unsigned long address)unsigned int count = 0;unsigned char response = 0xff; unsigned int timeout = 0; /寫(xiě)命令超時(shí)addr
36、ess = 9; /address=address*512將塊地址轉(zhuǎn)為字節(jié)地址 SD_Enable(); doresponse = SD_WriteCommand(0x18, address, 0xff);/發(fā)送讀數(shù)據(jù)命令timeout+;while(0x0 != response) & (timeout TRY_TIME); if(0x0 = response) SD_WriteByte(0xff);SD_WriteByte(0xff);/command was a success - now send data SD_WriteByte(0xfe); /寫(xiě)入開(kāi)始字節(jié) 0xfe for(co
37、unt = 0; count 512; count+)/將緩沖區(qū)中的512個(gè)字節(jié)寫(xiě)入SD卡 SD_WriteByte(*buffer+); SD_WriteByte(0xff); SD_WriteByte(0xff); /兩個(gè)字節(jié)的CRC校驗(yàn)碼,不用關(guān)心 response = SD_ReadByte();/讀數(shù)據(jù)響應(yīng)response = response & 0x1f;if(0x05 != response)SD_Disable();/如果返回值是XXX00101說(shuō)明數(shù)據(jù)已經(jīng)被SD卡接受Uart_Send_String(寫(xiě)扇區(qū)失敗rn);return SD_WRITE_ERROR;/*等到SD
38、卡不忙數(shù)據(jù)被接受以后,SD卡要將這些數(shù)據(jù)寫(xiě)入到自身的FLASH中,需要一個(gè)時(shí)間忙時(shí),讀回來(lái)的值為0x00,不忙時(shí),為0xff*/ while(0 = SD_ReadByte(); /等到SD卡不忙 SD_Disable(); SD_WriteByte(0xff);/按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘return SD_SUCCESS; /寫(xiě)扇區(qū)操作成功return SD_WRITE_ERROR;/寫(xiě)扇區(qū)操作失敗圖3-5 寫(xiě)扇區(qū)在需要讀取SD卡中數(shù)據(jù)的時(shí)候,先發(fā)送讀SD卡的命令字CMD17,接收正確的第一個(gè)響應(yīng)命令字節(jié)為0xFE,隨后是512個(gè)字節(jié)的用戶(hù)數(shù)據(jù)塊,最后為2個(gè)字節(jié)的CRC 驗(yàn)證碼。
39、可見(jiàn),讀寫(xiě)SD卡的操作都是在初始化后基于SD卡命令和響應(yīng)完成操作的,讀SD卡的程序流程圖如圖3-6。具體C程序?qū)崿F(xiàn)如下:/* 函數(shù): SD_ReadSector.* 描述: 寫(xiě)扇區(qū).* 輸入: buffer:存放讀出數(shù)據(jù)的緩沖* 輸出: address:要讀取數(shù)據(jù)的地址.* 返回: 如果操作成功返回SD_SUCCESS.失敗返回SD_READ_ERROR*/unsigned char SD_ReadSector(unsigned char *buffer, unsigned long address)unsigned int count = 0; unsigned char response
40、= 0xff;unsigned int timeout = 0; /寫(xiě)命令超時(shí)address = 9; /address=address*512將塊地址轉(zhuǎn)為字節(jié)地址 SD_Enable(); doresponse = SD_WriteCommand(0x11,address,0xff);/寫(xiě)入CMD17timeout+;while(0x0 != response) & (timeout TRY_TIME); if(response = = 0) while(SD_ReadByte()!=0xfe);/start with DATA TOKEN = 0xFESD_ReadByte();for(c
41、ount = 0; count 512; count+) *buffer+ = SD_ReadByte(); SD_ReadByte();/讀校驗(yàn)和 SD_ReadByte(); SD_Disable(); SD_WriteByte(0xff);/按照SD卡的操作時(shí)序在這里補(bǔ)8個(gè)時(shí)鐘 return SD_SUCCESS; /讀扇區(qū)操作成功 Uart_Send_String(讀扇區(qū)失敗rn);return SD_READ_ERROR; /讀扇區(qū)操作失敗圖3-6 讀扇區(qū)3.2 串口程序串口程序主要是串口初始化程序和串口發(fā)送接收程序。串口初始化程序主要完成串口的中斷設(shè)置,波特率設(shè)置,接收使能等。流程
42、圖如圖3-7。圖3-7 串口初始化串口的發(fā)送接收程序比較簡(jiǎn)單,串口發(fā)送程序只需把要發(fā)送的數(shù)據(jù)賦給串口數(shù)據(jù)緩沖寄存器,當(dāng)數(shù)據(jù)發(fā)送完成后,發(fā)送中斷標(biāo)志有硬件置1,申請(qǐng)中斷,CPU響應(yīng)后發(fā)送下一幀數(shù)據(jù),該中斷發(fā)送標(biāo)志位必須有軟件清0。串口接收程序和發(fā)送程序相似,在接收到第8位數(shù)據(jù)時(shí),硬件置位接收中斷標(biāo)志位,進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中把數(shù)據(jù)緩沖寄存器的值賦給存放接收數(shù)據(jù)的臨時(shí)內(nèi)存。該中斷接收標(biāo)志位也必須有軟件清0。第4章 調(diào)試系統(tǒng)調(diào)試由三部分組成:硬件調(diào)試、軟件調(diào)試、軟硬件的聯(lián)合調(diào)試。4.1 系統(tǒng)硬件調(diào)試在板子拿到手后,我們完成電路的焊接工作,在電路的焊接過(guò)程中,我們應(yīng)該一個(gè)一個(gè)模塊的焊接,焊
43、接完一個(gè)模塊,檢查一個(gè)模塊。首先焊接電源相關(guān)的部分,把電源部分焊接完后,檢查下是否存在虛焊、漏焊等情況。如果確認(rèn)無(wú)誤后加上直流電源,查看電源的電流情況,如果電流過(guò)大可能存在短路的情況,應(yīng)立即關(guān)閉電源檢查線(xiàn)路。如果正常,則用萬(wàn)用表檢查各個(gè)輸入輸出點(diǎn)的電壓是否正確。首先,測(cè)試9V電壓是否加到ASMlll7-5.0的輸入端上,測(cè)試中發(fā)現(xiàn)已經(jīng)正確加在了ASMlll7-5.0上,之后檢測(cè)ASMlll7-5.0輸出引腳是否為5V左右,然后測(cè)試5V電壓是否加到ASMlll7-3.3的輸入端上,測(cè)試中發(fā)現(xiàn)已經(jīng)正確加在了ASMlll7-3.3上,之后檢測(cè)ASMlll7-3.3輸出引腳是否為3.3V左右,如果結(jié)果
44、都正確,則表明電源模塊部分正確。在確認(rèn)電源模塊沒(méi)有問(wèn)題的情況下焊接主要芯片,如MXT8051F04A、MAX232等。焊接完這些芯片后,測(cè)量各個(gè)芯片的供電電壓是否正確。雖然電壓加上了,但是不知道單片機(jī)是否真的工作起來(lái)了,于是用示波器觀(guān)察MTX8051晶振的輸出波形是否是11.0592M的正弦波。如果觀(guān)察到了,說(shuō)明單片機(jī)正常工作。主芯片正常工作后,下面就是測(cè)試串口是否正常工作。下載先前編寫(xiě)好的串口發(fā)送接收程序,通過(guò)燒程器把程序下載到單片機(jī)里運(yùn)行,打開(kāi)串口調(diào)試助手,觀(guān)察串口調(diào)試助手是否接收到了發(fā)送的字符。如果接收到了,表明串口電路正常工作。如果不正常工作,首先檢查硬件原理圖是否正確,TXD和RXD
45、是否接反,波特率是否設(shè)置正確,串口調(diào)試助手的打開(kāi)的端口是否和實(shí)際端口不一致。通過(guò)上面的調(diào)試,硬件電路正常工作,硬件調(diào)試工作完成。4.2 軟件調(diào)試在硬件還沒(méi)有準(zhǔn)備好的情況下,在Keil下進(jìn)行了軟件的單步跟蹤。通過(guò)在keil下單步跟蹤調(diào)試發(fā)現(xiàn)一個(gè)問(wèn)題:在SD卡的發(fā)送命令函數(shù)中,定義了一個(gè)無(wú)符號(hào)型變量,初始值賦值3對(duì)其進(jìn)行自減操作,判斷是否大于等于0,如果為假則循環(huán)結(jié)束。結(jié)果導(dǎo)致程序進(jìn)入死循環(huán),運(yùn)行不正常。后來(lái)跟蹤到這里才發(fā)現(xiàn)變量為無(wú)符號(hào)變量,而我卻用來(lái)進(jìn)行自減,當(dāng)變量自減到0時(shí),因?yàn)槭菬o(wú)符號(hào)變量,所以再自減就變?yōu)榱?28,所以進(jìn)入了死循環(huán),把變量改為符號(hào)型變量,問(wèn)題解決。4.3 軟硬件的聯(lián)合調(diào)試硬
46、件制作好后,就開(kāi)始軟硬件的聯(lián)合調(diào)試。其中遇到的問(wèn)題主要有以下幾個(gè):1. 程序里向串口發(fā)送中文字符,結(jié)果串口調(diào)試助手顯示為亂碼。首先檢查程序的波特率是否和串口調(diào)試助手的波特率是否一致,檢查是一致的,后面我把中文改為英文,正常顯示,猜想可能是串口調(diào)試助手版本太低,下載高版本串口調(diào)試助手問(wèn)題解決。2. I/O端口的輸入輸出設(shè)置錯(cuò)誤,導(dǎo)致程序一直不運(yùn)行。MXT8051F04A單片機(jī)和普通的51單片機(jī)在I/O端口上有點(diǎn)不一致,普通51單片機(jī)自動(dòng)識(shí)別輸入輸出。但MXT8051F04A必須設(shè)置其I/O引腳為輸入引腳,還是輸出引腳。開(kāi)始程序全部設(shè)置為輸出引腳了,這樣對(duì)SD卡的讀取全部無(wú)效,導(dǎo)致應(yīng)答命令始終不對(duì)
47、,程序始終不工作。通過(guò)以上的調(diào)試,程序運(yùn)行正常。程序流程如下:首先初始化MXT8051F04A單片機(jī)串口,然后執(zhí)行SD卡初始化操作,SD卡初始化完成后,開(kāi)始往SD卡的7632扇區(qū)寫(xiě)入數(shù)據(jù)(peng yuan zhi),通過(guò)串口調(diào)試助手顯示剛才寫(xiě)入扇區(qū)的數(shù)據(jù),然后再讀取剛才寫(xiě)的扇區(qū)的數(shù)據(jù),顯示結(jié)果見(jiàn)圖4-1。我們把SD卡從電路板上取下,插入到電腦的5合1讀卡器中,通過(guò)WinHex軟件在電腦上查看數(shù)據(jù)是否真的寫(xiě)入到了SD卡中的7632扇區(qū),結(jié)果如圖4-2所示。通過(guò)WinHex的觀(guān)察,數(shù)據(jù)確實(shí)寫(xiě)入了SD卡的7632扇區(qū)。圖4-1 程序運(yùn)行結(jié)果圖4-2 寫(xiě)入SD卡的數(shù)據(jù)圖4-3和圖4-4為制作的實(shí)物照
48、片。圖4-3為單片機(jī)系統(tǒng)和SD卡模塊,圖4-4為SD卡模塊的背面。圖4-3 實(shí)物圖4-4 SD卡模塊背面4.4 本章小結(jié)以上簡(jiǎn)要的敘述了在系統(tǒng)調(diào)試過(guò)程中遇到的一些問(wèn)題和使用的一些調(diào)試手段,其中包括硬件調(diào)試和軟件調(diào)試的問(wèn)題,并給出了問(wèn)題的解決方法,還有許多常見(jiàn)的問(wèn)題,這些問(wèn)題大都是由于本人粗心大意造成的,這里不再加以說(shuō)明。第5章 結(jié)束語(yǔ)5.1 總結(jié)論文的基本目標(biāo):實(shí)現(xiàn)51單片機(jī)對(duì)SD卡的讀寫(xiě)并把讀寫(xiě)過(guò)程進(jìn)行顯示。根據(jù)基本目標(biāo),首先進(jìn)行了相關(guān)資料的收集和整理,其中包括關(guān)于SPI總線(xiàn)協(xié)議和SD卡通信命令以及RS232協(xié)議,單片機(jī)的系統(tǒng)結(jié)構(gòu),通過(guò)對(duì)以上英文資料的翻譯和相關(guān)中文資料的查閱,對(duì)系統(tǒng)實(shí)現(xiàn)的原
49、理和其理論基礎(chǔ)以有了初步的認(rèn)識(shí)。再通過(guò)制作硬件的制作對(duì)系統(tǒng)的功能和接口有了深刻的理解。最后通過(guò)軟、硬件調(diào)試實(shí)現(xiàn)了以下功能:(l)通過(guò)硬件測(cè)試工具,完成了對(duì)硬件電路的測(cè)試,為實(shí)現(xiàn)整個(gè)系統(tǒng)的功能奠定了基礎(chǔ)。(2)SD扇區(qū)讀寫(xiě)的實(shí)現(xiàn)。通過(guò)對(duì)SD卡協(xié)議的理解,使用相應(yīng)的控制命令完成了對(duì)SD卡扇區(qū)的讀寫(xiě)。(3)對(duì)讀寫(xiě)過(guò)程進(jìn)行顯示。通過(guò)向串口調(diào)試助手顯示扇區(qū)的讀寫(xiě)過(guò)程和數(shù)據(jù)。通過(guò)以上的各個(gè)實(shí)驗(yàn)進(jìn)一步加深了對(duì)原理和協(xié)議的理解,增加了實(shí)際動(dòng)手能力,對(duì)所學(xué)的知識(shí)進(jìn)一步鞏固。5.2 展望由于時(shí)間有限,本系統(tǒng)還存在一些需要改進(jìn)和進(jìn)一步完善的地方,包括:(l)本系統(tǒng)沒(méi)有實(shí)現(xiàn)FAT32文件系統(tǒng),如果實(shí)現(xiàn)了FAT32文件
50、系統(tǒng)將提高SD卡的存儲(chǔ)效率,系統(tǒng)的可用性和兼容性。(2) 讀寫(xiě)速度有限,如果采用4線(xiàn)并行方式對(duì)扇區(qū)進(jìn)行讀寫(xiě),速度將得到明顯的提高。參考文獻(xiàn)1Microsoft Extens ible Firmware Initiative FAT32 File System Specification.Vers ion 1.03,December 6,2000.Microsoft Corporation2W86L388D Winbond Hos t Interface SD/MMC Memory Card Bridge.Vers ion 1.0,May 17,20053SD卡官方資料4周立功,等.ARM嵌入式
51、系統(tǒng)軟件開(kāi)發(fā)實(shí)例( 一) M .北京:北京航空航天大學(xué)出版社, 20055宋群生, 宋亞瓊.硬盤(pán)扇區(qū)讀寫(xiě)技術(shù)- 修復(fù)硬盤(pán)與恢復(fù)文件M .北京:機(jī)械工業(yè)出版社, 20046李華等.51系列單片機(jī)實(shí)用接口技術(shù).北京航空航大大學(xué)出版社,2002第9版7賴(lài)文麟.8051單片機(jī)嵌入式系統(tǒng)應(yīng)用,科學(xué)出版社,20028何立民.單片機(jī)應(yīng)用技術(shù)選編()l一(7).北京航空航天大學(xué)出版社,20009何立民.單片機(jī)高級(jí)教程一應(yīng)用與設(shè)計(jì).北京航空航天大學(xué)出版社,2000.10南建輝,熊鳴,王軍.MCS一51單片機(jī)原理與應(yīng)用實(shí)例M 北京:清華大學(xué)出版社,200311李玉峰,倪虹霞.MCS一51系列單片機(jī)原理與接口技術(shù)術(shù)
52、M 北京:人民郵電出版社,200.412維提,郭強(qiáng).液晶顯示應(yīng)用技術(shù).北京:電子土業(yè)出版社,200013鄧龍軍.單片機(jī)控制系統(tǒng)的理論與應(yīng)用研究14段九州.電源電路實(shí)用設(shè)計(jì)手冊(cè).沈陽(yáng):遼寧科學(xué)技術(shù)出版社,2002.815何立民,萬(wàn)光毅,嚴(yán)義.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程M.北京:北京航空航天大學(xué)出版社,2003.16沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)M.北京:清華大學(xué)出版社,200217李朝青.單片機(jī)原理及接口技術(shù)M.北京:北京航空航天大學(xué)出版社,199818王福瑞.單片機(jī)微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全M.北京航天航空大學(xué)出版社,1999致謝本文是在導(dǎo)師周銀祥老師的精心指導(dǎo)下完成的。周老師對(duì)我的畢業(yè)設(shè)計(jì)傾注了
53、大量的心血,使我在獲取知識(shí)的同時(shí),綜合能力得到較大的提高。學(xué)位論文從選題到最后定稿,始終得到了周老師的精心指導(dǎo)和幫助。在學(xué)術(shù)上,周老師淵博精深的知識(shí),務(wù)實(shí)嚴(yán)謹(jǐn)、精益求精的治學(xué)態(tài)度和一絲不茍的工作作風(fēng),使我受益匪淺。同時(shí)衷心地感謝創(chuàng)新實(shí)驗(yàn)室的師兄師姐、師弟師妹在我畢業(yè)設(shè)計(jì)期間給予的關(guān)心和幫助。還要感謝所有本科期間在學(xué)習(xí)、生活上給予我關(guān)心、支持、鼓勵(lì)和熱心幫助我的老師、同學(xué)和朋友。同樣感謝我的父母家人在生活上給我的關(guān)心和鼓勵(lì),學(xué)業(yè)的完成離不開(kāi)他們背后的支持。最后對(duì)各位專(zhuān)家老師仔細(xì)審閱我的論文表示感謝,期盼給予批評(píng)指正。附錄附錄一:?jiǎn)纹瑱C(jī)讀寫(xiě)SD卡的完整原理圖附圖1-1 SD卡接口電路附圖1-2 電平轉(zhuǎn)換電路附圖1-3 單片機(jī)最小系統(tǒng)、電源和串口電路附錄二:?jiǎn)纹瑱C(jī)讀寫(xiě)SD卡的完整程序/* *File nam
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 泰山科技學(xué)院《代數(shù)與幾何基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 贛南醫(yī)學(xué)院《影視創(chuàng)意寫(xiě)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 南方科技大學(xué)《資本論選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 華科大工程傳熱學(xué)教案05對(duì)流換熱計(jì)算
- 贛西科技職業(yè)學(xué)院《西語(yǔ)國(guó)家文化講座》2023-2024學(xué)年第二學(xué)期期末試卷
- 宿州職業(yè)技術(shù)學(xué)院《水彩畫(huà)創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 南寧師范大學(xué)《多元統(tǒng)計(jì)分析實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 華北水利水電大學(xué)《銷(xiāo)售管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 洞穴生物標(biāo)志物解析-洞察及研究
- 鄭州師范學(xué)院《三維游戲角色設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 泉州市石獅市2024-2025學(xué)年六年級(jí)下學(xué)期小升初數(shù)學(xué)考前押題卷含解析
- 戶(hù)外廣告安全
- 血透工程師試題及答案
- 房屋拆除協(xié)議書(shū)范本
- 2025年河北省安全員A證考試試題題庫(kù)
- 精神科安全用藥管理
- 撬裝加油站承包合同協(xié)議書(shū)
- 《自發(fā)性腹膜炎》課件
- 高效智慧的廠(chǎng)站網(wǎng)一體化解決方案
- 2025年福建泉州南安市國(guó)有企業(yè)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論