999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SD卡的DSP自舉模塊設計

2014-06-27 03:13:40毅,朱磊,任靜,郭
西安工程大學學報 2014年4期
關鍵詞:單片機程序用戶

董 毅,朱 磊,任 靜,郭 力

(1.西安工程大學 電子信息學院,陜西 西安 710048;2.西安理工大學 科技處,陜西 西安 710048)

0 引 言

TMS320VC54x系列DSP應用廣泛,但是這類DSP處理器掉電后易丟失用戶程序代碼,所以要對這類DSP處理器的電子系統進行自舉設計.“自舉”是指DSP系統上電時,將放在外部低速ROM中的用戶程序代碼加載到高速的RAM中,以便快速取址、譯址和執行用戶應用程序.

自舉模塊是TMS320VC54x系列DSP應用電子系統中不可或缺的重要組成部分.DSP自舉加載方式多樣,模塊多變.目前的DSP自舉模塊按照存儲代碼器件類型不同可分為兩類:一類是基于靜態存儲器的自舉模塊[1-3],一類是基于處理器的自舉模塊[4-5].基于靜態存儲器EEPROM的自舉模塊[1-2],具有電路簡單,需要擴展的器件少、成本較低等優點,而基于靜態存儲器FLASH的自舉模塊[3],相比EEPROM自舉模塊,自舉文件容量得到一定提高,基于處理器的自舉模塊[4-5]成本和復雜度提高,且更容易控制自舉流程.然而,上述兩類模塊都存在DSP程序代碼轉換復雜,DSP用戶應用程序代碼大小受限和更新升級不便等問題.為解決這些問題,本文提出了一種基于SD卡的DSP自舉模塊的設計方案,該模塊以LabVIEW程序執行代碼轉換,自舉模塊利用更多的CPU程序空間,方便快速地將用戶程序代碼加載到DSP片內RAM.

1 方案設計

設計分為用于代碼轉換的GUI軟件和用于標準串行自舉[6-7]的單片機子模塊兩部分.自舉模塊系統框圖如圖1所示,通過GUI軟件將DSP用戶應用程序轉換成.dat格式,用個人計算機將程序載入到自舉模塊中的SD卡,然后單片機子模塊的單片機通過SPI總線[8]讀取SD卡內程序,并控制DSP目標板進行標準串行自舉.

GUI軟件完成DSP用戶應用程序的格式轉換工作.DSP用戶應用程序通過CCS編譯生成.out文件,然后需要.out轉.hex,.hex轉.dat等多步轉換,.dat格式文件才是最后要載入DSP的用戶應用代碼.本方案的GUI軟件一鍵完成上面的文件轉換工作,再通過PC機將.dat文件寫入單片機子模塊的SD卡,DSP程序代碼轉換復雜的問題得到解決.然后,單片機子模塊使用znFAT文件系統讀取代碼,控制DSP進行標準串行自舉.本方案單片機子模塊系統框圖如圖1,DSP自舉文件存入SD卡后,單片機通過文件系統[9]讀取存儲在SD卡內的DSP用戶應用代碼件,復位并握手DSP,將自舉程序加載到DSP片內RAM.這樣既解決了DSP用戶應用程序大小受限制的問題,又可直接通過計算機管理SD卡中的DSP用戶應用程序實現程序的更新升級.另外本方案單片機子模塊采用標準串行自舉的方式,占用較少的DSP硬件資源.

圖2 自舉模塊硬件主要連接關系圖

2 硬件設計

本方案只有單片機子模塊需要硬件設計,其硬件連接關系圖如圖2所示.硬件引腳連接比較簡單,硬件設計主要包括SD卡與C8051F340的SPI通信,單片機與TMS320VC54x系列DSP復位與握手,單片機C8051F340與DSP目標板自舉通信,圖2中各芯片的接地、電源、保護電路、穩壓電路等均未畫出.

