PSTN短消息终端SoC系统的软硬件设计

发布者:qazwsx007最新更新时间:2010-12-18 来源: 单片机与嵌入式系统应用关键字:SoC  短消息  PSTN 手机看文章 扫描二维码
随时随地手机看文章

  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所示。

  

图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

  

图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设计中软硬件协同设计的方法。在合理划分硬件和软件任务的基础上,使设计更好地达到了系统性能的要求。

关键字:SoC  短消息  PSTN 引用地址:PSTN短消息终端SoC系统的软硬件设计

上一篇:基于LED冷光源的智能路灯控制系统设计
下一篇:智能家居设计中选择指纹锁的十大标准

推荐阅读最新更新时间:2024-05-02 21:13

ARM任命中国销售副总裁,加强对中国市场的支持
中国上海,2007年7月13日—— ARM公司(伦敦证交所:ARM;纳斯达克:ARMHY)日前任命吴雄昂为中国销售副总裁。吴雄昂拥有超过15年在处理器与IP行业的从业经验,并在销售和市场营销领域取得了众多骄人战绩。他将带领ARM中国销售团队开展业务,并负责团队的进一步壮大。 在出任ARM中国销售副总裁一职之前,吴雄昂在加利福尼亚桑尼维尔担任ARM公司战略性代工厂客户总监。在加入ARM之前,吴雄昂担任慧视(Arasor)市场副总裁。在此之前,吴雄昂在NEC(美国)担任驻司企业家(Entrepreneur in Residence)。此外,他还在Mentor Graphics、LSI Logic和英特尔担任过销售和工程职位。吴雄昂还
[焦点新闻]
深耕工业自动化,亚信新一代EtherCAT从站专用通讯SoC问市
亚信电子(ASIX Electronics Corporation)因应全球智慧生产自动化的强大需求,于2018年推出大中华地区首款EtherCAT从站控制芯片「AX58100 2/3端口EtherCAT从站控制器」。为了提供客户一个更完整简单设计、经济有效的工业自动化EtherCAT从站解决方案,亚信电子今天推出新一代小封装并集成两个百兆以太网PHY的EtherCAT从站专用通讯SoC解决方案–AX58200 2/3端口EtherCAT从站专用通讯SoC。 AX58200以ARM® Cortex®-M4F微控制器为核心,内置512K字节双区块(Dual Bank)Flash内存可用于支持OTA(Over-The-Air)韧体
[工业控制]
深耕工业自动化,亚信新一代EtherCAT从站专用通讯<font color='red'>SoC</font>问市
SoC芯片收入持续增长 炬芯科技2021年净利预超232%
1月19日,炬芯科技发布业绩预告称,公司预计2021年年度实现归属于母公司所有者的净利润为8,000.00万元至8,500.00万元,与上年同期相比,将增加5,591.16万元到6,091.16万元,同比增加232.11%至252.87%。 预计2021年度归属于母公司所有者扣除非经常性损益后的净利润为5,700.00万元到6,200.00万元,与上年同期相比,将增加5,791.52万元到6,291.52万元。 关于业绩变动的原因,炬芯科技表示,公司推出的蓝牙音频 SoC芯片系列产品竞争力持续提升,公司的蓝牙音频产品市场影响力持续增强,使得公司营业收入较同期增长。其中蓝牙音箱SoC芯片系列营业收入保持持续增长,蓝牙耳机SoC芯片
[手机便携]
Bmmpr采用Nordic的蓝牙SoC作为其安全防盗器的核心处理器
下一代“Bmmpr x Assets”平台声称以消费市场价位提供独特的车用防盗传感功能组合,可以在几秒钟内检测、记录和通知任何形式的物理篡改、攻击或盗窃企图; Nordic 日前宣布,美国初创公司 Bmmpr 在其第二代 Bmmpr x 中选择了 Nordic nRF9160 系统级封装 (SiP) 以及 Nordic nRF52 和 nRF53 系列BLE SoC, Bmmpr x是基于LTE-M的防盗、防损、高价值资产保护硬件平台。 例如,当用于保护汽车时,两枚邮票大小的 44 x 28 毫米“Bmmpr x Cars”由最终用户自己插入汽车方向盘下方。最新版本的 Bmmpr 硬件平台增加了一系列全新的传感能力,包括全
[物联网]
Bmmpr采用Nordic的蓝牙<font color='red'>SoC</font>作为其安全防盗器的核心处理器
基于AC8025 SoC打造高性能完整智能座舱解决方案
四维图新旗下杰发科技专注汽车芯片已将近十年,整体产品布局丰富,目前已有四条车载芯片产品线,并在SoC开发和设计方面积累了深厚经验,其智能座舱SoC已经历了5代产品迭代。基于多项自主研发的核心技术,杰发科技的新一代智能座舱域控芯片AC8025 SoC将为中国汽车电子产业输入强动能。 2022年12月6日,由盖世汽车主办,中国(上海)自由贸易试验区临港新片区管理委员会指导,上海金桥临港综合区投资开发有限公司协办的2022第四届智能座舱与用户体验大会中,合肥杰发科技有限公司高级产品经理赵林祥表示,好的座舱SoC离不开好的座舱芯片架构设计。面向灵活的座舱架构设计,AC8025既能支持CPU硬隔离方案,同时也能支持软件虚拟化座舱架构设计
[汽车电子]
基于AC8025 <font color='red'>SoC</font>打造高性能完整智能座舱解决方案
Socionext 在DesignCon 2021展示领先的SoC设计解决方案
采用高速 5G 网络 SerDes、单芯片 ADC/DAC、先进封装技术、下一代主机接口,计算机视觉 AI 全球领先的 ASIC 供应商 Socionext Inc. 于 8 月 17 日至 18 日在圣何塞会议中心举行的年度DesignCon展示其先进的SoC设计。Socionext America Inc.的全套演示将包括112G SerDes,30-120GS/s ADC/DAC,PCIe Gen5,高性能内存和多芯片封装设计解决方案。 高速 5G 网络 SerDes/ADC/DAC 每条通道高达 112Gbps 的高性能 SerDesIP,用于高性能计算、存储和 400G 网络。超高速Direct RF
[嵌入式]
Socionext 在DesignCon 2021展示领先的<font color='red'>SoC</font>设计解决方案
Renesas宣布R-Car片上系统(SoC)增添全新产品系列
Renesas宣布,广受欢迎的R-Car片上系统(SoC)增添全新产品系列——R-Car Gen3e。 新产品扩展了广受好评的R-Car Gen3系列SoC产品线,CPU性能提升至50k DMIPS和2GHz的速度,助力汽车制造商满足不断提升的用户体验、网络安全与功能安全等需求。例如更高的CPU性能——R-Car M3Ne、R-Car M3e和R-Car H3e产品的频率最高可达2GHz;片上实时Arm® Cortex® R7 CPU,无需外部车辆控制器与瑞萨PMIC相搭配;借助快速启动、HMI和功能安全的参考解决方案缩短开发时间;配置最新版本Linux和安卓操作系统的板级支持套件等等。 新型SoC产品家族拥有六款新
[汽车电子]
Renesas宣布R-Car片上系统(<font color='red'>SoC</font>)增添全新产品系列
Arm Neoverse S3 系统 IP 为打造机密计算和多芯粒基础设施 SoC 夯实根基
Arm Neoverse S3 是 Arm 专门面向基础设施的第三代系统 IP,应用范围涵盖高性能计算 (HPC)、机器学习 (ML)、边缘和显示处理单元,是新一代基础设施系统级芯片 (SoC) 的理想技术根基。Neoverse S3 设计实现了芯粒 (Chiplet) 与机密计算 (Confidential Compute) 等关键创新,为合作伙伴提供了支持 UCIe、DDR5、CXL 3.1 和 PCIe Gen5/Gen6 等行业标准的现成功能。Neoverse S3 提供了一整套系统 IP,能够实现高度可组合性、更高的 IO 吞吐量和增强的安全特性。其主要特性包括: 支持设备分配机密计算的 Arm 机密领域管理扩展
[嵌入式]
Arm Neoverse S3 系统 IP 为打造机密计算和多芯粒基础设施 <font color='red'>SoC</font> 夯实根基
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved