《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > PSTN短消息終端SoC系統的軟硬件設計
PSTN短消息終端SoC系統的軟硬件設計
單片機與嵌入式系統應用
趙巖 張果 張春
摘要: PSTN短消息終端SoC系統的軟硬件設計,1概述PSTN短消息終端SoC是為固定電話網短消息業務而設計的一種數字終端處理芯片。片上集成了微控制器、RAM、FSK/DTMF調制解調器、LCD接口、鍵盤掃描、數據存儲器擴展頁面尋址接口以及線路狀態控制接口;可以
關鍵詞: SOC 短消息
Abstract:
Key words :

  1 概述

  PSTN短消息終端SoC是為固定電話網短消息業務而設計的一種數字終端處理芯片。片上集成了微控制器、RAM、FSK/DTMF調制解調器、 LCD接口、鍵盤掃描、數據存儲器擴展頁面尋址接口以及線路狀態控制接口;可以完成FSK和DTMF格式的短消息上傳、下傳,CID(Calling IdenTIty Delivery,主叫識別信息傳送)號碼的接收,振鈴信號檢測,話機狀態控制等功能[1],提供了PSTN短消息終端的單芯片解決方案。其中,使用了 DW8051_core IP核作為SoC的微控制器核心。

  SoC(System on chip,片上系統)不僅指它的硬件平臺,還包括運行在其上的軟件成分。如果系統采用全硬件設計的方案,優點是速度快、效率高,但是研制周期長,從而成本也高;用軟件實現則更為靈活,研制周期短。缺點是速度慢,效率比較低。因此,SoC設計必須在硬件與軟件功能劃分上有一個合理的權衡,并進行協同設計 [2]。

  2 SoC系統任務的軟硬件功能劃分

  系統任務按功能可以分為通信、人機交互、Flash存儲器管理和外設管理四部分。通信的物理層功能即DTMF/FSK信號的調制解調,涉及插值、加權、相關等DSP運算??紤]到通信的實時性要求和所使用8位微控制器的數據處理能力,這些運算由專門設計的Modem硬件邏輯實現;而在數據鏈路層,比如建立和釋放與服務器的連接、超時控制、接收FSK數據幀、拆包、差錯控制、提取返回消息層的信息和相應標志位的建立等,都交給微處理器由軟件實現。人機交互中的鍵盤掃描要不斷判斷是否有按鍵動作發生,用軟件實現效率低,這里也用專門的硬件邏輯實現。其他人機交互功能,如菜單操作、短信編輯等,則都由軟件實現。Flash存儲器管理和外設管理在硬件提供了接口寄存器的情況下,由軟件實現。

  把實時性強、運算量大和重復性強的功能交給硬件去實現,然后在滿足系統性能要求的情況下,把盡可能多的任務留給片上的微控制器用軟件實現。這樣降低了SoC的硬件復雜度以及制造成本,同時系統也可以獲得最大的靈活性。

  3 SoC的軟硬件協同設計

  3.1 對微控制器核的配置和擴展

  DW8051_core是Synopsys公司提供的一個與8051指令兼容的8位微控制器IP核。它采用4個時鐘周期為1個指令周期的模式,在時鐘周期相同的情況下,處理能力是標準8051的3倍。DW8051_core訪問程序存儲器和數據存儲器的MEM地址總線是16位總線,避免了傳統 8051結構中數據總線和地址總線低位的時分復用問題。

  由于DW8051_core是一個IP軟核(soft core),所以可以對它進行配置和擴展。在綜合(synthesis)的時候,通過對參數文件的設置,可以選擇配置內部RAM是128字節還是256字節;可以選擇是否使用定時/計數器2,使用1個串口還是2個串口等。用戶還可以按照DW8051_core手冊的要求使用硬件描述語言編寫硬件邏輯,擴展 SFR總線和中斷系統(最多可以擴展到13級中斷)[3]。

  在SoC設計中,只使用到了微控制器核的1個硬件定時器(Timer0),1個外部中斷(Interrupt0),1個串行口(UART),并沒有使用DW8051_core的全部功能。那些冗余的功能只會增加系統的硬件負擔,所以按照最精簡的原則配置DW8051_core:使用內部128字節RAM,不使用定時/計數器2,不使用內部ROM,只使用1個串口,不擴展中斷。在DW8051_parameter.vhd文件中,作如下的參數設定 [3]可以完成上述配置:

  package DW8051_parameter is

  constant ram_256 : integer := 0;

  constant timer2 : integer := 0;

  constant rom_addr_size : integer := 0;

  constant serial : integer := 0;

  constant extd_intr : integer := 0;

  end DW8051_parameter;

  SoC中的FSK/DTMF調制解調器、LCD接口、鍵盤掃描、數據存儲器擴展頁面尋址接口以及線路狀態控制接口等,都作為片內外設連接在 DW8051_core所特有的SFR內部總線上。8 KB的片上RAM和片外512 KB的Flash存儲器AM29LV040都連接在DW8051_core的MEM總線上,如圖1所示。

  