圖2虛線框1中單片機C8051F340與SD卡采用硬件SPI通信,SPI接口是一種高速、全雙工的同步通信總線,只占用芯片4個引腳.CLK為SPI時鐘引腳,MOSI為SPI從輸入/主輸出,MISO為從輸出/主輸入,NSS為從設備使能信號.P0.0至P0.3管腳在單片機內部已經過弱上拉處理.圖2虛線框2中單片機C8051F340與TMS320VC54x系列DSP多通道緩沖串口McBSP的BCLKR0、BFSR0、BDR0引腳模擬3線制SPI,組成標準串行自舉總線,這3個接口設為推挽輸出模式,同時均已經在單片機內部通過弱上拉處理,通信時以單片機為主機,DSP為從機.圖2虛線框3為復位與握手通信,RS引腳接收單片機的復位信號,低電平有效,DSP復位完畢后觸發INT0(XF)中斷與單片機進行握手.

圖3 基于LabVIEW的GUI前面板

3 軟件設計

程序設計分兩部分,第一部分是PC機上的LabVIEW程序,用于代碼轉換;第二部分是單片機子模塊程序,讀取SD卡內的DSP用戶應用程序,進行標準串行自舉加載到DSP.

3.1 LabVIEW程序設計

LabVIEW程序設計的前面板包括有轉換文件的路徑選擇,文件轉換信息和轉換開關等;后面板需要完成文件轉換,轉換細節文本輸出和文件名更改等任務.

圖3是基于LabVIEW的GUI前面板,前面板設計了2個輸入分別是.out文件路徑和轉換開并,3個輸出分別顯示文件轉換信息、DSP自舉代碼文件內容和自舉代碼文件路徑.

圖4是基于LabVIEW的GUI后面板,使用了DOS批處理文件hex500.exe(該文件位于CCS軟件“CCStudio_v3.3C5400cgtoolsin”安裝目錄下)和hex-to-dat.exe文件(進行.hex文件到.dat文件格式的轉換,其中.dat文件僅含有DSP的16進制純機器代碼).在平鋪式順序結構第一個子程序內調用hex500.exe,它將.out文件轉換為.hex文件;平鋪式順序結構第二個子程序內調用hex-to-dat.exe,它將得到的.hex文件直接轉換成.dat文件.點擊布爾按鈕后GUI依次調用這兩個程序,將相關的轉換信息文本輸出到前面板,更改后綴名,并將得到的.dat文件存入.out相同目錄下.

使用hex500.exe之前,需要先生成應用程序.out文件和引導表配置文件.cmd.DSP用戶應用程序在CCS集成開發環境中編譯鏈接后便可生成應用程序的.out文件,而描述文件轉換參數信息的.cmd文件需要手動設置..cmd文件內容如下;

圖5 單片機子模塊程序主流程圖

-bootloader.out//bootloader為文件名

-o bootloader.hex//輸出的HEX文件名

-map bootloader.map//輸出的MAP表

-boot//轉換成引導表的形式

-i//生成Intel格式

-e _c_int00//用戶程序的入口地址

-memwidth 16//目標系統存儲器16位寬

-romwidth 16//16位存儲器位寬

-bootorg SERIAL//標準串行方式

3.2 單片機子模塊程序設計

單片機子模塊的主流程圖如圖5所示.從圖5可以看出,首先模塊初始化,然后讀取SD自舉文件,進行標準串行自舉.為此設計了C8051F340單片機初始化等函數,嵌入式文件系統znFAT的移植與SD卡的讀寫程序,C8051F340與TMS320VC54x系列DSP的SPI通信,DSP自舉函數.

3.2.1 初始化函數設計 這部分包括單片機初始化、SD卡初始化、文件系統初始化等.其中單片機初始化又包括器件時鐘初始化(系統時鐘為48MHz),定時器初始化,I/O端口初始化將P0.0~P0.3配置為硬件SPI,XBR1=0x04,P1.0~P1.2設為推挽輸出、中斷初始化IE=0x81開啟.

