《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種基于CPLD譯碼的DSP外部Flash燒寫方法
一種基于CPLD譯碼的DSP外部Flash燒寫方法
張芝賢1,邱委華1,朱慶賢2,王
摘要: 以實際的圖像監控系統為背景,介紹了對S29AL008D Flash存儲器進行操作的指令格式和控制方法。通過CPLD實現DSP和Flash存儲器之間的硬件連接,給出了部分VHDL源程序。利用TMS320C5509A DSP通過CPLD快速譯碼實現Flash燒寫具有接口簡單、通用性強的優點,在實踐中證明了方法的有效性。
關鍵詞: DSP CPLD VHDL TMS320C5509A
Abstract:
Key words :

  摘 要: 以實際的圖像監控系統為背景,介紹了對S29AL008D Flash存儲器進行操作的指令格式和控制方法。通過CPLD實現DSP和Flash存儲器之間的硬件連接,給出了部分VHDL源程序。利用TMS320C5509A DSP通過CPLD快速譯碼實現Flash燒寫具有接口簡單、通用性強的優點,在實踐中證明了方法的有效性。
    關鍵詞: DSP;S29AL008D;CPLD譯碼;Flash燒寫

 

   數字信號處理器DSP因其運算精度高,實時性強等特點,在通信、工業控制和消費類電子等領域得到了廣泛應用,成為進行數字信號處理的首選器件。在圖像監控系統中,往往要對大量的數據和應用程序進行處理和非易失性存儲。采用Flash存儲器對這些大量數據和應用程序進行存儲是一種性價比較高的選擇。本文設計的以TI公司DSP芯片TMS320VC5509A(以下簡稱VC5509A)為主處理器的圖像監控系統中,使用了AMD公司S29AL008D Flash存儲器作為數據和應用程序存儲芯片。使用VC5509A對S29AL008D進行操作,在硬件接口設計中采用CPLD進行譯碼和時序控制。
1 VC5509A及其外部存儲空間
    TMS320VC5509A是TI公司的一款16位高速低功耗定點DSP芯片,主要應用于對音頻、靜態圖像的數字信號處理,是設計便攜設備的較佳解決方案。該DSP芯片在核心電壓為1.35 V時最大工作頻率為144 MHz;地址線為24位,對地址的尋址范圍為16 M×8 bit或8 M×16 bit。VC5509A采用統一的編址方式,即存儲空間地址沒有重疊但是尋址方式卻有2種不同的方式:字節尋址和字尋址[1]。當DSP中的CPU訪問VC5509A程序存儲空間時,通過外部存儲器接口(EMIF)對外部存儲空間進行管理。外部存儲空間被分成CE0~CE3 4個空間,分別由EMIF的CE0#~CE3#引腳管理,外部存儲空間劃分如圖1所示[2]。CEn#(n=0~3)與外設的片選端連接。

 


2 硬件電路設計
2.1 VC5509A與Flash的硬件連接
    使用PGE封裝的VC5509A對外只提供14條地址線引腳,因此只能尋址8 K×16 bit的空間范圍[3],要對S29AL008D的512 K×16 bit存儲空間尋址需19條地址線。解決辦法是用CPLD實現鎖存譯碼使D[5:0]具有數據/地址復用功能,為S29AL008D Flash存儲器提供高6位地址[4]。VC5509A和CPLD與S29AL008D的硬件接口電路如圖2所示[5]。通過CPLD的快速譯碼功能在CE2空間模擬1個Flash高位地址控制寄存器(換頁控制寄存器)FPCR,上電復位后通過寫FPCR控制FLASH的高位地址來實現換頁功能。此處用VHDL對XC9536XL進行編程將FPCR映射到0x400000,由于篇幅限制僅給出如下部分核心源程序:
    begain
    fce<=ce1;
    foe<=aoe;
    fwe<=awe;
    addr<=a3&a2&a1;
    datain<=d5&d4&d3&d2&d1&d0;
    facs<='1' when ce2='0' and addr='000'   
        else'0';
    FAR:process(facs,awe,reset)
    begain
    if reset='0'  then
       fa<='000000';
    else if reset='1' then
