您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>接口定義>

TMS320VC5421與CF存儲(chǔ)卡的接口實(shí)現(xiàn)

2010年09月16日 16:15 本站整理 作者:佚名 用戶(hù)評(píng)論(0
關(guān)鍵字:TMS320VC54(8483)
本文實(shí)現(xiàn)了TMS320VC5421與CompactFlash存儲(chǔ)卡(以下簡(jiǎn)稱(chēng)CF卡)的接口。利用DSP的高速數(shù)字信號(hào)處理能力可完成數(shù)據(jù)的實(shí)時(shí)采集和處理;利用CF卡的容量大、非易失性和即插即用的特性可完成數(shù)據(jù)保存和傳輸。因此TMS320VC5401與CF卡的接口在工業(yè)檢測(cè)前端系統(tǒng)的應(yīng)用中有很好的前景。

1 TMS320VC5421芯片介紹

數(shù)字信號(hào)處理器(DSP)是數(shù)字信號(hào)處理理論與超大規(guī)模集成電路VLSI)技術(shù)融合的結(jié)晶。TMS320VC5421更是定點(diǎn)系列DSP中的佼佼者。其系統(tǒng)框架如圖1所示。



TMS320VC5421有4個(gè)主要特點(diǎn):

(1)TMS320VC5421包含兩個(gè)獨(dú)立的DSP子系統(tǒng)。每個(gè)子系統(tǒng)都有獨(dú)立的程序空間、數(shù)據(jù)空間和I/O空間,且每個(gè)子系統(tǒng)分別具有片
內(nèi)4套總線(xiàn)即4條地址總線(xiàn)、4條數(shù)據(jù)總線(xiàn)(3種數(shù)據(jù)總線(xiàn)用來(lái)訪(fǎng)問(wèn)片內(nèi)數(shù)據(jù)空間,1條數(shù)據(jù)總線(xiàn)用來(lái)訪(fǎng)問(wèn)程序空間)和2個(gè)地址發(fā)生輔助寄存器來(lái)實(shí)現(xiàn)并行運(yùn)算和并行存儲(chǔ)功能,提高CPU的運(yùn)算效率。

(2)TMS320VC5421的每一個(gè)子系統(tǒng)都有6個(gè)獨(dú)立的DMA通道,且可對(duì)每個(gè)DMA通道進(jìn)行獨(dú)立編程。TMS320VC5421的兩個(gè)子系統(tǒng)的所有程序空間、數(shù)據(jù)空間和I/O空間都在每個(gè)DMA通道的尋址范圍內(nèi)。

(3)TMS320VC5421的工作頻率最高可達(dá)到100MIPS,且兩個(gè)子系統(tǒng)的工作時(shí)鐘統(tǒng)一由子系統(tǒng)A控制。

(4)TMS320VC5421的兩個(gè)子系統(tǒng)之間同步信號(hào)可以由IPIRQ中斷提供。

TMS320VC5421有3種方式實(shí)現(xiàn)不同子系統(tǒng)中的數(shù)據(jù)傳輸:

(1)將數(shù)據(jù)存放在兩個(gè)子系統(tǒng)共享的128KB程序空間中,由共享的128KB程序空間實(shí)現(xiàn)數(shù)據(jù)傳遞。

(2)將數(shù)據(jù)存放在與兩個(gè)系統(tǒng)分別相連的16字的FIFO中,由FIFO實(shí)現(xiàn)兩個(gè)子系統(tǒng)的數(shù)據(jù)傳遞。

(3)通過(guò)DMA將數(shù)據(jù)傳輸?shù)饺我庾酉到y(tǒng)的任意空間。

2 CompactFlash存儲(chǔ)卡產(chǎn)品介紹

CompactFlash技術(shù)是由CompactFlash協(xié)會(huì)(CFA)提出的一種與PC機(jī)的ATA接口標(biāo)準(zhǔn)兼容的新技術(shù),它致力于開(kāi)發(fā)一種先進(jìn)的、速度快、容量大、體積小、質(zhì)量輕、功耗低且可移動(dòng)的數(shù)字信息存儲(chǔ)產(chǎn)品。



