DSP和Flash接口技術的實現(xiàn)
1 引言
本文引用地址:http://www.ex-cimer.com/article/87948.htm在現(xiàn)代數(shù)字信號處理系統(tǒng)中,采用Flash做為DSP程序加載和引導是一種常用的方法,它為用戶對那些將來可能需要改變數(shù)據(jù)或代碼的系統(tǒng)維護提供了有效手段。利用Flash器件,能夠?qū)崿F(xiàn)在線程序編寫,減少EPROM程序燒寫帶來的麻煩。
2 Flash AM29LV800B簡介
Flash存儲器又稱閃存,它結(jié)合了ROM和RAM的特點,不僅具備電子可擦除可編程(EEPROM)功能,而且不會斷電丟失數(shù)據(jù)同時能快速讀取數(shù)據(jù),它具有在線電擦寫、低功耗、大容量、擦寫速度快等特點,屬于EEPROM的改進產(chǎn)品。
2.1主要性能
AM29LV800BB-90EC是AMD公司AM29LV800B系列的一種器件,其主要性能如下:訪問時間:90 ns;存儲容量:8Mbit;工作溫度范圍:-55~+125℃:在線編程電壓:3.0~3.6 V;低功耗:讀操作時電流為7 mA,編程/擦除時電流為15 mA。
2.2引腳功能說明
A0-A18:19根地址線;
DQ0-DQ14:15根數(shù)據(jù)線;
DQ15/A-1:當配置為16位字模式時,該引腳為數(shù)據(jù)I/O,組成16位字的最高位DQ15;當配置為8位字節(jié)模式時,該引腳為地址輸入,為地址線的最低有效位A-1;
2.3工作模式
2.3.1讀模式
為了讀取數(shù)據(jù),系統(tǒng)需將CE和OE設為低電平,同時將WE設為高電平。在器件上電或硬件復位后,器件默認設置為讀模式。
2.3.2寫模式
為了向器件寫入數(shù)據(jù)或指令,系統(tǒng)需將CE和WE置為低電平,同時將OE置為高電平,寫操作需要4個周期,前3個周期向兩個特定地址寫入3個特定字符,第4個周期將所需數(shù)據(jù)寫入相應地址:
2.3.3復位
向器件的任意地址寫入特定指令,該器件復位,復位后默認為讀模式。
2.3.4自動選擇模式
向器件兩個特定地址寫入3個特定的字符,該器件就進入自動選擇模式。在該模式下獲取器件的廠商號和設備號,系統(tǒng)必須通過復位指令斷開。
2.3.5擦除模式
片擦除是一個6周期操作,需向兩個特定地址寫入4個特定字符。
ADSP-TS201是ADI公司的TigerSHARC系列處理器的一種器件,其內(nèi)核工作頻率可高達600 MHz,指令周期為1.6 ns,片內(nèi)存儲器DRAM為24 Mbit,集成I/O接口,包括14通道的DMA控制器,4個鏈路口,可編程標志引腳,SDRAM控制器,外部端口,2個定時器等,具有IEEE 1149.1兼容的JTAG端口用于在線仿真,靈活的指令集和支持高級語言的DSP結(jié)構(gòu)便于DSP編程。
ADSP片內(nèi)無ROM,不能將應用程序和數(shù)據(jù)直接存儲在DSP內(nèi)部,通常需將應用程序存儲在外部存儲器。系統(tǒng)工作時,通過加載操作將應用程序載人到DSP內(nèi)部執(zhí)行。由于EPROM空間只提供8位數(shù)據(jù)線,因此如果Flash是16位甚至更高位,那么Flash應當配置成8位工作。由于EPROM接口是專門為處理器采用EPROM或者Flash進行程序引導而設計的,而EPROM和Flash的數(shù)據(jù)傳輸并不是高速的,因此為了保證通用的EPROM和Flash能正確引導處理器運行程序,ADSP-TS201在進行每次EPROM讀操作時需插入16個等待周期,并且在最后一個EPROM引導總線周期后有3個等待周期,用做EPROM的斷開時間。ADSP-TS201提供BMS引腳用于引導存儲器選擇,作為Flash的片選信號,實現(xiàn)系統(tǒng)加載。此時TigerSHARC只能通過特定的DMA通道0將程序從EPROM自動加載到TigerSHARC內(nèi)存,并且外部總線自動將字節(jié)數(shù)據(jù)打包成32位指令。另外TS201提供/MS0和/MS1引腳,用于存儲器選擇。當DSP分別訪問存儲器bank0或bank1時,MS0或MS1有效。該引腳也可用作Flash的片選信號,以實現(xiàn)Flash的在線編程。按此方式實現(xiàn)硬件,可采用處理器內(nèi)核或者非EPROM類型的DMA方式訪問Flash,但是處理器不會自動完成32位字和8位字的打包和拆包,需要編寫專門的打包程序,這點尤為重要。其原理如圖1所示。
4 對Flash加載的軟件編程
本程序采用匯編語言,整個程序流程如圖2所示。當采用圖1所示的連接時,ADSP-TS201向Flash寫入一個字,由于DSP外部數(shù)據(jù)總線為[31:0],而Flash只連接了其中的低8位,因此DSP在向Flash寫入數(shù)據(jù)時,需要先打包處理。以下為本系統(tǒng)設計的關鍵程序代碼。
擦除操作和擦除狀態(tài)的查詢對Flash非常重要,因為任何Flash器件的寫入操作只能在空或已擦除的單元內(nèi)進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦除。擦除操作可按6周期指令完成。該操作將Flash的內(nèi)容全部清零,然后從Flash的任意地址讀取數(shù)據(jù),與0相比較,判斷擦除操作是否順利進行。相關指令代碼如下: 整個程序的流程如圖2所示。
5結(jié)語
以Flash AM29LV800B為例,提出了Flash與DSP的硬件接口設計和Flash燒寫程序的基本步驟。這種系統(tǒng)設計使得軟件設計相對簡單,已多次應用于現(xiàn)代數(shù)字信號處理系統(tǒng)中應用,效果良好。
評論