if awe'event and awe='1' then
       if facs='1' then
    fa<=datain(5 downto 0);
            end if;
         end if;
      end if;  
    end process;
    dataout<=fa when aoe='0' and facs='1'
    else 'ZZZZZZ';
    ……


2.2 VC5509ADSP相關寄存器的初始化
    在DSP對S29AL008D 進行讀寫訪問之前,要對DSP內相關寄存器進行正確的設置。此系統的初始化設置如下[6-7]:
    ioport unsigned int *ebsr=(unsigned int *) 0x6c00;
    ioport unsigned int *egcr=(unsigned int *) 0x800;
    ioport unsigned int *ce11=(unsigned int *) 0x806;
    ioport unsigned int *ce12=(unsigned int *) 0x807;
    ioport unsigned int *ce13=(unsigned int *) 0x808;
    *ebsr=0x01;   //外部總線選擇寄存器選定完全EMIF模式
    *egcr=0x0a10;    //關閉ARDY控制
    在CPU一半工作頻率下,設置CE1
    *ce11=0x162a     //設置存儲器模式為異步16位,讀操作的setup、strobe、hold與寫操作的相同
    *ce12=0x162a; //寫操作的setup、strobe、hold
    *ce13=0;
2.3 Flash存儲器的操作
    對S29AL008D的讀寫過程必須嚴格按照S29AL008D提供的命令時序來完成。表1給出了S29AL008D對數據字進行復位、擦除、讀、寫的命令時序[7]。

           


    Flash操作寫子函數C程序如下:
    # define flash_ba 0x200000
    //ptr是FLASH存儲器映射在整個DSP系統地址空間中的基地址
    # define FAR
    unsigned int PA,PD;
    void write_se(unsigned int se_addr,unsigned int se_data)
    {
      unsigned int *flash_adr,*FAR=(unsignedint*)
         0x400000;
     flash_adr=(unsigned int * )
         (flash_ba+se_addr);
     //se_addr由FAR和A[13:1]來決定
        *flash_adr=se_data;
    }
    對Flash進行寫操作前必須先擦除片內原有的數據。Flash的整片字擦除操作時序C語言實現如下:
    void Erase-Chip()
    {
       void write_se (0x555,0xAA);
       void write_se 0x2AA,0x55);
       void write_se 0x555,0x80);
       void write_se 0x555,0Xaa);
       void write_se 0x2AA,0x55);
       void write_se 0x555,0x10);
    }
    Flash要對寫入的數據進行校驗以及判斷操作是否正確完成。Flash寫校驗C語言實現如下:
    void program_check (void)
    {
        unsigned int algorithm_out;
        unsigned int datapolling_bit;
        unsigned int exceed_time;
        algorithm_out = read_arry( PA);
        datapolling_bit = intalgorith_out &0x80;
    exceed_time = algorithm_out &0x20 ;
    while((datapolling_bit !=PD&0x0080)
            &&(exceed_time != 0x20))
        {
        algorith_out = read_arry( PA);
        datapolling_bit = algorith_out &0x80;
        exceed_time = algorith_out &0x20;
        }
    if (exceed_time = = 0x20)
        {
         datapolling_bit =read_arry(PA) &0x80 ;
        if (datapolling_bit !=PD & 0x0080)
         {
          reset_flash();
          wrong();
          }
         }
    }
    Flash字編程程序如下:
    void Word-Program(void)

    {
        write_se (0x555,0xAA);
        write_se 0x2AA,0x55) 
        write_se (0x555,0XA0);
        write_se (PA,PD);
        program_check();
    }
    由于篇幅所限,本文僅給出部分核心程序代碼,讀者可利用上述代碼編寫一個完整的程序。
    本文以解決DSP靜態圖像無線傳輸系統項目中對大規模程序和大量圖像數據的存儲問題為背景,并最終在整個系統調試中實現其存儲功能和程序的二次加載。經驗證,本接口設計和編程實現具有操作方便,易于擴展等優點。
    對DSP外部Flash編程雖不是一項關鍵技術,但它在整個DSP嵌入式系統開發中卻有著至關重要的作用。如果開發者在設計之初就掌握了這項技術,將會大大方便系統的調試,縮短開發時間。