由圖2可知,CF卡包含兩個(gè)基本部分:片內(nèi)的芯片控制器和片內(nèi)的存儲(chǔ)模塊。片內(nèi)的存儲(chǔ)模塊用來(lái)存儲(chǔ)數(shù)字信息,片內(nèi)的芯片控制器用來(lái)實(shí)現(xiàn)與主機(jī)的接口及控制數(shù)據(jù)在存儲(chǔ)模塊中的傳輸。

2.1 CF卡控制器

CF卡控制器中包含兩組寄存器:命令寄存器和控制寄存器。命令寄存器用來(lái)接受命令和傳輸數(shù)據(jù);控制寄存器用作磁盤(pán)控制。這兩個(gè)寄存器組通過(guò)REG信號(hào)進(jìn)行區(qū)分??刂萍拇嫫鹘M主要用于控制CF卡的工作方式;命令寄存器組被分配在與ATA標(biāo)準(zhǔn)兼容的地址空間。當(dāng)CF卡工作在I/O方式下,命令寄存器組的地址空間為IF0H~1F7H和3F6H~3F7H;當(dāng)CF卡工作在寄存器方式下,命令寄存器組的地址空間為1F0H~1FFH。

當(dāng)CF卡工作在存儲(chǔ)器方式下,CF卡按照ATA標(biāo)準(zhǔn)以寄存器方式傳送數(shù)據(jù)、命令和地址。些寄存器除數(shù)據(jù)寄存器為16位外,其它寄存器均為8位。

數(shù)據(jù)寄存器(R/W):這是一個(gè)16位數(shù)據(jù)寄存器,用于對(duì)扇區(qū)的讀寫(xiě)操作。主機(jī)通過(guò)該寄存器向CF卡卡控制器寫(xiě)入或從CF卡控制寄存器讀出扇區(qū)緩沖區(qū)的數(shù)據(jù)。

錯(cuò)誤寄存器(R)和特性寄存器(W):錯(cuò)誤寄存器反映控制寄存器在診斷方式或操作方式下的錯(cuò)誤原因。特性寄存器一般不使用。

扇區(qū)數(shù)寄存器(R/W):用來(lái)記錄讀、寫(xiě)命令的扇區(qū)數(shù)目。

扇區(qū)號(hào)寄存器(R/W):用來(lái)記錄讀、寫(xiě)和校驗(yàn)命令指定的起始扇區(qū)號(hào)。

柱面號(hào)寄存器(R/W):用來(lái)記錄讀、寫(xiě)、校驗(yàn)和尋址命令指定的柱面號(hào)。

驅(qū)動(dòng)器/磁頭寄存器(R/W):記錄讀、寫(xiě)、校驗(yàn)和尋道命令指定的驅(qū)動(dòng)器號(hào)、磁頭號(hào)和尋址方式(CHS模式或LBA模式)。

狀態(tài)寄存器(R)和命令寄存器(W):狀態(tài)寄存器反映CF卡驅(qū)動(dòng)器執(zhí)行命令后的狀態(tài),讀該寄存器要清除中斷請(qǐng)求信號(hào)。命令寄存器接收主機(jī)發(fā)送的CF卡工作的命令控制字。

2.2 CF卡的編址方式

CF卡的扇區(qū)尋址有兩種方式:物理尋址方式(CHS)和邏輯尋址方式(LBA)。物理尋址方式使用柱面、磁頭和扇區(qū)號(hào)表示一個(gè)特定的扇區(qū)。起始扇區(qū)是0磁道、0磁頭、1扇區(qū),接下來(lái)是2扇區(qū),一直到EOF扇區(qū);接下來(lái)是同一柱面1頭、1扇區(qū)等。邏輯尋址方式將整個(gè)CF卡同一尋址。邏輯塊地址和物理地址的關(guān)系為:

