<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于IP核的PSTN短消息終端SoC軟硬件協(xié)同設計

基于IP核的PSTN短消息終端SoC軟硬件協(xié)同設計

作者: 時(shí)間:2010-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏

  SoC中的FSK/DTMF調制解調器、、、擴展頁(yè)面尋址以及線(xiàn)路狀態(tài)控制等,都作為片內外設連接在DW8051_core所特有的SFR內部總線(xiàn)上。8 KB的片上RAM和片外512 KB的Flash存儲器AM29LV040都連接在DW8051_core的MEM總線(xiàn)上,如圖1所示。

按此在新窗口瀏覽圖片
圖1 經(jīng)過(guò)擴展的DW8051_core SFR總線(xiàn)以及SoC系統結構

3.2 外設在SFR總線(xiàn)上的地址映射

  DW8051_core通過(guò)SFR地址總線(xiàn)sfr_addr[0:7],SFR讀信號sfr_rd,SFR寫(xiě)信號sfr_wr,SFR數據輸出總線(xiàn)sfr_data_out[0:7],數據輸入總線(xiàn)sfr_data_in[0:7]來(lái)訪(fǎng)問(wèn)映射到SFR總線(xiàn)上的片上外設。每一個(gè)外設都通過(guò)SFR地址映射成SFR總線(xiàn)上的一個(gè)寄存器,如圖2所示。

  對這些擴展SFR寄存器的訪(fǎng)問(wèn)和對普通寄存器的訪(fǎng)問(wèn)在形式上并沒(méi)有區別。當應用程序使用Keil的C51編譯器時(shí),修改reg51.h文件可以讓編譯器確認用戶(hù)所擴展的SFR寄存器。對擴展SFR外設地址的分配可以根據設計需要而不同,但是只能使用DW8051_core沒(méi)有保留和占用的地址,否則會(huì )發(fā)生沖突。在reg51.h文件中添加以下語(yǔ)句讓編譯器確認擴展的寄存器:

  sfr SEND_MODEM_DATA = 0xf1;/* 擴展,發(fā)送Modem數據,只寫(xiě) */
sfr READ_FSK_DECODE = 0xf1;/* 擴展,讀FSK解調數據,只讀 */
sfr READ_DTMF_DECODE = 0xf2;/* 擴展,讀DTMF解調數據,只讀 */
sfr MODEM_STATUS = 0xf3;/* 擴展,Modem狀態(tài),只讀 */
sfr MODEM_CTRL = 0xf2;/* 擴展,Modem控制,只寫(xiě) */
sfr KEYPAD_VALUE = 0xf4;/* 擴展,讀鍵盤(pán)值,只讀 */
sfr FLASH_PAGE = 0xf5; /* 擴展,頁(yè)面尋址,只寫(xiě) */
sfr _DATA = 0xf6; /* 擴展,數據,讀寫(xiě) */
sfr LCD_CTRL = 0xf7; /* 擴展,LCD控制,只寫(xiě) */
sfr CIRCUIT_STATUS = 0xff; /* 擴展,線(xiàn)路狀態(tài),只讀 */
sfr CIRCUIT_CTRL = 0xff; /* 擴展,線(xiàn)路控制,只寫(xiě) */

  為了節約SFR總線(xiàn)地址資源,一些擴展的SFR寄存器在硬件上設計為只能寫(xiě)、不可讀,另外一些被設計為只能讀、不可寫(xiě)。這樣,二者可以復用同一個(gè)SFR總線(xiàn)地址,比如MODEM_CTRL和READ_DTMF_DECODE寄存器;但是這樣在需要先將那些“只寫(xiě)”寄存器的內容讀出,運算后再進(jìn)行寫(xiě)回操作的時(shí)候就很不方便。這里采用了鏡像變量的方法,為每一個(gè)“只寫(xiě)”寄存器建立一個(gè)全局變量,每次寫(xiě)寄存器操作后,都對這個(gè)全局變量進(jìn)行同樣的寫(xiě)操作,時(shí)刻保持變量值和寄存器的內容一致,在需要讀出的時(shí)候就使用此全局變量。MODEM_CTRL寄存器的bit0控制Modem是DTMF還是FSK模式。下面以對這一位的操作為例說(shuō)明。

  建立它的鏡像全局變量:

  unsigned char xdata modem_ctrl_mirror;

  定義控制位:

  #define MODEM_B0_MODE0x01// 1-DTMF, 0-FSK

按此在新窗口瀏覽圖片
圖2 片上外設在SFR總線(xiàn)上的物理連接



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>