- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
TMS320VC5421与CF存储卡的接口实现
2.2 CF卡的编址方式
CF卡的扇区寻址有两种方式:物理寻址方式(CHS)和逻辑寻址方式(LBA)。物理寻址方式使用柱面、磁头和扇区号表示一个特定的扇区。起始扇区是0磁道、0磁头、1扇区,接下来是2扇区,一直到EOF扇区;接下来是同一柱面1头、1扇区等。逻辑寻址方式将整个CF卡同一寻址。逻辑块地址和物理地址的关系为:
LBA地址=(柱面号×磁头数+磁头号) ×扇区数+扇区数-1
采用逻辑寻址方式,没有磁头和磁道的转换操作,因此在访问连续扇区时,操作速度比物理寻址方式块。
3 磁盘文件管理系统简介
为了能够对大容量磁盘上的数据进行有效的管理,Win9X在磁盘上建立了一个文件系统。该文件系统可对磁盘上的数据进行有效的管理。
磁盘文件系统将整个磁盘划分为4个独立的区域,每个区域包含磁盘的独立信息,且这4个独立区域中的信息组合成一个完整有效的磁盘文件管理系统。
(1)DOS引导扇区:该扇区是磁盘的引导扇区,包含一些重要的磁盘系统信息,如:磁盘总共包含多少个扇区,每个族包含多少个扇区,每个扇区包含多少个字节等。通过这些磁盘系统信息可以计算出磁盘的容量、FAT表和FDT表的起始位置以及文件数据存放的起始位置等。
(2)文件分配区(FAT):文件分配区包含两个完全相同的FAT表,其中一个FAT表用作备份FAT。每个FAT表以16字节为个单元。FAT的每一个单元都映射磁盘上的一个簇,其中的值就反映了该簇的使用情况。
(3)根目录区(FDT):根目录区专用来存放根目录下的文件信息。根目录下的每一个文件在该目录区都对应一个32字节的目录项。这32字节的目录项包含文件的名称、属性、文件的长度、文件在磁盘上的起始簇号、文件建立和最后修改和日期和时间等。这些32字节的小单元互相首尾相接,中间没有任何分隔标志。
(4)文件数据区:该区是磁盘存放所有信息的场所为了便于管理,文件管理系统以簇为单位将文件分配在文件数据区的存储空间。1族总是2n个连续扇区。文件在文件数据区存放的起始位置存放在其对应目录下的FDT表中,当文件的长度大于1K时,文件数据区的后续位置保存在FAT表中,即对应的FAT单元中的数值就是文件的后续部分所存放位置的簇号。
文件管理系统通过以上4个区域实现对磁盘上的文件进行有效的管理。文件管理系统将文件数据存放在文件数据区,将文件的属性存放在文件对应目录下的FDT表中,将文件的存放位置存放在FAT表中。因此文件管理系统通过FAT表和FDT表可以很方便地对文件数据区的文件进行管理。
4 TMS320VC5421与CF卡的硬件接口
TMS320VC5421对外有I/O、程序和数据3个并行的16位访问空间,分别由对应的空间选择信号线选通。本硬件电路选用TMS320VC5421的I/O空间与CF卡接口,采用数据线分时复用方式。
如图3所示,本电路使用DSP子系统A与前向通道相连。DSP子系统A对采集到的数据进行实时处理,完成数据的实时处理后,通过核间的3种数据传输方式将采集到的数据发送到DSP子系统B中,并且通过核间中断IPIRQ通知DSP子系统B可以存储CF卡。
4.1 CF卡即插即用的实现
(1)硬件提供判断条件。CF卡为了实现即插即用的功能,在自身电路上提供了两个用来检测CF卡是否存在的管脚(CD1、CD2)。CD1和CD2的有效电平为低电平,即当主机检测到与其相连的CD1和CD2两个管脚同时为低电平时,可判断出CF卡与主机相连;当主机检测到与其相连的CD1和CD2有一个管脚不为低,则可判断出CF卡未与主机相连。
(2)软件实现。首选定义全局变量(如:IsExist)用于记录CF卡是否与主机相连,当IsExist为0时表示CF卡未与主机相连;当IsExist为1时表示CF卡与主机相连。其次在每次操作CF卡时检测CF卡的CD1和CD2管脚。当检测到CD1和CD2管脚为低电平且IsExist为0时复位CF卡,重新检测CF卡的FAT表统计还剩余多少空间可以分配,检测完FAT表后置变量IsExist为1。当检测到CD1和CD2管脚为低电平且IsExist为1时,继续CF卡的正常操作。当检测到CD1和CD2为高时,停止CF卡操作,置变量IsExist为0。
4.2 文件的存储
在CF卡初始化后(包含CF卡上电复位和统计剩余空间等),DSP向CF卡存储数据的核心部分就是首先向一些必要的寄存器填写必要的信息,如向扇区号寄存器填写读写数据的起始扇区号(LBA地址)和扇区数寄存器填写读写数据所占的扇区个数等。然后向CF卡的命令寄存器写入CF卡操作的命令字,如写操作则向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H等。
来源:维库开发网
闂傚倸鍊搁崐椋庣矆娴h櫣绀婂┑鐘插€寸紓姘辨喐閺冨牄鈧線寮介鐐茶€垮┑锛勫仧缁垶寮悩缁樷拺闂侇偆鍋涢懟顖涙櫠椤斿浜滄い鎾跺仦閸嬨儳鈧娲滈幊鎾诲煡婢跺ň鏋庨柟閭﹀枛缁插潡姊婚崒娆戝妽闁诡喖鐖煎畷鎰板即閻忚缍婇幃婊堟寠婢跺矈鍞甸梺璇插嚱缂嶅棝宕伴弽顐や笉闁哄被鍎查悡娆徝归悡搴f憼婵炴嚪鍥ㄧ厵妞ゆ棁宕电粣鏃€鎱ㄦ繝鍛仩闁告牗鐗犲鎾偄閸濄儱绲垮┑锛勫亼閸婃垿宕硅ぐ鎺撴櫇妞ゅ繐鐗勯埀顑跨閳诲酣骞樺畷鍥舵Ч婵$偑鍊栭悧妤冨枈瀹ュ鍊垫い鎺嗗亾闁宠鍨块幃娆撳矗婢舵ɑ锛侀梻浣规偠閸斿酣宕伴弽褜鍤曞┑鐘崇閺呮悂鏌ㄩ悤鍌涘 | More...
闂傚倸鍊搁崐椋庣矆娴h櫣绀婂┑鐘插€寸紓姘辨喐閺冨牄鈧線寮介鐐茶€垮┑锛勫仧缁垶寮悩缁樷拺闂侇偆鍋涢懟顖涙櫠椤斿浜滄い鎾跺仦閸嬨儳鈧娲滈幊鎾诲煡婢跺ň鏋庨柟閭﹀枛缁插潡姊婚崒娆戝妽闁诡喖鐖煎畷鎰板即閻忚缍婇幃婊堟寠婢跺矈鍞甸梺璇插嚱缂嶅棝宕伴弽顐や笉闁哄被鍎查悡娆徝归悡搴f憼婵炴嚪鍥ㄧ厵妞ゆ棁宕电粣鏃€鎱ㄦ繝鍛仩闁告牗鐗犲鎾偄閸濄儱绲垮┑锛勫亼閸婃垿宕硅ぐ鎺撴櫇妞ゅ繐鐗勯埀顑跨閳诲酣骞樺畷鍥舵Ч婵$偑鍊栭幐楣冨窗鎼淬劍鍋熷ù鐓庣摠閳锋垿鏌涘☉姗堟敾閻庡灚鐟╅弻宥堫檨闁告挾鍠庨锝嗙節濮橆厽娅㈤梺璺ㄥ櫐閹凤拷
闂傚倸鍊搁崐椋庣矆娓氣偓楠炲鏁撻悩鍐蹭罕闂佸搫娲ㄦ慨椋庣矆婵犲倵鏀介柣妯哄级閹兼劙鏌涚仦璇插闁哄本娲熷畷鐓庘攽閹邦厜褔姊虹粙娆惧剭闁告柨鐭傚﹢渚€姊洪幐搴g畵闁瑰啿閰e鎶芥偄閸忚偐鍘介梺鍝勫€圭€笛囧吹閸ヮ剚鐓欐い鏃€顑欏ḿ鎰版煙瀹勭増鍤囬柟顔惧厴楠炲秹顢氶崨顔х偛鈹戦敍鍕杭闁稿﹥鐗犻獮鎰節濮橆剛鐣洪梺绋挎湰濮樸劑寮抽敃鍌涚叄闊洦鍑瑰ḿ鎰版煕韫囨梻鐭掗柡灞剧☉楗即鍩€椤掑倻鐭嗗〒姘e亾鐎殿噮鍋婇獮搴ㄦ嚍閵壯冨箺闂備胶绮敋鐎殿喖鐖奸獮鏍箛椤掑鍞甸悷婊冪灱閸掓帒鈻庨幘铏К闂侀潧绻堥崐鏍疾閹间焦鐓ラ柣鏇炲€圭€氾拷
闂傚倸鍊搁崐椋庣矆娴h櫣绀婂┑鐘插€寸紓姘辨喐閺冨牄鈧線寮介鐐茶€垮┑锛勫仧缁垶寮悩缁樷拺闂侇偆鍋涢懟顖涙櫠椤斿浜滄い鎾跺仦閸嬨儳鈧娲滈幊鎾诲煡婢跺ň鏋庨柟閭﹀枛缁插潡姊婚崒娆戝妽闁诡喖鐖煎畷鎰板即閻忚缍婇幃婊堟寠婢跺矈鍞甸梺璇插嚱缂嶅棝宕伴弽顐や笉闁哄被鍎查悡娆徝归悡搴f憼婵炴嚪鍥ㄧ厵妞ゆ棁宕电粣鏃€鎱ㄦ繝鍛仩闁告牗鐗犲鎾偄閸濄儱绲垮┑锛勫亼閸婃垿宕硅ぐ鎺撴櫇妞ゅ繐鐗勯埀顑跨閳诲酣骞樺畷鍥舵Ч婵$偑鍊栫敮鎺楀磹閸噮鐎舵い鏂跨毞閺€浠嬪箳閹惰棄纾归柡鍥╁Л閸嬫挸顫濋鈧Σ濠氭懚閻愮儤鐓ラ柣鏇炲€圭€氾拷
闂傚倸鍊峰ù鍥敋瑜忛幑銏ゅ箛椤旇棄搴婇梺褰掑亰閸犳帡宕戦幘鎰佹僵妞ゆ劑鍨圭粊顕€姊洪棃娑欘棞闁稿﹤顭烽獮鎴﹀礋椤掑倻鎳濆銈嗙墬绾板秴鈻嶆繝鍥ㄢ拻濞撴埃鍋撴繛浣冲洦鏅煫鍥ㄧ☉閻掑灚銇勯幒鎴濐仼闁藉啰鍠栭弻鏇㈠醇濠垫劖效闂佺ǹ顑冮崝宥夊Φ閸曨垰鍐€闁靛⿵濡囧▓銈嗙節閳封偓閸曨剛顦伴梺鍝勭焿缂嶄線鐛Ο鍏煎枂闁告洦鍘归埀顒€锕娲偡閺夋寧些濡炪倖鍨甸ˇ鐢稿Υ娴e壊娼ㄩ柍褜鍓熼獮鍐ㄢ堪閸繂鑰垮┑顔筋殔濡寮ぐ鎺撯拻濞达綀妫勯崥褰掓煕閻樿尙肖婵炲棎鍨芥俊鑸靛緞婵犲嫷鍞甸梻浣芥硶閸o箓骞忛敓锟