SD卡初始化程序,先打開片選NSS=0,調用函數SD-Write-Cmd(CMD1)即向SD卡寫命令1(51單片機讀寫SD卡命令),其中CMD1為命令1的首地址,寫不成功或超時返回0x02,初始化失敗,繼續調用函數SD-Write-Cmd(CMD1)直至成功,關閉片選,按照SD卡的操作時序補8個時鐘,初始化成功返回.

編輯文件系統初始化函數需要了解文件系統與存儲卡,其實與文件系統及分區相關的參數信息都會被記錄在磁盤上專門的地方DBR(DOS 引導記錄),真正記錄這些參數的是一個被稱為BPB(BIOS 參數塊)的區域.文件系統初始化先定義一個bpb型指針(BPB),將數據緩沖區指針轉為bpb型指針,裝入設備號0(代表SD卡),調用znFAT_Find_DBR()找到BPB所在扇區號,調用znFAT_ReadSector(pArg->BPB_Sector_No,znFAT_Buffer)讀取BPB扇區信息并賦值給znFAT_Buffer(數據緩沖區),然后向pArg(用于指針文件系統參數集合的指針)內裝入BPB參數如FAT表占用扇區數、根目錄簇號、每扇區字節數、每簇扇區數、第一個FAT表扇區號、磁盤的總容量(單位是字節)等信息.CISC的CPU通常是小端(低字節在前),所以znFAT也設計為小端,而單片機這種RISC的CPU,通常來說都是大端(高字節在前),所以裝入BPB時需要將小端轉大端,將字節的存放次序進行調整,才能得到正確的數值.初始化最后調用Search_Last_Usable_Cluster()獲取最近一個空閑簇,文件系統初始化完畢.

3.2.2 znFAT文件系統的移植與SD卡的讀程序設計 圖5中第3步單片機打開讀取SD卡內容;SD卡容量都較大,需要移植嵌入式Fat32文件系統,其中znFAT系統擁有較為完備的功能,如文件打開、數據讀寫等.還有長名、數據重定向等擴展功能.在本自舉模塊中只要能對SD卡進行查找文件,打開/關閉一個文件,讀文件等基本幾個文件操作與管理即可.

打開文件函數znFAT_Open_File(*pf,*filepath,item,is_file),pfi指針,用來裝載文件的參數信息例如文件的大小、文件的名稱、文件的開始簇等,以備后面使用.filepath是文件的路徑,支持任意層目錄例如“\dir1\dir2\dir3\…\test.tx”,變量item在文件名中有通配符*或?的情況下,實現與之匹配的文件并非一個,item就是打開的文件的項數,這里取0.該函數返回0說明成功,返回1說明文件不存在,返回2說明目錄不存在.

SD卡讀函數SD-Read-Sector(addr,buf)讀取addr扇區的512個字節到buffer指向的數據緩沖區,addr為扇區地址,buffer為指向數據緩沖區的指針外部.調用成功,返回0x00;否則返回0x04.SD卡初始化成功后,讀寫扇區時,盡量將SPI速度提上來,提高效率.

3.2.3 復位與握手程序設計 圖5標準串行自舉流程圖中4~5打開單片機外部中斷,復位DSP,等待握手信號.因為DSP復位比較慢,需要等待較長時間,握手成功后才可進行數據傳輸,DSP復位完成后XF引腳變為低電平,觸發INT0中斷提示單片機復位完成,握手成功.如圖2自舉模塊引腳連接圖虛線框3.

3.2.4 標準串行自舉程序設計 圖5中第6步調用DSP自舉函數并發送代碼.單片機開始向DSP寫入SD卡內的自舉文件,由于TI公司在TMS320VC5416內掩膜了Boot Loader程序,該程序也包含了與單片機的通信協議,所以不用再單獨編寫自舉程序和通信協議.標準串行自舉正常工作的時序程序如下:Delay(20)代表延時20μs;P1.0,P1.1,P1.2是圖2虛線框2中單片機引腳,依次代表BDR0,BFSR0,BCLKR0,P1.0輸入無符號整型變量,P1.1為幀步信號,P1.2輸出同步時鐘,組成標準串行自舉總線,時序圖如圖6所示.

