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