DW8051_core SFR總線以及SoC系統結構 www.elecfans.com


 

  圖1 經過擴展的DW8051_core SFR總線以及SoC系統結構

  3.2 外設在SFR總線上的地址映射

  DW8051_core通過SFR地址總線sfr_addr[0:7],SFR讀信號sfr_rd,SFR寫信號sfr_wr,SFR數據輸出總線sfr_data_out[0:7],數據輸入總線sfr_data_in[0:7]來訪問映射到SFR總線上的片上外設。每一個外設都通過SFR地址映射成SFR總線上的一個寄存器,如圖2所示。

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

  sfr SEND_MODEM_DATA = 0xf1;/* 擴展,發送Modem數據,只寫 */

  sfr READ_FSK_DECODE = 0xf1;/* 擴展,讀FSK解調數據,只讀 */

  sfr READ_DTMF_DECODE = 0xf2;/* 擴展,讀DTMF解調數據,只讀 */

  sfr MODEM_STATUS = 0xf3;/* 擴展,Modem狀態,只讀 */  sfr MODEM_CTRL = 0xf2;/* 擴展,Modem控制,只寫 */

  sfr KEYPAD_VALUE = 0xf4;/* 擴展,讀鍵盤值,只讀 */

  sfr FLASH_PAGE = 0xf5; /* 擴展,頁面尋址,只寫 */

  sfr LCD_DATA = 0xf6; /* 擴展,LCD數據,讀寫 */

  sfr LCD_CTRL = 0xf7; /* 擴展,LCD控制,只寫 */

  sfr CIRCUIT_STATUS = 0xff; /* 擴展,線路狀態,只讀 */

  sfr CIRCUIT_CTRL = 0xff; /* 擴展,線路控制,只寫 */

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

  建立它的鏡像全局變量:

  unsigned char xdata modem_ctrl_mirror;

  定義控制位:

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

  

片上外設在SFR總線上的物理連接

 

  圖2 片上外設在SFR總線上的物理連接

  設置Modem為FSK模式:

  void Modem_SetMode_FSK() {

  MODEM_CTRL = modem_ctrl_mirror & (~MODEM_B0_MODE);

  modem_ctrl_mirror = modem_ctrl_mirror & (~MODEM_B0_MODE);

  }

  在初始化程序中對這些“只寫”寄存器及其鏡像全局變量進行賦值。

  void DevicesInit() {

  MODEM_CTRL = MODEM_CTRL_INI;

  modem_ctrl_mirror = MODEM_CTRL_INI;

  }

  3.3 存儲空間的劃分和映射

  在物理上,把8KB的片內RAM分為兩部分,0000H~1BFFH(共7 KB)映射到數據空間,1C00H~1FFFH(共1 KB)映射到程序空間,并覆蓋Flash中程序空間的1C00H~1FFFH區域;把512 KB的Flash存儲器也分成兩部分,00000H~0FFFFH(共64 KB)映射到程序空間,剩下的10000H~7FFFFH(共448 KB)都映射到數據空間。

  對微控制器核來說,可以尋址64 KB的程序空間和64 KB的數據存儲空間。對整個SoC而言,因為Flash中的程序空間有1 KB被RAM程序空間覆蓋掉,所以邏輯上它的程序空間依然是64 KB,但數據空間變為7 KB+448 KB,共455 KB。微控制器核通過擴展的SFR寄存器FLASH_PAGE按32 KB×16頁的頁面方式訪問Flash存儲器,其中包括程序空間和數據空間,如圖3所示。

  