znFAT_Read_File(&FileInfo_loaderFile,j*4,4,loader_ARRAY);//讀取SD卡內自舉文件并賦值給loader_ARRAY

w=ASCII_Transform();//將loader_ARRAY中存放的直接從SD卡文件中讀取的ASCII字符數據轉換為相應16進制數,w為16bit的unsigned int型變量,傳輸用戶應用程序代碼

圖6 標準串行自舉時序圖

P1.2=1;

Delay(20);

P1.2=0;

P1.1=1;

Delay(20);

P1.2=1;

Delay(20);

P1.2=0;

Delay(20);

for(i=0;i<16;i++)

{

P1.0=(w & (0x8000 ? i)) >0;

P1.2=1;

P1.1=0;

Delay(20);

圖7 步驟一實驗結果GUI的前面板

P1.2=0;

Delay(20);

}

自舉完畢后,單片機關閉SD的DSP應用程序文件,此時自舉文件數據已經載入到DSP,拔掉JTAG接口后DSP系統可以自啟動了.

4 測 試

為驗證本模塊存儲并更新DSP用戶應用程序實現自舉的有效性,測試分為兩步.第一步,LabVIEW程序代碼轉換,驗證LabVIEW程序是否能夠實現自舉文件.out到.dat的格式轉換;第二步單片機子模塊自舉,驗證單片機子模塊是否能夠通過znFAT文件系統管理SD卡,是否能夠進行TMS320VC54x系列DSP的標準串行自舉.

4.1 步驟一

DSP用戶應用程序是LCD顯示程序.在LabVIEW前面板找到并選定LCD顯示程序在CCS集成開發環境中編譯鏈接后生成的.out文件,然后運行LabVIEW軟件點擊轉換按鈕,觀察3個輸出文本框.結果如圖7所示.實驗成功完成代碼轉換,文件轉換信息由LabVIEW后面板的執行系統指令hex500.exe產生,意思是將bootloader.out轉換成Intel Hex格式,其后綴名為.hex,DSP自舉代碼文件內容由hex-to-dat.exe輸出,原來的.out文件變成16進制數,超級編輯器打開的.out,.hex,.dat文件內容如圖8所示,DSP用戶應用程序剔除了冗余,文件內容減少,變成了16進制純機器碼,自舉代碼文件路徑就是.dat文件的路徑,與.out文件在同一目錄下.

4.2 步驟二

自舉模塊以TMS320VC5416為DSP目標板,在步驟一中前面板的自舉代碼文件路徑下找到.dat文件并通過PC機載入到SD卡,再將SD卡插入自舉模塊,然后運行調試自舉模塊的單片機程序,這時會看到LCD顯示內容,如圖9所示.最后撤掉單片機仿真器,重啟自舉模塊電源,察看LCD顯示屏,實驗結果如圖9所示.說明TMS320VC5416自舉成功,圖9中自舉模塊左下角接的是USB電源,沒有接任何仿真器,LCD顯示內容與DSP接仿真器調試LCD顯示程序相同.該實驗證明自舉模塊單片機能夠對SD卡內文件進行管理和DSP目標板TMS320VC5416完成了標準串行自舉.

圖8 out,.hex,.dat文件 圖9 步驟二實驗結果實物圖

5 結束語

設計了一種基于SD卡的DSP自舉模塊,該模塊用SD卡作為DSP的引導代碼文件存儲載體,使DSP的引導代碼存儲不受容量限制,SD卡形成文件系統存儲管理DSP用戶應用程序代碼,使自舉代碼更新升級非常方便;通過GUI軟件將CCS生成的應用程序文件直接轉換成為.dat的文件,使DSP應用程序更新升級免去代碼轉換步驟.另外DSP標準串行引導的自舉方式占用DSP芯片較少的硬件資源.實驗表明本文提出的自舉模塊合理可行.

參考文獻:

[1] 陳孟奇,嚴新榮.TMS320VC5509A串行EEPROM自舉的方法研究[J].艦船電子工程,2012(6):73-75.