LBA地址=(柱面號(hào)×磁頭數(shù)+磁頭號(hào)) ×扇區(qū)數(shù)+扇區(qū)數(shù)-1

采用邏輯尋址方式,沒(méi)有磁頭和磁道的轉(zhuǎn)換操作,因此在訪(fǎng)問(wèn)連續(xù)扇區(qū)時(shí),操作速度比物理尋址方式塊。

3 磁盤(pán)文件管理系統(tǒng)簡(jiǎn)介

為了能夠?qū)Υ笕萘看疟P(pán)上的數(shù)據(jù)進(jìn)行有效的管理,Win9X在磁盤(pán)上建立了一個(gè)文件系統(tǒng)。該文件系統(tǒng)可對(duì)磁盤(pán)上的數(shù)據(jù)進(jìn)行有效的管理。

磁盤(pán)文件系統(tǒng)將整個(gè)磁盤(pán)劃分為4個(gè)獨(dú)立的區(qū)域,每個(gè)區(qū)域包含磁盤(pán)的獨(dú)立信息,且這4個(gè)獨(dú)立區(qū)域中的信息組合成一個(gè)完整有效的磁盤(pán)文件管理系統(tǒng),如表1所示。

(1)DOS引導(dǎo)扇區(qū):該扇區(qū)是磁盤(pán)的引導(dǎo)扇區(qū),包含一些重要的磁盤(pán)系統(tǒng)信息,如:磁盤(pán)總共包含多少個(gè)扇區(qū),每個(gè)族包含多少個(gè)扇區(qū),每個(gè)扇區(qū)包含多少個(gè)字節(jié)等。通過(guò)這些磁盤(pán)系統(tǒng)信息可以計(jì)算出磁盤(pán)的容量、FAT表和FDT表的起始位置以及文件數(shù)據(jù)存放的起始位置等。

(2)文件分配區(qū)(FAT):文件分配區(qū)包含兩個(gè)完全相同的FAT表,其中一個(gè)FAT表用作備份FAT。每個(gè)FAT表以16字節(jié)為個(gè)單元。FAT的每一個(gè)單元都映射磁盤(pán)上的一個(gè)簇,其中的值就反映了該簇的使用情況。

(3)根目錄區(qū)(FDT):根目錄區(qū)專(zhuān)用來(lái)存放根目錄下的文件信息。根目錄下的每一個(gè)文件在該目錄區(qū)都對(duì)應(yīng)一個(gè)32字節(jié)的目錄項(xiàng)。這32字節(jié)的目錄項(xiàng)包含文件的名稱(chēng)、屬性、文件的長(zhǎng)度、文件在磁盤(pán)上的起始簇號(hào)、文件建立和最后修改和日期和時(shí)間等。這些32字節(jié)的小單元互相首尾相接,中間沒(méi)有任何分隔標(biāo)志。

(4)文件數(shù)據(jù)區(qū):該區(qū)是磁盤(pán)存放所有信息的場(chǎng)所為了便于管理,文件管理系統(tǒng)以簇為單位將文件分配在文件數(shù)據(jù)區(qū)的存儲(chǔ)空間。1族總是2n個(gè)連續(xù)扇區(qū)。文件在文件數(shù)據(jù)區(qū)存放的起始位置存放在其對(duì)應(yīng)目錄下的FDT表中,當(dāng)文件的長(zhǎng)度大于1K時(shí),文件數(shù)據(jù)區(qū)的后續(xù)位置保存在FAT表中,即對(duì)應(yīng)的FAT單元中的數(shù)值就是文件的后續(xù)部分所存放位置的簇號(hào)。