參考文獻
[1] Texas Instruments. TMS320VC5509 DSP external memory interface(EMIF) reference guide[S]. Literature Number:SP-2 RU670, October 2003.
[2] 彭啟琮,武樂琴.TMS320VC55X系列DSP的CPU與外設[M].北京:清華大學出版社,2005:191-212.
[3] Texas Instruments.TMS320C55x DSP CPU reference guide[S]. Literature Number:SPRU371F,February 2004.
[4] 申敏,鄧矣冰.DSP原理及其在移動通信系統中的應用[M].北京:人民郵電出版社,2001:130-139.
[5] 劉偉,閆玉華.基于CPLD譯碼的DSP二次Bootloader方法[J].電子技術應用,2008,34(10):61-63.
[6] 李坤,肖恒.TMS320VC33的引導加載方法設計與實現[J].電子技術應用,2003,23(2):166-168.
[7] Publication number S29AL008D_00 revision A amendment 3. Issue Date June 16, 2005.

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
红桃视频一区| 亚洲一区二区成人| 国产精品久久久久9999高清| 欧美福利影院| 久久精品一区中文字幕| 午夜精品理论片| 亚洲免费在线| 亚洲影院免费观看| 亚洲午夜在线视频| 一区二区三区国产精品| 99re6热在线精品视频播放速度 | 精品99一区二区三区| 国产毛片一区| 国产精品视频xxx| 国产精品久久久久久五月尺| 欧美日韩国产综合视频在线| 久久先锋资源| 久久久久久网站| 久久视频在线视频| 另类春色校园亚洲| 免费国产自线拍一欧美视频| 欧美1区视频| 欧美女同视频| 欧美日韩一区二区三区在线 | 国产一区二区中文字幕免费看| 久久中文在线| 久久综合五月| 久久综合一区二区| 欧美大片va欧美在线播放| 欧美精品免费观看二区| 欧美日韩精品二区第二页| 欧美四级在线| 国产欧美1区2区3区| 国产日韩一区二区三区在线| 国内精品久久久久久久97牛牛| 欧美偷拍另类| 国产精品亚洲综合一区在线观看 | 伊人色综合久久天天五月婷| 亚洲国产综合在线看不卡| 亚洲毛片av| 亚洲自拍啪啪| 亚洲第一福利社区| 日韩一区二区免费看| 亚洲制服少妇| 久久久久一区| 欧美激情中文不卡| 欧美日韩在线观看一区二区| 国产精品影视天天线| 狠狠色狠狠色综合人人| 亚洲国产你懂的| 中文欧美日韩| 久久精品女人| 在线综合亚洲| 久久精品国产亚洲高清剧情介绍| 亚洲免费一区二区| 久久精品一区二区三区中文字幕| 亚洲欧美另类在线观看| 久久精品国产免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久精品欧美日韩| 欧美成人免费一级人片100| 欧美午夜电影网| 国语自产精品视频在线看8查询8| 国产精品亚洲片夜色在线| 国产在线高清精品| 亚洲精品一区中文| 欧美一二三区精品| 一本色道久久综合| 久久久久久69| 欧美网站在线| 在线看日韩av| 亚洲欧美在线一区| 99视频一区二区| 久久久999成人| 欧美日韩亚洲一区三区| 红桃视频亚洲| 亚洲欧美不卡| 亚洲婷婷免费| 欧美成人高清| 国产一区二区三区无遮挡| 一区二区精品| 亚洲免费av电影| 久久久国产视频91| 国产精品久久久久久久久免费樱桃| 国产精品久久久久久久久久尿 | 欧美日韩在线一区二区| 国产一区二区无遮挡| 亚洲视频免费在线| 亚洲国产另类 国产精品国产免费| 亚洲国产欧美日韩另类综合| 亚洲免费人成在线视频观看| 欧美寡妇偷汉性猛交| 国语自产精品视频在线看| 亚洲综合日韩在线| 一本一本久久a久久精品综合妖精| 亚洲一区综合| 欧美aⅴ99久久黑人专区| 国产性色一区二区| 亚洲深夜福利在线| 一本色道久久加勒比精品| 欧美xxx在线观看| 好吊色欧美一区二区三区视频| 亚洲国产另类 国产精品国产免费| 亚洲精品日本| 亚洲电影自拍| 久久激情视频免费观看| 国产精品国产成人国产三级| 亚洲精品中文字幕女同| 91久久精品国产91性色tv| 久久久久久成人| 国产一区二区三区四区三区四| 亚洲国产精品黑人久久久| 欧美自拍丝袜亚洲| 久久精品91久久香蕉加勒比 | 欧美大片第1页| 悠悠资源网久久精品| 欧美在线视频观看| 久久久精品一区| 国产日韩三区| 欧美在线综合| 久久婷婷久久| 国产一区二区电影在线观看 | 99精品欧美一区二区三区| 免费成人av在线看| 亚洲二区免费| 亚洲精品免费在线播放| 欧美**字幕| 亚洲欧洲中文日韩久久av乱码| 亚洲一区二区三区影院| 在线亚洲国产精品网站| 欧美日韩国产一区二区三区| 亚洲电影免费观看高清完整版 | 亚洲欧美日韩精品久久亚洲区| 亚洲国产日本| 鲁大师成人一区二区三区| 伊人色综合久久天天| 91久久在线视频| 欧美精彩视频一区二区三区| 亚洲精品中文字幕有码专区| 亚洲最新色图| 国产精品国产自产拍高清av| 亚洲午夜高清视频| 欧美一区二区三区免费观看| 国外精品视频| 亚洲乱码国产乱码精品精| 欧美日韩精品久久久| 亚洲午夜电影| 久久亚洲视频| 亚洲日本一区二区| 亚洲在线免费视频| 国产真实乱子伦精品视频| 亚洲黄色成人久久久| 欧美日韩裸体免费视频| 亚洲视频自拍偷拍| 久久精品午夜| 最新国产精品拍自在线播放| 亚洲一区日韩在线| 国产在线播精品第三| 亚洲精品美女| 国产精品久久久久久久午夜 | 欧美午夜精品久久久久久久| 在线午夜精品| 久久精品一区中文字幕| 亚洲国产精品一区二区三区 | 亚洲精品美女久久久久| 欧美另类视频在线| 亚洲男人天堂2024| 蜜乳av另类精品一区二区| 99香蕉国产精品偷在线观看| 欧美在线观看视频一区二区三区 | 国产欧美高清| 91久久久久久| 国产精品国产亚洲精品看不卡15| 亚洲精品一区二区三区婷婷月| 亚洲第一精品影视| 欧美日韩国产精品专区| 亚洲欧美成人精品| 欧美第十八页| 亚洲综合另类| 欧美激情久久久久| 午夜精品成人在线| 欧美精品一区二区三区很污很色的 | 亚洲精品一区久久久久久| 国产精品久久国产愉拍| 亚洲国产精品久久人人爱蜜臀| 久久久久一区二区三区| 亚洲国产精品久久久久婷婷老年| 亚洲国产合集| 欧美午夜国产| 亚洲国产婷婷综合在线精品| 国产精品国内视频| 亚洲国产三级网| 国产精一区二区三区| 99在线精品视频在线观看| 国产一区二区三区网站| 亚洲影院免费| 亚洲美女在线看| 欧美mv日韩mv亚洲| 亚洲欧美日韩人成在线播放| 欧美日韩精品欧美日韩精品|