[2] 陳若珠,胡金平,李站明.TMS320VC5509在線燒寫Falsh并自興趣啟動方法研究[J].軟件天地,2011(30):9-11.

[3] 張彪,方方,黃洪全,等.TMS320VC5502外擴FLASH自舉引導方法的設計與實現[J].核電子學與探測技術,2009,29(6):1303-1306.

[4] 鄒翼,曾文海,陳續喜.基于TMS320VC5402 DSP的HPI方式自舉的設計與實現[J].計算機系統應用,2009,18(3):152-155.

[5] 李輝.C8051F023通過HPI對TMS320C5402自舉的實現[J].工程應用,2005,35(3):35-37.

[6] 秦承虎.TMS320VC5416自舉技術[J].電子測量技術,2005(5):48-49.

[7] 張喜平,梁書斌.TMS320VC54x系列DSP芯片自舉程序的優化設計[J].自然科學,2012,27(3):24-28.

[8] 朱廣斌,朱德明,孟小利.MCU與DSP的SPI通信設計[J].技術縱橫,2008(1):33-35.

[9] 李世奇,董浩斌,李榮生.基于FatFs文件系統的SD卡存儲器設計[J].測控技術,2011,30(12):79-81.

猜你喜歡
單片機程序用戶
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 免费在线看黄网址| 国产av无码日韩av无码网站| 国产真实乱子伦精品视手机观看| 欧美怡红院视频一区二区三区| 久久综合五月婷婷| 亚洲中文字幕国产av| 东京热一区二区三区无码视频| 国产剧情伊人| 午夜国产在线观看| 国产成人麻豆精品| 国产呦视频免费视频在线观看| 日韩精品一区二区三区视频免费看| 日韩国产综合精选| 日本福利视频网站| 久久免费精品琪琪| 国产福利微拍精品一区二区| 国产肉感大码AV无码| 无码免费的亚洲视频| 亚洲男人天堂2018| 亚洲色成人www在线观看| 在线观看国产网址你懂的| 2022精品国偷自产免费观看| 婷婷色一二三区波多野衣| 美女高潮全身流白浆福利区| 国产系列在线| 国产区福利小视频在线观看尤物| 国产精品刺激对白在线| 亚洲成a人片| 欧美成人一区午夜福利在线| 国产精品分类视频分类一区| 免费毛片视频| 成年午夜精品久久精品| 一级毛片基地| 国产成人精品亚洲77美色| 国产精品熟女亚洲AV麻豆| 亚洲综合18p| 日韩国产精品无码一区二区三区| 小13箩利洗澡无码视频免费网站| 国产丰满大乳无码免费播放| 综合亚洲网| 欧美性精品| 久久精品中文字幕少妇| 国产精品19p| 97在线公开视频| 国产成人精品一区二区| 日韩美一区二区| 97久久人人超碰国产精品| 日韩 欧美 小说 综合网 另类| 粉嫩国产白浆在线观看| 亚洲第一视频区| 五月天香蕉视频国产亚| 精品久久久久成人码免费动漫| 亚洲区欧美区| 国产网站免费| 国产网友愉拍精品| 91区国产福利在线观看午夜| 久久婷婷六月| 超清人妻系列无码专区| 免费观看国产小粉嫩喷水| 亚洲美女久久| 国产主播一区二区三区| 蜜芽一区二区国产精品| 香蕉国产精品视频| 真实国产乱子伦视频| 亚洲九九视频| 国产一区二区福利| 国产极品美女在线| 国产免费观看av大片的网站| 久久精品无码中文字幕| 国产99免费视频| 尤物精品视频一区二区三区| 日本成人在线不卡视频| www.91在线播放| a毛片免费观看| 精品国产乱码久久久久久一区二区| 国产国产人在线成免费视频狼人色| 欧美国产日韩另类| 99国产精品国产高清一区二区| 久久一色本道亚洲| 欧美高清三区| 亚洲日本韩在线观看| 国产精品yjizz视频网一二区|