程序空間和數據空間的劃分和映射

 

  圖3 程序空間和數據空間的劃分和映射

  在對Flash存儲器件進行寫操作后的某一段時間內(從幾十μs~幾百μs),對它進行讀操作是不能讀出一個確切值的,這是Flash存儲器件的一個特性。本設計中程序和數據存放在同一個AM29LV040 Flash存儲器中。在對Flash存儲器進行寫操作時,要不斷地從其中讀出進行寫操作的程序指令,然后對它本身進行寫操作。微控制器核在20 MHz的時鐘頻率下,指令周期大約是200 ns,即每隔200 ns左右,SoC就要從Flash存儲器中讀取一條指令。這顯然和上述的Flash存儲器特性發生了沖突。

  通過對編譯環境的設定,可以把進行寫Flash操作的函數unsigned char WriteData_FLASH (unsigned char * dest, unsigned char *scr, unsigned int len) 和Flash扇區擦除函數unsigned char EraseSector_FLASH (unsigned char sector_index)定位到程序空間的1C00H~1FFFH,并備份到數據空間的0EC00H~0EFFFH。在應用程序的設備初始化函數 void DevicesInit()中,調用加載函數void LoadFLASHOpToRAM(),把對Flash進行寫或者擦除操作的這1KB的程序代碼從Flash加載到RAM的程序空間。以后凡是涉及到對 Flash的寫或者擦除操作,都由硬件邏輯切換總線到RAM去執行這一段程序代碼。這樣,以不大的RAM開銷,解決了不能同時對Flash進行讀和寫操作的矛盾。函數void LoadFLASHOpToRAM()的代碼如下:

  #define PROG_RAM_DATA0xEC00

  #define PROG_RAM_DATA_PAGE9

  staTIc unsigned char xdata RAM_prog[1024] _at_ 0x1C00;

  void LoadFLASHOpToRAM(){

  unsigned char xdata * p;

  FLASH_PAGE = PROG_RAM_DATA_PAGE;

  p = (unsigned char xdata *)PROG_RAM_DATA;

  memcpy(RAM_prog,p,1024);

  }

  4 總結

  本文詳細講述了在基于微控制器IP核PSTN短消息終端SoC設計中軟硬件協同設計的方法。在合理劃分硬件和軟件任務的基礎上,使設計更好地達到了系統性能的要求。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          好男人免费精品视频| 这里只有精品在线播放| 欧美日韩大片一区二区三区| 国产视频精品免费播放| 欧美日韩国产经典色站一区二区三区| 亚洲欧洲在线视频| 亚洲无线一线二线三线区别av| 亚洲视频你懂的| 欧美好骚综合网| 欧美插天视频在线播放| 亚洲欧洲日本国产| 国产偷自视频区视频一区二区| 欧美色图一区二区三区| 日韩视频免费观看高清完整版| 可以看av的网站久久看| 亚洲日本乱码在线观看| 欧美精品在线观看91| 欧美在线视频网站| 制服诱惑一区二区| 午夜在线视频观看日韩17c| 亚洲午夜激情在线| 欧美影院午夜播放| 欧美视频网站| 欧美亚洲视频一区二区| 欧美色视频日本高清在线观看| 欧美午夜无遮挡| 中文久久精品| 欧美日韩精品福利| 亚洲每日更新| 国产日韩欧美电影在线观看| 国产日韩精品一区二区三区| 国产精品美女在线| 免费不卡亚洲欧美| 狠狠狠色丁香婷婷综合激情| 欧美日韩国产综合视频在线观看| 亚洲视频网在线直播| 最新日韩中文字幕| 欧美a级一区二区| 欧美日韩免费区域视频在线观看| 久久久久青草大香线综合精品| 亚洲区在线播放| 久久大香伊蕉在人线观看热2| 亚洲人成人77777线观看| 欧美一级免费视频| 欧美精品国产一区二区| 欧美日韩播放| 久久精品亚洲| 国产精品美女久久久久久免费| 亚洲欧美日韩国产综合精品二区| 国产精品v欧美精品∨日韩| 尤物视频一区二区| 性久久久久久久久| 亚洲网站在线播放| 亚洲黄一区二区三区| 欧美视频免费在线| 亚洲国产成人高清精品| 国产精品igao视频网网址不卡日韩| 亚洲人成在线观看网站高清| 国产视频一区二区三区在线观看| 毛片精品免费在线观看| 亚洲高清视频中文字幕| 欧美日韩一区二区在线播放| 亚洲午夜极品| 亚洲午夜久久久久久久久电影网| 免费久久久一本精品久久区| 欧美激情亚洲激情| 欧美黄网免费在线观看| 久久综合图片| 国产私拍一区| 欧美国产日韩xxxxx| 久久av一区二区| 欧美激情一区二区三区| 亚洲欧美日韩视频二区| 在线看欧美日韩| 久久精品一区二区三区不卡牛牛| 国产精品乱码人人做人人爱| 欧美激情第3页| 性欧美xxxx视频在线观看| 亚洲特色特黄| 在线观看日韩www视频免费| 欧美视频在线看| 久久国产精品久久国产精品| 国产欧美精品日韩区二区麻豆天美| 亚洲欧美福利一区二区| 亚洲免费电影在线观看| 国产精品va在线| 欧美在线视频网站| 亚洲精品国产无天堂网2021| 久久这里只有精品视频首页| 91久久国产综合久久| 91久久久一线二线三线品牌| 亚洲美女在线一区| 狼狼综合久久久久综合网| 亚洲七七久久综合桃花剧情介绍| 亚洲精品国产精品国自产观看| 国产精品久久97| 一色屋精品视频在线观看网站| 欧美日韩精品二区| 夜夜嗨av一区二区三区网页| 亚洲夜晚福利在线观看| 欧美一区二区高清| 国产精品一二一区| 国产精品青草综合久久久久99| 亚洲自拍16p| 欧美成人一区二区| 国产精品v欧美精品v日韩| 久久精品国产久精国产爱| 欧美aaaaaaaa牛牛影院| 亚洲无线视频| 日韩一级黄色片| 夜夜嗨av色综合久久久综合网| 久久岛国电影| 亚洲第一免费播放区| 国产精品午夜国产小视频| 亚洲日本中文| 亚洲第一精品影视| 国产精品久久久久久久第一福利| 亚洲小说春色综合另类电影| 国产精品视频精品视频| 亚洲手机在线| 亚洲欧洲在线免费| 国产偷国产偷精品高清尤物| 欧美精品一区二区三区很污很色的| 欧美激情视频在线播放| 久久精品国产免费看久久精品| 国产精品免费看片| 国产精品免费看| 久久精品夜色噜噜亚洲a∨| 国产精品亚洲人在线观看| 亚洲福利视频免费观看| 国产女主播一区二区| 国产精品最新自拍| 有坂深雪在线一区| 欧美日韩在线播放三区四区| 国产色产综合产在线视频| 欧美视频一区二| 国产手机视频一区二区| 久久精品国产精品亚洲精品| 欧美激情一区二区三区在线视频| 亚洲人精品午夜在线观看| 日韩亚洲欧美一区二区三区| 亚洲电影在线看| 久久噜噜亚洲综合| 黄色成人免费网站| 欧美日韩亚洲天堂| 国产精品乱码一区二三区小蝌蚪| 欧美黑人多人双交| 在线观看国产精品淫| 欧美激情精品久久久六区热门| 亚洲影院高清在线| 亚洲激情成人在线| 亚洲一区二区三区三| 韩国成人理伦片免费播放| 国产视频一区在线观看| 欧美国产精品劲爆| 狠狠色噜噜狠狠色综合久| 亚洲一区二区三区在线播放| 国产情侣一区| 欧美日韩在线观看一区二区| 久久久夜色精品亚洲| 亚洲图片你懂的| 在线欧美日韩精品| 欧美一区二区三区视频在线| 制服诱惑一区二区| 亚洲欧美视频| 中文在线资源观看网站视频免费不卡| 久久久噜噜噜久久人人看| 国产一区二区日韩精品| 欧美3dxxxxhd| 亚洲另类在线一区| 亚洲欧美精品suv| 久久婷婷丁香| 亚洲欧洲一区二区三区| 国产亚洲一本大道中文在线| 欧美精彩视频一区二区三区| 欧美一区二区三区男人的天堂| 欧美一区永久视频免费观看| 亚洲精品欧美激情| 狠狠久久亚洲欧美| 亚洲永久网站| 欧美一区二区三区喷汁尤物| 欧美日韩亚洲精品内裤| 久久午夜视频| 香蕉av777xxx色综合一区| 欧美久久久久久| 欧美国产三区| 午夜精彩国产免费不卡不顿大片| 国产日产高清欧美一区二区三区| 久久久国产一区二区| 亚洲天堂av在线免费| 久久综合五月天婷婷伊人| 久久久久久久欧美精品| 国产麻豆一精品一av一免费| 欧美日韩中文字幕精品| 一本色道久久88精品综合| 亚洲欧洲在线看| 欧美精品videossex性护士| 欧美三级视频在线观看| 蜜乳av另类精品一区二区| 久久久久久久久久久久久女国产乱| 久久久精品2019中文字幕神马| 欧美精品一区二区三区高清aⅴ| 国产精品免费观看视频| 久久精品人人做人人爽| 国产精品久久久久永久免费观看| 欧美国产第二页| 亚洲电影免费观看高清完整版在线观看| 久久九九热免费视频| 国产精品一区视频网站| 免费在线看一区| 欧美激情女人20p| 国产亚洲成av人在线观看导航| 在线播放中文字幕一区| 91久久精品一区二区别| 国产一区二区三区四区| 亚洲欧美另类在线| 欧美午夜免费影院| 欧美日韩一卡二卡| 亚洲欧美另类国产| 国产精品少妇自拍| 久久精品99国产精品酒店日本| 欧美精品在线视频| 欧美69视频| 国产精品私拍pans大尺度在线| 欧美激情网站在线观看| 夜夜嗨av一区二区三区| 国产精品久久久久国产精品日日| 久久福利电影| 欧美日韩亚洲另类| 欧美国产一区二区三区激情无套| 在线天堂一区av电影| 好吊一区二区三区| 麻豆精品在线播放| 欧美日本不卡高清| 欧美三级免费| 亚洲视频高清| 老司机免费视频一区二区| 国产综合第一页| 亚洲国产cao| 一区二区三区日韩欧美精品| 在线综合+亚洲+欧美中文字幕| 久久久久久国产精品一区| 欧美激情导航| 美女脱光内衣内裤视频久久网站| 亚洲高清激情| 亚洲视频自拍偷拍| 欧美成人资源网| 欧美影院精品一区| 亚洲国产精品v| 欧美成人激情视频| 欧美日韩国产bt| 国产亚洲欧美日韩日本| 这里只有精品丝袜| 国产精品久久久久aaaa樱花| 极品少妇一区二区| 午夜精品视频在线观看| 国产精品福利av| 女人天堂亚洲aⅴ在线观看| 欧美精品一区二区在线观看| 激情六月婷婷综合| 午夜精品久久久久久久久| 国产精品夜夜夜一区二区三区尤| 亚洲欧美一区二区三区久久| 欧美二区在线| 在线观看日韩欧美| 国产精品一区久久久久| 久久精品国产久精国产爱| 另类综合日韩欧美亚洲| 激情综合中文娱乐网| 久久久伊人欧美| 欧美国产精品日韩| 伊人狠狠色丁香综合尤物| 亚洲欧美在线aaa| 亚洲色诱最新| 伊人夜夜躁av伊人久久| 国产精品久久久久久久久久妞妞| 国产色产综合产在线视频| 国产精品高潮视频| 欧美日韩国产bt| 欧美一区亚洲二区| 一区二区欧美日韩视频| 亚洲一区三区视频在线观看| 欧美另类女人| 久久亚洲精品一区二区| 免费观看30秒视频久久| 久久久五月天| 亚洲激情黄色| 亚洲视频成人| 美日韩精品免费| 国产在线拍揄自揄视频不卡99| 欧美三级黄美女| 国产在线精品一区二区夜色| 国产欧美一区二区精品性| 国产精品免费区二区三区观看| 国内精品久久久久影院优| 亚洲每日在线| 韩日成人在线| 久久黄金**| 欧美理论电影在线播放| 国产欧美一区二区白浆黑人| 国产精品一区亚洲| 亚洲精品久久久久久久久| 亚洲欧洲日本在线| 欧美视频在线观看一区| 欧美一区三区二区在线观看| 国产日韩精品久久久| 欧美日本中文字幕| 伊人久久亚洲美女图片| 韩国精品在线观看| 久久久久综合网| 亚洲日本中文| 久久精品三级| 一区二区三区不卡视频在线观看| 国产精品午夜春色av| 一区二区三区我不卡| 亚洲视频播放| 欧美日韩大片| 亚洲欧美日韩国产中文| 日韩午夜视频在线观看| 亚洲精品黄色| 亚洲激情网站免费观看| 欧美国产一区二区三区激情无套| 亚洲在线观看视频网站| 久久国产欧美日韩精品| 一本到高清视频免费精品| 国产精品青草综合久久久久99| 久久久国产亚洲精品| 久久综合成人精品亚洲另类欧美|