文件管理系統(tǒng)通過(guò)以上4個(gè)區(qū)域?qū)崿F(xiàn)對(duì)磁盤(pán)上的文件進(jìn)行有效的管理。文件管理系統(tǒng)將文件數(shù)據(jù)存放在文件數(shù)據(jù)區(qū),將文件的屬性存放在文件對(duì)應(yīng)目錄下的FDT表中,將文件的存放位置存放在FAT表中。因此文件管理系統(tǒng)通過(guò)FAT表和FDT表可以很方便地對(duì)文件數(shù)據(jù)區(qū)的文件進(jìn)行管理。

4 TMS320VC5421與CF卡的硬件接口

TMS320VC5421對(duì)外有I/O、程序和數(shù)據(jù)3個(gè)并行的16位訪(fǎng)問(wèn)空間,分別由對(duì)應(yīng)的空間選擇信號(hào)線(xiàn)選通。本硬件電路選用TMS320VC5421的I/O空間與CF卡接口,采用數(shù)據(jù)線(xiàn)分時(shí)復(fù)用方式。

如圖3所示,本電路使用DSP子系統(tǒng)A與前向通道相連。DSP子系統(tǒng)A對(duì)采集到的數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,完成數(shù)據(jù)的實(shí)時(shí)處理后,通過(guò)核間的3種數(shù)據(jù)傳輸方式將采集到的數(shù)據(jù)發(fā)送到DSP子系統(tǒng)B中,并且通過(guò)核間中斷IPIRQ通知DSP子系統(tǒng)B可以存儲(chǔ)CF卡。



4.1 CF卡即插即用的實(shí)現(xiàn)

(1)硬件提供判斷條件。CF卡為了實(shí)現(xiàn)即插即用的功能,在自身電路上提供了兩個(gè)用來(lái)檢測(cè)CF卡是否存在的管腳(CD1、CD2)。CD1和CD2的有效電平為低電平,即當(dāng)主機(jī)檢測(cè)到與其相連的CD1和CD2兩個(gè)管腳同時(shí)為低電平時(shí),可判斷出CF卡與主機(jī)相連;當(dāng)主機(jī)檢測(cè)到與其相連的CD1和CD2有一個(gè)管腳不為低,則可判斷出CF卡未與主機(jī)相連。

(2)軟件實(shí)現(xiàn)。首選定義全局變量(如:IsExist)用于記錄CF卡是否與主機(jī)相連,當(dāng)IsExist為0時(shí)表示CF卡未與主機(jī)相連;當(dāng)IsExist為1時(shí)表示CF卡與主機(jī)相連。其次在每次操作CF卡時(shí)檢測(cè)CF卡的CD1和CD2管腳。當(dāng)檢測(cè)到CD1和CD2管腳為低電平且IsExist為0時(shí)復(fù)位CF卡,重新檢測(cè)CF卡的FAT表統(tǒng)計(jì)還剩余多少空間可以分配,檢測(cè)完FAT表后置變量IsExist為1。當(dāng)檢測(cè)到CD1和CD2管腳為低電平且IsExist為1時(shí),繼續(xù)CF卡的正常操作。當(dāng)檢測(cè)到CD1和CD2為高時(shí),停止CF卡操作,置變量IsExist為0。

4.2 文件的存儲(chǔ)

向CF卡創(chuàng)建文件的流程如圖4所示。在CF卡初始化后(包含CF卡上電復(fù)位和統(tǒng)計(jì)剩余空間等),DSP向CF卡存儲(chǔ)數(shù)據(jù)的核心部分就是首先向一些必要的寄存器填寫(xiě)必要的信息,如向扇區(qū)號(hào)寄存器填寫(xiě)讀寫(xiě)數(shù)據(jù)的起始扇區(qū)號(hào)(LBA地址)和扇區(qū)數(shù)寄存器填寫(xiě)讀寫(xiě)數(shù)據(jù)所占的扇區(qū)個(gè)數(shù)等。然后向CF卡的命令寄存器寫(xiě)入CF卡操作的命令字,如寫(xiě)操作則向CF卡的命令寄存器寫(xiě)入30H,讀操作向CF卡的命令寄存器寫(xiě)入20H等。

非常好我支持^.^

(1) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?